劉 軍,陳嵐磊,李漢冰
(江蘇大學汽車與交通工程學院,鎮(zhèn)江 212013)
在無人駕駛應用中,計算機視覺技術主要用于:交通目標檢測[1-5](如車輛、車道線、行人、交通標志、可行駛區(qū)域)、目標跟蹤[6]、目標狀態(tài)估計[7]等。
隨著深度學習技術的快速發(fā)展,計算機視覺逐漸由傳統(tǒng)的機器視覺走向更具備人類智慧的深度視覺,尤其是卷積神經網絡(CNN)對圖像處理發(fā)揮著重要的作用。
當前基于深度學習的目標檢測算法可分為兩類:基于候選區(qū)域的二階段目標檢測算法(如Faster R?CNN[8]、Mask R?CNN[9]等)、基于回歸的單階段目標檢測算法(如SSD[10]、YOLOv3[11]、FCOS[12]等)。二階段目標檢測算法首先獲取圖像的感興趣候選區(qū)域,再在候選區(qū)域中進行目標分類和定位;而單階段目標檢測算法直接提取圖像特征進行目標分類和定位,將分類問題轉換為像素回歸問題,檢測速度明顯提升,但精度較差。此外,自Faster R?CNN 提出了anchor 機制后,基于anchor 檢測模型精度有了明顯提升。anchor 機制[11]是利用密集采樣的思想,通過大量預定義的anchor 枚舉目標可能的位置、尺寸和縱橫比的方法來搜索對象,但由于anchor 自身設計的限制,同時會引入大量額外超參數(shù),使計算量增大。當前anchor?free 算法比較熱門,如FCOS 網絡,利用目標中心點所在位置進行回歸預測,有效解決anchor尺寸的不通用性,減少重復計算量。
可行駛區(qū)域檢測是對車輛安全行駛不發(fā)生碰撞的道路路面進行檢測,通常是自車行駛車道,在計算機視覺領域屬于語義分割算法的應用之一。當前基于深度學習的可行駛區(qū)域檢測算法大多來源于全卷積網絡思想,如FCN[13]、SegNet[14]、UNet[15]等,實現(xiàn)了端對端像素級可行駛區(qū)域的分割。
目前現(xiàn)有交通場景檢測算法中單個模型很少有同時進行多個任務檢測(如Mask R?CNN,對目標進行分類定位和實例分割),通常是多個模型各自分別進行檢測任務再進行整合,這樣不僅會增加硬件需求,也會降低實時性。因此,如何實現(xiàn)單個模型同時魯棒地進行交通場景多任務實時檢測是一個亟需解決的工程問題。
為了解決上述問題,本文中提出了一種基于類人視覺的多任務交通目標實時單階段檢測模型,實現(xiàn)可行駛區(qū)域和交通目標魯棒地統(tǒng)一檢測。同時,模型基于anchor?free[12],對圖像進行像素級別的檢測,增強預測框的自由性,提高檢測精度和泛化性;并且底層采用輕量化模型MobileNetV3[16],減少模型參數(shù)量,保證檢測實時性。
目前在計算機視覺領域所采用的類人視覺注意力機制[17]的作用機理,大致可以劃分為兩種:自底向上的模型和自頂向下的模型。自底向上的模型受數(shù)據(jù)驅動,主要利用圖像中的顏色、亮度、邊緣等特征,考慮像素與周圍區(qū)域在特征上的不同,計算該像素的顯著性;自頂向下的模型主要受任務驅動,受到人類主觀意識的影響,包括先驗性知識、當前的目標或對未來的預期。在交通場景中,如圖1 所示,利用大規(guī)模的駕駛員眼動數(shù)據(jù),模擬駕駛員的駕駛主觀意識,實現(xiàn)自頂向下的注意力機理。
圖1 交通場景下注意力機理可視化
本文中建立類人視覺注意力機制,即利用駕駛員人眼注意力作為交通場景感興趣區(qū)域自頂向下引導檢測模型,從而更加直接地貼近駕駛員的視覺意圖。模型可分為3 個部分:人眼注意力監(jiān)督模塊(eye fixation prediction)、可行駛區(qū)域檢測模塊(driving area prediction)和交通目標檢測模塊(traffic object prediction),整體結構如圖2所示。
目前,CNN 廣泛應用于計算機視覺領域,其具有自動提取圖像特征的能力,通過堆疊卷積塊,可以獲得豐富的高層次特征。
為了提高計算效率,從SqueezeNet[18]開始模型參數(shù)量就不斷下降,尤其是MobileNet 系列。MobileNetV1[19]開創(chuàng)性地提出了深度可分離卷積,其結構如圖3 所示。深度可分離卷積將傳統(tǒng)的標準卷積分解為深度卷積和1×1 卷積,深度可分離卷積相對于標準卷積參數(shù)量壓縮率s為
式中:DK為卷積核尺寸;DF為輸入的特征尺寸;M 為輸入通道數(shù);N 為輸出通道數(shù);分母為標準卷積參數(shù)量;分子為深度可分離卷積參數(shù)量。
MobileNetV2[20]融合了殘差思想,在一代的基礎上加入了線性bottlenecks 和反殘差模塊構成了高效的基本模塊,其結構如圖4(a)所示。
MobileNetV3 綜合前兩代的深度可分離卷積和反殘差思想,并加入MnasNet[21]的互補搜索技術組合模塊,其結構如圖4(b)所示。
本文中采用輕量化模型MobileNetV3 作為底層進行特征提取,并將參數(shù)共享于整個模型。
圖2 類人視覺交通場景多任務實時檢測模型結構
圖3 深度可分離卷積結構示意圖
該模塊基于MobileNetV3,提取C3、C4和C5層特征圖,隨后加入一個卷積核為3×3×40、步長為2的卷積操作得到C6層特征圖;再加入一個卷積核為3×3×1、步長為1 的卷積操作并用Sigmoid 激活函數(shù)激活,最終得到4×13×1 的人眼注意力預測圖,利用人眼注意力損失函數(shù)LATT(見2.6.1 節(jié))與真實值進行比較。此模塊與交通目標檢測模塊共享網絡,從而進行監(jiān)督。
由于駕駛員眼動是一個動態(tài)過程,僅僅只利用卷積的空間操作會打破上下幀圖片的密切聯(lián)系。隨著循環(huán)神經網絡的快速發(fā)展,特別是LSTM 網絡在時序數(shù)據(jù)的處理上能力非常強。本文中引入動態(tài)注意力算法(dynamic attention network,DAN),其結構見圖5 左,利用convLSTM[22]和特征金字塔[23](FPN)思想,對圖像的特征進行時序記憶。convLSTM 是在LSTM網絡的基礎上加上卷積操作,而FPN是利用底層特征與高層特征上采樣進行有機融合,底層特征具有高分辨率,目標位置信息更加準確,高層特征語義信息比較豐富,能準確地識別目標,融合能獲得更豐富的信息,使檢測效果更為顯著。
圖4 MobileNet系列模型結構示意圖
動態(tài)注意力算法過程具體見圖5 右,首先對MobileNetV3提取的特征層Cn(n=3,4,5)進行一個卷積核為1×1×64、步長為1 的卷積操作并用Sigmoid 激活函數(shù)激活,同時對MobileNetV3 提取的特征層Cn+1進行一個卷積核為1×1×160、步長為1 的卷積操作,得到FPN 的原始特征Pn+1并進行2 倍上采樣,兩者按通道疊加(64+160)作為輸入特征Xt送入convLSTM層。convLSTM 層可分為內部隱藏層H 和記憶細胞層C,兩者之間利用門運算進行連接。門運算分為3種:輸入門it、遺忘門ft和輸出門ot。對于每一步時間t,都會有輸入特征Xt被送入。如果輸入門it打開,Xt的信息被存入記憶細胞層C中。如果遺忘門ft打開,上一個記憶細胞Ct-1會被遺忘。輸出門ot決定最新的記憶細胞Ct是否傳入內部隱藏狀態(tài)Ht中。具體運算公式為
圖5 動態(tài)注意力算法結構圖
式中:‘*’為卷積運算;‘o’為元素數(shù)乘運算;σ 為Sigmoid 激活函數(shù);tanh 為雙曲正切激活函數(shù);W 和b為學習的權重和偏差。
對于所有輸入特征Xt,本文中令t=5,都有:X1=X2=…=Xt=X??梢缘玫阶钚碌碾[藏狀態(tài)Ht的特征信息,再進行一個卷積核為1×1×160、步長為1 的卷積操作并用Sigmoid激活函數(shù)激活,得到FPN 的新特征Pn。以此類推,可以得到FPN 的新特征P5、P4、P3層,并作為交通目標檢測模塊的基礎進行共享。
由于可行駛區(qū)域不需要耗費人眼注意力進行監(jiān)督,于是凍結convLSTM 算法層,利用FPN 思想進行特征獲取,其結構如圖6 所示,即把上采樣的結果和CNN前向傳播過程生成的特征圖相加。此模塊網絡特征獨立于人眼注意力監(jiān)督模塊,也不與交通目標檢測模塊共享。首先對MobileNetV3 提取的C3、C4、C5特征層分別進行一個卷積核為1×1×160、步長為1的卷積操作,得到FPN 的P3、P4、P5原始特征,再對P5原始特征進行2 倍上采樣與P4原始特征相加,得到P4新特征。隨后,對P4新特征進行2 倍上采樣與P3原始特征相加,得到P3新特征。對P3新特征進行8倍上采樣,再進行一個卷積核為1×1×1、步長為1 的卷積操作,同時用ReLU 激活函數(shù)激活,最終得到256×832×1 的可行駛區(qū)域分割預測圖。該預測圖與輸入的原始圖片大小一致,利用可行駛區(qū)域損失函數(shù)LDA(見2.6.2節(jié))與真實值進行比較。
圖6 FPN網絡結構圖
為了增強預測框的自由性,該模塊基于anchor?free 思想利用多尺度特征圖進行檢測。即對動態(tài)注意力算法的FPN新特征P5層進行2次卷積核為3×3×160、步長為2 的卷積操作,如圖2 所示,得到64 倍(相比于原圖)下采樣P6層和128 倍下采樣P7層,并與FPN 的新特征P5、P4、P3層組成5 個尺度特征圖。其中,P3層是8 倍下采樣,P4層是16 倍下采樣,P5層是32倍下采樣。
2.5.1 交通目標分類
如圖2 所示Head 部分,為了加深特征提取,首先同時對P3、P4、P5、P6、P7這5個尺度特征圖進行4個卷積核為3×3×160、步長為1 的卷積操作,然后利用3×3×c 的卷積核進行卷積并采用ReLU 激活函數(shù)激活,得到最終預測的h×w×c 交通目標類別置信度圖。其中h×w 為置信度圖的大小,c為類別數(shù)。利用交通目標分類損失函數(shù)LCLS(見2.6.3 節(jié))與真實值進行比較。
2.5.2 交通目標邊界框回歸
本文中定義交通目標邊界框的坐標為(xb1,yb1,xb2,yb2),其中(xb1,yb1)表示左上角坐標,(xb2,yb2)表示右下角坐標。對于每一個特征圖Pn,n=3,4,5,6,7,都有像素點坐標(x,y),其映射到原圖的坐標為(sx+s/2,sy+s/2),其中s 表示下采樣倍數(shù),s=8,16,32,64,128。為了得到預測框的大小,如圖7 所示,利用每一個特征圖Pn正樣本(除去背景)內的像素點(x,y)與每層特征圖下的邊界框的左、右、上、下的距離差,分別為l*,r*,t*,b*,其計算公式為
圖7 多尺度特征圖下預測框示意圖
然后限制max(l*,r*,t*,b*)>mn-1或者max(l*,r*,t*,b*)<mn,其中m表示預測框的長度限制,n=3,4,5,6,7。本文中設置m2=0,m3=52,m4=104,m5=208,m6=416,m7=∞,即對應特征圖P3、P4、P5、P6、P7的預測框大小分別限制在[0,52],[52,104],[104,208],[208,416],[416,∞]范圍內。
與交通目標分類網絡分支一樣,但互不共享,如圖2 所示Head 部分,得到最終預測的h×w×4 交通目標邊界回歸框,即將h×w 大小的特征圖作為一個像素單元組,預測4 個像素單元組的坐標。最后利用交通目標邊界框回歸損失函數(shù)LREG(見2.6.4 節(jié))與真實框坐標進行比較。
2.5.3 交通目標中心點預測
為了更好地讓預測的邊界框接近真實框,模塊增設了目標中心點位置預測分支,其與目標分類分支共享網絡參數(shù),最終得到h×w×1 的交通目標預測邊界框的像素中心點,即將h×w 大小的特征圖作為一個像素單元組。目標中心點的中心性(Center?ness)是指正樣本內的預測回歸的像素點與邊界框中心點的遠近距離比率centerness*,其計算公式為
利用交通目標中心點損失函數(shù)LCNT(見2.6.5節(jié))將centerness*與值1進行比較。
2.6.1 人眼注意力損失函數(shù)LATT
采用二分類交叉熵(BCE)損失函數(shù),公式為
式中:G 表示人眼注意力顯著圖的真實標簽;P 表示人眼注意力預測顯著圖;x 表示樣本序號;N 表示樣本總數(shù)。其中G∈[0,1]4×13,P∈[0,1]4×13,Gx∈G,Px∈P。
2.6.2 可行駛區(qū)域損失函數(shù)LDA
采用均方差(MSE)損失函數(shù),公式為
式中:G 表示可行駛區(qū)域的真實標簽;P 表示可行駛區(qū)域預測圖。其中G∈[0,1]256×832,P∈[0,1]256×832,Gx∈G,Px∈P。
2.6.3 交通目標分類損失函數(shù)LCLS
為了解決正負分類樣本數(shù)不均衡問題,采用Focal Loss損失函數(shù),公式為
式中:G 表示交通目標類別的真實標簽;P 表示交通目標類別的預測概率;c 表示交通目標的類別;γ 表示調節(jié)參數(shù)(取γ=2.0);h×w 表示預測的特征圖大小。其中G∈[0,1]h×w,P∈[0,1]h×w,Gx∈G,Px∈P。
2.6.4 交通目標邊界框回歸損失函數(shù)LREG
采用距離交并比(Distance-IoU)損失函數(shù),公式為
式中:G 表示交通目標邊界框的真實標簽;P 表示交通目標邊界預測框坐標;IoU(Gx,Px)表示預測框與真實框的交并比;ρ2(B,Bgt)表示預測框的中心點與真實框的中心點之間歐式距離的平方;cor2表示預測框與真實框并合時最小外界矩形的對角線距離的平方。其中Gx∈G,Px∈P。
2.6.5 交通目標中心點損失函數(shù)LCNT
采用均方差(MSE)損失函數(shù),公式為
式中centerness*表示交通目標中心點的中心比率。
2.6.6 模型整體損失函數(shù)LTOTAL
式中ω 表示人眼關注度的監(jiān)督程度,本文中設置為0.3。
最后模型在測試時通過非極大值抑制(NMS)[24]算法將質量比較差的預測框過濾掉,得到干凈的交通目標檢測圖。
本實驗招募至少有2 年駕駛經驗的駕駛員對采集的道路視頻進行眼動記錄,如圖8(a)所示。將駕駛員每幀的眼動點疊加整合為駕駛員注意力顯著性像素區(qū)域,即20 幀整合一張圖片,如圖8(b)的黃色區(qū)域所示。
利用目標檢測標注工具labelImg 對采集的道路圖片進行標注,分為car、bus、rider、person 類,并用KITTI 2d object 數(shù)據(jù)集進行擴充,制作成VOC 數(shù)據(jù)集格式。利用圖像分割工具labelme 對數(shù)據(jù)集進行車道可行駛區(qū)域分割標注。然后做數(shù)據(jù)增強,即對圖片進行調整亮度。圖9 為交通場景數(shù)據(jù)集實例,包括白天、夜晚、強光照、低亮度等道路環(huán)境。實驗原始數(shù)據(jù)集共使用9 000 張圖片,其中7 480 張來源于KITTI 數(shù)據(jù)集,520 張為數(shù)據(jù)增強圖片,其余為道路采集圖片。將數(shù)據(jù)集按8∶1∶1 的比例劃分為訓練集、驗證集和測試集,即訓練集包括7 200張圖片,驗證集和測試集各包括900張圖片。
圖8 駕駛員眼動采集的眼動數(shù)據(jù)處理
圖9 交通場景數(shù)據(jù)集實例圖
為了提高模型整體泛化性,利用1 000 張來源于Tusimple國外高速公路數(shù)據(jù)集的圖片進行再次擴充。將其中800 張進行測試,得到預測正樣本目標類別和邊界框坐標以及車道可行駛分割像素區(qū)域進行標記,制作成偽標簽集擴充到原始訓練集,其余200張擴充到原始測試集。
實驗模型訓練平臺為Ubuntu18.04,GPU 型號為NVIDIA GeForce GTX 1080Ti,深度學習框架為Pytorch,Batchsize 設為16,采用Adam 優(yōu)化器,初始學習率設為0.001,并采用余弦退火法調整學習率。圖10 為原始數(shù)據(jù)集訓練時的損失曲線圖,其中橫坐標表示迭代次數(shù),縱坐標表示損失函數(shù)大小,可以看出經過80 000次迭代后損失函數(shù)趨于平穩(wěn)。訓練結束后對Tusimple 偽標簽集進行再訓練,設置同上。最后,在NVIDIA Jetson Xavier 車載設備上進行實車道路實驗,如圖11所示。
圖10 訓練損失曲線圖
圖11 實車道路實驗平臺搭建
3.3.1 評價指標
對于交通目標檢測,本文中選用的評價指標為平均類別精度(mAP)、F-值(F-measure)、參數(shù)量大小和檢測所需時間(ms)。P-R 曲線是指以查全率R和查準率P 作為橫、縱坐標的曲線,其圍起來的面積即是類別精度AP(average precision),而mAP 是所有類AP 的平均值。其中,查準率precision 和查全率recall的計算公式為
式中:TP 為正確劃分為正樣本的個數(shù);FP 為錯誤劃分為正樣本的個數(shù);FN 為錯誤劃分為負樣本的個數(shù)。
為了更好地將查全率和查準率兩者關系定量地直觀表示出來,于是利用F-值(Fmeasure)指標,計算公式為
式中β2=0.3,用來強調查全率更高的重要性。F-值指標數(shù)值越大,說明性能越好。
對于可行駛區(qū)域檢測本文中選用的評價指標為準確率(accuracy)、MAE 值(mean absolute error)和檢測所需時間(ms)。準確率公式為
式中:Cdrivingarea表示預測正確的可行駛區(qū)域樣本數(shù);Sdrivingarea表示可行駛區(qū)域樣本總數(shù)。
MAE 值是指可行駛區(qū)域內平均每個像素估計的概率與相應的真實標簽之間的絕對誤差,其具體公式為
式中:G 表示可行駛區(qū)域的真實標簽;P 表示可行駛區(qū)域的預測概率。其中G∈[0,1]256×832,P∈[0,1]256×832。MAE值越小,說明性能越好。
3.3.2 交通目標檢測的模型對比
實驗首先在本文中采集的數(shù)據(jù)集上進行分析,模型各部分對整體mAP 的影響對比,其結果如表1所示。可以看出,利用人眼注意力以及動態(tài)注意力算法進行監(jiān)督,對mAP 的影響最大,增加了3.60%,有效提升了模型的檢測精度。
為了進一步驗證模型的有效性,本文中在KITTI數(shù)據(jù)集上進行分析,設置檢測的交并比(IoU)為0.5,對car 類別進行檢測,并與不同算法進行比較,其結果如表2 所示??梢钥闯觯肕obileNetV3 模型作為Backbone,使得參數(shù)量大幅度減少,僅為YOLOv3模型的15.8%,而檢測精度卻相當,同時檢測時間減少了8.41 ms。通過F-值對比看出,本文中模型在兼顧精度的同時,查全率僅次于二階段模型Mask R-CNN,很好地保證了模型的魯棒性。
表1 模型各部分在本文中采集的數(shù)據(jù)集上對mAP的影響對比
表2 不同算法在KITTI數(shù)據(jù)集上對車輛類別的檢測效果對比
3.3.3 可行駛區(qū)域檢測的模型對比
實驗在Tusimple 數(shù)據(jù)集上與不同分割算法進行比較分析,其結果如表3 所示,利用MobileNetV3 輕量化模型作為Backbone,大幅提升了檢測速度,而精度也僅差于Mask R-CNN,可有效降低多任務計算消耗,保證模型的整體實時性。
表3 不同算法在Tusimple數(shù)據(jù)集上的檢測效果對比
圖12 為模型在不同數(shù)據(jù)集下的部分實驗結果圖,左邊一列是原圖,中間一列是人眼注意力顯著圖,右邊一列是檢測結果圖。在復雜的城市交通場景中,模型引入人眼注意力監(jiān)督,將更多視覺算力集中在駕駛安全的注意范圍,更符合駕駛員視覺意圖,同時模型使用了不同道路環(huán)境下豐富的數(shù)據(jù)集,有效提高檢測整體的魯棒性。從Tusimple 數(shù)據(jù)集實驗結果圖可以看出,模型基于anchor-free 算法在高速公路檢測精度較高,并能在環(huán)境開闊的道路場景中識別出較遠處目標。
為了解決復雜交通場景下單個模型無法魯棒地同時對可行駛區(qū)域和交通目標統(tǒng)一檢測以及檢測實時性較差的問題,本文中建立類人視覺注意力機制,采用輕量化模型MobileNetV3作為骨架,利用FPN的思想對可行駛區(qū)域進行檢測,采用動態(tài)注意力算法和anchor-free 思想對交通目標進行檢測。實驗結果表明,本文中提出的模型實現(xiàn)了可行駛區(qū)域和多類交通目標的統(tǒng)一檢測,實時性和精度較好,同時引入人眼注意力監(jiān)督,有效提高了檢測魯棒性。本文模型在實車上平均運算速度達到了12幀/s。未來的工作重點是將目標跟蹤引入網絡中,融合前方目標的行為意圖,使交通場景動態(tài)目標檢測更加穩(wěn)定,從而為智能安全駕駛提供保障。
圖12 模型在不同數(shù)據(jù)集不同場景下的部分實驗結果