楊祖莨,丁 潔,劉晉峰
(太原理工大學(xué) 電氣與動力工程學(xué)院,太原 030024)
高速公路隧道有著空間狹窄密閉、交通流量大、而車輛速度快的特點(diǎn),因此當(dāng)隧道內(nèi)發(fā)生停車事件時(shí),極易造成交通事故。尤其是當(dāng)載有易燃易爆物品的車輛在隧道內(nèi)行駛時(shí),發(fā)生意外停車會造成更為嚴(yán)重的后果。對隧道內(nèi)進(jìn)行及時(shí)有效的停車檢測不僅可以為事故導(dǎo)致的受傷人員節(jié)省更多救援時(shí)間,還可以通知該路段上的其他駕駛員減少二次事故的發(fā)生[1]。因此,實(shí)時(shí)準(zhǔn)確地檢測高速公路隧道車輛的停車行為并及時(shí)反饋是十分必要的。
傳統(tǒng)的停車檢測是通過埋在地下的傳感器來完成的。然而,將傳感器埋在地下不僅不易于安裝,會損壞路面,而且不易于維修保養(yǎng)。目前,幾乎所有的高速公路隧道都安裝了視頻監(jiān)控系統(tǒng)。這為使用圖像處理方法來進(jìn)行停車檢測提供了有利條件。與傳統(tǒng)的檢測方法相比,圖像處理方法具有安裝方便、信息豐富、檢測結(jié)果直觀、維護(hù)成本低等優(yōu)點(diǎn)。
當(dāng)前,基于圖像處理的停車檢測已有了一定的研究。Guler等[2]采用Peripheral多目標(biāo)跟蹤器從背景減法獲得的前景中確定每輛車的位置。然而,該方法會將快速變化的背景檢測為車輛。Porikli[3]提出了一種基于雙背景的異常事件檢測方法。然而,該方法抗干擾性能差并且如何選擇時(shí)間常數(shù)來建立長、短背景存在很大不確定性。趙敏等[4]使用混合高斯模型獲得運(yùn)動目標(biāo),通過基于像素時(shí)間序列特征的穩(wěn)態(tài)分析法來檢測靜止目標(biāo),根據(jù)車輛的區(qū)域特征(車輛的顏色、輪廓、長度和寬度)對靜止目標(biāo)的停車車輛進(jìn)行識別。但是該方法仍然缺乏對車輛目標(biāo)區(qū)域特征識別的魯棒性。此外,一些研究人員對基于混合高斯模型的方法進(jìn)行了改進(jìn),但仍然沒有取得良好的效果[5-6]。
本課題檢測停車環(huán)境為高速公路隧道,為停車檢測增加了難度,例如車燈、環(huán)境光、車輛目標(biāo)遮擋都是較為嚴(yán)重的干擾因素。因此,需要新的方法來克服這些問題,自2012年CNN首次被應(yīng)用于ILSVRC圖像分類競賽并取得顯著成績[7]以來,CNN在圖像分類領(lǐng)域得到了廣泛應(yīng)用。GoogleNet通過引入Inception模塊獲得了2014年ILSVRC冠軍[8]。2015年,另一個(gè)更先進(jìn)的CNN——ResNet贏得了冠軍[9],ResNet采用跨層連接的方法,成功緩解了深層神經(jīng)網(wǎng)絡(luò)中的梯度消失問題,為數(shù)千層網(wǎng)絡(luò)的訓(xùn)練提供了可能。2017年Hu等[10]提出了SENet,該網(wǎng)絡(luò)通過學(xué)習(xí)的方式自動獲取每個(gè)特征通道的重要程度,在ILSVRC 2017競賽中以2.251%的Top-5錯誤率獲得了第一名。近年來,由于CNN在圖像分類領(lǐng)域取得了優(yōu)異的性能,在本研究中,提出一種新的方法,通過將靜止目標(biāo)檢測與本文設(shè)計(jì)的專用于車輛識別的CNN分類模型相結(jié)合,對停止車輛進(jìn)行準(zhǔn)確檢測。本文的內(nèi)容安排如下:第一部分構(gòu)建了停車檢測算法的結(jié)構(gòu),并對算法的細(xì)節(jié)進(jìn)行了闡述。第二部分描述了所進(jìn)行的實(shí)驗(yàn),并對相應(yīng)結(jié)果進(jìn)行了討論與分析。第三部分對全文做出了總結(jié)。
本文設(shè)計(jì)的停車檢測算法分為三步,如圖1所示。第一步,在輸入視頻幀中提取運(yùn)動目標(biāo)。第二步,在第一步提取出的運(yùn)動目標(biāo)中檢測靜止的停車目標(biāo)。需要注意的是,這里的靜止目標(biāo)不同于總是靜止的背景對象,而是先動后停的目標(biāo),即行駛的車輛發(fā)生了停車行為。然而,上述得到的靜止目標(biāo)中往往不僅包含車輛,還包含非車輛物體的干擾,這將導(dǎo)致錯誤的檢測發(fā)生。因此,第三步加入車輛識別,利用CNN分類模型識別第二步的靜止目標(biāo)是否為車輛,最終完成停車檢測。
圖1 車輛停車檢測方法的流程Fig. 1 The flow of vehicle stopping detection methodology
運(yùn)動目標(biāo)的提取是目標(biāo)跟蹤的前提。因此,要求運(yùn)動目標(biāo)提取算法具有較高的處理效率和較強(qiáng)的魯棒性。常用的運(yùn)動目標(biāo)提取算法可以歸納為三類:幀間差分法、光流法和基于GMM的背景差分法。
幀間差分法[11]通過間隔幀中減去相同點(diǎn)的灰度值來獲得灰度的變化值,通過對該值進(jìn)行閾值化來提取運(yùn)動區(qū)域。但是該方法只能提取邊界,不能提取運(yùn)動目標(biāo)的整個(gè)區(qū)域。此外,幀間間隔大小對目標(biāo)識別的結(jié)果也有很大的影響。光流法通過對空間運(yùn)動場的比較,將物體的運(yùn)動表示為圖像上的光流場[12]。然而,此方法計(jì)算量大,耗時(shí)長,不適用于實(shí)時(shí)性要求嚴(yán)格的情況。此外,隧道內(nèi)的車燈可能被誤認(rèn)為光流,從而影響最終的結(jié)果?;贕MM的背景差分法[13,14]利用混合高斯模型建立背景,通過背景差分法提取運(yùn)動目標(biāo)。此方法能夠及時(shí)更新背景,降低誤檢率,并能夠提取目標(biāo)的完整區(qū)域,滿足實(shí)時(shí)性的要求。同時(shí),該方法將重復(fù)運(yùn)動的目標(biāo)判斷為背景,有效地減少了攝像機(jī)抖動引起的誤判。因此,以基于GMM的背景差分法作為提取運(yùn)動目標(biāo)的核心算法。
基于GMM的背景差分法在導(dǎo)入圖像后通過背景建模及背景差分的方法分離出前景和背景。具體做法為,設(shè)t時(shí)刻圖像中每個(gè)像素點(diǎn)的像素值為Xt,則該時(shí)刻的混合高斯模型P(Xt)為:
(1)
式中:K是混合高斯模型中高斯概率密度函數(shù)的個(gè)數(shù),K越大越能描述更復(fù)雜的背景,一般取值為3~5,這里取值為5;wk,t為第k個(gè)高斯概率密度函數(shù)在t時(shí)刻的權(quán)值,且權(quán)值滿足條件∑wk,t=1;η(Xt,μk,t,Σk,t)是像素Xt在t時(shí)刻的第k個(gè)高斯概率密度函數(shù),
(2)
建立混合高斯模型之后,需要不斷進(jìn)行模型的更新,使模型更加魯棒地適用于隧道燈光及其他干擾因素導(dǎo)致的背景變化。對t時(shí)刻的混合高斯模型的更新步驟如下:
1)每個(gè)t時(shí)刻的像素值Xt與當(dāng)前K個(gè)高斯概率密度函數(shù)進(jìn)行比較,如果滿足式(3),即像素值Xt與該高斯概率密度函數(shù)的均值μk,t-1的偏差在T1σk,t-1內(nèi),則認(rèn)為像素值Xt與第k個(gè)高斯概率密度函數(shù)匹配。
|Xt-μk,t-1|≤T1σk,t-1,
(3)
式中T1為匹配閾值,根據(jù)文獻(xiàn)[4],T1=2.5。
2)在提取運(yùn)動目標(biāo)時(shí),若像素值Xt與前Bt-1個(gè)高斯概率密度函數(shù)中的任一個(gè)匹配,則認(rèn)為該像素為背景;反之為前景。B是由第5)步進(jìn)行更新的。
3)各個(gè)高斯概率密度函數(shù)的權(quán)值按式(4)更新,
wk,t=(1-α)wk,t-1+α×Mk,t,
(4)
式中α為學(xué)習(xí)率,這里設(shè)為0.002;若像素點(diǎn)Xt與第k個(gè)高斯概率密度函數(shù)匹配,則Mk,t為1,否則為0。
4)與像素值Xt未匹配的高斯概率密度函數(shù)的均值μk,t和標(biāo)準(zhǔn)差σk,t不更新,而與像素值Xt匹配的高斯概率密度函數(shù)按公式(5)(6)更新,
(5)
(6)
5)完成參數(shù)的更新后,根據(jù)wk,t/σk,t從大到小對高斯概率密度函數(shù)進(jìn)行排序,將滿足式(7)的前Bt個(gè)高斯概率密度函數(shù)作為背景:
(7)
式中閾值T2表示背景高斯成分在整個(gè)像素的概率分布中所占的比例大小,根據(jù)文獻(xiàn)[15],T2取經(jīng)驗(yàn)值0.7。
6)循環(huán)上述過程,遍歷圖像中所有的像素點(diǎn)后即可提取出運(yùn)動目標(biāo)。
通過處理連續(xù)的輸入視頻圖像,可以連續(xù)地檢測監(jiān)控場景中的運(yùn)動目標(biāo)。接下來,在第1.2節(jié)中執(zhí)行靜止目標(biāo)檢測。
該步驟在1.1節(jié)所獲得的運(yùn)動目標(biāo)中檢測靜止目標(biāo),檢測過程分為兩個(gè)階段,第一階段通過估計(jì)運(yùn)動目標(biāo)的速度,從運(yùn)動目標(biāo)中檢測可疑的靜止目標(biāo)。在第二階段中,計(jì)算相鄰間隔幀之間的可疑靜止目標(biāo)區(qū)域的相關(guān)性,若相關(guān)性系數(shù)大于一定閾值,則認(rèn)為該區(qū)域是真實(shí)靜止目標(biāo)區(qū)域。
顯然,在第一階段中,當(dāng)運(yùn)動目標(biāo)的速度為零時(shí),運(yùn)動目標(biāo)處于停止?fàn)顟B(tài)。因此,可以通過計(jì)算運(yùn)動目標(biāo)的速度值來檢測目標(biāo)是否停止。具體來說,通過meanshift跟蹤算法[16-18]可以獲得運(yùn)動目標(biāo)質(zhì)心在間隔N幀中的移動距離,然后利用運(yùn)動目標(biāo)質(zhì)心移動距離和間隔N幀對應(yīng)時(shí)間來計(jì)算運(yùn)動目標(biāo)的速度,計(jì)算公式如式(8)所示:
v=Δd/Δt。
(8)
式中:Δd是運(yùn)動目標(biāo)質(zhì)心在間隔N幀中移動的距離;Δt是間隔N幀相對應(yīng)的時(shí)間。
在理想情況下,如果v等于0,則認(rèn)為目標(biāo)是靜止的。但是,由于運(yùn)動目標(biāo)陰影和攝像機(jī)抖動等干擾因素對質(zhì)心位置的影響,Δt間隔時(shí)間后靜止目標(biāo)的質(zhì)心可能不完全重合。因此,引入了速度閾值λ。當(dāng)v<λ,目標(biāo)區(qū)域則被確定為可疑的靜止目標(biāo)區(qū)域。
第二階段,計(jì)算相鄰間隔幀中由第一階段獲取的可疑靜止目標(biāo)區(qū)域之間的相關(guān)性。相鄰間隔幀中需要計(jì)算的區(qū)域被視為2個(gè)變量X,Y,則相關(guān)性系數(shù)計(jì)算公式如式(9)所示:
(9)
式中:cov(X,Y)為區(qū)域X和區(qū)域Y的協(xié)方差;σX和σY分別為區(qū)域X和區(qū)域Y的標(biāo)準(zhǔn)差。如果相關(guān)性系數(shù)ρX,Y大于相關(guān)性閾值,則將可疑的靜止目標(biāo)區(qū)域確定為真實(shí)靜止目標(biāo)。
在檢測到靜止目標(biāo)后,利用本文設(shè)計(jì)的CNN模型對靜止目標(biāo)進(jìn)行識別。其中,1.2節(jié)中獲得的靜止目標(biāo)區(qū)域作為CNN模型的輸入。本文設(shè)計(jì)的CNN模型由5個(gè)卷積層組成,如圖2所示。從第一層到第五層使用3×3大小的卷積核,通過多層疊加小卷積核,增強(qiáng)了模型容量和模型復(fù)雜度,并且減少了模型中參數(shù)的數(shù)量,加快訓(xùn)練和推理速度。本文所設(shè)計(jì)的CNN分類模型結(jié)構(gòu)基于Keras神經(jīng)網(wǎng)絡(luò)框架實(shí)現(xiàn)。
圖2 CNN分類模型的結(jié)構(gòu)Fig. 2 The structure of the CNN classification model
(10)
yi=γxi+β。
(11)
在第一層、第三層、第五層卷積之后采用Max Pooling進(jìn)行池化,將Feature Map的尺寸減半。在第一層、第三層、第五層和輸出層采用Dropout技術(shù)[20]。Dropout會隨機(jī)丟棄一部分神經(jīng)元及其連接,防止模型訓(xùn)練的過擬合。由于在訓(xùn)練過程中神經(jīng)元的丟棄是隨機(jī)的,因此每次訓(xùn)練都相當(dāng)于處理一個(gè)全新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),顯著提高本文設(shè)計(jì)的CNN模型的泛化效果。
利用上述設(shè)計(jì)的CNN分類模型,可以排除干擾因素引起的虛假檢測,確定靜止目標(biāo)是否為車輛,從而提高檢測精度。
1)讀取一幀圖像frame1,如圖3(a)所示,進(jìn)行前景像素點(diǎn)的檢測,得到的前景像素點(diǎn)圖像如圖3(b)所示。對前景像素點(diǎn)圖像進(jìn)行開運(yùn)算操作,即先腐蝕后膨脹,去除小顆粒噪聲和使較大物體的邊界更平滑,基本保持目標(biāo)原有大小不變,如圖3(c)所示。
圖3 運(yùn)動目標(biāo)檢測中的圖像Fig. 3 Image in moving object detection
2)檢測出前景像素點(diǎn)后,通過連通域分析提取運(yùn)動目標(biāo)區(qū)域的矩形框(即獲得了運(yùn)動目標(biāo)區(qū)域的形狀和位置)。間隔10幀后再取一幀frame2,根據(jù)meanshift算法跟蹤運(yùn)動目標(biāo),即計(jì)算frame1中的運(yùn)動目標(biāo)在frame2中相應(yīng)的位置。
3)計(jì)算運(yùn)動目標(biāo)質(zhì)心的移動距離,再結(jié)合間隔幀所對應(yīng)的耗時(shí)來計(jì)算車輛的粗略速度:
(12)
根據(jù)實(shí)驗(yàn)中的調(diào)試經(jīng)驗(yàn),引入速度閾值200,當(dāng)速度小于速度閾值時(shí)判定該運(yùn)動目標(biāo)為可疑靜止目標(biāo)。
4)計(jì)算farme1和frame2中該可疑靜止目標(biāo)區(qū)域的相關(guān)性系數(shù),若大于相關(guān)性閾值,則將可疑的靜止目標(biāo)區(qū)域確定為靜止目標(biāo)。經(jīng)過實(shí)驗(yàn),相關(guān)性閾值設(shè)為0.8時(shí)獲得了最佳效果。
5)將第4步中獲取的靜止目標(biāo)區(qū)域輸入到本文設(shè)計(jì)的CNN隧道車輛識別模型。通過該模型判斷靜止目標(biāo)是否為真實(shí)車輛(如圖4),如果靜止目標(biāo)被識別為車輛的話則認(rèn)為發(fā)生停車(如圖4中的(b)(d)),否則沒有發(fā)生停車行為(如圖4中的(a)(c))。
圖4 車輛識別中的圖像Fig. 4 Image in vehicle recognition
6)循環(huán)以上步驟,持續(xù)對高速公路隧道進(jìn)行停車檢測。
在本研究中,建立了隧道車輛數(shù)據(jù)集,專門用于隧道車輛分類。隧道車輛數(shù)據(jù)集包含1 664幅圖像,其中有車圖像832幅,無車圖像832幅。訓(xùn)練集和測試集的數(shù)量如表1所示。訓(xùn)練集是在樣本集中隨機(jī)抽取組成的,余下的則組成測試集。值得注意的是,本文的數(shù)據(jù)集中所包含的圖片均來自太原市公路管理系統(tǒng),但是由于保密原因,對圖片中敏感位置的標(biāo)簽進(jìn)行了模糊處理。
表1 CNN分類模型的數(shù)據(jù)集
在CNN分類模型的訓(xùn)練過程中,每次從訓(xùn)練集中隨機(jī)抽取32幅圖像進(jìn)行迭代,并計(jì)算訓(xùn)練精度和測試精度。圖5展示了訓(xùn)練過程中評估指標(biāo)的變化。黑線是訓(xùn)練損失,它反映了模型訓(xùn)練過程中的學(xué)習(xí)效果,訓(xùn)練損失值越小,學(xué)習(xí)效果越好;紅線表示訓(xùn)練精度;藍(lán)線表示測試精度。模型迭代結(jié)束時(shí),訓(xùn)練精度達(dá)到98.81%,測試精度達(dá)到99.70%,此精度符合要求。
圖5 CNN分類模型的訓(xùn)練損失、訓(xùn)練精度和測試精度Fig. 5 The training loss, training accuracy and test accuracy of the CNN classification model
首先,通過在高速公路隧道內(nèi)連接監(jiān)控?cái)z像服務(wù)器進(jìn)行實(shí)時(shí)檢測,程序運(yùn)行一天后沒有誤檢。但在此期間,沒有發(fā)生停車的情況。因此,又從視頻歷史存儲文件中截取了19個(gè)發(fā)生停車事件的監(jiān)控錄像片段,視頻的幀率為25fps,分辨率為704×576。
為了與傳統(tǒng)的圖像處理方法進(jìn)行比較,使用無CNN部分的算法進(jìn)行了實(shí)驗(yàn)對比?;?9個(gè)視頻的統(tǒng)計(jì)檢測結(jié)果如圖6所示,每個(gè)視頻的詳細(xì)檢測結(jié)果如表2所示。本文所設(shè)計(jì)方法的正檢率為84%,誤檢率為5%,漏檢率為11%。在沒有CNN分類模型的情況下,正檢率為21%,誤檢率為79%,漏檢率為11%。與沒有添加CNN的方法相比,本文方法的正檢率提高了63%,誤檢率降低了74%。
圖6 基于19個(gè)高速公路隧道視頻的車輛停車檢測結(jié)果Fig. 6 Detection results of vehicle stopping based on 19 highway tunnel videos
表2 CNN分類模型的數(shù)據(jù)集19個(gè)高速公路隧道視頻停車檢測實(shí)驗(yàn)結(jié)果
續(xù)表2
結(jié)果表明,如果沒有結(jié)合CNN模型,檢測精度會降低。背后原因在于:受光線或其他干擾因素影響的道路區(qū)域很容易被誤認(rèn)為是停車區(qū)域,因此會降低檢測精度。圖7為誤檢發(fā)生時(shí)的情況展示,圖中矩形框?yàn)橐蚋蓴_因素引起的錯誤停車檢測。然而,由于CNN可以成功地識別非車輛區(qū)域,因此這些干擾區(qū)域并沒有產(chǎn)生誤判。CNN分類模型的引入大大減少此類錯誤的發(fā)生,從而提高停車檢測算法的可靠性。
圖7 某些場景中錯誤的檢測結(jié)果Fig. 7 Misidentified detection results in some scenes
值得注意的是,上述實(shí)驗(yàn)結(jié)果是在相關(guān)性閾值為0.8時(shí)獲得的,而不同的相關(guān)性閾值會對實(shí)驗(yàn)結(jié)果產(chǎn)生影響。因此,將閾值設(shè)置為不同的值作為對比實(shí)驗(yàn),對19個(gè)視頻進(jìn)行了檢測。實(shí)驗(yàn)結(jié)果如表3。
表3 相關(guān)性閾值的實(shí)驗(yàn)結(jié)果
當(dāng)相關(guān)性閾值為0.8時(shí),取得了最高的正檢率,為84%;同時(shí)取得了最低的漏檢率,為5%,效果好于其余對比情況。
提出了一種基于監(jiān)控?cái)z像機(jī)的停車檢測方法。將傳統(tǒng)的運(yùn)動目標(biāo)檢測和跟蹤方法與CNN分類模型有效地結(jié)合起來,能準(zhǔn)確地對高速公路隧道停車事件進(jìn)行檢測。其中,本文設(shè)計(jì)的CNN模型包括了先進(jìn)的3×3小卷積核、批處理規(guī)范化和Dropout技術(shù),大大減少了由車燈、環(huán)境光等干擾因素引起的誤檢情況。本文方法在實(shí)際高速公路隧道視頻中得到了驗(yàn)證,停車檢測準(zhǔn)確率達(dá)到84%。