李曉蕾
(寧波財經(jīng)學(xué)院,浙江 寧波 315175)
在交通道路維護(hù)中,實時交通監(jiān)控是一項復(fù)雜而富有挑戰(zhàn)的任務(wù)。傳統(tǒng)的交通監(jiān)控系統(tǒng)的監(jiān)控方案從高清攝像機(jī)中獲取或存儲數(shù)字視頻到計算機(jī)中,其流媒體數(shù)據(jù)通過mysql等數(shù)據(jù)庫技術(shù)保存數(shù)據(jù),而交警則通常采用手動記錄行駛的車輛,通過路邊運動攝像機(jī)對車輛進(jìn)行計數(shù)的方法來進(jìn)行人工監(jiān)控。如果視頻分析沒有自動完成,則需要大量的人工操作,并需要多方協(xié)同來手動分析視頻中的場景。這些方法的人力成本和時間成本都相對昂貴。特別是交通事件的發(fā)生最常見的問題是車輛的顏色、尺寸和類型,這些信息用人力往往很難準(zhǔn)確地捕捉到,并且時常存在誤差?;谝曨l流的分析可以輔助交警或者交通管理人員對交通現(xiàn)場進(jìn)行快速處理,可以極大提升交通道路的安全性,因此視頻流分析技術(shù)一大重要應(yīng)用場景便是自動化安全和監(jiān)視系統(tǒng)。執(zhí)法機(jī)構(gòu)、交通監(jiān)控工作站和組織都可以將視頻分析技術(shù)用于公共安全。與手動應(yīng)用程序相比,自動視頻分析需要較少的成本和人力來分析視頻流,因此得到了學(xué)術(shù)界和工業(yè)界的青睞。許樂等研究者用自動化的視頻分析研究不同自動化系統(tǒng)視頻圖格式,實現(xiàn)格式之間的轉(zhuǎn)化,減輕了數(shù)據(jù)維護(hù)人員的工作量[1]。視頻分析還可以幫助檢測人臉、車輛顏色和車牌等物體,完成自動對象檢測、目標(biāo)分類等復(fù)雜的計算機(jī)任務(wù)[2]。其中對象檢測是交通監(jiān)控系統(tǒng)和執(zhí)法機(jī)構(gòu)應(yīng)用中最常見的技術(shù)之一,最常見的算法是模板匹配[3],使用高斯混合模型(GMM)進(jìn)行背景分離[4]和級聯(lián)分類器[5]。模板匹配僅適用于模板中定義的對象,但是這類方法計算量巨大,不適用于新對象時常出現(xiàn)或者消失的場景,因此不適用于交通視頻。背景幀提取方法是一種檢測在背景中移動的對象并分離出來的方案,但是背景分離和幀差異也面臨計算成本高昂的問題,通常不適用于實時處理。江鵬宇用級聯(lián)分類器AdaBoost算法對運動目標(biāo)區(qū)域進(jìn)行行人檢測,減小視頻中背景的干擾,加快檢測速度,并利用卡爾曼濾波算法和匈牙利最優(yōu)匹配算法對視頻監(jiān)控中的行人進(jìn)行跟蹤{6}。近年來Hadoop快速發(fā)展,為大規(guī)模數(shù)據(jù)處理提供了高效的解決方案。畢莎莎針對實時云轉(zhuǎn)碼系統(tǒng)中已轉(zhuǎn)碼的視頻媒體文件重新使用率不高的情況,引入轉(zhuǎn)碼緩存機(jī)制,采用云存儲空間緩存視頻,根據(jù)視頻資源的流行度和請求間隔來實時替換出效能值較小的視頻[7]。劉云恒等學(xué)者采用基于Hadoop技術(shù)的視頻大數(shù)據(jù)處理平臺,并采用以Map-Reduce算法為基礎(chǔ)的人臉檢索與識別算法來實現(xiàn)公安視頻大數(shù)據(jù)的智能信息處理[8]。
使用基于Hadoop的GPU集群進(jìn)行視頻流分析可以從不同的資源(如GPS、社交媒體、物聯(lián)網(wǎng)、平板電腦、Web服務(wù)和視頻)生成大量數(shù)據(jù)[9]。在傳統(tǒng)的數(shù)據(jù)庫技術(shù)中,分析處理和存儲視頻數(shù)據(jù)是一項艱巨的任務(wù)[10],為了處理大量視頻數(shù)據(jù),可以在不同節(jié)點之間分配處理。大范圍內(nèi)可能有數(shù)百個甚至更多的攝像機(jī)在本地服務(wù)器上捕獲流和過程。視頻流分析需要大規(guī)模的計算,當(dāng)前很多企業(yè)采用云計算來完成這類海量計算,云計算可提高實時監(jiān)控交通視頻數(shù)據(jù)的效率。商業(yè)供應(yīng)商還提供視頻分析應(yīng)用程序。一個最常見的做法便是將Hadoop用于將視頻幀拆分為較小的單元,并以并行模式將它們轉(zhuǎn)換為一系列圖像幀。 HDFS通過多個物理磁盤群集存儲大量數(shù)據(jù)。分割成較小單元后的序列文件分布在HDFS的節(jié)點上,以提高處理速度。原始視頻流分為64 MB(默認(rèn))大小的塊[11]。錄像模塊將視頻流傳輸?shù)奖O(jiān)管站,并將視頻存儲在其本地存儲中。視頻流是從不同的地方捕獲,并由IP無線傳輸模塊通過媒體服務(wù)器傳輸?shù)奖O(jiān)控站。實況視頻流由監(jiān)管站處理,并存儲結(jié)果以供進(jìn)一步分析。有關(guān)車速、事故和交通擁堵,以及城市主要站點和線路可以存儲在Hive里。當(dāng)?shù)缆窊矶掳l(fā)生時,Hive表可以向旅行者建議替代路線,當(dāng)檢測到道路交通事故時,系統(tǒng)會向附近的醫(yī)院和公路救援隊發(fā)送警報。
對于交通視頻數(shù)據(jù)分析,交通異常的檢測是最重要的部分之一,在國內(nèi)的交通事故中,90%以上交通事故都和道路擁堵有關(guān)。因此本文重點研究Hadoop下交通擁堵的檢測和分級。
本文提出算法的主要核心是根據(jù)Hadoop中交通視頻得到的路網(wǎng)歷史數(shù)據(jù),對每個車道的合理速度值進(jìn)行整理和清晰,根據(jù)整個路段中每個時段不同方向上的信息,對每個路段每個時段的擁堵概率進(jìn)行先驗判斷。通常來說,每個道路的擁堵狀態(tài)都具有一定的周期性特點,特別是對于工作日而言,其出行規(guī)律具有較高的相似性。因此本文采用將1天24 h分為若干個時間段,統(tǒng)計各個時間段的擁堵概率。其主要流程如下:
(1)原始數(shù)據(jù)預(yù)處理:由于原始數(shù)據(jù)在采集過程中可能存在數(shù)據(jù)丟失、數(shù)據(jù)監(jiān)測出錯等情況,因此首先用預(yù)處理進(jìn)行修正。將交通視頻的流量、速度和交通指揮部門的歷史數(shù)據(jù)進(jìn)行對比,將超過閾值范圍內(nèi)的流量和速度定義為錯誤數(shù)據(jù)進(jìn)行修正,為了簡化處理的復(fù)雜度,本文將超過閾值范圍內(nèi)的數(shù)據(jù)和缺失的統(tǒng)計數(shù)據(jù)用歷史平均數(shù)據(jù)來代替。
(2)交通擁堵判斷:本文將一天分解為144個時間段,每隔10 min是一個時間單位,在此基礎(chǔ)上計算如下指標(biāo):
車道占有率:
(1)
(2)
式中,N是一個方向上的車道個數(shù),車道占有率定義為汽車占用道路的時間比,i代表第i個車道,T代表觀測時間。
(3)
(4)
式中,speedi代表i車道的速度,vi代表i車道的流量。將交通部門在某一車道的歷史速度求解平均值,如果當(dāng)前速度speedi低于歷史平均值,則認(rèn)為可能出現(xiàn)了擁堵。
(3)擁堵率計算
某個時間點內(nèi)擁堵率計算如下:
(5)
式中,h代表對應(yīng)的時間段id,M是h時間內(nèi)通過車速低于歷史平均值的次數(shù),N是統(tǒng)計數(shù)據(jù)中歷史數(shù)據(jù)個數(shù)。
(4)計算路段異常度
本文將路段異常度定義為某天道路擁堵的異常程度,該指標(biāo)的數(shù)值越高,則路況越擁堵,發(fā)生交通狀況的可能性也大幅提高,因此需要交警部門進(jìn)行疏導(dǎo),從而避免事故的發(fā)生。異常度的計算流程如圖1所示。
圖1 異常度計算流程Fig.1 Calculation flow of abnormality degree
從圖1可以看出,在當(dāng)前速度大于閾值V時,D=0-P(H),即異常度為負(fù)值(代表沒有交通異常發(fā)生),而當(dāng)當(dāng)前速度低于閾值V時,則異常度為正值。
(5)數(shù)據(jù)實時更新
隨著時間的推移,道路周邊基礎(chǔ)設(shè)施如寫字樓的建成、地鐵的運營等因素,歷史擁堵數(shù)據(jù)會發(fā)生變化,因此需要采用實時更新的方式來保證歷史數(shù)據(jù)的準(zhǔn)確性。當(dāng)然交通視頻歷史數(shù)據(jù)的更新本身較為耗費計算資源,為了減少不必要的重復(fù)計算,本文提出的分片更新算法如圖2所示。
圖2 歷史數(shù)據(jù)更新算法示意圖Fig.2 Schematic diagram of historical data update algorithm
更新算法的核心是將時間跨度范圍內(nèi)最早日期的擁堵狀況與當(dāng)前的狀況進(jìn)行比較,如果交通情況從擁堵恢復(fù)為不擁堵則記為M=-1,否則記為M=1。
從上述關(guān)于異常擁堵的算法中,可以看到由于本文算法對實踐切割相對較細(xì),因此要獲得全天144個時間段的擁堵情況,需要計算車道占有率、車道交通流量、車道平均速度,其計算復(fù)雜度較高,為了提高計算效率,本文采用分布式并行的方案來加快算法的運行時間。本文采用Hadoop的MapReduce架構(gòu),利用HDFS將數(shù)據(jù)冗余備份,由于MapReduce的本地化數(shù)據(jù)技術(shù)能盡量減少網(wǎng)絡(luò)IO,而且節(jié)點可以自適應(yīng)實現(xiàn)負(fù)載均衡,因此本節(jié)的重心放在MapReduce的計算模型。
對于車道占有率,在MapReduce計算的Map階段,我們將數(shù)據(jù)按行切分,將代表時間段的字段COLLECT_TIME劃分到不同時間槽中,具體的時間段用time_id作為key,occ代表擁堵情況。在Reduce階段,對于相同的key求解value的算術(shù)平均值就可以獲得平均占有率。
對于車道流量,本文在一個時間段內(nèi)的某條道路進(jìn)行計算,設(shè)road_id為道路的id,flow為流量,因此將road_id和time_id設(shè)置為key,flow設(shè)置為value,對于相同的key求解所有value的和就得到了總流量。
對于車輛的平均速度,本文利用同一個道路上不同路段的way_id的數(shù)據(jù)speed、flow進(jìn)行匯集,將way設(shè)置為key、speed,flow設(shè)置為value,在reduce階段,式(3)和(4)可以分別算出車道平均速度和總速度。
本文選取浙江省某市的交通視頻監(jiān)控的200個采集點的數(shù)據(jù)進(jìn)行分析,其交通視頻監(jiān)控設(shè)備如圖3所示。
圖3 交通視頻監(jiān)控畫面Fig.3 Traffic video monitoring screen
標(biāo)注出該組的道路編號,車道標(biāo)號way_id,車道流量為total_flow,speed是總速度,occ是車道占有率,本文的實驗流程如下:
(1)數(shù)據(jù)預(yù)處理,如前文所述,由于視頻數(shù)據(jù)在分析過程中,可能存在一定的誤判或者丟失,因此為了提高數(shù)據(jù)的容錯能力,本文先進(jìn)行預(yù)處理。其預(yù)處理規(guī)則見表1。
表1 錯誤數(shù)據(jù)判別原則Tab.1 Error data discrimination principle
將上述數(shù)據(jù)按照“閾值關(guān)系理論” 進(jìn)行處理, 不符合要求的數(shù)據(jù)標(biāo)記為無效數(shù)據(jù)并進(jìn)行修正。
將經(jīng)過預(yù)處理的數(shù)據(jù)按照144 個10 min時間段從0點到24點的順序進(jìn)行排列,按照式(1~5)計算出當(dāng)前的歷史擁堵概率。 結(jié)果如圖4所示。從圖中可以看出,上午11∶00到11∶45擁堵概率接近45%, 下午18∶00 到19∶00擁堵概率在70%左右。
本文在選取了2019年8月16日的交通數(shù)據(jù)進(jìn)行異常度分析,其結(jié)果如圖4所示。
圖4 擁堵情況計算結(jié)果Fig.4 Calculation results of congestion
圖5 異常度計算Fig.5 Calculation of abnormality degree
通過異常度計算(如圖5所示),可知,異常度的取值在[0,1]之間,可以看到9∶50,13∶00,21∶00出現(xiàn)了明顯的異常,通過調(diào)取該市當(dāng)時的交通監(jiān)控視頻,我們發(fā)現(xiàn)這幾個時間點都出現(xiàn)了不同程度的交通事故,引起了車輛的緩行,最后導(dǎo)致道路流量產(chǎn)生了異常。
在計算復(fù)雜度上,本文采用傳統(tǒng)的分布式架構(gòu)方案進(jìn)行對比,在10臺8核16G的分布式服務(wù)器和對等的Hadoop集群中,選取2018年8月16日的交通視頻進(jìn)行計算,用計算延遲和處理時間來代表算法結(jié)果,統(tǒng)計如表2。
表2 計算延遲統(tǒng)計表Tab.2 Statistics of calculation delay
可以看到,本文提出的基于Hadoop方案的計算延遲可以控制在每10 min 2.1 s,基本可以滿足實時分析的需求,同時可以看到傳統(tǒng)分布式算法的計算延遲和計算總時間隨著時間的加長有惡化的趨勢,但是本文方案可以有效避免這一情況。
本文對Hadoop大數(shù)據(jù)背景下的交通視頻監(jiān)控技術(shù)進(jìn)行了深入研究,并對交通路況異常擁堵進(jìn)行了分析, 然后闡述了基于交通視頻數(shù)據(jù)的異常堵點檢測算法的設(shè)計方案,利用擁堵概率、交通異常度等概念為交通狀態(tài)分析提出了精確指標(biāo)。 針對海量交通監(jiān)控視頻,本文設(shè)計了基于Hadoop組件MapReduce的并行實現(xiàn)算法,最后通過浙江省某市的實際交通數(shù)據(jù)驗證算法的有效性和準(zhǔn)確性。經(jīng)過實驗證明,本文算法可以有效計算出交通擁堵情況和異常情況,對大數(shù)據(jù)背景下海量交通監(jiān)控視頻的分析提供有益參考。