當前位置:學問君>學習教育>畢業論文>

基於車牌識別大數據的伴隨車輛組發現方法

學問君 人氣:2.67W

摘要:基於對車牌識別大數據的處理與分析,可以完成伴隨車輛組的發現,在涉案車輛追蹤等方面具有廣泛的應用。然而當前單一機器模式下伴隨車輛組發現算法存在時間和空間上處理性能低下等問題。針對此問題,提出了一種伴隨車輛組發現方法――FPDTC方法。該方法將傳統的FPGrowth算法利用分佈式處理框架Spark進行了並行化,並作了相應的改進和優化來更加高效地發現伴隨車輛組。實驗結果的分析表明,提出的方法能夠很好地解決車牌識別大數據上的伴隨車輛組發現問題,性能相比採用同樣方法的Hadoop實現提升了近4倍。

基於車牌識別大數據的伴隨車輛組發現方法

關鍵詞:智能交通系統;伴隨車輛組;FPGrowth算法;Spark並行框架;車牌識別

引言

隨着科技的發展,透過使用傳感器、位置捕獲和跟蹤設備等技術產生了大量的位置相關方面的數據,智能交通系統(Intelligence Transportation Systems, ITS)領域的應用程序開始利用這些交通數據,來記錄車輛移動和交通軌跡的動態生成情況[1]。車牌自動識別(Automatic Number Plate Recognition, ANPR)數據是對交通攝像頭捕捉到的道路交通數據進行處理生成的數據。ANPR 數據每時每刻都在不停地產生,形成了龐大的數據規模。

現代社會道路監控技術發展的同時,違法犯罪行爲與車輛、交通系統的聯繫也越來越密切。伴隨車輛是一個交通術語,是指在一定時間內與追蹤車輛以一定概率存在伴隨關係的車輛。如果事先知道涉案車輛的車牌號,可以直接透過查詢ANPR數據找出其伴隨車輛,然而實際情況中往往並不知道涉案車輛的車牌號,在這種情況下就需要透過伴隨車輛組發現方法從海量的ANPR數據中尋找出經常一起出現的伴隨車輛,提供給公安機關進行排查。

在涉案車輛追蹤服務應用中,可以對海量ANPR數據進行分析處理,爲公安部門辦案中的犯罪嫌疑車輛排查分析提供參考。本文的主要貢獻是:1)提出了一種基於並行FPGrowth算法的伴隨車輛組發現方法――FPDTC方法。該方法對關聯分析中的FPGrowth算法作了並行化的改進和優化,解決了車牌識別大數據處理中涉及到的頻繁子集挖掘問題;2)利用雲計算環境下的分佈式並行處理框架Spark,實現了該算法。經過實驗驗證該方法能夠很好地處理海量ANPR數據,解決了單機模式下的內存不足等問題,在伴隨車輛組分析發現上的性能得到了提升。

一、問題的提出

伴隨車輛組的發現是從ANPR數據集中的不同車輛之間的聯繫來分析車輛的行駛習慣,透過瞭解哪些車輛頻繁地在多個監測點共同出現來分析它們之間的相互關係,本質上就是尋找不同車輛之間的關聯性或相關性,因此可以使用關聯分析方法來解決。點伴隨是指在一定的時間範圍內共同經過同一監測點的車輛所具有的一種伴隨關係,具有點伴隨關係的車輛共同組成點伴隨組。前面提到伴隨車輛是在一定時間內與追蹤車輛以一定概率存在伴隨關係的車輛,實際場景中這個概率通常指設定的監測點閾值與點伴隨車輛共同經過的監測點數目的比值。因此可以透過對點伴隨組進行關聯分析,找出滿足這一概率的頻繁子集車輛,即可求解出伴隨車輛組,作爲涉案車輛重點追蹤和排查的對象。

當前的車輛數據越來越多,據統計,中國一個大型城市部署的帶車牌識別功能的攝像頭可達到5000個,高峯期每個攝像頭車牌識別數據的採集頻率可達每秒1條,每天的交通高峯折算率按0.33統計,則一天的車輛識別數據記錄數將達到1.44億條,數據量約12GB[2]。面對如此大量的ANPR數據,利用關聯分析方法在單臺機器上分析求解伴隨車輛組存在大量的計算和存儲負擔,效率偏低。

目前一些先進的伴隨車輛組發現方法及技術被用於全球定位系統(Global Positioning System, GPS)的數據分析[3],而本文所研究的ANPR數據與GPS數據不同,其記錄的位置由於攝像頭固定等原因一般都是有限制的,其方法和技術並不完全適用於ANPR數據。文獻[4]提出的伴隨車輛查詢(Accompany Vehicle Discovery, AVD)方法雖然可以適用於ANPR數據的分析,但其採用的滑動時間視窗技術僅在求解點伴隨組上提升了效率,最後利用關聯分析算法求解伴隨車輛時擺脫不了單臺機器的計算能力限制。

基於以上兩個原因,需要考慮一種新的高效的方法來解決伴隨車輛組的發現問題。本文提出的FPDTC方法,透過使用分佈式處理框架Spark實現的並行FPGrowth算法來從車牌識別大數據中更加高效地發現伴隨車輛組。

二、伴隨車輛組發現方法――FPDTC方法

計算伴隨車輛組,需要綜合數天的車牌識別數據進行分析處理,本文采用一種基於多過程並行模式的處理方法(簡稱爲FPDTC方法)。首先,需要對ANPR數據集進行預處理,過濾掉不符合要求的數據,僅保留計算過程中需要的字段值;然後,將過濾後的數據集按時間先後排序,根據車牌號生成每輛車的車輛軌跡;再根據所得的車輛軌跡計算各監測點下的點伴隨組;最後,根據點伴隨組求得伴隨車輛組。在這一章中將具體介紹這些過程的實現方法。

2.1交通數據的預處理

ANPR數據集中的每一條記錄均包含多個字段,由於所捕獲的監測點數據有限導致某些字段的值缺失或者某些字段對於當前的數據分析處理沒有任何意義,這樣的數據在車輛軌跡判定中很難發揮作用。因此本文方法透過Spark中的過濾函數將數據集並行的處理成只包含〈車牌號,監測點,時間點〉(簡寫爲〈v, s, time〉)3個字段的數據集,從而降低參與後續計算的數據規模,提高處理速度。

2.2車輛軌跡和點伴隨組的生成

車輛軌跡是一段時間內車輛所經過的監測點位置序列。對過濾後的數據集先按照車牌號分組,然後根據監測時間先後排序,最終得到在一定日期時間範圍內的車輛軌跡。步驟如圖1所示。

1) 使用textFile方法讀取ANPR數據集並將其轉換爲相同格式的彈性分佈式數據集(Resilient Distributed Dataset,RDD)形式,具體爲HadoopRDD,其包含〈v,s,time〉 3個字段的資訊;2) 透過mapToPair方法以車牌號作爲鍵,監測點和時間作爲值將RDD從DRDD轉換爲PairRDD的形式,其格式爲〈v,s+time〉;3) 然後透過groupByKey方法將PairRDD按照鍵v進行分組,將具有相同鍵值v的數據放在一起,形成另一種形式的PairRDD,格式爲〈v, Iterable〈s+time〉〉,其中鍵v不變,值爲具有相同鍵v的一組數據;4) 再透過mapValues方法實現對PairRDD中的數據排序的功能,該方法將對同一車牌號下的數據按照時間先後排序。5) 最後使用collect方法得出車輛軌跡數據,其格式爲List〈v, Iterable〈s+time〉〉。

TAGS:車牌 車輛