張澤軒,陳虎,吳志紅,王敏
(1.四川大學視覺合成圖形圖像技術國家重點學科實驗室,成都 610065;2.公安部交通管理科學研究所道路交通安全公安部重點實驗室,無錫 214100)
道路實景中的車輛與行人檢測是人工智能與計算機視覺領域重要的應用方向,掌握道路實景中的車輛與行人的位置信息對于道路實景中的進一步的信息挖掘有著指導性的作用,例如,在得到車輛與行人的位置信息之后,可以通過高速攝像機的幀率得到車輛與行人的速度信息,也可以得到兩者的運動方向趨勢信息,也可進行車輛與行人的特征比對確定目標,對感興趣的目標進行放大觀測或者運動跟蹤等。
以往的研究者對于道路實景車輛與行人檢測也提出過很多方法,例如:基于投影的曲線模型匹配方法[1],時間間隔圖像差分方法或背景差分方法[2],背景差分結合邊緣信息方法[3],基于復合特征的檢測方法[4],基于光流場計算的方法[5],基于AdaBoost算法與特征匹配的方法[6]等等各種基于計算機視覺的方法,非計算機視覺領域的方法還包括主動傳感器感知的方法,例如雷達、超聲傳感器、激光傳感器等[5]。
總體上傳統計算機視覺方法分為如下三類:基于知識的方法,基于立體視覺的方法,基于運動的方法[5]。本文所采用的基于卷積神經網絡的深度學習方法解決了傳統方法在提取特征和特征的泛化上的難題,采用雙卷積加內部競爭的網絡模型來提高檢測性能,同時在網絡模型輸入之前對檢測圖片的尺寸進行歸一化處理,這樣使得無論原始圖片的尺寸如何都能夠通過多個卷積層得到一個穩定的特征提取時間,采用預先劃分預測區域的方式使得模型的預測效率對圖像中的目標數量不敏感。我們采用公開庫和人工收集的道路實景圖像集進行實驗,實驗結果表明,基于卷積神經網絡的深度學習方法對道路實景車輛與行人檢測是可行的,并且能夠得到令人滿意的效果。
要了解卷積神經網絡與深度學習,就需要了解人工神經網絡,這兩個概念都是由人工神經網絡發展而來。卷積神經網絡的每一層使用一個或多個卷積核來學習參數,在整張圖片上共享卷積核的參數,這樣能夠大大減少深度模型的參數數量,從而使計算量控制在能夠接受的范圍內。這些卷積核能夠由淺入深地逐漸學習到越來越高層越來越抽象的圖像特征,更為抽象的特征意味著更好的適應性,因此對于目標檢測有著很好的效果[7]。深度學習本質上是指訓練包含多個隱藏層的神經網絡模型來進行應用,在圖像檢測方面就是多層卷積神經網絡模型,模型的深度越深,意味著最終能夠學習到的特征越高級越抽象,如上所述,這能夠顯著增強模型的適應性,使得檢測效果大幅提升。
文獻[8]詳細地介紹了深度學習的原理,深度學期的潛力,以及深度學習在圖像理解方面的卓越效果,證明了使用深度學習方法來進行單目視覺圖像的車輛及行人檢測是能夠勝任實際需求的。
用于目標檢測的卷積神經網絡的結構通常是這樣的:卷積層與池化層的交替安置,每個卷積層擁有一至多個卷積核用于提取多樣化的特征,在網絡的最后加入全連接層來負責進行類別和位置的預測[9]。
本文設計實現了基于整圖候選和單回歸的一體化卷積神經網絡目標檢測模型;該方法融合了雙卷積[11]加內部競爭機制的網絡結構,多尺度的三步數據訓練方法,具有算法簡單,速度快,精度高,魯棒性強的特點,可同時實現目標檢測分類識別。

圖1 整體結構
該網絡結構具有兩個特點:
(1)傳統的卷積神經網絡結構為單個卷積層后跟池化層(或激活層);本論文研究以兩個3×3卷積層(或一個1×1卷積層和一個3×3卷積層構成的卷積層組)構成的卷積層組替代一個5×5卷積層,如圖2所示;形成兩個卷積層直接鏈接級聯后跟池化層(或激活層)的網絡結構。

圖2 雙卷積+內部競爭機制示意圖

圖3 雙卷積與單卷積對比示意圖
雙卷積層能夠a.減少總體參數量;b.在減少計算量的同時增加了網絡深度;c.增加了殘差值計算,偏置數增加;d.數據利用率增高;有利于提升卷積神經網絡的效率。
(2)卷積神經網絡采用激活函數來實現非線性,主要有Tanh,Sigmoid,Relu函數等;本文工作創新性地采用內部競爭機制來實現非線性,將Feature Maps分割為兩組相互進行點對點地競爭,在雙方的競爭中篩選每個點的最大響應,最后形成新的Feature Maps,如圖4所示;通過競爭我們得到的是神經元響應最大的結果,因此使得神經網絡對檢測任務更加敏感。
通過卷積神經網絡提取特征向量之后,本文采用YOLO中的方法直接回歸出目標候選框的中心坐標和寬高,有無目標置信度,以及分類置信度。網絡將輸入圖像分為13×13個小方格,每個小方格負責預測中心點落在其范圍內的目標框,使用anchor boxes[12]來提升預測目標框的位置精度。

圖4 內部競爭機制示意圖
評估實驗的參數一方面包括訓練時的參數輸出,包括LOSS函數,平均IOU,平均召回率,測試準確率,另一方面包括模型檢測的準確率,平均IOU,檢測時間。
LOSS函數的定義如下[10]:

S表示將歸一化后的輸入圖像分為S×S個小方格,每個小方格負責預測B個框。
前兩項是對目標檢測框的位置誤差計算,x,y,ω,h分別代表預測框的中心點橫坐標,縱坐標,預測框的寬度,預測框的高度;第三項為預測有目標的confidence預測誤差;第四項為預測無目標的confidence預測誤差;第五項為類別預測誤差。
對訓練完成的網絡模型進行測試,我們使用mAP和平均FPS來衡量模型的性能。
mAP,即mean Average Precision,字面意思可看出是對precision取了兩次平均,在多類別目標檢測中,recall與precision的值可以看作是一一對應的,那么由這兩個變量可以繪制出一個曲線,也就是說precision可以看作是關于recall的函數,將這個函數的曲線繪制出來,求取recall在[0,1]時的定積分,實際上就是將所有precision值對recall取平均,求得的定積分被成為AP,即Average Precision。
在多類別目標檢測中,對每個需要檢測的類別求出AP,并取平均值,得到的就是mAP,即mean Average Precision。具體計算公式:

上述公式中,r代表recall,p(r)代表precision關于recall的函數,c代表檢測目標類別數。
一部分使用從各個公開庫中篩選出的行人與車輛圖片集共21356張圖片,另一部分使用自主人工采集的真實道路實景圖片集共10534張圖片。這些公開庫中的行人車輛圖片尺寸不一,角度各異,分辨率各有不同,圖像質量也距離明顯,這使得訓練出的模型能夠很好地應對不同角度不同場景不同拍攝條件的各種行人車輛圖片,能夠學習到魯棒的底層特征。
數據擴展與訓練相結合的三步訓練方法,每步采用不同的訓練數據與訓練,不僅解決了訓練數據規模不夠問題,還實現檢測精度由粗到細的漸進過程,最終實現精確的人車檢測和較強的魯棒性,如圖5所示。

圖5 三步數據擴展與訓練方法
(1)將數據通過較大尺度的旋轉,縮放,變形等操作進行數據擴展;數據量擴展較大;采用固定學習率的方法進行訓練學習,實現粗檢測以及增強魯棒性。
(2)將數據通過較小尺度的旋轉,縮放,變形等操作進行數據擴展;數據量擴展一般;采用學習率分步下降的方法對第(1)步學習的模型進行微調,使之檢測更精確。
(3)將數據進行輕微的預處理后,采用inv的訓練策略對第(2)步的模型進行微調,得到最終的檢測模型。
訓練流程:
①對訓練圖片進行統一歸一化至448×448;
②進行第一輪訓練,以目標框的中心點為圓心對訓練圖片進行逆時針50度至順時針50度之間的旋轉,每次增加5度,對旋轉后的目標框求外接正矩形作為真實目標框;對圖片在縮小0.3倍至擴大0.3倍之間進行尺度變換,每次變換比率增加0.05;對圖片進行鏡像變換;對圖片進行三通道同步的像素值調整,調整范圍在-50至+50之間,每次增加10,如果像素值大于255或小于0則將該像素點的值置為255或0;對圖像進行高斯模糊;對圖像疊加多種噪聲;經過上述變換所產生的圖片加上原有的31890張圖片共有130萬以上的數量。將上述產生的圖片以恒定0.001的學習率進行訓練來完成第一階段的模型。第一階段學習率:
lr=base_lr
③調整第一階段的各個變動范圍,旋轉范圍改為逆時針20度至順時針20度,每次增加3度;尺度變換比例調整到-0.2到0.19之間,每次增加0.03;像素值調整的范圍改為-30至+30之間,每次增加5;其余操作的程度也同樣降低一些。第二階段訓練采用變化的學習率,初始學習率設置為0.001,gamma=0.1,每經過20000次迭代將學習率乘0.1。使用上述變換所得圖片和原圖一同進行訓練,得到第二階段模型。第二階段學習率:
lr=base_lr×gamma∧(floor(iter/step))
④旋轉調整到正負5度間,每次增加0.1度,尺度變換比例調整到-0.05到+0.05之間,每次增加0.01,像素值調整范圍改為-10到+10之間,每次增加2,其余操作的強度進一步降低。第三階段訓練初始學習率仍舊為 0.001,gamma=0.00001,power=0.75。第三階段學習率:
lr=base_lr×(1+gamma×iter)^(-power)

表1 測試結果
該檢測與識別模型在訓練測試圖片數據集上的mAP能夠達到 70.6%,在 CPU為 i7 6970K,GPU為GTX1080,內存為8G的PC上的檢測速度為23ms/幀,約43.5幀/s,達到實時。以上結果表明本論文提出的方法在道路實景車輛與行人的檢測中能夠得到非常好的效果,在以后的工作中應逐漸提升其對各種不同場景的適應性,使之能夠得到更廣泛的應用。
本文中應用深度學習的方法,采用雙卷積加內部競爭的機制對道路實景中的車輛和行人進行檢測,得到了令人滿意的結果,實驗仍然有不足的地方需要改進,今后可以收集制作更大更豐富的數據集,優化網絡結構,將本文中的方法更好地推向應用,推向實際。
參考文獻:
[1]胡銦,楊靜宇.基于模型的車輛檢測與跟蹤[J].中國圖象圖形學報,2008,13(3):450-455.
[2]丁偉強,董育寧.基于計算機視頻圖像的車輛檢測[J].電視技術,2004(10):81-83.
[3]郁梅,王圣男,蔣剛毅.復雜交通場景中的車輛檢測與跟蹤新方法[J].光電工程,2005,32(2):67-70.
[4]齊美彬,潘燕,張銀霞.基于車底陰影的前方運動車輛檢測[J].電子測量與儀器學報,2012,26(1):54-59.
[5]李玉萍.基于視覺的車輛檢測技術現狀[J].國外電子測量技術,2007,26(10):21-23.
[6]郭烈,王榮本,張明恒,等.基于Adaboost算法的行人檢測方法[J].計算機工程,2008,34(3):202-204.
[7]Guo K,Zhang M,Sun C,et al.3D Fingertip Tracking Algorithm Based on Computer Vision[J].Journal of Computer Research&Development,2010,47(6):1013-1019.
[8]Lecun Y,Bengio Y,Hinton G.Deep Learning[J].Nature,2015,521(7553):436-444.
[9]Redmon J,Divvala S,Girshick R,et al.You Only Look Once:Unified,Real-Time Object Detection[J],2015:779-788.
[10]Redmon J,Farhadi A.YOLO9000:Better,Faster,Stronger[J].2016.
[11]Zhang K,Zhang Z,Li Z,et al.Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.
[12]Ren S,He K,Girshick R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks.[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2015,39(6):1137-1149.
[13]Girshick R.Fast R-CNN[J].Computer Science,2015.
[14]Li H,Lin Z,Shen X,et al.A Convolutional Neural Network Cascade for Face Detection[C].Computer Vision and Pattern Recognition.IEEE,2015:5325-5334.
[15]Viola P,Jones M J.Robust Real-time Face Detection[J].International Journal of Computer Vision,2004,57(2):137-154.