吳玉枝,熊運余,吳洋
(1.四川大學計算機學院,成都 610064;2.四川大學視覺合成圖形圖像技術國防重點學科實驗室,成都 610064;3.武警警官學院信息工程系,成都 610213)
隨著城市規模的擴大和道路車輛增多,智能交通系統(ITS,Intelligent Transportation System)逐漸成為圖像視覺領域的一個研究熱點。與此同時,攝像機技術的飛速發展使得低成本高質量的攝像機被廣泛應用于道路監控,為ITS的實現提供了豐富的原材料。傳統的ITS著重于檢測和識別道路車輛,通過圖像特征檢測視頻幀或者視頻流中車輛的有無以及車輛的位置,有效規避車輛碰撞等交通事故。道路是城市重要的公共資源,路邊停車、人行道停車等非法占道事件不僅妨礙其他車輛和行人通行,更有可能釀成車禍慘劇,是一種較為常見的非法行為。事實上交警顯然無法及時發現所有違章停車行為——利用已有的監控攝像頭智能檢測違章停車事件可以極大地減少警力投入,更快更精確地幫助交警的維持交通秩序。
在ITS中最關鍵的是圖像處理技術,而檢測算法又是圖像處理的關鍵。車輛檢測分為基于視頻的車輛檢測和基于圖像的車輛檢測?;谝曨l的車輛檢測方法主要采用幀差算法、邊緣檢測算法和背景差算法[1],通過采樣、開窗、虛擬傳感器等方法實現對車輛數量、類型、車流量、車流密度,平均車速以及交通事故檢測等的檢測[2]。其中背景差算法使用最多,常用的背景建模的法有均值法、高斯平均法、中值法、卡爾曼濾波模型法及混合高斯模型(GMM,Gaussian Mixture Model)法[3]。
傳統的基于圖像特征的車輛檢測采用了車輛顯著的視覺特征、統計特征、變換系數特征和代數特征[4],近年來,深度卷積神經網絡被應用于計算機視覺各個領域,在諸如圖像分類[5-6]、人臉識別[7]、行人檢測[8]和車輛分類[9]等多個方面取得了極大的成功,本文就是應用卷積神經網絡進行車輛檢測。
在目標檢測方面,以R-CNN(Regions with CNN features)[10]為代表大部分的卷積神經網絡[11]應用方法包含三個步驟:生成推薦區域(region proposal)、提取區域特征(feature extract)、對特征進行分類,其中區域推薦算法是關鍵,計算量和參數量都很龐大。本文使用一種單步式神經網絡 SSD(Single Shot MultiBox Detector)[12],利用該神經網絡直接預測出車輛的位置和分類,與包含區域推薦算法的神經網絡相比,既保證了檢測精確度,又極大地提高了檢測速度,減少了內存損耗。在檢測到視頻幀中禁停區域的目標車輛后,利用顏色特征和位置特征對目標車輛進行短時跟蹤,當目標車輛在禁停區域停留時間超過指定閾值后發出預警,并且只預警一次。
當車輛在道路禁停區域(如人行橫道、路肩等)停留時間超過一個閾值(如15分鐘)就判為違章停車,需要發出一次針對該車的違章預警。獲取道路監控攝像頭的視頻幀,檢測該視頻幀中的車輛目標并對禁停區域的車輛目標進行短時跟蹤,若禁停區域內車輛在一超過閾值的時間內仍泊在禁停區域內,則發出預警。處理每一張視頻幀的概要流程如圖1所示。

圖1 違章停車算法流程圖
傳統圖片數據庫中的車輛圖片與真實的道路攝像頭采集到的車輛圖片有很大的區別。前者車輛目標只有小車和公交,車輛目標往往較大較少,多是平視的視角,背景各異,包含車輛的正面、側面和背面;而后者車輛目標有小車、公交、三輪車和貨車四種車型,受高攝像頭和密集車流影響,圖片中車輛目標更多,多為俯視視角,背景是樹蔭和道路,除了包含傳統的車輛正面、側面和背面外,還包含車頂圖片,使用球機攝像頭時目標可能還有輕微變型。本文用到的數據集大部分采自于真實道路攝像頭,篩選了不同攝像頭下1100+張圖片,以確保角度和場景的多樣性,另外采集了500+張網絡車輛圖片,以增加模型自適應性。在篩選出來的圖片中標注貨車、三輪車、小車和公交車四個車型的真實包圍框,制作樣本標簽集。

表1 四種車型目標數量分布
將禁停區域設為一個矩形,那么固定攝像頭下的禁停區域也是固定的。為了方便描述,我們將每一個固定攝像頭記為一個點位,并記錄登記相關信息。已知各點位禁停區域的個數及對應禁停區域位置(左上角坐標和右下角坐標),根據禁停區域的位置信息截取視頻幀對應部分作為輸入圖片。為每一個新出現的點位創建一個對象,包含到目前位置停泊在該點位禁停區域內所有車輛對象。利用SSD算法檢測輸入圖片中的車輛目標,獲得禁停區域車輛對象的具體信息,包括bounding box、灰度直方圖、出現時間、停泊時間、預警信息等。
SSD[13]是一種利用單個卷積神經網絡進行多類檢測的方法,它由MulltiBox[13]和YOLO[14]啟發產生的。SSD[13]與MultiBox[15]相比省去了后期分類步驟,減少了消耗,速度更快。與YOLO[14]采用整個特征圖不同,SSD使用多層特征圖,增加了模型輸出層的平移不變性,減少了過擬合,改善了檢測性能。同時,SSD還借鑒了Faster R-CNN[13]中錨(anchor)的概念,在訓練之前首先定義了一系列不同長寬比和尺寸的先驗包圍框,在訓練中由卷積神經網絡篩選合適的包圍框并對其大小和位置進行調整,得到最后的預測包圍框,但是又比Faster R-CNN[13]更為簡單,因為SSD不需要結合RPN和Fast R-CNN[12]。SSD[13]是首個將不同分辨率的特征圖與先驗包圍框結合的網絡,達到了計算量小、適應性強、檢測精度高的效果。
(1)訓練方法
將檢測圖片劃分為s×s個格子,每個格子負責預測其對應區域的車輛目標。假設有總共n個先驗,我們用bi(i∈ 2[0;n))表示,每一個先驗對應一個包圍框和若干分類置信度,這些置信度標志著該先驗位置的目標是屬于某個特定類的概率。表示第i個先驗屬于第p類的置信度,li∈R4表示第i個先驗包圍框的坐標,∈R4表示圖片中第p類目標的第j個真實包圍框。值得注意的是,預測包圍框是通過先驗包圍框加上相應的網絡輸出偏移量得到的,另外,先驗框和真實框都采用基于整張圖的單元坐標系。坐標系歸一化使得整張圖片都可以在一個坐標單元內取得,這樣我們就不必關心輸入圖片的大小,可以隨意地對比坐標。
我們在文中將先驗包圍框稱為源框,真實包圍框簡稱為真實框。在訓練過程中需要確定正負樣本,能夠與真實框匹配的源框是正樣本,其余的源框是負樣本。本文采用全預測匹配算法,首先執行雙向匹配,保證每個真實框同一個源框匹配,然后在剩下的源框中選擇與真實框相似度超過特定閾值(例如0.5)的幾個源框,這幾個源框也同真實框相匹配。全預測匹配可以為每個真實框匹配好幾個正樣本源框——使用全預測匹配算法能夠為多個交叉的先驗框預測出高置信度,而不會像雙相匹配一樣非要選出一個最好的匹配先驗框。
為了檢測多個類(幾百甚至上千),我們需要為每個先驗框預測出一個針對所有目標類別的包圍框偏移量,也就是說,在匹配階段不考慮源框的從屬類別,先用算法將源框和真實框匹配起來。源框對應的真實框目標屬于哪一個類在計算置信度損失函數時會用到。
(2)多層特征圖預測
SSD的關鍵之一是設計源框(先驗包圍框),這需要為特征圖中的每個位置設置一些先驗,然后在算法中使用全卷積先驗。這種做法不僅可以提高計算效率,還可以削減參數數量,減少過擬合的風險。
大多數的卷積網絡的高層特征圖會越來越小,以減少計算量和內存消耗,增加算法的平移不變性和尺度不變性。本文使用的卷積網絡結合單個網絡中多層卷積特征圖達到了同樣的效果。眾所周知,卷積網絡低層相較于高層獲取了更多輸入目標的細節,能夠改善語義分割的質量;而高層特征圖中池化得到的全局特征有助于平滑語義分割結果。SSD同時采用高層和低層卷積特征圖來進行預測。一個網絡中不同層的特征圖通常感受野也不同。如果網絡中的卷積先驗需要同使用的每一層感受野相關聯,計算量將非常驚人!為了解決以上難題,我們通過一定的調整使得特征圖的某個位置通過學習負責預測圖片特定區域和特定大小的檢測目標。
(3)SSD提取特征

圖2 SSD網絡結構
通過CNN卷積學習到的特征具有一定的辨別性,針對目標提取的特征識別度較高,背景識別度較低,具有一定程度的位移、尺度、形變不變性。圖3為網絡中某些層特征可視化結果,其中第一張是是網絡中的第一個卷積層,提取的特征較為具象化,圖3.b第一張圖片能夠看到車輛目標的輪廓。算法中用作預測的六層特征圖如圖3中后六張圖片所示,可以看到越低層的特征越具象化,提取的多是顏色、輪廓等基本特征;越頂層的特征越抽象化,越具有辨別性。多層特征的結合,可以兼顧到細節和全局兩方面的特征信息,使得預測結果更為準確可靠。
(4)難例最小化
在匹配步驟之后,大部分的源框都會被標記為負樣本,這樣一來在訓練過程中正樣本和負樣本之間就存在巨大的不平衡。我們將負樣本中的源框按照所有類的置信度由高到低進行排序,選擇置信度最高的幾個負樣本,丟棄其余的的負樣本,使得負樣本和正樣本的比例總是接近3:1,使得網絡優化更迅捷,訓練過程也更穩定。
利用弱特征對禁停區域停泊車輛進行短時跟蹤。對比每一幀檢測到的車輛目標和該點位已存在的車輛對象,若位置和灰度直方圖匹配則根據新檢測到的目標更新該對象信息,包括停泊時間,bounding box位置和大小等。
已知兩個車輛對象A和B,利用其bounding box BA和BB的交叉比IoU(Intersection over Union)進行位置匹配,若兩者IoU超過閾值i=0.5則認為A和B匹配。A和B的IoU計算公式如下:

其中SA和SB是兩個車輛對象bounding box的面積。
采用基于區間統計的灰度直方圖匹配算法。將輸入圖片處理為灰度圖,然后將像素值0-255分為16個區間(即0-15,16-31,32-17……240-255),分別統計灰度圖中各區間的像素點個數。將區間取值x映射到1-16(1,2,3…16),歸一化得到圖片在各區間的概率分布F(x)。假設灰度圖分辨率為 h×w,落在第 i(i∈{1,2,3……16})個灰度區間的像素點個數為ci,則有,對應地:

對兩個車輛對象A和B的bounding box區域圖像進行灰度化處理后,分別獲得其對應灰度區間概率分布F(xA)和F(xB),計算A和B每個離散函數值之差:

統計函中函數值超過指定閾值d的x個數,若超過s個則認為不匹配。經交叉驗證,取d=0.01,s=2時較為合適,但由于不同點位背景和攝像頭角度的影響,s和d的最佳取值可能有所差異。

圖4 禁停區域灰度直方圖
當已存在車輛對象A和新檢測的到車輛對象B IoU和灰度直方圖均匹配時,判它們是同一個車輛對象,根據B更新A的信息。不論已存在車輛對象A是否更新信息,均需判斷其停泊時間是否超過指定閾值,若超過指定閾值且該對象尚未預警,則發出預警并更新其預警信息為已預警。同一個點位已存在對象連續n幀未能檢測到則視為已駛出,刪除該對象。經過試驗驗證將n設為3較為合適。
采集車輛數據制作標簽,以PASCAL VOC數據集下訓練好的SSD模型作為預訓練模型,利用訓練得到適用的網絡模型用于車輛檢測。訓練采用的硬件配置如下:CPU,Intel Core i7-6800k@3.40GHz×12;GPU,Ge-Force GTX 1080/PCle/SSE2。該算法對于指定的禁停區域內車輛檢測準確率達89.46%,幀率達46.57fp。道路攝像頭采集的真實視頻幀中駛經車輛很多,許多車輛只能抓取到部分車身圖像,該算法對于占整體比例低于25%的部分車輛圖像,尤其是只有車尾或者車身的上下部分時檢測效果不甚理想。但違章停車預警主要是針對在禁停區域停泊一定時間的車輛目標,此類車輛往往可以拍到整個車身,因此并不影響最終結果。
依據目標對象的弱特征IoU和灰度直方圖對車輛目標進行短時跟蹤,跟蹤準確率達91.63%。采用10個攝像頭一組輪詢的形式傳送視頻幀,平均每分鐘每個點位傳輸2張視頻幀,作為輸入圖片投入違章車輛預警系統。隨機挑選3組含禁停區域的點位進行預警測試,違章停車預警率達93.92%。以下為部分點位預警后保存的對應圖片示例,其中最外的藍框是禁停區域框,禁停區域內車輛目標用黃框標出,最粗的紅框為檢測到禁停區域內停泊超過預設時間的車輛目標。

圖5 違章停車檢測效果
該方法在晴天、樹蔭遮擋、強光等復雜環境下均能有效發出預警,適應性強。由于不同點位的攝像頭和背景差異較大,不同的點位點檢測和跟蹤時最佳閾值有一定差異。需將各點位的禁停區域和閾值等基本信息實現存儲在XML文件中,讀入該點位視頻幀時再載入相應信息進行處理。
采用改進的卷積神經網絡用于車輛檢測,利用IoU和灰度直方圖對檢測目標進行弱特征跟蹤,將檢測與跟蹤結合起來有效地檢測真實道路場景下違章停車事件。經實驗,該方法違章停車檢測準確率達93.92%,平均每秒處理約20張圖片,能夠準確有效地實現實時道路違章停車預警。該方法分鐘的檢測算法對視頻幀中較小的車輛目標檢測效果不甚理想,另外跟蹤階段的匹配方法對于光線較差的場景如夜晚匹配準確率大大降低。筆者將針對以上問題進行更為深入的研究。
參考文獻:
[1]董春利,董育寧.基于視頻的車輛檢測與跟蹤算法綜述[J].南京郵電大學學報(自然科學版),2009(02):88-94.
[2]馬衛強.基于交通視頻的運動車輛檢測方法[J].吉林大學學報(信息科學版),2014(03):321-327.
[3]甘新勝,趙書斌.基于背景差法的運動目標檢測方法比較分析[J].指揮控制與仿真,2008,30(3):45-50.
[4]邱凌赟,韓軍,顧明.車道模型的高速公路車輛異常行為檢測方法[J].計算機應用,2014,34(5):1378-1382.
[5]Krizhevsky A,Sutskever I,Hinton G E.Imagenet Classification with Deep Convolutional Neural Networks[C].Advances in Neural Information Processing Systems.2012:1097-1105.
[6]A.Krizhevsky,I.Sutskever and G.E.Hinton,ImageNetClassification with Deep Convolutional Neural Networks,Advances in Neural Information Processing Systems,vol.25,no.2,2012.
[7]Y.Taigman,M.Yang,M.Ranzato,et al.DeepFace:Closing the Gap to Human-Level Performance in Face Verification,CVPR14.
[8]D.Tome,F.Monti,L.Baroffio,L.Bondi,M.Tagliasacchi,S.Tubaro,Deep Convolutional Neural Networks for Pedestrian Detection.http://arxiv.org/abs/1510.03608.
[9]Z.Dong,Y.Wu,M.Pei,and Y.Jia,Vehicle Type Classification Using a Semi-Supervised Convolutional Neural Network,IEEE Trans.Intelligent Transportation Systems,16(4):1-10 · August 2015
[10]Girshick R,Donahue J,Darrell T,et al.Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2014:580-587.
[11]Ren S,He K,Girshick R,et al.Faster r-cnn:Towards Real-Time Object Detection with Region Proposal Networks[C].Advances in Neural Information Processing Systems,2015:91-99.
[12]Liu W,Anguelov D,Erhan D,et al.SSD:Single Shot Multibox Detector[C].European Conference on Computer Vision.Springer International Publishing,2016:21-37.
[13]C.Szegedy,S.Reed,D.Erhan,D.Anguelov.Scalable,High-Quality Object Detection.arXiv preprintarXiv:1412.1441 v3,2015.2,3,5.
[14]J.Redmon,S.Divvala,R.Girshick,A.Farhadi.You Only Look Once:Unified,Real-Time Object Detection.arXiv Preprint arXiv:1506.02640 v4,2015.1,2,3,6.