开发者社区> 德哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一场IT民工 与 人贩子 之间的战争 - 感受来自PostgreSQL的爱

简介: 标签 PostgreSQL , 图数据库 , 社会关系分析 , 流式分析 , 人贩子 , 图像识别 , 人脸识别 , 公安刑侦 , pipelinedb , stream , neo4j , plproxy , sharding , 交通数据处理 , 天眼 背景 快过年啦,提防人贩子,小孩
+关注继续查看

标签

PostgreSQL , 图数据库 , 社会关系分析 , 流式分析 , 人贩子 , 图像识别 , 人脸识别 , 公安刑侦 , pipelinedb , stream , neo4j , plproxy , sharding , 交通数据处理 , 天眼


背景

快过年啦,提防人贩子,小孩要带好。

pic

有两部片子《失孤》、《亲爱的》拍得触目惊心。

pic

很多家庭耗尽时间和金钱,找了很多年还是没有找到,最终选择了放弃。

社会中依旧还有很多爸爸妈妈还没有找到丢失的孩子,除了严打罪犯;作为IT人,我们能做什么吗

为什么人贩子猖獗?如何才能让人贩子无处遁形?

这些问题会随着技术的不断革新和发展,终将得到解决。IT民工加油,棒棒哒

本文将要提到的几项技术,也许能给人贩子一记重击,帮助快速的找到人贩子,间接降低犯罪率。

1 故事开端

在商场、车站、景区、电影院等鱼龙混杂、人流密集的地方,很容易成为人贩子下手的地方。特别是逢年过节的时候,人流量会更大,爸爸妈妈一定要小心。

如果不慎丢失,尽快报警,下面我们来分析一下有哪些技术手段可以协助警察叔叔加速找到嫌疑人?

2 GIS定位

现在的父母一般都会给小孩买个带GIS功能的手表,可以随时查看孩子的行踪。

如果人贩子没有将手表拿掉的话,这是一个很好的找到小孩的方法。

pic

在得知小孩的位置后,可以通过KNN近邻查询的方法,迅速的找到附近的警察叔叔,快速将人贩子制服。

时间就是生命,所以查询效率是非常重要的,这里需要用到GiST索引,PostgreSQL数据库可以很好的支撑这样的场景。

技术细节请参考以下的几篇文章

《PostgreSQL 百亿地理位置数据 近邻查询性能》

《PostGIS 在 O2O应用中的优势》

《聊一聊双十一背后的技术 - 物流、动态路径规划》

如果非常不幸,人贩子已经把定位的手表毁了,又或者小孩没有这种追踪设备,那怎么办呢?

3 大海也能捞针,实时社会关系分析

人类是群居动物,随着人口的增长,联络方式越来越无界化,人与人,人与事件,人与时间之间形成了一张巨大的关系网络。

人贩子也是人,逃脱不了这张网,俗话说,天网恢恢疏而不漏。

人贩子要吃饭、要购物、要喝水、要走路、要抽烟、要打车、要出货、要用手机、。。。。。

现在有很多科技可以监控到这些行为,包括遍布在各个角落的摄像头、小店联网的收银终端、出租车/网约车的联网终端,手机的定位上报,ATM机 等等。

这些信息会组成一张大网,警察叔叔可以根据小孩丢失的位置,进行以位置相关事件为中心的辐射式的关系推演,再结合公安系统中的犯罪记录库,可能能够很快的找到犯罪分子。

(例如根据出事地点的地理位置周边N公里圈出一批人群A,根据这篇人群A与公安系统犯罪分子库进行社会关系分析,找到突破口。当然这里面还有更多更细节的条件可以进行筛选和收敛,定位到犯罪分子)

那么如何能实现这种辐射式的关系推演需求呢?

我几天前写了一篇文档,就是关于金融风控、公安刑侦、社会关系、人脉分析的,可以实现这样的需求,内有大量的DEMO和代码。

《金融风控、公安刑侦、社会关系、人脉分析等需求分析与数据库实现 - PostgreSQL图数据库场景应用》

关系图例

pic

pic

4 人脸图像识别,让人贩子无处遁形

在缩小嫌疑人的范围后,要快速的展开追踪,怎么把他们找出来呢?

前面提到了,现在的摄像头很多很多,而且军用的基本上都是非常高清的,到处都能拍到嫌疑人的行踪。

比如马上拍到的行人,行驶中的汽车,商场的人群,ATM机的摄像头 等等。

pic

将人像部分抽取出来之后,需要与嫌疑人头像库进行相似度比较,进而定位到嫌疑人。

嫌疑人往往会随着时间的推演发生些许的样貌改变,还有故意易容等等。 如何才能在大量的人像图库中匹配出嫌疑人呢?

通常嫌疑人在图库中可能不止一张图片,会有蛮多的吧(猜测),不过不管怎么样,脸部的变化应该不会很大。

如果能拍到瞳孔的话,瞳孔的识别率也是非常高的。

图像的相似度搜索与识别技术,也是我最近写过的,细节请参考如下

《PostgreSQL 在视频、图片去重,图像搜索业务中的应用》

《弱水三千,只取一瓢,当图像搜索遇见PostgreSQL(Haar wavelet)》

《Effective similarity search in PostgreSQL》

总之,人贩子将无处遁形。

除此之外,还有嫌疑人的消费行为,手机上报的定位等等,都是抓到人贩子的有利信息。

当然,你会说,嫌疑人可以不亲自消费,亲自使用手机,亲自取钱,但是他总要有人帮他干这些事情吧,那又回到关系推演分析了。要知道天网恢恢疏而不漏。

5 线索就在蛛丝马迹中,模糊车牌识别

小插曲,假如我们已经在某个摄像头中拍下了嫌疑人在汽车上的照片,但是嫌疑人驾驶的车辆故意进行了伪装,比如车牌号码进行了部分的遮挡,怎么能快速的找到车辆呢?

这里就涉及到模糊查询了

pic

关于模糊查询的技术细节可以从这篇文档了解

《聊一聊双十一背后的技术 - 毫秒分词算啥, 试试正则和相似度》

6 流式分析,迅速响应,让人贩子无处可逃

上面我们谈了很多通过数据分析,数据的处理,找到嫌疑人。但是要知道我们面对的是海量数据,全国有多少摄像头,有多少手机终端,有多少ATM机,有多少消费终端,有多少出租车?都是海量,产生的数据更是海量。

那么由于社会上产生信息的量非常的庞大,如何能够快速的从海量的信息里追踪到嫌疑人的行踪呢?

此时流式处理技术就派上用场啦,比如我们已经锁定了嫌疑人的范围,从技术角度来看,就是从实时产生的海量的信息中将嫌疑人的信息过滤出来,或者当遇到嫌疑人的信息时,即时的触发通知,告诉公安GG。

pic

流计算的用法很多,可以参考我写的文档

《流计算风云再起 - PostgreSQL携PipelineDB力挺IoT》

它可以与前面我提到的图像识别、关系分析、模糊匹配等技术结合起来,流式的处理,快速的定位到嫌疑人的行踪。

7 技术手段推演人贩子串逃路线

玩过CS的高手朋友,特别是玩狙击厉害的朋友,对甩枪一定不陌生,其实就是对运动中的目标进行打击。

嫌疑人也一样,比如我们已经通过技术手段定位到嫌疑人的行踪。

可以描绘出嫌疑人的已有串逃路线,但是等你赶到现场的时候,嫌疑人可能又到下一个地点了。

pic

如果能推演出他下一步可能会怎么走,那么我们就可以像玩甩枪一样,进行提前埋伏,伏击嫌疑人。

这里涉及到两项技术,一项是数据挖掘(可能用到一些回归分析的技术),还有一项就是路径规划。

技术细节可以参考我写的文章

《MADLib 机器学习库》

《聊一聊双十一背后的技术 - 物流、动态路径规划》

当然了,公安GG还可以人为的制造一些诱导,比如设障碍,误导引流等等。

8 人贩落网

还是那句话,天网恢恢疏而不漏,嫌疑人终将落网,对人贩子的打击会随着技术的进步进一步的增强,让天下不再有人贩子是IT民工的小目标

买卖双方同等罪行

pic

9 DNA认亲之路

被拐卖的儿童找到了之后,如何能找到小孩的亲人呢?

图像匹配是一种方法,例如用前面我提到的Haar Wavelet的算法,把小孩的图片与公安数据库中事失踪的小孩图片进行比较,找到失踪的儿童登记信息,从而找到亲人。

但是有些小孩可能是很多年前失踪的,小孩的样貌几年一大变,仅仅通过图片是无法完全辨认的。

还好古有滴血认亲,如今有DNA相似度认亲,我们在找到丢失的小孩后,取出小孩的DNA,与上报了被拐卖儿童家庭(也可能很多,估计有百万级别)的父母的DNA库进行比较。

找到相似度最高的家庭,进行进一步的确认,最终帮助找到亲人。

DNA比对,也是有技术手段来实现的,比如我前些时间写的文章,细节可以参考如下

《为了部落 - 如何通过PostgreSQL基因配对,产生优良下一代》

至此,IT民工 与 人贩子 的战争告一段落,但是我们还有很多黑科技没有亮出来,对待人贩子绝不手软。 

其他应用案例与参考文章

PostgreSQL是一个 "很有爱" 的数据库,用心学习它,用心回报社会吧。

pic

《"物联网"流式处理应用 - 用PostgreSQL实时处理(万亿每天)》

《为了部落 - 如何通过PostgreSQL基因配对,产生优良下一代》

《流计算风云再起 - PostgreSQL携PipelineDB力挺IoT》

《分析加速引擎黑科技 - LLVM、列存、多核并行、算子复用 大联姻 - 一起来开启PostgreSQL的百宝箱》

《金融风控、公安刑侦、社会关系、人脉分析等需求分析与数据库实现 - PostgreSQL图数据库场景应用》

《实时数据交换平台 - BottledWater-pg with confluent》

《PostgreSQL 在视频、图片去重,图像搜索业务中的应用》

《基于 阿里云 RDS PostgreSQL 打造实时用户画像推荐系统》

《PostgreSQL 与 12306 抢火车票的思考》

《门禁广告销售系统需求剖析 与 PostgreSQL数据库实现》

《聊一聊双十一背后的技术 - 物流、动态路径规划》

《聊一聊双十一背后的技术 - 分词和搜索》

《聊一聊双十一背后的技术 - 不一样的秒杀技术, 裸秒》

《聊一聊双十一背后的技术 - 毫秒分词算啥, 试试正则和相似度》

《PostgreSQL 9.6 引领开源数据库攻克多核并行计算难题》

《PostgreSQL 前世今生》

《如何建立GIS测试环境 - 将openstreetmap的样本数据导入PostgreSQL PostGIS库》

《PostgreSQL 9.6 单元化,sharding (based on postgres_fdw) - 内核层支持前传》

《PostgreSQL 9.6 sharding + 单元化 (based on postgres_fdw) 最佳实践 - 通用水平分库场景设计与实践》

《PostgreSQL 9.6 sharding based on FDW & pg_pathman》

《PostgreSQL 9.5+ 高效分区表实现 - pg_pathman》

《PostgreSQL 数据库安全指南》

《PostgreSQL 9.6 黑科技 bloom 算法索引,一个索引支撑任意列组合查询》

《PostgreSQL 使用递归SQL 找出数据库对象之间的依赖关系》

《用PostgreSQL描绘人生的高潮、尿点、低谷 - 窗口/帧 or 斜率/导数/曲率/微积分?》

《用PostgreSQL找回618秒逝去的青春 - 递归收敛优化》

《PostGIS 在 O2O应用中的优势》

《PostgreSQL 百亿地理位置数据 近邻查询性能》

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
弱水三千,只取一瓢,当图像搜索遇见PostgreSQL(Haar wavelet)
背景 图片搜索是继文字搜索后又一个比较常用的搜索引擎。 市面上常见的搜索引擎有谷歌、百度、搜狗等图片搜索引擎。http://image.baidu.com/http://images.google.com.hk 例如在搜索引擎提供的接口中上层了一张雪人的图片,搜出来一堆和雪人近似的图
13446 0
Log4Net 全方“.NET技术”位跟踪程序运行
  前端日子自己写了一个简单的日志跟踪程序,现在目前正在做的一个项目中使用以便于跟踪程序异常和运行状况,但是被否认了!可能是没有权威性,于是自己总结了一下Log4net日志跟踪系统,这里分享大家学习一下。
735 0
蒙特卡洛搜索树
- **1928年:** John von Neumann的极大极小定理为对抗树搜索方法铺平了道路,这些方法几乎是自成立以来就形成了计算机科学和人工智能决策的基础。 - **20世纪40年代:** Monte Carlo(MC)方法被形式化为通过使用随机采样来处理不适合树搜索的不太明确的问题的方法。
3320 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.1. 介绍
12.1. 介绍 12.1.1. 什么是一个文档? 12.1.2. 基本文本匹配 12.1.3. 配置 全文搜索(或者文本搜索)提供了确定满足一个查询的自然语言文档的能力,并可以选择将它们按照与查询的相关度排序。
784 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.7. 配置例子
12.7. 配置例子 一个文本搜索配置指定了将一个文档转换成一个tsvector所需的所有选项:用于把文本分解成记号的解析器,以及用于将每一个记号转换成词位的词典。每一次to_tsvector或to_tsquery的调用都需要一个文本搜索配置来执行其处理。
761 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.10. psql支持
12.10. psql支持 关于文本搜索配置对象的信息可以在psql中使用一组命令获得: \dF{d,p,t}[+] [PATTERN] 可选的+能产生更多细节。 可选参数PATTERN可以是一个文本搜索对象的名称,可以是模式限定的。
776 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索
第 12 章 全文搜索 目录 12.1. 介绍 12.1.1. 什么是一个文档? 12.1.2. 基本文本匹配 12.1.3. 配置 12.2. 表和索引 12.2.1. 搜索一个表 12.2.
839 0
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 34 章 大对象_34.3. 客户端接口
34.3. 客户端接口 34.3.1. 创建一个大对象 34.3.2. 导入一个大对象 34.3.3. 导出一个大对象 34.3.4. 打开一个现有的大对象 34.3.5. 向一个大对象写入数据 34.3.6. 从一个大对象读取数据 34.3.7. 在一个大对象中查找 34.3.8. 获取一个大对象的查找位置 34.3.9. 截断一个大对象 34.3.10. 关闭一个大对象描述符 34.3.11. 移除一个大对象 本节描述PostgreSQL的libpq客户端接口为访问大对象所提供的功能。
839 0
蒙特卡洛方法与蒙特卡洛搜索树(一)
最近在做 AIOps 相关的项目时,用到了蒙特卡洛搜索树(MCTS)算法,对蒙特卡洛相关的内容有些兴趣,在此整理些相关的资料。
0 0
PostgreSQL集群篇——1、PG环境安装(一)
PostgreSQL,PG,集群,DBA,架构师,PG安装,编译安装
0 0
+关注
德哥
公益是一辈子的事, I am digoal, just do it.
文章
问答
来源圈子
更多
让用户数据永远在线,让数据无缝的自由流动
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
买单侠数据库架构之路
立即下载
PostgreSQL 物联网六脉神剑
立即下载
高德经典数据库实践案例分享——现实与互联网世界底图
立即下载