一種基于Hadoop的套牌車識別方法
【專利摘要】本發(fā)明公開了一種基于Hadoop的套牌車識別方法,本發(fā)明的輸入為海量的過程記錄,首先將削減維度后的有效過車記錄遷移到Hadoop集群的HBase中,然后使用Hive從HBase中獲取同一車牌號碼出現(xiàn)在任意兩個監(jiān)控點的過車記錄并按照車牌號碼和過車時間分組排序,接著初始化由監(jiān)控點為頂點集及兩兩之間距離為邊權(quán)值的帶權(quán)圖,計算出所有監(jiān)控點兩兩之間的最短路徑,將其兩兩組合分塊處理,最后創(chuàng)建多個線程,在套牌車規(guī)則下根據(jù)分塊處理后監(jiān)控點的兩兩組合并發(fā)提交Hive任務(wù)來識別套牌車,并通過校正因子獲取最終的嫌疑套牌車,本發(fā)明與傳統(tǒng)環(huán)境下不經(jīng)過優(yōu)化的方法相比具有較高的運行效率和加速比,可以有效地識別套牌車。
【專利說明】—種基于Hadoop的套牌車識別方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于海量時空數(shù)據(jù)挖據(jù)【技術(shù)領(lǐng)域】,具體涉及到一種基于Hadoop的套牌車識別方法。
【背景技術(shù)】
[0002]套牌車指套用其它車輛的車牌號碼來逃避責(zé)罰的車輛。由于套牌車可以逃避所造成的嚴(yán)重后果和上繳的費用,對人民生命財產(chǎn)和公共安全造成了極大的威脅,所以一直是交通監(jiān)管部門重點打擊的對象,并被國家嚴(yán)令禁止。因此,在海量交通流過車數(shù)據(jù)中主動發(fā)現(xiàn)和識別套牌車,不僅對公安交警主動預(yù)警和事后偵查具有重要意義,更是對真正車主和套牌車肇事受害者利益的保護。
[0003]然而,隨著交通信息流的快速增長,其數(shù)據(jù)量已達(dá)到TB級甚至PB級的規(guī)模。傳統(tǒng)計算機系統(tǒng)已不能滿足需求。此外,交通信息流具有高維、時空相關(guān)性等特征,使得數(shù)據(jù)分析處理更加復(fù)雜。傳統(tǒng)方法在處理海量交通流數(shù)據(jù)時受到計算能力、存儲能力等因素的影響,表現(xiàn)出存儲空間不夠、穩(wěn)定性差、耗時長等諸多缺點,不能有效地識別套牌車。
【發(fā)明內(nèi)容】
[0004]本發(fā)明針對現(xiàn)有技術(shù)的不足,提供了一種基于Hadoop的套牌車識別方法。
[0005]本發(fā)明一種基于Hadoop的套牌車識別方法,具體包括以下步驟:
[0006]步驟1:在關(guān)系型數(shù)據(jù)庫的海量過車記錄表中,每一條交通流過車記錄由序列號、車牌號碼、過車時間、地點編號、方向編號屬性組成,刪除車牌號碼為空的無效記錄;削減掉序列號和方向編號兩個與套牌車識別方法無關(guān)數(shù)據(jù)維度,將保留車牌號碼、過車時間和地點編號三個維度的過車記錄遷移到Hadoop集群的分布式數(shù)據(jù)庫HBase中;
[0007]步驟2:使用分布式數(shù)據(jù)倉庫Hive從分布式數(shù)據(jù)庫HBase中獲取同一車牌號碼出現(xiàn)在任意兩個監(jiān)控點的過車記錄;獲取的每一對監(jiān)控點的過車記錄按照車牌號碼和過車時間分組排序,即首先按照車牌號碼從小到大排序,然后在相同車牌號碼的記錄中按過車時間從先到后排序;
[0008]步驟3:初始化由m個監(jiān)控點為頂點集及兩兩之間距離為邊權(quán)值的帶權(quán)圖G,計算出帶權(quán)圖G中所有監(jiān)控點兩兩之間的最短路徑;將所有監(jiān)控點的兩兩組合C〗種分成η份,當(dāng)η>1且C: /n整除時,每份包含C2m /n種組合,不能整除時,前面n_l份包含?: /n種組合,最后一份包含(I % η種組合;
[0009]將每對監(jiān)控點(Ii和dj (i關(guān)j)及最短路徑值Dist (φ, (Ij)保存到Map < key, value>中,以Hiapi (i = 1,2,3,...,η)表示每份中所有監(jiān)控點對相對應(yīng)的Map < key, value >的集合,其中key為(I1dj, value為Dist (φ, d」)值;
[0010]步驟4:倉Il建η個線程,每個線程根據(jù)步驟3得到的IIiapi,遍歷maPi中的key值,封裝一個Hive任務(wù),根據(jù)套牌車規(guī)則并行識別key值中兩監(jiān)控點內(nèi)的套牌車,即如果某一號牌的車輛通過一對監(jiān)控點的時間小于在最大極限速度下通過的時間,則將該號牌的過車記錄放入候選套牌車集;
[0011]假設(shè)車牌號碼為H的車輛通過監(jiān)控點Cli和Clj的時間差為TD\j,在最大極限速度 下通過監(jiān)控點Cli和4最短路徑下的時間為 Ζ):,即TDHLim =Dist{dnd})l Vd^ ;當(dāng)滿足
規(guī)則> TDni j,則將該車牌號碼H的過車記錄放入候選套牌車集中;
[0012]步驟5:n個線程并發(fā)運行步驟4提交的Hive任務(wù),每個線程負(fù)責(zé)提交步驟3中每份包含的監(jiān)控點兩兩組合相對應(yīng)的Hive任務(wù)進行分布式套牌車識別;在步驟4得到的候選套牌車集中,設(shè)置校正因子λ (O < λ < I)用于校正最大極限速度,轉(zhuǎn)換為
TD =DistidnCij)/V^ x{l + A) rZ)f為通過校正因子λ校正后的71^值并應(yīng)用于識別
套牌車獲取最終的嫌疑套牌車集,當(dāng)滿足規(guī)則,則將該車牌號碼H的過車記錄放入嫌疑套牌車集中;
[0013]步驟6:各線程提交完成后,待集群中運行的所有Hive任務(wù)執(zhí)行完畢,輸出最終的嫌疑套牌車集中的車牌號碼。
[0014]本發(fā)明提出的方法基于Hadoop集群,采用HBase分布式數(shù)據(jù)庫,Hive數(shù)據(jù)倉庫及Zookeeper分布式協(xié)調(diào) 組件,構(gòu)建了 HBase+Hive集成環(huán)境,采用數(shù)據(jù)分割和Hive任務(wù)并行相結(jié)合的策略,通過算法優(yōu)化有效減少套牌車識別匹配次數(shù)。在海量數(shù)據(jù)中識別套牌車,與傳統(tǒng)環(huán)境下及不經(jīng)過優(yōu)化的方法相比,采用本發(fā)明所述方法可使套牌車識別過程具有較高的運行效率和加速比,可以有效地識別套牌車。
【專利附圖】
【附圖說明】
[0015]圖1套牌車識別流程圖;
[0016]圖2云環(huán)境架構(gòu)圖;
[0017]圖3分布式識別套牌車圖。
【具體實施方式】
[0018]本發(fā)明所提供的一種基于Hadoop的套牌車識別方法的【具體實施方式】主要分4步,如圖1所示,基于Hadoop集群的架構(gòu)如圖2所示:
[0019]為敘述方便,定義相關(guān)符號如下:
[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):監(jiān)控點集合。
[0023]T = {t。,..., ti,..., tq-J (O ≤ i ≤ q-Ι):時間戳集合。
[0024]H:車牌號碼。
[0025]T:過車時間。
[0026]Dist (φ, (Ij):監(jiān)控點Cli和Clj之間的最短路徑。
[0027]Sij:同時出現(xiàn)在地點編號為Cli和Clj的過車記錄集。
[0028]TDHi;J = Vtj:同一車牌H經(jīng)過監(jiān)控點Cli和Clj的時間差。[0029]V:::監(jiān)控點Cli和Clj之間的最大極限速度。
[0030]TDfim I在速度V: '下通過監(jiān)控點Cli和4的最短路徑的時間。
[0031]通過校正因子λ校正后的:TOfm值。
[0032](I)數(shù)據(jù)預(yù)處理
[0033]檢查過車記錄數(shù)據(jù)集的一致性和完整性約束條件,使用SQL語句刪除車牌號碼為空的無效記錄;使用SQL語句獲取關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)集,削減了過車記錄的序列號和方向編號兩個維度,將持有車牌號碼、過車時間和地點編號三個維度的過車記錄分批導(dǎo)入到分布式數(shù)據(jù)庫HBase中。
[0034](2)分布式套牌車識別方法
[0035]m個監(jiān)控點的兩兩組合數(shù)為m* (m_l) /2,分成η份(η的值通過實驗獲取的Hadoop集群下并行提交Hive任務(wù)的線程數(shù)),當(dāng)η>1時且m*(m_l)/2n整除時,每份組合數(shù)為m* (m-1) /2n,不能整除時,前面η-1份包含m* (m-1) /2n種組合,最后一份包含m* (m-1) /2n%η種組合。通過最短路徑算法計算得到DistWi, dp。將每對組合及最短路徑值保存到Map
<key, value >中,其中key為(I1dj7Value為Distd dj)值。因此,每一份中監(jiān)控點兩兩組合數(shù)及相應(yīng)的最短路徑保存到Hiapi (i = 1,2,...,η)。遍歷Iiiapi中的key值,根據(jù)(Ii和dj使用Hive語法的left semi join來獲取Sij數(shù)據(jù)集,并使用order by語法按車牌號碼和過車時間分組排序。
[0036]Su中的數(shù)據(jù)根據(jù)車牌 號碼及過車時間分組排序優(yōu)化,可以大大減少套牌車比對次數(shù)。例如,Sij 中有六個過程記錄為 Kh1, t” (I1), (h” t2, (I1), Qi1, t3, (I1), Qi1, t4, d2), (h2, t5, d:),(h2, t6, d2)},在比對的過程中,首先根據(jù)車牌Ill得到兩個指針分別指向第一和第四個記錄,然后從第一個記錄開始依次比較1-2,1-3,1-4,2-3, 2-4...,判斷兩指針指向記錄的監(jiān)控點相同時直接跳過該比對,當(dāng)監(jiān)控點不同時進入套牌車規(guī)則比對,依次類推。接著第一個指針從第五條記錄開始,第二個指針根據(jù)車牌h2指向第六個,比較的過程和前面一樣,故在比較車牌h2時,直接跳過了前面的記錄,大大減少比對次數(shù)。一個線程Pi負(fù)責(zé)處理一個mapi;并發(fā)的運行提交Hive任務(wù),如圖3所示。
[0037](3)套牌車規(guī)則
[0038]假設(shè)車牌號碼為H的車輛通過監(jiān)控點Cli和Clj的時間差為TD\j,在最大極限速度 下通過監(jiān)控點Cli和七最短路徑下的時間為TlH,即TD^.=Distid^dj)/V;';;;。當(dāng)滿足
規(guī)則> TDh1.,則將車牌號碼H的過車記錄放入候選套牌車集。套牌車規(guī)則應(yīng)用于套
牌車識別方法。
[0039]⑷結(jié)果驗證
[0040]在候選套牌車集中,通過設(shè)置校正因子為λ (O < λ < I),用于校正最大極限速度的值,轉(zhuǎn)換為rz)f=x(l +1),為通過校正因子λ校正后的ID:值并
應(yīng)用于識別套牌車來獲取最終的嫌疑套牌車集,當(dāng)滿足規(guī)則叫1 > TDni j,則將該車牌號碼H的過車記錄放入嫌疑套牌車集中。
[0041]本發(fā)明所提供的一種基于Hadoop的套牌車識別方法由一組功能模塊組成,它們包括:數(shù)據(jù)預(yù)處理模塊、分布式并行套牌車識別模塊和套牌車展示模塊。
[0042]數(shù)據(jù)預(yù)處理模塊刪除了無車牌號碼的無效過車記錄,削減了過車記錄的序列號和方向編號兩個維度,將持有車牌號碼、過車時間和地點編號三個維度的過車記錄分批導(dǎo)入到分布式數(shù)據(jù)庫HBase中。然后使用分布式數(shù)據(jù)倉庫Hive從分布式數(shù)據(jù)庫HBase中獲取同一車牌號碼出現(xiàn)在任意兩個監(jiān)控點的過車記錄。
[0043]分布式套牌車識別模塊初始化完成了帶權(quán)圖G中每對監(jiān)控點間的最短路徑,并保存到Map < key, value >中,其中key為兩監(jiān)控點的組合,value為其最短路徑。將所有兩兩組合分成η份,創(chuàng)建了 η個線程,每個線程負(fù)責(zé)封裝一個Hive任務(wù),根據(jù)套牌車規(guī)則并行識別key值中兩監(jiān)控點內(nèi)的套牌車,將結(jié)果放入候選套牌車集。在候選套牌車集中通過設(shè)置校正因子得到最終的嫌疑套牌車,將結(jié)果放入嫌疑套牌車車牌號碼集中。η個線程并發(fā)的提交Hive任務(wù),各線程提交完成后,待集群中運行的所有Hive任務(wù)執(zhí)行完畢,完成識別套牌車的過程。
[0044]套牌車展示模塊用于展示找到的嫌疑套牌車,根據(jù)用戶的查詢條件輸出相應(yīng)的嫌疑套牌車。
[0045]本發(fā)明可用于公安交警部門車輛監(jiān)控系統(tǒng)中海量交通流數(shù)據(jù)的挖掘,以快速識別具有套牌嫌疑的車輛。
【權(quán)利要求】
1.一種基于Hadoop的套牌車識別方法,其特征在于,該方法具體包括以下步驟: 步驟1:在關(guān)系型數(shù)據(jù)庫的海量過車記錄表中,每一條交通流過車記錄由序列號、車牌號碼、過車時間、地點編號、方向編號屬性組成,刪除車牌號碼為空的無效記錄;削減掉序列號和方向編號兩個與套牌車識別方法無關(guān)數(shù)據(jù)維度,將保留車牌號碼、過車時間和地點編號三個維度的過車記錄遷移到Hadoop集群的分布式數(shù)據(jù)庫HBase中; 步驟2:使用分布式數(shù)據(jù)倉庫Hive從分布式數(shù)據(jù)庫HBase中獲取同一車牌號碼出現(xiàn)在任意兩個監(jiān)控點的過車記錄;獲取的每一對監(jiān)控點的過車記錄按照車牌號碼和過車時間分組排序,即首先按照車牌號碼從小到大排序,然后在相同車牌號碼的記錄中按過車時間從先到后排序; 步驟3:初始化由m個監(jiān)控點為頂點集及兩兩之間距離為邊權(quán)值的帶權(quán)圖G,計算出帶權(quán)圖G中所有監(jiān)控點兩兩之間的最短路徑;將所有監(jiān)控點的兩兩組合C〗種分成η份,當(dāng)η>1且C〗/n整除時,每份包含C: /n種組合,不能整除時,前面η-1份包含C /n種組合,最后一份包含C〗% η種組合; 將每對監(jiān)控點(Ii和dj(i Φ j)及最短路徑值Dist (屯,(Ij)保存到Map < key, value >中,以HiapiQ = 1,2,3,...,η)表示每份中所有監(jiān)控點對相對應(yīng)的Map < key, value >的集合,其中 key 為(I1dj, value 為 Dist (φ,d」)值; 步驟4:創(chuàng)建η個線程,每個線程根據(jù)步驟3得到的Iiiapi,遍歷Iiiapi中的key值,封裝一個Hive任務(wù),根據(jù)套牌車規(guī)則并行識別key值中兩監(jiān)控點內(nèi)的套牌車,即如果某一號牌的車輛通過一對監(jiān)控點 的時間小于在最大極限速度下通過的時間,則將該號牌的過車記錄放入候選套牌車集;假設(shè)車牌號碼為H的車輛通過監(jiān)控點Cli和4的時間差為TDhU,在最大極限速度下通過監(jiān)控點屯和七最短路徑下的時間為TY)£i,即TDfm =D汾⑷,<)/</;當(dāng)滿足規(guī)則TD > TDni j,則將該車牌號碼H的過車記錄放入候選套牌車集中; 步驟5:n個線程并發(fā)運行步驟4提交的Hive任務(wù),每個線程負(fù)責(zé)提交步驟3中每份包含的監(jiān)控點兩兩組合相對應(yīng)的Hive任務(wù)進行分布式套牌車識別;在步驟4得到的候選套牌車集中,設(shè)置校正因子λ (O < λ < I)用于校正最大極限速度,轉(zhuǎn)換為TD^ =Disiidn(Ij)IV^ χ(1 + λ) , 77)(〃為通過校正因子λ校正后的TDfm值并應(yīng)用于識別套牌車獲取最終的嫌疑套牌車集,當(dāng)滿足規(guī)則TlX1 > TD11i j,則將該車牌號碼H的過車記錄放入嫌疑套牌車集中; 步驟6:各線程提交完成后,待集群中運行的所有Hive任務(wù)執(zhí)行完畢,輸出最終嫌疑的套牌車集中的過車記錄。
【文檔編號】G08G1/017GK104035954SQ201410100491
【公開日】2014年9月10日 申請日期:2014年3月18日 優(yōu)先權(quán)日:2014年3月18日
【發(fā)明者】俞東進, 平利強, 李萬清, 鄒紹芳, 竇文生, 方煒 申請人:杭州電子科技大學(xué)