本發(fā)明涉及道路安全領(lǐng)域,尤其是涉及一種基于MapReduce面向大規(guī)??跀?shù)據(jù)的套牌車識(shí)別方法。
背景技術(shù):
:隨著我國國民經(jīng)濟(jì)水平的增長,機(jī)動(dòng)車保有量每年都在迅速增長,查處各種交通違法違章現(xiàn)象是確保交通安全的重要舉措。在各種交通違法違章中,車輛“套牌”是具有嚴(yán)重危害的違法行為。車輛“套牌”現(xiàn)象,指車輛非法使用與其他合法車輛相同的車牌號(hào)的現(xiàn)象。根據(jù)各地媒體的報(bào)道,“套牌”車輛嚴(yán)重危害交通運(yùn)輸行業(yè)及其運(yùn)營秩序,對(duì)人們的安全及合法車輛的利益形成嚴(yán)重的威脅。不法分子套用他人車輛牌照,逃避肇事責(zé)任、逃避稅費(fèi)和從事犯罪活動(dòng),嚴(yán)重影響了人民的生命財(cái)產(chǎn)安全,擾亂了社會(huì)秩序,危害了社會(huì)安全。治理“套牌”車輛,已成為各地公安部門和交通管理部門的重要任務(wù)。已有文獻(xiàn)和公開的專利提出了套牌車的識(shí)別方法。目前的主要方法有車輛信息對(duì)比法和車輛行駛地點(diǎn)判別法。車輛信息對(duì)比法是在交通管理中心建立一個(gè)登記車輛信息庫,通過物聯(lián)網(wǎng)或視頻圖像分析獲得的車輛信息和數(shù)據(jù)庫中的車輛信息比對(duì),如果不符,則該車牌是可疑套牌。如楊博提出的基于物聯(lián)網(wǎng)的套牌車檢測(cè)方法,采用電子標(biāo)簽技術(shù),將存儲(chǔ)了機(jī)動(dòng)車車牌和發(fā)動(dòng)機(jī)號(hào)等信息的電子標(biāo)簽植入機(jī)動(dòng)車,當(dāng)機(jī)動(dòng)車駛?cè)氩挤赖谋O(jiān)控點(diǎn)覆蓋的范圍時(shí),電子標(biāo)簽中的信息被自動(dòng)讀出來,和交通管理部門數(shù)據(jù)庫中的車輛信息比對(duì),信息不符則被認(rèn)定為套牌車。專利申請(qǐng)?zhí)枮?01310170646的方法是建立車型特征庫和車輛基礎(chǔ)庫,根據(jù)采集的車輛圖像識(shí)別車輛車牌、車型等,并與根據(jù)車牌從車型特征庫中檢索獲得的車型進(jìn)行比對(duì)識(shí)別套牌車輛。專利申請(qǐng)?zhí)枮?00910099475的方法是只要具有相同車牌號(hào)的兩輛以上的車輛同時(shí)出現(xiàn)在路上,根據(jù)出現(xiàn)的時(shí)間和地點(diǎn)識(shí)別是否套牌。上述方法在實(shí)際應(yīng)用時(shí)存在一些弊端?;谖锫?lián)網(wǎng)的套牌車識(shí)別方法需要給機(jī)動(dòng)車植入電子標(biāo)簽和部署無線監(jiān)測(cè)點(diǎn),成本較高;基于圖像和視頻的方法受光照、環(huán)境影響較大,準(zhǔn)確率不高,車輛行駛地點(diǎn)判別法需要處理的數(shù)據(jù)量大,要求處理系統(tǒng)的效率足夠高。這些方法都需要對(duì)每個(gè)經(jīng)過監(jiān)測(cè)點(diǎn)的車輛進(jìn)行分析和處理,計(jì)算量和數(shù)據(jù)量大。由于套牌車的活動(dòng)范圍很廣,監(jiān)測(cè)點(diǎn)越多,采集的車輛信息越多時(shí),將能更多地識(shí)別出套牌車牌。對(duì)于一個(gè)車輛保有量巨大的城市而言,每天采集的車輛數(shù)據(jù)量達(dá)到TB級(jí),采用文件存儲(chǔ)或數(shù)據(jù)庫存儲(chǔ)方式,對(duì)數(shù)據(jù)的查詢和分析的效率是十分低下的,按單臺(tái)計(jì)算機(jī)100MB/SeC計(jì)算,讀取ZTB數(shù)據(jù)需要1.5小時(shí),在此基礎(chǔ)上實(shí)現(xiàn)查詢分析幾乎是不可完成的任務(wù),采用SQL數(shù)據(jù)庫是較常用的方法,但數(shù)據(jù)庫需要足夠強(qiáng)大的計(jì)算機(jī),在TB及以上數(shù)據(jù)處理中,數(shù)據(jù)庫的數(shù)據(jù)管理和優(yōu)化難度極大。為實(shí)現(xiàn)快速有效地分析大規(guī)模的交通車輛數(shù)據(jù),需要一種新的技術(shù)方案來滿足交管部門的需求。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種處理速度快的基于MapReduce面向大規(guī)模卡口數(shù)據(jù)的套牌車識(shí)別方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):一種基于MapReduce面向大規(guī)模卡口數(shù)據(jù)的套牌車識(shí)別方法,包括以下步驟:1)獲取多個(gè)道路卡口的過車信息和卡口自身信息數(shù)據(jù),并進(jìn)行預(yù)處理,去掉異常和未識(shí)別的過車信息;2)采用Hadoop大數(shù)據(jù)處理平臺(tái)對(duì)預(yù)處理過的過車信息和卡口自身信息數(shù)據(jù)進(jìn)行建模,并通過MapReduce并行化編程技術(shù)對(duì)可疑套牌車進(jìn)行識(shí)別。所述的步驟2)具體包括以下步驟:21)獲取任意兩個(gè)道路卡口的卡口編號(hào)kx、ky和相對(duì)距離distance,并以(kxky,distance)的形式采用基于哈希表的Map接口HashMap保存到計(jì)算機(jī)節(jié)點(diǎn)的內(nèi)存中;22)將預(yù)處理過的過車信息和卡口自身信息數(shù)據(jù)作為Map函數(shù)的輸入,并轉(zhuǎn)化為鍵值對(duì)<key,value>的形式作為Map函數(shù)的輸出,其中key值為卡扣過車的車牌號(hào),value值為該卡扣過車的對(duì)應(yīng)的車型、車顏色、過車時(shí)間、卡口編號(hào)、卡扣經(jīng)度和卡扣緯度;23)對(duì)Map函數(shù)輸出的鍵值對(duì)進(jìn)行shuffle排序,合并相同key值的value值,以<key,listofvalue>的形式輸出給Reduce函數(shù);24)采用Reduce函數(shù)對(duì)listofvalue中的數(shù)據(jù)進(jìn)行兩兩比較,識(shí)別出可疑套牌車輛。所述的步驟24)中,若listofvalue中value值的車型和車顏色不同,則證明同一車牌號(hào)對(duì)應(yīng)的車型或顏色不一樣,將其判定為第一類可疑套牌車,并以<車牌號(hào):車1出現(xiàn)地點(diǎn)、車1出現(xiàn)時(shí)間、車2出現(xiàn)地點(diǎn)、車2出現(xiàn)時(shí)間>的形式輸出結(jié)果。所述的步驟24)中,若listofvalue中value值的車型和顏色相同,則根據(jù)其在任意兩個(gè)道路卡口之間的平均速度為指標(biāo)進(jìn)行判定:根據(jù)任意兩個(gè)道路卡口的相對(duì)距離distance和過車時(shí)間計(jì)算實(shí)際平均時(shí)速,并設(shè)定一個(gè)平均時(shí)速閾值,若實(shí)際平均時(shí)速大于平均時(shí)速閾值,則將其判定為第二類可疑套牌車,并以<車牌號(hào):車1出現(xiàn)地點(diǎn):車1出現(xiàn)時(shí)間:車2出現(xiàn)地點(diǎn):車2出現(xiàn)時(shí)間>的形式輸出結(jié)果。所述的步驟2)還包括以下步驟:25)根據(jù)所有可疑套牌車輛的車牌號(hào)碼、車身顏色、車型、發(fā)現(xiàn)套牌車的時(shí)間和地點(diǎn)信息建立套牌車預(yù)警信息庫。所述的步驟21)中,任意兩個(gè)道路卡口的相對(duì)距離distance的計(jì)算式為:Distance=2·Re·arcsin(sin2(latx-laty)+cos(latx)*cos(laty)*sin2(lngx-lngy))]]>其中,Re為地球半徑,latx和lngx分別為卡口kx的經(jīng)度和緯度,laty和lngy為卡口ky的經(jīng)度和緯度。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):處理速度快:本發(fā)明利用大數(shù)據(jù)技術(shù)中的分布式計(jì)算框架MapReduce實(shí)現(xiàn)在大數(shù)據(jù)中并行化挖掘套牌車可以解決大規(guī)??跀?shù)據(jù)中套牌車挖掘問題,不僅可以有效挖掘涉嫌的套牌車輛,而且相比于傳統(tǒng)技術(shù),能夠有效提高套牌車輛的識(shí)別效率。并且當(dāng)Hadoop集群中的節(jié)點(diǎn)越多,處理大規(guī)模數(shù)據(jù)的速度就越快。附圖說明圖1為本發(fā)明的步驟流程圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。實(shí)施例:如圖1所示,對(duì)數(shù)據(jù)首先進(jìn)行抽取、整合,然后進(jìn)行預(yù)處理,篩選出“車型:車顏色:過車時(shí)間:卡口編號(hào):經(jīng)度:維度”數(shù)據(jù)格式。將數(shù)據(jù)上傳至HDFS中,運(yùn)用基于Hadoop/MapReduce的并行化編程對(duì)套牌車進(jìn)行挖掘,具體的包括以下步驟:(1)對(duì)每一個(gè)卡口系統(tǒng)采集的過車信息和卡口自身有關(guān)信息進(jìn)行抽取、整合,并且對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,去掉異常和沒有識(shí)別出來的過車數(shù)據(jù),采用HDFS分布式文件系統(tǒng)進(jìn)行存儲(chǔ)。利用Hadoop大數(shù)據(jù)處理平臺(tái)對(duì)卡口過車數(shù)據(jù)和卡自身數(shù)據(jù)進(jìn)行建模和分析,通過MapReduce并行化編程技術(shù)實(shí)現(xiàn)可疑套牌車識(shí)別:(2)首先單機(jī)加載每個(gè)卡口的編號(hào)以及經(jīng)緯度信息,根據(jù)下面經(jīng)緯度公式(1)計(jì)算出每兩個(gè)卡口之間的直線距離。按照(kxky,distance)來存儲(chǔ)每任意兩個(gè)卡口kx和ky之間的距離distance。將結(jié)果以文本dis.txt的形式存在本地的磁盤當(dāng)中,等待以后并行計(jì)算的時(shí)候加載到內(nèi)存中。公式1:Distance(K1,K2)=2*EARTH_RADIUS*arcsin(sin2(lat1-lat2)+cos(lat1)*cos(lat2)*sin2(lng1-lng2))]]>其中EARTH_RADIUS是地球的半徑,lng1和lat1分別是卡口1的精度、緯度,lng2和lat2分別是卡口2的經(jīng)度、緯度。(3)MapReduce底層框架將原始數(shù)據(jù)集劃分為多個(gè)數(shù)據(jù)塊,MapReduce集群中的計(jì)算機(jī)節(jié)點(diǎn)啟動(dòng)多個(gè)Mapper,每個(gè)Mapper階段分別處理對(duì)應(yīng)的數(shù)據(jù)塊信息。在開始map函數(shù)之前,利用setup函數(shù)將步驟(1)中保存在本地磁盤上dis.txt中的卡口間的距離加載到內(nèi)存中,采用HashMap(String,Double)保存在內(nèi)存中。由于setup函數(shù)是在map啟動(dòng)前就加載的,所以再一個(gè)節(jié)點(diǎn)上面所有的Mapper人物均可以共享setup函數(shù)中的卡口間距離。(4)每個(gè)Mapper開始讀取過車數(shù)據(jù)的相關(guān)信息,對(duì)過車信息進(jìn)行字段切割,跳過字段數(shù)不符合標(biāo)準(zhǔn)或者是車牌號(hào)為“無車牌”和“00000000”的過車數(shù)據(jù),將剩下正常的過車數(shù)據(jù)轉(zhuǎn)化為<key,value>形式輸出,獲取key值為車牌號(hào),value值是該車對(duì)應(yīng)的“車型:車顏色:過車時(shí)間:卡口編號(hào):經(jīng)度:維度”。Key和value的值按照空格進(jìn)行切分一共有8個(gè)字段,由于真實(shí)的數(shù)據(jù)中由于各種原因的疊加使得有的記錄少于8個(gè)字段,在Map函數(shù)中,當(dāng)字段少于8的時(shí)候可以跳過該記錄。將重新組合后的key和value按照(key,value)輸出到Reduce端。(5)Map輸出(key,value)在進(jìn)入到Reduce之前,會(huì)經(jīng)過排shuffle過程,Hadoop底層會(huì)對(duì)key值進(jìn)行排序,然后合并相同key值的value,會(huì)以(key,listofvalues)到達(dá)Reduce端。在Reduce端,所有記錄都是不同的key值,reduce函數(shù)會(huì)一條一條記錄的處理,reduce對(duì)于每一條記錄,對(duì)values中的值進(jìn)行兩兩比較,如果發(fā)現(xiàn)兩個(gè)字符串中的車型或者車顏色有不同的,這就說明同一車牌號(hào),車型或者顏色不一樣,這具有套牌車嫌疑,我們會(huì)以“**車牌號(hào)**:車1出現(xiàn)地點(diǎn):車1出現(xiàn)時(shí)間:車2出現(xiàn)地點(diǎn):車2出現(xiàn)時(shí)間”輸出結(jié)果,該輸出說明有兩輛車牌相同但是車型和車身顏色不一樣,套牌嫌疑巨大。(6)在步驟(4)中,發(fā)現(xiàn)每兩條記錄的車型或者車身顏色相同時(shí),就在存放在HashMap中的卡口間距離找出此時(shí)兩個(gè)卡口的距離d,然后利用記錄中的兩個(gè)時(shí)間計(jì)算出一個(gè)時(shí)間差Δt,定義一個(gè)閾值y=d/Δt,這里的y可以等同于車子的平均速度,但是在我們這里物理意義是一輛車子不可能在很短時(shí)間內(nèi)出現(xiàn)在相聚很遠(yuǎn)的兩個(gè)地方,如果是,我們就認(rèn)為這是套牌車。在算法中,我們可以分別調(diào)整不同的閾值,比如100km/h,150km/h,200km/h,400km/h,800km/或者大于1000km/h,閾值越大,如果還有結(jié)果出現(xiàn)就代表套牌嫌疑越大。最后同樣按照“車牌號(hào):車1出現(xiàn)地點(diǎn):車1出現(xiàn)時(shí)間:車2出現(xiàn)地點(diǎn):車2出現(xiàn)時(shí)間”將結(jié)果輸出。(7)在步驟(4)和(5)中,我們定義了兩個(gè)規(guī)則來判定套牌車,規(guī)則一是相同車牌號(hào),只要車身顏色或者車型不一樣,我們就認(rèn)為是套牌車。規(guī)則二如果同一個(gè)車牌號(hào)的兩輛車在一段時(shí)間內(nèi)出現(xiàn)在不可能達(dá)到的兩個(gè)地點(diǎn),我們就認(rèn)為具有套牌嫌疑。在步驟(4)和(5)中兩種情況下發(fā)現(xiàn)的套牌車發(fā)現(xiàn)的結(jié)果加以區(qū)分,可以讓我們更好的區(qū)別套牌造成的原因。(8)建立套牌車預(yù)警信息庫,包括可以套牌車的車牌號(hào)碼、車身顏色、車型、發(fā)現(xiàn)套牌車的時(shí)間、地點(diǎn)。當(dāng)前第1頁1 2 3