一种基于Hadoop的套牌车识别方法

文档序号:6712846阅读:129来源:国知局
一种基于Hadoop的套牌车识别方法
【专利摘要】本发明公开了一种基于Hadoop的套牌车识别方法,本发明的输入为海量的过程记录,首先将削减维度后的有效过车记录迁移到Hadoop集群的HBase中,然后使用Hive从HBase中获取同一车牌号码出现在任意两个监控点的过车记录并按照车牌号码和过车时间分组排序,接着初始化由监控点为顶点集及两两之间距离为边权值的带权图,计算出所有监控点两两之间的最短路径,将其两两组合分块处理,最后创建多个线程,在套牌车规则下根据分块处理后监控点的两两组合并发提交Hive任务来识别套牌车,并通过校正因子获取最终的嫌疑套牌车,本发明与传统环境下不经过优化的方法相比具有较高的运行效率和加速比,可以有效地识别套牌车。
【专利说明】—种基于Hadoop的套牌车识别方法
【技术领域】
[0001]本发明属于海量时空数据挖据【技术领域】,具体涉及到一种基于Hadoop的套牌车识别方法。
【背景技术】
[0002]套牌车指套用其它车辆的车牌号码来逃避责罚的车辆。由于套牌车可以逃避所造成的严重后果和上缴的费用,对人民生命财产和公共安全造成了极大的威胁,所以一直是交通监管部门重点打击的对象,并被国家严令禁止。因此,在海量交通流过车数据中主动发现和识别套牌车,不仅对公安交警主动预警和事后侦查具有重要意义,更是对真正车主和套牌车肇事受害者利益的保护。
[0003]然而,随着交通信息流的快速增长,其数据量已达到TB级甚至PB级的规模。传统计算机系统已不能满足需求。此外,交通信息流具有高维、时空相关性等特征,使得数据分析处理更加复杂。传统方法在处理海量交通流数据时受到计算能力、存储能力等因素的影响,表现出存储空间不够、稳定性差、耗时长等诸多缺点,不能有效地识别套牌车。

【发明内容】

[0004]本发明针对现有技术的不足,提供了一种基于Hadoop的套牌车识别方法。
[0005]本发明一种基于Hadoop的套牌车识别方法,具体包括以下步骤:
[0006]步骤1:在关系型数据库的海量过车记录表中,每一条交通流过车记录由序列号、车牌号码、过车时间、地点编号、方向编号属性组成,删除车牌号码为空的无效记录;削减掉序列号和方向编号两个与套牌车识别方法无关数据维度,将保留车牌号码、过车时间和地点编号三个维度的过车记录迁移到Hadoop集群的分布式数据库HBase中;
[0007]步骤2:使用分布式数据仓库Hive从分布式数据库HBase中获取同一车牌号码出现在任意两个监控点的过车记录;获取的每一对监控点的过车记录按照车牌号码和过车时间分组排序,即首先按照车牌号码从小到大排序,然后在相同车牌号码的记录中按过车时间从先到后排序;
[0008]步骤3:初始化由m个监控点为顶点集及两两之间距离为边权值的带权图G,计算出带权图G中所有监控点两两之间的最短路径;将所有监控点的两两组合C〗种分成η份,当η>1且C: /n整除时,每份包含C2m /n种组合,不能整除时,前面n_l份包含?: /n种组合,最后一份包含(I % η种组合;
[0009]将每对监控点(Ii和dj (i关j)及最短路径值Dist (φ, (Ij)保存到Map < key, value>中,以Hiapi (i = 1,2,3,...,η)表示每份中所有监控点对相对应的Map < key, value >的集合,其中key为(I1dj, value为Dist (φ, d」)值;
[0010]步骤4:仓Il建η个线程,每个线程根据步骤3得到的IIiapi,遍历maPi中的key值,封装一个Hive任务,根据套牌车规则并行识别key值中两监控点内的套牌车,即如果某一号牌的车辆通过一对监控点的时间小于在最大极限速度下通过的时间,则将该号牌的过车记录放入候选套牌车集;
[0011]假设车牌号码为H的车辆通过监控点Cli和Clj的时间差为TD\j,在最大极限速度 下通过监控点Cli和4最短路径下的时间为 Ζ):,即TDHLim =Dist{dnd})l Vd^ ;当满足
规则> TDni j,则将该车牌号码H的过车记录放入候选套牌车集中;
[0012]步骤5:n个线程并发运行步骤4提交的Hive任务,每个线程负责提交步骤3中每份包含的监控点两两组合相对应的Hive任务进行分布式套牌车识别;在步骤4得到的候选套牌车集中,设置校正因子λ (O < λ < I)用于校正最大极限速度,转换为
TD =DistidnCij)/V^ x{l + A) rZ)f为通过校正因子λ校正后的71^值并应用于识别
套牌车获取最终的嫌疑套牌车集,当满足规则,则将该车牌号码H的过车记录放入嫌疑套牌车集中;
[0013]步骤6:各线程提交完成后,待集群中运行的所有Hive任务执行完毕,输出最终的嫌疑套牌车集中的车牌号码。
[0014]本发明提出的方法基于Hadoop集群,采用HBase分布式数据库,Hive数据仓库及Zookeeper分布式协调 组件,构建了 HBase+Hive集成环境,采用数据分割和Hive任务并行相结合的策略,通过算法优化有效减少套牌车识别匹配次数。在海量数据中识别套牌车,与传统环境下及不经过优化的方法相比,采用本发明所述方法可使套牌车识别过程具有较高的运行效率和加速比,可以有效地识别套牌车。
【专利附图】

【附图说明】
[0015]图1套牌车识别流程图;
[0016]图2云环境架构图;
[0017]图3分布式识别套牌车图。
【具体实施方式】
[0018]本发明所提供的一种基于Hadoop的套牌车识别方法的【具体实施方式】主要分4步,如图1所示,基于Hadoop集群的架构如图2所示:
[0019]为叙述方便,定义相关符号如下:
[0020]P1:第 i (i = I, 2,..., η)个线程。
[0021]O = {oQ,..., Oi,..., On-J (O ≤ i ≤ n_l):过车记录对象集合。
[0022]D = {d。,..., (Ii,..., U (O ≤ i ≤ m_l):监控点集合。
[0023]T = {t。,..., ti,..., tq-J (O ≤ i ≤ q-Ι):时间戳集合。
[0024]H:车牌号码。
[0025]T:过车时间。
[0026]Dist (φ, (Ij):监控点Cli和Clj之间的最短路径。
[0027]Sij:同时出现在地点编号为Cli和Clj的过车记录集。
[0028]TDHi;J = Vtj:同一车牌H经过监控点Cli和Clj的时间差。[0029]V:::监控点Cli和Clj之间的最大极限速度。
[0030]TDfim I在速度V: '下通过监控点Cli和4的最短路径的时间。
[0031]通过校正因子λ校正后的:TOfm值。
[0032](I)数据预处理
[0033]检查过车记录数据集的一致性和完整性约束条件,使用SQL语句删除车牌号码为空的无效记录;使用SQL语句获取关系型数据库中的数据集,削减了过车记录的序列号和方向编号两个维度,将持有车牌号码、过车时间和地点编号三个维度的过车记录分批导入到分布式数据库HBase中。
[0034](2)分布式套牌车识别方法
[0035]m个监控点的两两组合数为m* (m_l) /2,分成η份(η的值通过实验获取的Hadoop集群下并行提交Hive任务的线程数),当η>1时且m*(m_l)/2n整除时,每份组合数为m* (m-1) /2n,不能整除时,前面η-1份包含m* (m-1) /2n种组合,最后一份包含m* (m-1) /2n%η种组合。通过最短路径算法计算得到DistWi, dp。将每对组合及最短路径值保存到Map
<key, value >中,其中key为(I1dj7Value为Distd dj)值。因此,每一份中监控点两两组合数及相应的最短路径保存到Hiapi (i = 1,2,...,η)。遍历Iiiapi中的key值,根据(Ii和dj使用Hive语法的left semi join来获取Sij数据集,并使用order by语法按车牌号码和过车时间分组排序。
[0036]Su中的数据根据车牌 号码及过车时间分组排序优化,可以大大减少套牌车比对次数。例如,Sij 中有六个过程记录为 Kh1, t” (I1), (h” t2, (I1), Qi1, t3, (I1), Qi1, t4, d2), (h2, t5, d:),(h2, t6, d2)},在比对的过程中,首先根据车牌Ill得到两个指针分别指向第一和第四个记录,然后从第一个记录开始依次比较1-2,1-3,1-4,2-3, 2-4...,判断两指针指向记录的监控点相同时直接跳过该比对,当监控点不同时进入套牌车规则比对,依次类推。接着第一个指针从第五条记录开始,第二个指针根据车牌h2指向第六个,比较的过程和前面一样,故在比较车牌h2时,直接跳过了前面的记录,大大减少比对次数。一个线程Pi负责处理一个mapi;并发的运行提交Hive任务,如图3所示。
[0037](3)套牌车规则
[0038]假设车牌号码为H的车辆通过监控点Cli和Clj的时间差为TD\j,在最大极限速度 下通过监控点Cli和七最短路径下的时间为TlH,即TD^.=Distid^dj)/V;';;;。当满足
规则> TDh1.,则将车牌号码H的过车记录放入候选套牌车集。套牌车规则应用于套
牌车识别方法。
[0039]⑷结果验证
[0040]在候选套牌车集中,通过设置校正因子为λ (O < λ < I),用于校正最大极限速度的值,转换为rz)f=x(l +1),为通过校正因子λ校正后的ID:值并
应用于识别套牌车来获取最终的嫌疑套牌车集,当满足规则叫1 > TDni j,则将该车牌号码H的过车记录放入嫌疑套牌车集中。
[0041]本发明所提供的一种基于Hadoop的套牌车识别方法由一组功能模块组成,它们包括:数据预处理模块、分布式并行套牌车识别模块和套牌车展示模块。
[0042]数据预处理模块删除了无车牌号码的无效过车记录,削减了过车记录的序列号和方向编号两个维度,将持有车牌号码、过车时间和地点编号三个维度的过车记录分批导入到分布式数据库HBase中。然后使用分布式数据仓库Hive从分布式数据库HBase中获取同一车牌号码出现在任意两个监控点的过车记录。
[0043]分布式套牌车识别模块初始化完成了带权图G中每对监控点间的最短路径,并保存到Map < key, value >中,其中key为两监控点的组合,value为其最短路径。将所有两两组合分成η份,创建了 η个线程,每个线程负责封装一个Hive任务,根据套牌车规则并行识别key值中两监控点内的套牌车,将结果放入候选套牌车集。在候选套牌车集中通过设置校正因子得到最终的嫌疑套牌车,将结果放入嫌疑套牌车车牌号码集中。η个线程并发的提交Hive任务,各线程提交完成后,待集群中运行的所有Hive任务执行完毕,完成识别套牌车的过程。
[0044]套牌车展示模块用于展示找到的嫌疑套牌车,根据用户的查询条件输出相应的嫌疑套牌车。
[0045]本发明可用于公安交警部门车辆监控系统中海量交通流数据的挖掘,以快速识别具有套牌嫌疑的车辆。
【权利要求】
1.一种基于Hadoop的套牌车识别方法,其特征在于,该方法具体包括以下步骤: 步骤1:在关系型数据库的海量过车记录表中,每一条交通流过车记录由序列号、车牌号码、过车时间、地点编号、方向编号属性组成,删除车牌号码为空的无效记录;削减掉序列号和方向编号两个与套牌车识别方法无关数据维度,将保留车牌号码、过车时间和地点编号三个维度的过车记录迁移到Hadoop集群的分布式数据库HBase中; 步骤2:使用分布式数据仓库Hive从分布式数据库HBase中获取同一车牌号码出现在任意两个监控点的过车记录;获取的每一对监控点的过车记录按照车牌号码和过车时间分组排序,即首先按照车牌号码从小到大排序,然后在相同车牌号码的记录中按过车时间从先到后排序; 步骤3:初始化由m个监控点为顶点集及两两之间距离为边权值的带权图G,计算出带权图G中所有监控点两两之间的最短路径;将所有监控点的两两组合C〗种分成η份,当η>1且C〗/n整除时,每份包含C: /n种组合,不能整除时,前面η-1份包含C /n种组合,最后一份包含C〗% η种组合; 将每对监控点(Ii和dj(i Φ j)及最短路径值Dist (屯,(Ij)保存到Map < key, value >中,以HiapiQ = 1,2,3,...,η)表示每份中所有监控点对相对应的Map < key, value >的集合,其中 key 为(I1dj, value 为 Dist (φ,d」)值; 步骤4:创建η个线程,每个线程根据步骤3得到的Iiiapi,遍历Iiiapi中的key值,封装一个Hive任务,根据套牌车规则并行识别key值中两监控点内的套牌车,即如果某一号牌的车辆通过一对监控点 的时间小于在最大极限速度下通过的时间,则将该号牌的过车记录放入候选套牌车集;假设车牌号码为H的车辆通过监控点Cli和4的时间差为TDhU,在最大极限速度下通过监控点屯和七最短路径下的时间为TY)£i,即TDfm =D汾⑷,<)/</;当满足规则TD > TDni j,则将该车牌号码H的过车记录放入候选套牌车集中; 步骤5:n个线程并发运行步骤4提交的Hive任务,每个线程负责提交步骤3中每份包含的监控点两两组合相对应的Hive任务进行分布式套牌车识别;在步骤4得到的候选套牌车集中,设置校正因子λ (O < λ < I)用于校正最大极限速度,转换为TD^ =Disiidn(Ij)IV^ χ(1 + λ) , 77)(〃为通过校正因子λ校正后的TDfm值并应用于识别套牌车获取最终的嫌疑套牌车集,当满足规则TlX1 > TD11i j,则将该车牌号码H的过车记录放入嫌疑套牌车集中; 步骤6:各线程提交完成后,待集群中运行的所有Hive任务执行完毕,输出最终嫌疑的套牌车集中的过车记录。
【文档编号】G08G1/017GK104035954SQ201410100491
【公开日】2014年9月10日 申请日期:2014年3月18日 优先权日:2014年3月18日
【发明者】俞东进, 平利强, 李万清, 邹绍芳, 窦文生, 方炜 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1