王 偉,唐心瑤,田尚偉,梅占濤
1(長安大學 信息工程學院,西安 710064)
2(安徽科力信息產業有限責任公司,合肥 230088)
3(內蒙古第一機械集團股份有限公司,包頭 014030)
在無人駕駛領域及智能交通應用中,車輛三維信息的準確獲取在車輛行駛路徑規劃,安全行駛及車輛違規判斷上都有著重要的應用[1],同時,詳細的車型信息對于精確檢測與統計車流[2],車輛違規處罰[3–6]等應用上都提供了基礎數據支撐.因此在交通應用中,十分關注車輛的三維尺寸及車型分類信息,本文所定義的車輛細粒度即為這兩類信息.
目前主流的車輛識別方法主要包括:(1)基于目標二維局部特征的方法[7–11].這類方法利用車牌、車燈、車標或車臉等信息,對輸入的車輛局部特征進行傳統的模型識別,獲取車輛的識別結果,由于檢測精度低、特征設計復雜,這類方法在實際應用中逐漸淡出視線.(2) 基于深度學習的方法,隨著數據集的增加及深度學習目標檢測技術的成熟,出現了一批優秀的車輛檢測及分類網絡,尤其以YOLO 系列[12]為典型.但(1)和(2)類方法都屬于二維目標檢測方法,僅能檢測識別出車輛目標的存在性及粗略的型號分類,并不能獲取車輛物理尺寸等相關的其他輔助信息,做不到精細化描述.(3) 基于三維目標檢測的方法.與二維目標檢測相比,三維目標檢測能夠消除圖像成像的透視形變,同時能夠在三維目標檢測能在物理尺度上描述車輛信息,因此更加適合車輛的細粒度描述.目前基于三維的方法主要基于深度相機(RGB-D camera)[13,14],激光相機(laser camera)[15]等,而這些設備價格昂貴且數據量冗余.相比之下,單目相機(monocular camera)價格便宜維護簡單,同時具有視野范圍大且數據量相對較小等優勢,一直是視頻監控系統中的主流應用,但是由于透視形變及投影造成的信息損失,直接通過單目相機獲取車輛目標的三維信息有一定的難度.綜上,基于單目視覺下三維目標檢測的車輛識別研究具有重要意義.
近年來,基于單目視覺的車輛三維檢測算法呈上升趨勢.該類算法主要基于以下兩種思路:(1)基于CAD/可變模型+局部特征設計[16–18],如Zhang 等[19]提出一種基于可變模型的車輛識別方法,主要使用Hog 特征生成初始三維車輛模型,能夠識別轎車,掀背車,公交車等常見的8 種車輛.Corral-Soto 等[20]也提出一種基于三維可變模型的車輛識別方法,對于擁擠高速公路下的車輛遮擋有一定的魯棒性,該方法對車輛前景根據蒙特卡洛方法和馬爾科夫鏈方法(MCMC)沿著車道線方向滑動模型來獲取最貼合的三維模型,從而解決解決道路中的車輛相互遮擋造成的識別失效.Prokaj等[21]采用三維CAD 模型結合DPM 分類檢測器的思路,通過車輛的局部特征數據訓練出一個能夠將二維圖像和三維模型在幾何與視角上進行對齊的DPM 分類檢測器.該類方法在CAD 模型庫過大時,存在檢索速度慢等缺點,同時手工設計目標特征在深度學習流行的今天,也遠遠達不到理想的準確率.(2)三維包絡盒+機器學習.該類方法摒棄使用CAD 模型貼合車輛目標,而采用更靈活的三維包絡盒的方式進行三維檢測.Zapletal 等[22]提出將車輛三維包絡盒在逆投影空間中展開,繼而進行訓練實現精細化識別的思路,具體方法為,對于展開的逆投影空間包絡面,首先利用HOG特征對于逆投影空間進行描述,然后用SVM 算法進行訓練識別,獲取車型識別結果.由于采用的是傳統的手工特征設計,在較復雜的數據集下,該算法的識別準確率并不高,僅能達到60%.Sochor 等[23]對車輛前面,側面和頂面的二維平面圖像進行標準化展開,然后進行標注,通過深度學習訓練網絡的方式學習車輛類型,在一般場景中精確度高達83.2%,但該方法采用3 個互相正交的消失點的方式對車輛進行三維包絡,而消失點在某些方向存在不穩定現象,因此在一定視角下該類方法對于車輛的三維檢測并不穩定.
基于上述對當前算法的綜述分析,采用三維包絡盒+深度學習的思路開展本文研究,與當前已有的方法相比,本文的創新與貢獻有:
(1)前期工作中對于交通場景構建了自標定模型,本文將基于相機自標定參數,單滅點與車輛二維投影的幾何約束構建車輛精細化的三維包絡.
(2)對二維車輛目標進行逆投影空間標準化展開,構建聯合物理尺寸標簽的損失函數,訓練出更具區分性的車輛細粒度識別網絡.
相機標定是獲得三維世界空間與二維圖像空間映射關系的必要步驟,可為后續第1.2 節中的車輛3D 包絡框的構建提供依據.
如圖1所示,為道路場景相機空間模型示意圖,前期工作對該場景下的相機自動標定和優化問題進行了相關的研究[24],是本文的基礎.
如圖1所示,在此空間模型中,世界坐標系包含xyz軸,相機坐標系包含xcyczc軸,相機焦距為f,相機距離地面的高度為h,相機俯仰角和偏轉角分別為?和θ.將世界坐標表示為齊次形式:x=[x,y,z,1]T,則在圖像坐標中對應為:p=[αu,αv,α]T,α≠0表示尺度因子.由文獻[24]推導可知,世界坐標到圖像坐標的投影方程為:

圖1 道路場景中相機空間模型示意圖

將式 (1) 展開可得直觀的世界坐標至圖像坐標的表示形式:

由式 (2) 可知,當給定目標高度為z0時,即可計算得圖像坐標在世界坐標的逆投影.標定參數(f,h,?,θ)可通過道路標識[25](如道路虛線,道路寬度等)間接求取.在多標識的約束下,還可在參數空間對于標定參數進行迭代優化.在文獻[24]中有詳盡的描述,此處不再贅述.由此,通過建立的相機空間標定模型,可得道路場景下世界坐標與圖像坐標的投影與逆投影變換,從而獲得后續構建車輛3D 包絡的基礎.
基于第1.1 節中的相機標定,可進一步構建車輛的3D 包絡框,為第2 節中的包絡框展開及車輛細粒度識別奠定基礎.
如圖2所示,為本文車輛3D 包絡框粗構建的示意圖.設車輛3D 包絡框8 個頂點的世界坐標為Pi=(xi,yi,zi),i=1,2,…,8,圖像坐標為pi=(ui,vi),i=1,2,…,8,車輛的初始尺寸為(lv,wv,hv),分別表示車輛的長度、寬度和高度,單位為m.由圖1的標定模型可推導出車輛在長度、寬度和高度的方向向量分別為dl=(?sinθ,cosθ,0),dw=(cosθ,sinθ,0),dh=(0,0,1).將P2作為車輛基準點,通過式(3)可得其余7 點坐標.

圖2 車輛三維包絡框的粗構建

在車輛3D 框粗包絡的過程中,并不能保證所有參數均準確,因此需要進一步對粗包絡進行調整,得到更準確的車輛3D 包絡框.
參考前期工作對于車輛空間形態優化的思路[26],將調整過程看作包絡框參數的優化過程,優化參數包括(lv,wv,hv),和車輛的偏轉角θv構成的車輛空間形態向量V,V1為其初始值.構造車輛投影凸包與車輛輪廓的約束算法如下,其中車輛輪廓使用Mask-RCNN[27]進行提取.

算法1.車輛3D 包絡框構建優化算法1) 通過式(3)構建車輛3D 粗包絡,車輛初始尺寸(lv,wv,hv) 可通過Mask-RCNN 得到的車輛類型查閱車輛外廓尺寸獲取.2) 將3D 包絡的8 點物理坐標代入式(2)可反求出8 個投影點并求凸包,獲得某組已知 V1 對應的3D 包絡投影凸包,將式(3)得到的世界坐標點通過式(2)投影至圖像坐標中,獲得車輛投影凸包頂點,記為{si|1≤i≤m},m為投影凸包的頂點數量.3)為了更好地構建約束,在相鄰的投影凸包頂點等間隔插入v 個新頂點,則稠密投影凸包可表示為{si|1≤i≤m(v+1)}.4) 求車輛輪廓C的重心O,連接Osi 獲得與 C的交點qi,得到約束誤差為.m(v+1)∑i=1 siqi
圖3(a)為v=4時的一組初始參數向量對應的3D 包絡,圖3(b)為初始投影凸包與車輛輪廓的差值,使用紅色線段表示,投影凸包頂點為P1,P2,P3,P5,P7,P8.約束函數可表示為:

其中,(l0,l1),(w0,w1),(h0,h1)為車輛長度、寬度和高度的約束范圍.基準點(u2,v2)的取值范圍為R,使用矩形區域表示.ε為θv的取值范圍的閾值.限定參數的取值,可進一步縮小參數優化的空間,提升優化效率.如圖3(c)為最優參數向量對應的3D 包絡,圖3(d)為最優投影凸包與車輛輪廓的差值.

圖3 車輛三維包絡精細化過程實例圖
由于透視投影可知,單目視覺下的目標會發生不同程度的透視畸變及尺度變化,事實上這對于目標的識別有一定的影響,傳統的方法大多采用大量不同視角下及不同尺度下的目標數據進行訓練,繼而彌補透視畸變及尺度變化對于目標識別產生的影響,而本文可利用車輛三維包絡框的標準化展開,在數據輸入端即可做透視畸變及尺度變化的校正.通過這種方式,在達到相同精度的情況下,需要更少的數據集.如圖4所示,通常視角下車輛的可視面有3 面,車輛目標正面(F),側面(S),頂部(V) (當然還有其他一些可視面的組合方式,本文中暫時只考慮F-S-V的可視面組合方式),可利用透視變換的原理對3 個可視面進行矯正.

圖4 車輛三維包絡可視面示意圖
透視變換的公式如下,其功能為投影圖像至新的可視化平面.

其中,圖像像素坐標變換前表示為(u,v),變換后為(x′,y′),T1表示線性變換,為2×2的矩陣,T2表示透視變換,為2×1的矩陣,T3表示圖像平移,為1×2的矩陣,T4為不為零的常數.本文對3D 包絡框的每個可視面,利用其四邊形的每個頂點與變換之后的標準矩形頂點建立映射等式關系,即可求取對應的透視變換矩陣,繼而可將3 個可視面進行逆透視展開.其展開的順序和規范如圖5(a)所示,每個面的透視形變校正結果示例圖如圖5(b)所示.設規范化的展開圖像寬為wsd,高為hsd,如圖6所示,為一組車輛3D 包絡及標準化展開的示例圖.事實上除了展開的具有逆透視效果的規范化圖像之外,車輛的物理尺寸也可作為后續分類識別的有效信息.

圖5 車輛三維包絡視變換示意圖

圖6 車輛三維包絡及標準化展開示例圖
本文設計了一種可以同時預測車輛和車輛三維尺寸的細粒度識別網絡,如圖7所示,網絡輸入為由三維目標檢測結果展開所得標準化展開圖 (224×224),網絡輸出為車輛分類vtype(Hatch-back,Sedan,SUV,Bus,Truck 共5 類)和車輛三維尺寸(lv,wv,hv).

圖7 深度網絡結構圖
為了提升網絡整體泛化性能,防止過擬合,本文采用ResNet[28]作為backbone,網絡共包含兩個分支:主分支和輔助分支,這兩個分支都可以完成車輛分類和車輛三維尺寸預測.其中,主分支用于訓練和預測,輔助分支借鑒了GoogleNet 網絡[29]中輔助分類器的結構,只在網絡訓練過程中使用,能夠防止一定程度的梯度消失.
由于分類標簽是一概率分布向量,其網絡輸出值比車輛實際三維尺寸標簽小很多,因此,為了使得模型更穩定,本文對車輛三維尺寸標簽做了歸一化處理,具體為將標準化展開圖中車輛尺寸像素與實際物理尺寸相比,作為最終的三維尺度因子,其值范圍在0–1 之間.如圖8所示,車輛像素尺寸標簽大小為(lpix,wpix,hpix),物理尺寸標簽為(lv,wv,hv),則新的標簽設計為尺度因子:sl=lpix/lv,sw=wpix/wv,sh=hpix/hv.

圖8 車輛三維物理尺寸標簽尺度因子設計示例圖
損失函數得設計共包含3 個部分,車輛分類損失,車輛三維尺寸回歸損失和輔助訓練損失,如式 (6) 所示,輔助訓練損失也由分類和回歸損失組成.具體形式如公式組 (7) 所示.


車輛分類損失Lclassifier形式為多分類交叉熵損失,如式 (7) 所示,N為網絡訓練時每批次輸入的標準化展開圖數量,K為分類數,本文中分別取32和5,表示第j類的車輛分類標簽,如果車輛屬于第j類,則=1,否則=0,表示經過全連接層及Softmax 處理后車輛屬于第j類的概率.車輛三維尺寸回歸損失Lsize為L1范數損失,如式(7)所示,lpvre,wpvre,hpvre分別表示網絡預測所得車輛三維尺寸尺度因子,lgvt,wgvt,hgvt分別表示車輛三維尺寸尺度因子真實歸一化標簽值.輔助訓練損失Lauxiliary如式 (7) 所示,Laux_classifier,Laux_size分別與Lclassifier,Lsize具有相同的形式,λc和λs分別表示分類和回歸損失在輔助訓練損失中的權重系數,本文中選取λc=λs=0.5.
本文所應用的場景為道路交通視頻監控,因此使用針對道路交通監控場景下的BrnoCompSpeed 數據集[30],該數據集包含6 個交通場景,如圖9所示,其中,單車道寬度為3.5 m,道路虛線長度為3 m,虛線間隔為6 m.同時該數據集對于經過的每輛車都有明確的車輛記錄.表1為本文對6 個交通場景自動標定的結果.

表1 交通場景相機自標定結果

圖9 BrnoCompSpeed 數據集下的交通場景
對于數據集的處理,首先將視頻數據集處理為圖像數據集,由于交通場景中車流量較小,因此本文對數據集的處理方式為,每隔10 s 截取1 幀,去除車輛目標過小以及無車輛目標的圖像幀,整理得到圖像數據集.對圖像數據集進行分類,本文的分類標準是對轎車類(Car) 中的兩廂車 (Hatch-back)和三廂車(Sedan)進行再分類,總體車輛分為Hatch-back,Sedan,SUV,Bus,Truck 共5 類,同時根據數據集提供的詳細車輛信息查取其對應的三維尺寸(lv,wv,hv).
Mask-RCNN 網絡集目標檢測分類與分割于一體,因此本文采用該網絡對數據集中的車輛目標進行預處理,獲取車輛的預分類及邊界分割結果.該網絡可以識別80 種不同類別目標,但對于車輛只能粗略分為Car,Bus,Truck 3 類.根據初始識別的車輛可根據統計給出物理尺寸取值范圍,各車輛的外輪廓尺寸取值范圍實例如表2所示.最后根據輪廓約束構建精細化的車輛3D 包絡.實例圖如圖10所示.

圖10 車輛精細化三維包絡構建實例圖

表2 各類型車輛外輪廓尺寸范圍 (m)
對車輛三維包絡3 個可視面進行透視變換,并對透視變換后的可視面進行標準化展開,更多展開實例如圖11所示.

圖11 車輛三維包絡標準化展開實例
本次實驗從BrnoCompSpeed 視頻數據集中截取3 000 張圖片,其中包含車輛6 000 輛,訓練集 (4 000輛)和測試集 (2 000 輛),訓練集和測試集均包含5 個類別的車輛,并對每輛車都標注了對應的車輛及三維尺寸信息,訓練集中對較難區分的兩廂車 (Hatch-back),三廂車 (Sedan)和SUV 各1 000 輛,公交車類 (Bus)和卡車類 (Truck) 各500 輛.為了便于網絡的訓練,將展開的標準化圖像分辨率調整為224×224 大小.實驗在配置有Intel i7-6800K CPU和GeForce GTX 1080Ti GPU的PC 機上運行.
本文選取ResNet-101 作為主干特征提取網絡,為了提高檢測精度,采用其在ImageNet[31]上的預訓練參數,在訓練的過程中進行微調 (fine-tune).網絡的輸入的是展開的標準化圖像,批次大小設置為32,分類輸出5 類車輛,以及回歸輸出的是車輛物理尺寸長寬高.
由于本網絡為多任務輸出網絡,包括車輛分類及車輛物理尺寸輸出,因此,實驗結果可以從分類的精度及物理尺寸回歸的結果兩方面進行分析.圖12為細粒度識別結果在測試集上的車輛P-R 曲線 (Precision-Recall curves)圖,可看出對于特征區分度較高的Bus和Truck,本文方法的分類精度均超過90%,Sedan和Hatch-back 車輛,識別率也超過80%,由于SUV的特征區分度和二廂車及三廂車不大,因此識別率稍低.

圖12 車輛分類Precision-Recall 圖
利用同樣的網絡結構及數據集,本文分別用標準化展開數據及原始圖像數據做為輸入進行訓練,得到不同的識別結果,以此證明本文方法對于識別結果的有益性,如表3所示,為兩類方法識別的結果對比,數值均為四舍五入的整數.

表3 車輛分類平均精確度對比 (%)
通過表3可以看出,對于Bus 及Truck 等本身特征區分度很大車輛,本文算法的準確率提高并不大,而對于SUV,Sedan 及Hatch-back 等特征區分度較小的車輛,本文方法的精確度有了明顯的提高.可證明本文采用的車輛目標三維展開規范化的輸入方法,可以有效的提高網絡分類的性能.
對于車輛物理尺寸的回歸輸出,本文對于預測輸出的物理尺寸Xpre=(lpre,wpre,hpre)與標簽物理尺寸Xlabel=(llabel,wlabel,hlabel),利用式(8) 計算準確率Psize,其中,∥·∥2表示歐氏距離的二范數:

車輛三維尺寸的識別受視角影響比較大,如圖13所示,為測試數據集上不同偏轉視角下網絡預測車輛物理尺寸的平均精度.
從圖13中可以看出,當相機偏轉角接近±45°左右時,由于圖像中車輛的3 個可視面均可充分的展現,因此在做三維包絡展開時,可以保留較多的特征信息,也有助于最終車輛三維尺寸的回歸輸出.而當相機偏轉視角接近于0°附近時,圖像中車輛目標縱向信息消失殆盡,因此尤其對于車輛縱向長度的識別影響很大,因此輸出的車輛三維尺寸精確度較低.

圖13 不同相機視角下車輛三維尺寸預測平均精度圖
表4為車輛細粒度識別方法對比,其中精度由車輛單個識別精度和追蹤過程中綜合識別精度組成.

表4 不同車輛識別方法對比
表4中BoxCars 也是采用消除透視畸變及3D 展開輸入的方法,從中可知,本文方法與BoxCars 方法在識別精度上均有較大的提高.本文方法相比于BoxCars還可回歸輸出車輛物理尺寸信息.
本文提出一種基于車輛三維包絡展開的車輛識別方法,該方法采用三維包絡展開的規范化數據作為輸入進行訓練,不僅可以提高車輛分類的精度,而且可輸出獲得車輛物理尺寸信息.通過在BrnoCompSpeed 視頻數據集中的實驗表明,相比于傳統的原始圖像數據直接輸入訓練,基于三維包絡展開規范化圖像數據方法,由于很大程度上消除了透視畸變及尺度因素的影響,使得目標的特征更加突出及規范,從而較大程度提升了細粒度識別的精度.同時,本文方法還可以回歸輸出車輛物理尺寸信息,更加豐富了分類車輛描述的維度.
然而,本文方法仍存在可優化的余地,譬如車輛三維包絡展開數據的規范程度依賴于車輛的3D 包絡準確程度,而相機接近0°視角下,車輛的3D 包絡將會有較大誤差.同時,與傳統圖像目標識別一樣,本文對于小目標的識別也存在較大誤差,主要原因就是小目標本身具有的圖像特征較少,數據規范化之后有可能造成較大變形,影響分類識別結果.后續工作將會著重探索和研究車輛在不同視角下的精確包絡難題,及小目標車輛的精確分類問題,以進一步提高車輛分類的準確率以及穩定性.