作品介绍
1 需求分析
现如今人口拐卖犯罪已成为世界上增长最快、最有利可图的犯罪之一,年利润仅次于毒品和军火,其中儿童拐卖犯罪最为引人注目,且被拐数量惊人,已成为国际社会共同关注的问题。2021年4月,国务院发布了《中国反对拐卖人口行动计划(2021—2030年)》,要求有关部门密切配合,严厉打击拐卖儿童犯罪行为。然而多年以来,因为拐卖犯罪突发性强、作案手段多样等诸多因素导致拐卖犯罪打击成效甚微,儿童拐卖犯罪始终成为一把高悬在千百万家庭头上的利刃。
图1-1 中国反对拐卖人口行动计划
各大互联网公司为积极应对儿童拐卖犯罪的严峻形势,设计与研发诸多反拐打拐平台如:团圆系统、中国儿童失踪预警平台、神兔侠、宝贝回家网站等(部分功能如下表1-1)。总体来说都存在救援机制简单、过于依赖用户、新技术应用不充分、不能合理利用各类社会资源等缺点,总之,未能针对儿童建立全周期、全方面预防、打击、救援一体化的儿童安全监测、预警与救援体系。
图1-2 已有产品
表1-1功能对比
平台名称 | 信息查询 | 儿童定位 | 一键报警 | 地理围栏预警 | 资源统筹 | 救援指挥 | 大数据分析 | 实时监护 | ... |
团圆系统 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 | ... |
神兔侠 | 有 | 有 | 有 | 无 | 无 | 无 | 无 | 无 | ... |
失踪儿童预警平台 | 有 | 有 | 有 | 无 | 无 | 无 | 无 | 无 | ... |
宝贝回家网 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 | ... |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
针对上述问题,为充分调动各类社会资源,健全儿童安全保护机制,本团队经过调查后,研发中国儿童拐卖犯罪监测与救援指挥平台,团队成员综合利用移动互联网、大数据、云计算、物联网、AI智能算法、时空数据挖掘、GIS等先进技术,建立儿童从出生到日常生活再到救援前后的全过程全周期的预防打击体系,构建全方位的儿童安全监测预警与救援云服务平台,平台核心立足于公益组织、公安打拐办部门,同时统筹调度公安警务人员(民警、交警、巡警、治安警等)等社会资源,实现对拐卖犯罪大数据分析、儿童实时监护与救援指挥多维一体化的服务体系。
2 功能设计与展示
2.1 功能设计
系统采用Hadoop大数据平台,基于分布式爬虫获取的宝贝回家网、失踪人口档案库等丢失儿童以及线索数据,基于ArcGIS API for JS地图前端实现国内实时丢失儿童地图可视化。平台基于全国历年丢失儿童时空大数据,运用云计算、大数据、GIS空间分析技术,研究我国拐卖儿童的时空分异变化机制;采用组件式开发模式,建立了全国范围内拐卖犯罪信息监测与指挥救援网络。系统整体架构采用分层设计模式,平台结构分别为:应用表现层,网络传输层,应用支撑层,众源数据层以及物理应用层,其中应用表现层主要包括系统功能应用及前端操作,功能方面Web端实现了被拐儿童监测面板、数据查询、预测预警、救援指挥、时空分析、专题地图等功能,App端实现了宝贝监测、宝贝详情、儿童救援等功能;操作方面实现了数据监测及数据渲染等;HTTP传输分为静态资源传输以及动态资源传输两大类;数据请求分析包括Web后端,GP服务以及服务区分析;数据方面分为数据的获取、处理以及存储;物理应用层由智能手环支撑,整体架构如图所示:
图2-1 系统架构图
2.2 系统功能展示
系统总共分8个模块,分别是检测面板模块、数据查询模块、拐卖网络模块、实时监护模块、预测预警模块、救援指挥模块、专题地图模块和时空分析模块。
整体功能如下图所示:
图2-2 系统功能
①监测面板模块利用可视化与GIS技术,从时间、城市、数量、拐卖路径等多尺度多视角结合各类图表动态展示全国、全省、全市三级儿童拐卖数据信息
图2-3 全国数据面板模块
图2-4 各省数据面板模块
②拐卖网络模块通过对数据的深度挖掘获取到拐入地以及拐出地,利用社会网络分析以及空间路径分析结合下方拐卖路径热力图对中国各省拐卖儿童犯罪空间网络进行分析。
图2-5 拐卖网络
图2-6 城市儿童拐卖路径拐入图
图2-7 城市儿童拐卖路径拐出图
③数据查询模块可查看该丢失儿童的详细信息、关系图谱,历史照片以及亲属线索
图2-8 被拐儿童数据查询
图2-9 被拐儿童疑似轨迹范围
④风险预警模块根据儿童丢失点位叠加城市路网数据,找到丢失儿童数据栅格建模,用户可根据自定义参数,选择出行交通工具,设置出发点,目的地,及其他参数,系统将规划合适的出行路线,规避高风险路段,并计算得到该路段的出行风险系数。
图2-10 风险预警分析设置
图2-11 风险预警结果
⑤实时监护模块通过物联网技术,实现了对儿童手势、信号、轨迹等指标的实时监测,并有查看轨迹功能,可以对异常儿童的历史轨迹进行回溯,并查看其实时生理信息。
图2-12 实时监控
⑥救援指挥模块统计当前在线的资源以及对本地走失孩童的时间以及地区,同时可展示走失孩童的个人信息以及关系网络照片集视频集与最新的警方通告信息等相关资料为救援提供线索。
图2-13 丢失儿童信息
图2-14 周边社会资源统筹
⑦专题地图模块制作不同类型的专题地图展示丢失儿童数据的地理位置差异与分布特征。
图2-15 专题制图
⑧时空分析模块通过多种空间分析方法揭示被拐卖儿童的空间分布及时空分异规律,实时分析面向儿童的拐卖犯罪时空大数据。
图2-16 时空数据分析
3 数据库设计
3.1 标识符和状态
数据库软件:数据库管理系统为SQL Server云数据,版本号为11.0.4。
数据库名称:Sudden DIEASE
3.2 命名约定
数据库的设计应该符合并遵守以下原则:
1)对象名称一律采用大写字母,单词之间以下划线(“_”)分割。
2)属于相同模块的对象第二个单词应该相同。
3)字段必须采取和实际数据相符合的数据类型。
4)不要在对象名的字符之间留空格。
5)避免使用数据库特有的数据类型,尽量避免使用触发器、存储过程等。
6)避免使用动态创建表或者字段的设计。
7)每个表的字段最好不要超过30个。
8)对象命名都应该使用正确的英文单词,禁止使用汉语拼音。
9)小心保留词,要保证命名没有和保留词、数据库系统或者常用访问方法冲突。
3.3 设计约定
数据库的设计,采用面向对象的设计方法。首先进行对象实体的设计,最后将对象实体持久化到数据库中,所有的表和表之间的关联,这样能够将整个系统的设计和数据库设计有机的结合起来。
3.4 数据表字典
表3-1 数据库表列表
表序号 | 表名 | 表的详细说明 |
1 | users | 用户表 |
2 | area | Geojson中国矢量数据 |
3 | 宝贝回家1949年后18岁内 | 丢失儿童数据 |
4 | 家宝寻1949年后18岁内 | 丢失儿童数据 |
3.5 安全性设计
实施系统资源管理分配计划,SQL Server提供了Database Resource Manager(DRM,数据库资源管理器)来控制用户的资源分配,DBA可以用它分配用户类和作业类的系统资源百分比。在一个OLDP系统中,可给联机用户分配75%的CPU资源。另外,还可以进行CPU的多级分配。除了进行CPU资源分配外,DRM还可以对资源用户组执行并行操作的限制。使用最优的数据库连接和SQL优化方案。
1)使用直接的OLEDB数据库连接方式
通过ADO可以使用两种方式连接数据库,一种是传统的ODBC方式,一种是OLEDB方式。ADO是建立在OLEDB技术上的,为支持ODBC,必须建立相应OLEDB到ODBC的调用转换,而使用直接的OLEDB方式则不需转换,提高处理速度。
2)使用Connection Pool机制
在数据库处理中,资源花销最大的是建立数据库连接,用户还会有一个较长的连接等待时间。解决的办法就是复用现有的Connection,使用ConnectionPool对象机制。
Connection Pool的原理是:IIS+ASP体系中维持了一个连接缓冲池,这样,当下一个用户访问时,直接在连接缓冲池中取得一个数据库连接,而不需重新连接数据库,因此可以大大地提高系统的响应速度。
3)高效进行SQL语句设计
通常情况下,可以采用下面的方法优化SQL对数据操作的表现:
减少对数据库的查询次数,即减少对系统资源的请求,使用快照和显形图等分布式数据库对象可以减少对数据库的查询次数。
尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用SQL共享池中的已经分析的语法树,要查询的数据在SGA中命中的可能性也会大大增加。
限制动态SQL的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析。
避免不带任何条件的SQL语句的执行。没有任何条件的SQL语句在执行时,通常要进行FTS,数据库先定位一个数据块,然后按顺序依次查找其它数据,对于大型表这将是一个漫长的过程。
如果对有些表中的数据有约束,最好在建表的SQL语句用描述完整性来实现,而不是用SQL程序中实现。
可以通过取消自动提交模式,将SQL语句汇集一组执行后集中提交,程序还可以通过显式地用COMMIT和ROLLBACL进行提交和回滚该事务。
检索大量数据时费时很长,设置行预取数则能改善系统的工作表现,设置一个最大值,当SQL语句返回行超过该值,数值库暂时停止执行,除非用户发出新的指令,开始组织并显示数据,而不是让用户继续等待。
4 关键技术
4.1 分布式数据爬取
基于Redis缓存,构建分布式集群进行数据抓取,该分布式数据抓取系统内容和架构主要包括:
1)丢失儿童数据获取
通过Selenium库调用谷歌浏览器内核解析动态网页的方法,结合SCARPY构造儿童拐卖等数据的抓取系统,对宝贝回家网、失踪人口档案库等网站数据进行爬取。
2)儿童轨迹数据获取
通过物联网技术实时获取手环定位数据。
3)人脸识别面部视频数据训练样本库
YouTubeFacesDataset是一个面部视频数据库,其被用于研究视频中无约束的人脸识别问题,该数据集包含来自1,595个主题的3,425段视频,视频均来自于YouTube,其中每个主题有约2.15个视频,其中最短剪辑持续48帧,最长剪辑为6,070帧,剪辑视频的平均长度为181.3帧。
图4-1 分布式爬取流程
4.2 多线索机器学习
1)文本线索处理
在数据处理上,专注于自然语言处理中的特征词观点抽取和情感值分析。在前期的语料处理上,本文使用了中文分词与词性标注工具包TUHLAC,该工具具有如下几个特点:
1.使用了基于词图(wordlattice)的重排序算法,在分词、词性标注和重排序方面效率较高,性能较强。
2.模型强大。其按照统一标注规范整合多个分词、词性标注语料库,得到一份1500万字的分词、词性标注语料库用于模型训练,模型标注能力强大。准确率高。该工具包在标准数据集ChineseTreebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。
3.速度较快。该工具包的分词和词性标注速度为300KB/s,每秒可处理约15万字。仅进行分词速度可达到1.3MB/s。
4.在特征词观点抽取上,本文采用了基于词共现的抽取方法,利用统计特征词与观点词的共现频率,采用PMI互信息计算方法对观点词的属向进行判读,流程图如下:
图4-2 特征词提取流程
4.3 前端核心技术
1)Vue.js
Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。
2) ArcGIS API for JS
ArcGIS API for JS是ESRI公司基于Dojo框架根据JavaScript技术实现的调用ArcGIS Server REST API接口的一组脚本。在Vue中可使用基于基于ES Modules的新开发方式,减少了繁琐的引入过程。通过ArcGIS API for JavaScript可以将ArcGIS Server提供的地图资源嵌入到Web应用中,其支持地理空间大数据的监测与分析处理能力。
3) Cesium JS
Cesium 是一款用于创建虚拟场景的3D地理信息平台。目标是用于创建以基于Web的地图动态数据可视化。目前尽力提升平台的性能、准确率、虚拟化能力、易用性以及平台的各种支持。它是一个完全开源的基于 WebGL 的 JavaScript框架,无需安装插件即可创建具有最佳性能、精度、视觉质量和易用性的世界级三维地球影像和地图,并且具有丰富的开源社区内容。
4) JavaScript
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
4.4 后端核心技术
1) Spring Boot
SpringBoot是一个轻量级的Java开发框架,它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。简单来说,SpringBoot是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2) MyBatis
MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs(Plain、Old、Java、Objects,普通的Java对象)映射成数据库中的记录。在本系统中选择MyBatis作为系统的持久层框架,可以通过简单的xml配置实现数据库的切换。使用MyBatis框架,屏蔽底层数据库差异。
5 作品亮点
(1)儿童拐卖犯罪大数据分析
平台通过数理统计分析,总结中国各省市被拐儿童人口统计学规律;采用全局空间自相关分析和局部空间聚集分析,探寻我国被拐儿童的全局和局部空间分布模式;结合新兴时空热点分析工具,利用空间网络路径算法对中国拐卖儿童犯罪空间网络以及路径进行分析,探讨各省份趋同过程与省份背景之间存在的内在联系。平台通过研究我国各省市被拐儿童数量的时空特征,定量地描述被拐儿童的时空分异机制和导致变化的影响因素。
(2)多尺度儿童拐卖时空分异
平台的时空分析功能,是利用社会网络分析方法,建立地理加权回归模型,解析我国拐卖儿童犯罪的空间分布特征,包括探索性分析、集中度分析、冷热点分析、空间自相关分析等,得出多尺度下我国拐卖儿童犯罪的重点区域;其次解析我国拐卖儿童犯罪的时空演化特征,包括拐卖儿童案发数随时间变化的整体趋势、整体的范围、空间等级变化的整体趋势以及犯罪重心随时间变化的整体趋势;再选取相关影响因子,构建拐卖儿童空间分异指标体系,解析拐卖儿童犯罪的发生原因以及空间分布存在差异的机制,最后从时空角度分析数据的分布和模式,分析拐卖犯罪的时空分异机制。
(3)儿童救援线索识别
平台在针对走失儿童开通的专属救援频道中,使用3D卷积神经网络算法以及TensorFlow系统智能识别用户针对走失儿童上传的救援线索,并实时匹配该线索与该走失儿童的匹配率,极大降低救援的容错率。并实现对该儿童的救援线索整理分析,实现儿童救援线索的维度升级,提高儿童救援的成功率。
(4)地理特征识别以及AI拐卖线索图谱分析
平台获取城市尺度下拐卖儿童信息,采用地理特征识别,获取有关被拐儿童图片线索;并通过NLP自然语言处理解析相关文本,利用AI技术实现对被拐儿童线索关键词的提取。然后将关键词与图片线索相互连接,构建知识图谱来挖掘拐卖儿童信息的关联,分析并得出被拐儿童线索。
(5)儿童日常出行时空轨迹离群点挖掘
平台获取儿童日常出行时空轨迹大数据,挖掘时空轨迹离群点,分析儿童出行异常点,通过对造成离群点未知因素的解读,分析产生拐卖犯罪行为的概率,平台通过对儿童轨迹时空离群点的深入挖掘,实现对拐卖犯罪的预防打击。
(6)多源数据资源聚合调用
平台数据涉及社会各类资源,如监控数据、社区数据、人员分布数据、物流数据、各类互联网平台数据等,利用移动互联网、大数据、云计算等信息技术实现资源利用与充分调配,建立完善的拐卖打击与预防体系。
图5-1 多源数据资源聚合调用