黃守明
銅陵學(xué)院數(shù)學(xué)與計算機(jī)學(xué)院,安徽銅陵,244000
2016年中國機(jī)動車保有量大約為1.2億輛,預(yù)計2020年有望超過美國達(dá)到2.2億輛[1-2]。如此多的車輛,在帶來方便的同時,也制造了很多的煩惱。比如,在城市道路的很多斑馬線,因為沒有交通信號燈和探頭,出現(xiàn)了機(jī)動車和行人爭道的情況,給行人帶來安全隱患。針對機(jī)動車遇斑馬線行人通行時不停車避讓的交通違章行為,目前交通巡警使用比較多的方法為:現(xiàn)場執(zhí)法;設(shè)置立體斑馬線;設(shè)置手控信號燈;設(shè)置減速帶等。上述方法要么需要花費(fèi)大量人力成本,要么只能靠機(jī)動車司機(jī)自覺遵守,而且當(dāng)機(jī)動車輛違章時缺乏有力執(zhí)法證據(jù),使得這些方法在實際應(yīng)用中收效甚微。隨著大數(shù)據(jù)時代的來臨,為解決上述問題,通過對Hadoop平臺研究,提出了基于Hadoop的無交通信號燈斑馬線機(jī)動車不文明禮讓違章行為的大數(shù)據(jù)挖掘系統(tǒng)。采用了MapReduce構(gòu)架的Apriori改進(jìn)的關(guān)聯(lián)新算法,通過分布式并行處理對海量數(shù)據(jù)進(jìn)行快速有效的挖掘,提取機(jī)動車斑馬線不文明禮讓行人的違章行為。
Hadoop是Apache下一個開源子項目,實現(xiàn)了一種分布式系統(tǒng)基礎(chǔ)架構(gòu),是一個容易開發(fā)且可以并行處理大規(guī)模數(shù)據(jù)的分布式計算平臺[3-4]。 Hadoop框架最核心的設(shè)計就是:HDFS和MapReduce,HDFS實現(xiàn)了分布式文件系統(tǒng),提供以流式數(shù)據(jù)訪問模式來存儲超大文件[5-6]。流式數(shù)據(jù)訪問允許一次寫入、多次讀取、順序讀取。而且,由于Hadoop的分布冗余存儲數(shù)據(jù)方式的設(shè)計,使得該框架具有很高的可靠性。MapReduce為海量的數(shù)據(jù)提供了計算方法。
HDFS是一個基于一組特定節(jié)點的主從架構(gòu),主節(jié)點(NameNode僅一個)負(fù)責(zé)系統(tǒng)命名空間管理、客戶端文件操作控制以及存儲管理,從節(jié)點(又稱數(shù)據(jù)節(jié)點 DataNode)提供真實文件數(shù)據(jù)的物理支持。在HDFS 內(nèi)部,所有通信標(biāo)準(zhǔn)都基于TCP/IP 協(xié)議[7-8]。HDFS就像單機(jī)文件系統(tǒng)一樣也有塊的概念,默認(rèn)塊的大小為64 MB,在 HDFS上的文件被劃分成多個64 MB的大塊,并將它們復(fù)制到多個計算機(jī)中(DataNode)(圖1)。HDFS可以運(yùn)行于低廉的硬件上,具有很高的容錯性,數(shù)據(jù)讀寫吞吐率高。
圖1 HDFS結(jié)構(gòu)示意圖
MapReduce由兩個階段組成:map()任務(wù)分解;reduce()結(jié)果匯總[9-10]。通常最基本的 MapReduce應(yīng)用程序至少包括一個Map函數(shù)、一個Reduce函數(shù)和一個main 函數(shù)。首先用戶創(chuàng)建一個Map函數(shù),用于處理一個基于鍵值對的數(shù)據(jù)集合,輸出中間的鍵值對的數(shù)據(jù)集合;接著創(chuàng)建一個Reduce函數(shù),合并具有相同中間鍵值的中間值。Reduce函數(shù)接受Map函數(shù)生成的列表,然后根據(jù)它們的鍵值對縮小鍵值對列表。main函數(shù)將作業(yè)控制和文件輸入/輸出結(jié)合起來(圖2)。MapReduce構(gòu)架的程序能夠在大量普通計算機(jī)上實現(xiàn)大數(shù)據(jù)集并行處理。
圖2 MapReduce 數(shù)據(jù)處理過程
雖然斑馬線可能沒有交通探頭,但可以依據(jù)強(qiáng)大的視頻監(jiān)控系統(tǒng)采集機(jī)動車斑馬線不文明禮讓的證據(jù)。比如城市街道、十字路口、市民廣場和公園、商場超市、居住小區(qū)等大都安裝有可見視頻監(jiān)控探頭。只要把視頻監(jiān)控系統(tǒng)與交通系統(tǒng)實現(xiàn)信息數(shù)據(jù)共享,通過大數(shù)據(jù)挖掘技術(shù)就能迅速提取交通違章行為。但為此也產(chǎn)生了EB級別的海量數(shù)據(jù),這就必須有一個能夠存儲海量數(shù)據(jù)的存儲場所和設(shè)備,并且要具有容錯性和穩(wěn)定性。
使用大數(shù)據(jù)技術(shù)處理海量數(shù)據(jù)需要解決三個問題:數(shù)據(jù)存儲、分析和管理問題。以Hadoop生態(tài)系統(tǒng)為平臺的大數(shù)據(jù)系統(tǒng)天生就具有處理海量數(shù)據(jù)的能力,HDFS分布式文件系統(tǒng)以Master/Slave形式啟動NameNode和DateNode進(jìn)程,在NameNode運(yùn)行的節(jié)點存儲著文件的元數(shù)據(jù),在DateNode運(yùn)行的節(jié)點上分布式多副本存儲著具體的數(shù)據(jù),可以保證數(shù)據(jù)的安全。在數(shù)據(jù)分析上,Hadoop生態(tài)系統(tǒng)采用了分布式并行計算模式,并且采用了移動計算,對大數(shù)據(jù)來說,移動計算要比移動數(shù)據(jù)更經(jīng)濟(jì)合算。在數(shù)據(jù)管理上,Hadoop生態(tài)系統(tǒng)中有兩個工具對數(shù)據(jù)進(jìn)行整合,一個是Sqoop,一個是Hive[11-12]。通過這兩個工具可以對關(guān)注的數(shù)據(jù)進(jìn)行聚合和整理。
大數(shù)據(jù)技術(shù)的實時處理能力可以準(zhǔn)確地探查到斑馬線上不文明禮讓行人的違章行為,結(jié)合視頻監(jiān)控系統(tǒng)、交通系統(tǒng)、車輛信息系統(tǒng)等,可以建立有效的安全模型。大數(shù)據(jù)技術(shù)以其綜合處理與決策能力、快速反應(yīng)能力可以大幅減少交通事故。
斑馬線無交通信號燈機(jī)動車不文明禮讓行為智能大數(shù)據(jù)系統(tǒng)包括基礎(chǔ)層、數(shù)據(jù)分析層和信息發(fā)布層,如圖3所示。
圖3 大數(shù)據(jù)平臺構(gòu)架
基礎(chǔ)層負(fù)責(zé)產(chǎn)生基礎(chǔ)業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)的保存和處理可以采用云計算技術(shù),既可以保證系統(tǒng)安全穩(wěn)定,又可以提供高效的計算性能。數(shù)據(jù)分析層使用大數(shù)據(jù)技術(shù),對下層基礎(chǔ)數(shù)據(jù)采用數(shù)據(jù)挖掘技術(shù)進(jìn)行實時有效的分析,提取交通違法行為。數(shù)據(jù)分析層是構(gòu)建在Hadoop生態(tài)系統(tǒng)下,可以用價格便宜開源的Linux操作系統(tǒng)的服務(wù)器作為硬件平臺,以HDFS文件系統(tǒng)作為大數(shù)據(jù)文件存儲的基礎(chǔ),以MapReduce作為并行計算的模型。信息發(fā)布層是根據(jù)數(shù)據(jù)分析層的分析結(jié)果,通過互聯(lián)網(wǎng)、移動終端交通信息平臺發(fā)布違章車輛信息。
通過構(gòu)建智能無信號燈斑馬線機(jī)動車不文明禮讓行人系統(tǒng),目的在于提供一種機(jī)動車斑馬線不禮讓行人行為的抓拍,無需人力成本,并自動地對機(jī)動車不禮讓行人的違規(guī)違章行為進(jìn)行取證。利用大數(shù)據(jù)挖掘技術(shù),對海量視頻數(shù)據(jù)信息挖掘出符合機(jī)動車位于斑馬線上且行人人數(shù)大于或等于預(yù)定門限時即確認(rèn)為違章行為,并從中提取至少三張照片作為違章依據(jù)。
Hadoop采用MapReduce模型進(jìn)行并行統(tǒng)計分析,統(tǒng)計車輛違規(guī)次數(shù)(times)、機(jī)動車在斑馬線信息(JDID)、斑馬線人數(shù)(PNUB),MapReduce模式下Map函數(shù)的key值為(JDI,PNB),value值為次數(shù)times。
對數(shù)據(jù)庫進(jìn)行簡化整理,通過刪除重疊屬性項來縮小數(shù)據(jù)規(guī)模,產(chǎn)生新的數(shù)據(jù)集。 把數(shù)據(jù)集分成相當(dāng)規(guī)模的多個子集,發(fā)送到網(wǎng)路的多個工作節(jié)點。通過Map函數(shù)對各節(jié)點的數(shù)據(jù)子集進(jìn)行掃描,由 Apriori 算法計算出部分k項候選集,并產(chǎn)生鍵值對
ItemSetMap():
輸入D(數(shù)據(jù)集);輸出符合條件的項目集。
for each t ∈ D do //得到事務(wù)集
for each item ∈ t do //產(chǎn)生項目集
Content.write(item,1) //計數(shù)
End for
ItemSetReduce():
輸入
Int sum=0;
for each v in values do //遍歷項目集
sum += value.get() //計數(shù)
if (sum >= minSup)
context.write(key,sum) //得出符合條件的最小門限值的項集
基于磷鉬酸和納米氧化鉬的復(fù)合空穴傳輸層材料及其在有機(jī)太陽能電池中的應(yīng)用··············王宜玲 伊金垛 駱 群 謝中明 李艷青 馬昌期 羅立強(qiáng) (2,225)
end if
end for
產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則:
輸入freqItemSets,最小門限值minConf;輸出k項頻繁集。
for each itemset in freqItemSets //遍歷項目集
for all i-itemSet //得到非空真子集
conf = 1.0 * itemSet.getSupport() / occurrence.get(itemSet.getItems())//置信度的計算
if (conf >= minConf)
context.write(itemset,Conf) //輸出滿足最小門限值的項集
end if
End for
End for
通過對銅陵市道路數(shù)據(jù)采集并進(jìn)行試驗。試驗先對單機(jī)和Hadoop大數(shù)據(jù)環(huán)境速度進(jìn)行比較,結(jié)果如圖4所示。
圖4 單機(jī)和Hadoop平臺速度對比圖
圖4測試結(jié)果表明:在Hadoop大數(shù)據(jù)環(huán)境下,隨著數(shù)據(jù)量的增加數(shù)據(jù)處理速度越快,耗時比單機(jī)少很多,優(yōu)勢明顯。但當(dāng)數(shù)據(jù)量較少時數(shù)據(jù)處理效率遠(yuǎn)低于單機(jī)環(huán)境。由于抓拍機(jī)動車斑馬線不禮讓行人數(shù)據(jù)量巨大,因此,用Hadoop大數(shù)據(jù)處理非常適合。接著,通過試驗Hadoop大數(shù)據(jù)平臺在數(shù)據(jù)節(jié)點數(shù)(DataNode)增加所花費(fèi)時間進(jìn)行測試比較。取一組數(shù)據(jù)為256MB,分別測試當(dāng)數(shù)據(jù)節(jié)點數(shù)為1,10,100個時耗時對比,結(jié)果如圖5所示。
圖5 節(jié)點數(shù)測試結(jié)果圖
通過測試結(jié)果可以看出,當(dāng)數(shù)據(jù)節(jié)點數(shù)增加時,在Hadoop大數(shù)據(jù)平臺環(huán)境下處理數(shù)據(jù)所花費(fèi)的時間明顯減少。由此可見,Hadoop大數(shù)據(jù)平臺對抓拍機(jī)動車斑馬線不禮讓行人這類數(shù)據(jù)巨大的處理具有很好的加速比。
為了使行人更安全的過馬路,同時對機(jī)動車遇斑馬線行人不停車避讓的交通違法行為以處罰,進(jìn)而起到警示作用,提高機(jī)動車駕駛員素質(zhì),設(shè)計了基于Hadoop的無交通信號燈斑馬線機(jī)動車不文明禮讓違章行為的大數(shù)據(jù)挖掘系統(tǒng)。利用Hadoop平臺大數(shù)據(jù)挖掘技術(shù),對機(jī)動車違章行為進(jìn)行數(shù)據(jù)挖掘處理,準(zhǔn)確率和挖掘效率大大提高,在現(xiàn)實生活中具有一定的應(yīng)用價值。