顧德英, 張 松, 孟范偉
(東北大學(xué)秦皇島分校 控制工程學(xué)院, 河北 秦皇島 066004)
隨著自動駕駛的興起,基于2D圖像的目標(biāo)檢測不能描述立體空間信息,這就對3D目標(biāo)檢測有了更多的需求. 當(dāng)前3D目標(biāo)檢測算法主要有基于單目、激光雷達(dá)、激光雷達(dá)和單目融合等[1],雖然基于激光雷達(dá)檢測有較高的檢測精確率,但激光雷達(dá)非常昂貴,配置在每一個車上還不太現(xiàn)實(shí).因此研究基于單目的3D目標(biāo)檢測具有現(xiàn)實(shí)意義.
基于單目的3D目標(biāo)檢測,國內(nèi)外的學(xué)者進(jìn)行了很多研究,取得一定的成果.Chen等[2]提出生成一組類相關(guān)的物體推薦候選框的方法,然后在一個CNN(convolutional neural network)中利用這組候選框提取出高質(zhì)量的3D物體包圍框.然而這種方法需要復(fù)雜的預(yù)處理,不適合在有限的計算資源下進(jìn)行.Pavlakos等[3]用CNN定位關(guān)鍵點(diǎn),并且利用關(guān)鍵點(diǎn)和3D坐標(biāo)去復(fù)原位姿,但是這種方法需要配置標(biāo)注的關(guān)鍵點(diǎn)來訓(xùn)練數(shù)據(jù).Roddick等[4]引入一種將特征映射(基于透視圖像)轉(zhuǎn)換為鳥瞰圖的正交變換,然后在鳥瞰圖上自由地回歸車輛的三維尺寸和方向.Brazil等[5]提出一個端到端的區(qū)域建議網(wǎng)絡(luò)用于多類別的3D目標(biāo)檢測,統(tǒng)一2D檢測和3D檢測在一個框架內(nèi),避免引起持續(xù)的噪聲.Weng等[6]從單目圖像中提取深度信息轉(zhuǎn)成偽激光雷達(dá)點(diǎn)云,然后利用基于點(diǎn)云的方法去回歸3D屬性.但是轉(zhuǎn)換的偽激光雷達(dá)點(diǎn)云的密度比較低,進(jìn)而導(dǎo)致檢測出的3D包圍框精確率也不是很高.Liu等[7]將單個關(guān)鍵點(diǎn)估計與回歸三維變量相結(jié)合來預(yù)測每個對象的3D包圍框,提出了一種構(gòu)造三維包圍框的多步分離方法,這種方法不需要復(fù)雜的預(yù)/后處理.綜上所述,基于單目的3D目標(biāo)檢測雖然已經(jīng)取得一系列研究成果,但是3D包圍框檢測精確率還是不理想,而且實(shí)現(xiàn)過程復(fù)雜,同時在提取特征階段都是利用卷積網(wǎng)絡(luò)提取深層特征圖,雖然深層特征體現(xiàn)強(qiáng)語義特征,但特征的分辨率比較低,且特征圖上小物體的有效信息較少,特征細(xì)節(jié)不豐富.
本文在Deep3DBox[8]兩階段方法的基礎(chǔ)上,利用改進(jìn)的FPN(feature pyramid networks)特征融合、 ResNet殘差單元、全連接層組合成新網(wǎng)絡(luò),并在分割的KITTI驗(yàn)證集上進(jìn)行了實(shí)驗(yàn),結(jié)果表明此改進(jìn)的方法提高了車輛3D包圍框平均精確率(AP3D)這個性能指標(biāo).
處理基于單目的3D車輛檢測問題,輸入彩色圖像X∈RH×W×3,檢測輸出左上和右下的2D框坐標(biāo)A=(x1,y1,x2,y2)和3D框信息B=(h,w,l,x,y,z,θ).其中(h,w,l)代表車輛的高寬長,(x,y,z)代表車輛3D包圍框中心點(diǎn)坐標(biāo),θ代表車輛的偏航角.在眾多的車輛方向檢測應(yīng)用中,檢測方向角為偏航角,而把翻滾角和俯仰角假定為零.
在訓(xùn)練階段,訓(xùn)練集圖片通過改進(jìn)的FPN特征融合提取特征,然后通過三個分支分別回歸出車輛的三維尺寸、殘差角度(Δθ)和置信度.將整個方向范圍2π平均分為n個bins區(qū)間,這樣任何一個預(yù)測的局部角度(α)就至少屬于一個區(qū)間范圍.因此每個預(yù)測的局部角度(α)可以用區(qū)間(選取置信度最大的bins區(qū)間)的中心角度加殘差角度(Δθ)來表示.在回歸殘差角度(Δθ)時并沒有直接預(yù)測Δθ的絕對值,而是選擇回歸(sin(Δθ),cos(Δθ))二維向量,再由這個二維向量計算出實(shí)際Δθ的絕對值.在推理階段,利用驗(yàn)證集中所屬類別車輛的外接矩形的邊框真值坐標(biāo),在已經(jīng)訓(xùn)練好的模型中檢測出所屬類別車輛的三維尺寸和局部角度.結(jié)合車輛的外接矩形的邊框真值坐標(biāo)、車輛的偏航角、幾何約束(車輛的外接3D包圍框投影到圖片上,其投影區(qū)域的外接矩形應(yīng)與車輛在圖像上的二維邊框相互貼合)、相機(jī)內(nèi)參矩陣,計算得到所屬類別車輛3D包圍框的中心點(diǎn)坐標(biāo).車輛的偏航角θ=α+β,β為車輛所在位置與相機(jī)所在位置的連線構(gòu)成的射角.最后利用車輛的外接矩形的邊框坐標(biāo)、車輛3D包圍框的中心點(diǎn)坐標(biāo)、車輛的偏航角(θ)、相機(jī)內(nèi)參矩陣,復(fù)原繪制出車輛3D包圍框.本文網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示,車輛三維尺寸和方向示意圖如圖2所示.
為了增強(qiáng)語義性,傳統(tǒng)的物體檢測模型通常只在深度卷積網(wǎng)絡(luò)的最后一個特征圖上進(jìn)行后續(xù)操作,原方法中采用預(yù)訓(xùn)練的VGG network[9]在最后一層特征圖上操作且對應(yīng)的下采樣率比較大,造成小物體在特征圖上的有效信息較少,特征圖上的特征細(xì)節(jié)不豐富,進(jìn)而影響其檢測性能.2017年的特征金字塔(FPN)[10]方法融合了不同層的特征,使特征信息優(yōu)勢互補(bǔ).FPN表示的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖3所示.
在基于單目視覺的車輛檢測中,小尺度車輛占據(jù)了較大的比例,對于大尺度車輛,其語義信息出現(xiàn)在較深的特征圖中,小尺度車輛則出現(xiàn)在較淺的特征圖中,隨著網(wǎng)絡(luò)的加深,其細(xì)節(jié)信息可能會完全消失.因此,本文在FPN的基礎(chǔ)上提出多層融合的方法,其結(jié)構(gòu)如圖4所示.其中,C2特征圖尺寸為56×56×64,經(jīng)過第一個3×3卷積使其通道變?yōu)?56,同時2倍下采樣得到的特征圖尺寸為28×28×256;經(jīng)過第二個3×3卷積通道數(shù)保持不變,但是依然2倍下采樣得到的特征圖為14×14×256.C3特征圖尺寸為28×28×128,經(jīng)過3×3卷積使其通道變?yōu)?56,同時2倍下采樣得到的特征圖尺寸為14×14×256;FPN中的P4特征圖尺寸為14×14×256.這樣,3個不同信息層的特征圖尺寸都為14×14×256.通過通道拼接得到的特征圖尺寸為14×14×768,為了降低網(wǎng)絡(luò)參數(shù)量,使用1×1卷積使其通道數(shù)降低為512.最后經(jīng)過3×3卷積作平滑處理和ReLU作非線性激活,最終的特征圖尺寸為14×14×512,此融合方法稱為FPN-FU.研究發(fā)現(xiàn)應(yīng)用此改進(jìn)的方法將不同層信息進(jìn)行融合,把深層高語義信息傳遞到下一層,然后把底層和次底層的高分辨率的信息傳遞到上一層,優(yōu)勢互補(bǔ),獲得了高分辨率、強(qiáng)語義特征,特征細(xì)節(jié)更豐富.
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2 車輛三維尺寸和方向示意圖[8]
ResNet[11]有多個堆積的殘差單元組成,每個單元(見圖5a)表示如下:
(1)
其中:xl和xl+1為第l個殘差單元的輸入和輸出;F是殘差函數(shù);h(xl)=xl為一個恒等映射;f為ReLU激活函數(shù).ResNet的思想是引入一個深度殘差框架來解決梯度消失問題,即讓卷積網(wǎng)絡(luò)去學(xué)習(xí)殘差映射,而不是期望每一個堆疊的網(wǎng)絡(luò)都完整地擬合潛在的映射.
圖5a中高速通道信號和由殘差函數(shù)產(chǎn)生的殘差信號逐元素相加,在第二個卷積層之后,逐元素相加的操作在BN層和ReLU層之間進(jìn)行.然而原始的殘差單元有一個缺點(diǎn)是ReLU操作后的輸出和逐元素相加不匹配,這主要因?yàn)镽eLU激活函數(shù)的非負(fù)值輸出,導(dǎo)致它僅能提高高速通道信號,而限制了殘差函數(shù)的表達(dá)能力[12].為了解決這個問題,提出改進(jìn)的方法如圖5b所示,去掉ReLU激活函數(shù),替換高速通道的捷徑連接(h(xl)=xl)為h(xl)=ELU(xl),由于ELU輸出值的范圍為(-∞,+∞),殘差函數(shù)輸出值的范圍為(-∞,+∞),這樣兩者逐元素相加不通過ReLU激活函數(shù),可以優(yōu)化不匹配問題,且替換成這個連接之后不增加參數(shù)量和計算時間.此改進(jìn)方法稱為FPN-FU-ELU.在實(shí)驗(yàn)(應(yīng)用在FPN-FU的方法上)中應(yīng)用這種方法,實(shí)驗(yàn)結(jié)果證明改進(jìn)的方法可以優(yōu)化原始?xì)埐钅M中ReLU操作后的輸出和逐元素相加不匹配的問題,提高檢測性能.改進(jìn)方法表達(dá)式為
(2)
在深度卷積網(wǎng)絡(luò)中ELU[13]不僅能緩解梯度消失問題而且能加速學(xué)習(xí),這可以使深度卷積網(wǎng)絡(luò)得到較好的分類精度.ELU單元的表達(dá)式如式(3)所示,其表示的特性見圖6.
(3)
圖3 FPN網(wǎng)絡(luò)結(jié)構(gòu)圖
圖4 改進(jìn)的FPN特征融合
ReLU輸出的是非負(fù)值,它的激活值的均值大于零.ELU輸出有負(fù)值,它能推動激活均值更接近于零.當(dāng)激活值的均值非零時,就會對下一層造成一個偏置,導(dǎo)致下一層的激活單元有偏置偏移.相比ReLU,ELU可以得到負(fù)值,這讓單元激活值的均值可以更接近零,從而能減少偏置偏移,較少的偏置偏移能加速學(xué)習(xí).ELU有軟飽和特性,提高了對噪聲的魯棒性.
圖5 原始和改進(jìn)的殘差單元
圖6 ReLU和ELU(a=1)的特性比較
在圖1的網(wǎng)絡(luò)結(jié)構(gòu)中,原方法中的三個獨(dú)立分支都是兩層的全連接層,本方法中全部換成三層的全連接層.把檢測結(jié)果最好的方法(FPN-FU-ELU)應(yīng)用在兩層的全連接層進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)檢測性能不如三層全連接層,且對比三層與兩層全連接層的整個網(wǎng)絡(luò),發(fā)現(xiàn)三層的全連接層整個網(wǎng)絡(luò)的參數(shù)量和訓(xùn)練時間與兩層的全連接層整個網(wǎng)絡(luò)的參數(shù)量和訓(xùn)練時間幾乎相當(dāng).
本文的實(shí)驗(yàn)是在KITTI數(shù)據(jù)集上進(jìn)行的,KITTI提供了7 481張圖片用于訓(xùn)練,7 518張圖片用于測試.由于測試集數(shù)據(jù)沒有公開標(biāo)注,通用的做法是把7 481張訓(xùn)練集圖片分割為3 712張訓(xùn)練集和3 769張驗(yàn)證集[14],此驗(yàn)證集為Val1;另一種做法是分割成3 682張訓(xùn)練集和3 799張驗(yàn)證集[15],此驗(yàn)證集為Val2.Val1驗(yàn)證集中圖片標(biāo)號為000001.png,000002.png,000004.png等,Val2驗(yàn)證集中圖片標(biāo)號為000000.png,000002.png,000003.png等,相應(yīng)的訓(xùn)練集內(nèi)容也不一致,這樣可以在不同場景來驗(yàn)證模型.KITTI對所有的目標(biāo)物體按檢測的難易程度進(jìn)行分類,所有的物體分為三個等級:容易(easy),適中(moderate),困難(hard).這些等級根據(jù)每個物體被圖像邊界截斷比例和被遮擋情況決定,具體標(biāo)準(zhǔn)如表1所示.
表1 KITTI物體的分類標(biāo)準(zhǔn)
對于精確率(P)和召回率(R),其計算表達(dá)式如下:
(4)
(5)
其中:TP為正確檢測出車輛3D包圍框的三維尺寸和中心點(diǎn)坐標(biāo)位置與真實(shí)框的三維尺寸和中心點(diǎn)坐標(biāo)位置IoU(IoU計算的是 “預(yù)測的邊框”和“真實(shí)的邊框”的交集和并集的比值)≥0.7的樣本數(shù)量;FP則為IoU<0.7的樣本數(shù)量;FN為未檢測到真實(shí)框的樣本數(shù)量.
對于平均精確率AP,其計算表達(dá)式如下:
(6)
其中,ρinterp(r)表示在P-R曲線上,當(dāng)r′≥r時(召回率r的區(qū)間點(diǎn)為R11={0,0.1,0.2,…,1}),找出召回率r′對應(yīng)下的精確率P的最大值,AP則為這11個最大值的均值,則在本實(shí)驗(yàn)中利用AP計算的結(jié)果即為AP3D.
應(yīng)用本文提出的改進(jìn)網(wǎng)絡(luò)檢測到車輛3D包圍框仿真圖(見圖7)以及數(shù)據(jù)結(jié)果(見表2,表3)說明如下:AP3D表示車輛3D包圍框平均精確率;FC(3)表示利用改進(jìn)的3層全連接層;FC(2)表示利用原始的2層全連接層.
圖7 車輛3D包圍框仿真圖
(a)—改進(jìn)的FPN、全連接層在驗(yàn)證集Val2下的仿真圖; (b)—改進(jìn)的FPN、殘差單元、全連接層在驗(yàn)證集Val2下的仿真圖; (c)—改進(jìn)的FPN、殘差單元和原全連接層在驗(yàn)證集Val2下的仿真圖; (d)—改進(jìn)的FPN、殘差單元、全連接層在驗(yàn)證集Val1下的仿真圖.
表2 基于改進(jìn)方法的性能指標(biāo)
表3 基于原方法的性能指標(biāo)[5]
從表2可以看出,由改進(jìn)的FPN特征融合、ResNet殘差單元、全連接層組成的新網(wǎng)絡(luò)(其最終確認(rèn)使用改進(jìn)方法為FPN-FU-ELU+FC(3))獲得一個較好的檢測結(jié)果,優(yōu)于原方法下的性能指標(biāo).在驗(yàn)證集Val1下,調(diào)整學(xué)習(xí)率為0.000 1,0.000 01,0.000 001,選用0.000 01;在驗(yàn)證集Val2下調(diào)整學(xué)習(xí)率最終選用0.000 1.對于指標(biāo)(AP3D)原方法與本文方法都是在Val2驗(yàn)證集上實(shí)驗(yàn)的.由于Val1和Val2驗(yàn)證集內(nèi)容大部分不相同,因此可以驗(yàn)證模型在實(shí)際不同場景下的適應(yīng)能力.
本文提出的基于改進(jìn)的FPN特征融合、ResNet殘差單元、全連接層組成的新網(wǎng)絡(luò)在KITTI驗(yàn)證集上取得較好的檢測結(jié)果.改進(jìn)的FPN特征融合通過融合不同層的信息獲得強(qiáng)語義、高分辨率特征,使特征細(xì)節(jié)更豐富,改進(jìn)的ResNet殘差單元通過在殘差單元內(nèi)的高速通道上引入ELU激活函數(shù),且逐元素相加后去掉ReLU激活,優(yōu)化了原始?xì)埐顔卧M中ReLU操作后的輸出和逐元素相加不匹配問題,改進(jìn)的全連接層幾乎沒有增加參數(shù)量和訓(xùn)練時間,且同等條件下檢測性能優(yōu)于原始2層全連接層.