倪健 甄玉航



摘要:為了實現自動駕駛,提高道路車輛姿態檢測識別精度,實驗以計算機視覺識別技術為基礎,提出了一種基于CenterNet的車輛姿態識別方法。首先使用在車輛正常行駛道路拍攝的高清圖片模擬行車記錄儀所拍到的每幀圖像;然后,用CenterNet網絡模型進行特征提取;最后,特征網絡用回歸的方式,輸出一個四元數,來描述車輛具體的位置信息和姿態信息。實驗結果表明,此方法能有效檢測出圖片中車輛姿態信息。
關鍵詞:計算機視覺;車輛姿態識別;四元數;CenterNet
中圖分類號:TP18? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)20-0001-03
1 引言
在日常生活中,路上的私家車越來越多,伴隨著汽車數量增多的同時,汽車具有自動駕駛功能也成了需求與趨勢,這成為汽車制造商需要關注和解決的實際問題。自動駕駛這一部分,最基礎的功能就是計算機視覺中的目標檢測與識別。因為駕駛系統是以檢測到前方車輛并且獲取到其位置信息為前提下才能做出反應與調整,所以目標檢測是自動駕駛后續所有操作的前提。因此如何提升目標檢測算法[1]的精準度、速度是主要問題。
首先,利用Anchor的方法來獲取到可能會存在目標物體位置的信息,再通過目標物體位置信息對其進行分類,是前些年目標檢測常采納的方法。此種方法不但耗時長、效率還低,并且還需要NMS去除重復框[2],所以,這樣的目標檢測法正逐漸被摒棄。近幾年的目標檢測算法層出不窮,如CornerNet、Yolo 、CenterNet等,這類Anchor-Free算法提供了更大更靈活的解空間,以提升計算量的方式擺脫Anchor,使檢測和分割進一步走向實時高精度,體現了計算機視覺領域的技術正以蓬勃的勢頭發展。對于數字設備來講,檢測識別圖片以及視頻中的物體可以集快速、準確于一體,這對于交通、體育、建筑等行業來說,為其行業內的視覺數據的收集、處理、分析等提供了更便利的條件與基礎。
本文采用CenterNet [3]目標檢測算法對城市道路的車輛進行目標檢測,加入EfficientNet網絡結構訓練數據集,結合翻轉、旋轉等手段來進行數據增強,再利用四元數來解決歐拉角產生的萬向鎖問題,網絡采用[x,y,z,yaw,pitch,roll]等變量輸出,顯示更為簡潔直觀。
2 模型方法
2.1 實驗內容
本實驗主要包括兩部分:目標檢測、姿態評估。目標檢測用CenterNet算法把輸入圖片進行關鍵點檢測,得到關鍵點的熱力圖,熱力圖中中心點的位置預測了目標的寬高。用訓練好的網絡模型進行特征提取,之后姿態評估部分為了避免軸共面,產生萬向鎖問題,所以利用網絡特征回歸的方式輸出為一個四元數,用來描述圖片車輛具體的位置信息、姿態信息。
CenterNet網絡結構包括主干網絡(EfficientNet)、上采樣模塊(雙線性差值或轉置卷積)、head輸出預測值。
2.2 CenterNet算法
本實驗算法CenterNet的前身為CornerNet[3],CornerNet算法可取之處在于可以消除anchor box(錨框) ,如圖1所示,把目標檢測轉化為一對關鍵點的檢測,即左上角點和右下角點。
相對于CornerNet而言,CenterNet的中心思想是把目標檢測問題轉化成目標物體的一個關鍵點估計問題[5],如圖2所示,傳入卷積網絡一張圖片,得到熱力圖(heatmap) ,圖中的峰值點、中心點為同一點,目標的寬高由中心點的位置預測決定。
CenterNet的檢測過程關鍵點熱力圖生成:
輸入圖像的規格為I∈RW×H×3,W為寬,H為高。生成的關鍵點熱力圖規格為 Y∈[[0,1]WR×HR×C],其中R為輸出圖像的步長(stride) ,C是關鍵點類型數(特征圖通道數) 。
在目標檢測中,Yx,y,c=1表示檢測到的物體預測值為1,即在坐標(x,y) 處檢測到了類別為C的物體;反之,Yx,y,c=0則表示未檢測到。
在訓練中,CenterNet沿用CornerNet的方法,對標簽圖(ground truth) 里的某一C類,把真實關鍵點(true keypoint) p∈R2計算出來用于訓練,中心點坐標的計算方式為P =([x1+x22,y1+y22]) ,對于下采樣后的坐標設為 p^=[pR],其中 R是上文中提到的下采樣因子4。所以計算出來的中心點與低分辨率的中心點[4]相對應。
然后利用 Y∈[[0,1]WR×HR×C] 來對圖像進行標記,在下采樣的[128,128]圖像中標簽真值點(ground truth point) 以 Y∈[[0,1]WR×HR×C]的形式,用一個高斯核將關鍵點分布到特征圖上。
Yxyc=exp(-[x-px2+y-py22σ2p])? ? ? ? ? (1)
其中 σp是標準差,σp的值與目標物體的寬高相關。如果某一個類的兩個高斯分布發生了重疊,取最大元素即可。
每個點Y∈[[0,1]WR×HR×C]的范圍為0~1,當Y=1時,代表此點為目標中心點(預測學習的點) 。
運行demo,輸入一張圖,得到其熱力圖如圖3所示。
2.3 損失函數
整體損失函數(Ldet) 包括目標中心點預測損失(Lk) 、目標中心偏置損失(Loff)、目標大小損失(Lsize),總公式如下:
Ldet=Lk+λsizeLsize+λoffLoff? (2)
其中λsize=0.1,λoff=1。在主干網絡后,每個坐標生成C+4個數據,包括類別、偏置x與y、寬、高。
2.4 歐拉角、四元數
實驗已經用訓練模型進行特征提取,下一步實現車輛姿態的識別,識別的思路為利用網絡特征回歸的方式輸出為一個四元數,用來描述圖片車輛具體的位置信息,此時引入歐拉角和四元數。
歐拉角[6]包括三個獨立的角參量,如圖4:章動角θ、旋進角(進動角) ψ和自轉角φ。三個參量為一組來描述一個以定點轉動的剛體的位置。
繞X軸旋轉Roll翻滾角,繞Y軸旋轉Pitch仰俯角,繞Z軸旋轉Yaw偏航角。
萬向鎖問題:正常情況下,物體旋轉時三個旋轉軸相互獨立,但是選擇±90°作為pitch角,在時間上產生了共軸、共面,就會使第一次旋轉和第三次旋轉效果相同,整個旋轉表示系統被限制在只能繞豎直軸旋轉,缺少一個表示維度。
為了解決萬向鎖,這里引入四元數,四元數是一種簡單的超復數,包括實數部和三個虛數部,一般形式為a + bi+ cj + dk(a、b、c、d均為實數,i、j、k均為虛數單位) 。可以把i j k(X軸Y軸Z軸) 本身的幾何含義當作是旋轉,滿足左手系準則:大拇指指向旋轉軸,另外四根手指所握方向即為旋轉的正方向,所轉角度即為正角度,反之為反向旋轉。依次可得出i、j、k的正向旋轉與反向旋轉[7]。
用四元數表示姿態信息優點在于只要參考坐標系、動坐標系恒定,四元數就唯一,并且四元數保存的姿態信息數據可以轉化成歐拉角。
3 數據收集與增強
本次實驗采用多種方式獲取數據,用來測試和訓練模型。包括個人拍攝圖片30張,網絡圖片108張,Kaggle無人車大賽公開數據集2762張。其中Kaggle為車輛的目標檢測提供車輛的類別標簽,從中提取車輛圖像。這樣的數據集進行模型訓練,更能準確地檢測識別出單幀圖像中的車輛姿態。最終用于模型訓練的訓練集1703張,測試集662張,驗證集530張。
實驗中數據增強的操作包括尺寸變換(scale)、翻轉變換(flip)。其中scale設置為8,在主干網絡上采樣中,產生的mask特征圖尺寸為128[×]40,訓練模型中圖像尺寸1024[×]320的1/8。開啟翻轉(flip)的話,就將mask特征圖(單通道的)、 regression特征圖(7通道的) 取反。通過數據增強可以阻止神經網絡模型學習不相關的特征,從根本上提升網絡的整體性能。
4 實驗結果與分析
4.1 實驗環境
本實驗操作系統Win10下完成,CPU為Intel(R) Core(TM) i7-6700HQ /GPU:GTX950M,內存為16G。開發環境為Python3.8、EfficientNet-B0等。
4.2 實驗結果
最后驗證經過訓練后的模型,如圖5所示,分別為原圖和測試結果圖。
以表1為圖5中各個車輛的位置信息:
4.3 實驗結果分析
通過圖片驗證與測試可以看出,車輛即使較遠,小目標車輛也能很好地檢測到,對于其位置姿態,也能用偏航角(pitch)、x、y、z等直觀地展現出來,達到了本實驗的基本目的。本實驗僅對車輛這一類物體進行識別,因此采用精確率[8](Precision) 、召回率(Recall) 兩個參數評價模型。精確率反映在測試集識別時,預測正樣本中實際正樣本所占的比例;召回率反映所有正樣本中預測正樣本所占的比例。
Precision=[tptp+fp] (3)
Recall=[tptp+fn] (4)
注:[tp]為識別到樣本中的正樣本,[fp]為識別到樣本中的負樣本,[fn]為未識別到樣本中的正樣本。
使用662張圖片測試集在訓練好的模型上進行驗證,得到基于CenterNet的車輛姿態識別模型的精確率和召回率如表2所示:
通過表2以及圖5可以看出,本實驗訓練的基于CenterNet的車輛姿態識別模型,對一些目標較小、較偏的車輛也能進行識別,其精準率以及召回率都在90%以上,可以較準確地檢測車輛、識別車輛姿態,達到本實驗目的。
5 結論
針對道路車輛姿態識別問題,傳統目標檢測算法識別率較低,魯棒性不強,所以本文在基于CenterNet的目標檢測算法上,實現了車輛的檢測與姿態識別。結果表明,識別準確度與識別速度都得到了不錯的結果,在662張圖片測試集測試下進行模型評估,精準度基本在93%,證實了本實驗的可行性,滿足車輛姿態識別的要求。同樣,后續的車輛姿態識別依然有很大的改進空間,進一步優化網絡能得到更理想的效果。
參考文獻:
[1] 黃健,張鋼.深度卷積神經網絡的目標檢測算法綜述[J].計算機工程與應用,2020,56(17):12-23.
[2] 杜鵬,諶明,蘇統華.深度學習與目標檢測[M].北京:電子工業出版社,2020.
[3] 黃躍珍,王乃洲,梁添才,等.基于改進CenterNet的車輛識別方法[J].華南理工大學學報(自然科學版),2021,49(7):94-102.
[4] Law H,Deng J.CornerNet:detecting objects as paired keypoints[J].International Journal of Computer Vision,2020,128(3):642-656.
[5] 石先讓,蘇洋,提艷,等.基于CenterNet目標檢測算法的改進模型[J].計算機工程,2021,47(9):240-251.
[6] 中國大百科全書總編輯委員會《力學》編輯委員會.中國大百科全書(力學) [M].北京:中國大百科全書出版社,1987:373.
[7] 程烺,俞家勇,馬龍稱,等.單位四元數、羅德里格轉換模型與歐拉角的映射關系[J].北京測繪,2020,34(1):44-50.
[8] 李航.統計學習方法[M].北京:清華大學出版社,2012.
【通聯編輯:唐一東】