葛園園,許有疆,趙帥,韓亞洪
(1. 天津大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300350; 2. 中國汽車技術(shù)研究中心 數(shù)據(jù)資源中心,天津 300300)
近年來,隨著深度學(xué)習(xí)技術(shù)[1-8]的發(fā)展,自動駕駛引起了人們的廣泛關(guān)注。在自動駕駛場景中,交通標(biāo)志的檢測和識別起著非常重要的作用。精確的檢測對后續(xù)的識別、輔助定位和導(dǎo)航起著決定性的作用。在真實的拍攝場景中,交通標(biāo)志種類眾多,大小不一,存在著顏色差異,且受到天氣、光照、拍攝角度等因素的影響。這些復(fù)雜的因素使得交通標(biāo)志的檢測變得非常困難,尤其是圖片中存在大量小且密集的交通標(biāo)志。為了能夠更好地解決小物體的檢測,本文首先對已有的基于深度學(xué)習(xí)的目標(biāo)檢測做了研究和總結(jié),然后提出自己改進(jìn)的目標(biāo)檢測框架。
現(xiàn)有的基于深度學(xué)習(xí)的目標(biāo)檢測算法大致可以分為兩大類:一類是基于候選框提取的目標(biāo)檢測算法,另一類是基于回歸方法的目標(biāo)檢測算法。下面介紹這兩大類目標(biāo)檢測算法的代表性檢測框架。
R-CNN是Ross Girshick等[9]最早提出的用卷積神經(jīng)網(wǎng)絡(luò)做目標(biāo)檢測的框架,它是基于候選框提取的目標(biāo)檢測算法。首先通過selective search算法[10]提取候選框,然后用這些候選框微調(diào)卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練SVM(支持向量機(jī))分類器,進(jìn)行邊框回歸等。R-CNN在VOC2012數(shù)據(jù)集上mAP[11]達(dá)到了53.3%,和之前該數(shù)據(jù)集上最好的檢測結(jié)果相比提高了30%。但R-CNN也存在著很大的缺陷,浪費磁盤空間,訓(xùn)練時間長,檢測速度慢。
SPP-Net[12]在R-CNN的基礎(chǔ)上作了改進(jìn),提出了共享卷積層策略,采用空間金字塔下采樣(spatial pyramid pooling),將每個候選框映射后的特征歸一化到同樣尺度,輸入到后面的全連接層中。SPPNet的檢測速度比R-CNN快了24~102倍,檢測精度也得到了一定的提高。但SPP-Net的訓(xùn)練過程包括多個階段,比較慢。
Fast R-CNN[13]將R-CNN與SPP-Net的空間金字塔采樣融合到一起,提出了候選框下采樣層(ROI pooling layer),直接將映射后的候選框下采樣到7×7大小的特征圖輸入到后面的全連接層中。Fast R-CNN還提出了多任務(wù)損失函數(shù),直接對候選框進(jìn)行分類和邊框回歸,檢測速度得到了很大提升,使得候選框提取成為限制目標(biāo)檢測速度的一個計算瓶頸。Faster R-CNN[14]為了解決候選框提取問題,提出了RPN(region proposal network)網(wǎng)絡(luò)來提取候選框,將RPN網(wǎng)絡(luò)和Fast R-CNN網(wǎng)絡(luò)結(jié)合到了一起。Faster R-CNN的檢測精度和速度得到了很大的提高。
R-FCN[15]在Faster R-CNN的基礎(chǔ)上作了進(jìn)一步的改進(jìn),提出位置敏感權(quán)重圖(position-sensitive score maps)來解決圖像分類時的旋轉(zhuǎn)不變性和物體檢測上位置的旋轉(zhuǎn)可變性之間的矛盾。R-FCN的位置敏感權(quán)重圖策略使得網(wǎng)絡(luò)變成了一個全卷積網(wǎng)絡(luò),不再有全連接層,進(jìn)一步加快了目標(biāo)檢測的速度和準(zhǔn)確率。
以上目標(biāo)檢測算法都是深度學(xué)習(xí)方面基于候選框的目標(biāo)檢測框架。另一類基于回歸方法的目標(biāo)檢測框架的典型代表是YOLO[16]和SSD[17],它們不必先提取候選框,再進(jìn)行候選框的分類和位置調(diào)整,而是直接對圖像進(jìn)行劃分網(wǎng)格,在每個網(wǎng)格對應(yīng)位置回歸出目標(biāo)位置和類別信息,它們網(wǎng)絡(luò)訓(xùn)練的整個過程都是端到端的,檢測速度非???,可以達(dá)到實時要求。
對于自動駕駛場景下小且密集的交通標(biāo)志檢測來說,上述兩大類物體檢測框架都存在著一定的缺陷:基于候選框的檢測框架相比基于回歸方法的檢測框架來說,檢測精度會高很多,但速度比較慢;基于回歸方法的檢測框架雖然檢測速度比較快,但由于是對圖像進(jìn)行暴力網(wǎng)格劃分,對于物體的檢測精度比較差,尤其是對于小且密集物體的檢測,效果非常差。因此,為了保證自動駕駛場景中小且密集的交通標(biāo)志的檢測精度,本文提出了對基于候選框目標(biāo)檢測框架中速度最快的R-FCN[15]框架進(jìn)行改進(jìn),進(jìn)一步保證了小且密集的交通標(biāo)志的檢測精度。
R-FCN[15]目標(biāo)檢測框架分別以ResNet-50、Res-Net-101[18]作為提取特征的主體網(wǎng)絡(luò),在PASCAL VOC[11]數(shù)據(jù)集上取得了不錯的檢測效果,但是交通標(biāo)志檢測數(shù)據(jù)集中存在很多較小的物體,卷積網(wǎng)絡(luò)層數(shù)越深,最后一層卷積特征圖上的特征點對應(yīng)于原圖的感受野越大,對小物體的位置定位比較困難,檢測效果比較差。因此,本文采用層數(shù)不是很深的VGG16[19]網(wǎng)絡(luò)作為R-FCN的主體網(wǎng)絡(luò),并在此基礎(chǔ)上針對小物體的檢測作進(jìn)一步的改進(jìn)。本文提出的物體檢測框架主要是對R-FCN檢測框架的主體網(wǎng)絡(luò)進(jìn)行改進(jìn),網(wǎng)絡(luò)的訓(xùn)練過程和R-FCN中的訓(xùn)練過程保持一致。圖1是本文提出的基于改進(jìn)版VGG16的R-FCN小物體檢測框架。該檢測框架主要是對VGG16作了兩個改進(jìn),第一個改進(jìn)是將VGG16的卷積層conv5_1、conv5_2、conv5_3去掉,同時去掉conv4_3后面的pool4層;第二個改進(jìn)是特征拼層,將conv4_1、conv4_2、conv4_3通過L2 normalization[20]標(biāo)準(zhǔn)化,然后再拼接到一起,稱之為組合特征,然后輸入到后續(xù)網(wǎng)絡(luò)中。RPN網(wǎng)絡(luò)在標(biāo)準(zhǔn)化后的卷積conv4_3上提取候選框,將候選框和網(wǎng)絡(luò)最后一組卷積層特征輸入到PSROIPooling層來做后續(xù)的物體分類和邊框回歸。
本文提出的物體檢測框架主要針對交通標(biāo)志數(shù)據(jù)集中的小物體的檢測。網(wǎng)絡(luò)層數(shù)越深,最后一層卷積層的感受野越大,會破壞小物體在特征圖上的位置信息。R-FCN[15]物體檢測框架使用ResNet-50、ResNet-101作為主體網(wǎng)絡(luò)時,可以很好地檢測到較大的物體,但是對于存在大量密集的小物體的數(shù)據(jù)集來說,檢測結(jié)果沒有淺層的VGG16效果好。因此,本文采用VGG16[19]作為R-FCN的主體網(wǎng)絡(luò),VGG16從conv1_1到conv5_3總共有13個卷積層,每一層的卷積核大小、移動步長都是相同的,這13個卷積層可以分為5組,第一、二組分別有2個卷積層,第三、四、五組分別有3個卷積層,每一組的特征圖大小相同,前4組特征每組后面都接了1個步長為2的下采樣層。本文提出的兩個關(guān)鍵改進(jìn)點都是對VGG16網(wǎng)絡(luò)進(jìn)行改進(jìn),下面對這兩個關(guān)鍵改進(jìn)點作具體說明。
圖1 基于改進(jìn)版VGG16的R-FCN小物體檢測框架Fig. 1 Small-size object detection architecture based on modified VGG16’s R-FCN
VGG16作為R-FCN的主體網(wǎng)絡(luò),在卷積conv5_3上通過RPN網(wǎng)絡(luò)提取候選框,從conv1_1到conv5_3,中間經(jīng)過了4次步長為2的下采樣層,原始圖像到達(dá)conv5_3層邊長縮小了16倍,conv5_3特征圖上的一個特征點相當(dāng)于對應(yīng)原圖的16×16個像素點。當(dāng)RPN網(wǎng)絡(luò)從conv5_3上產(chǎn)生候選框時,有邊長小于16個像素的候選框被過濾掉了,因為邊長小于16個像素的候選框無法映射到從conv5_3上卷積得到的后續(xù)特征圖上,這就造成許多邊長小于16個像素的小物體無法被檢測到,或者檢測不準(zhǔn)確。針對這一問題,本文提出減小特征圖縮放倍數(shù)的策略,也就是說,去掉卷積conv5_1、conv5_2、conv5_3和pool4層,在conv4_3層上通過RPN產(chǎn)生候選框,再映射到從conv4_3上得到的后續(xù)特征圖上。這樣,原圖到conv4_3邊長縮小了8倍,邊長在8~16范圍內(nèi)的小物體可以得到更好的檢測效果。
RPN網(wǎng)絡(luò)產(chǎn)生的邊長較小的候選框和最后一層卷積特征作映射后得到的特征尺度特別小,只用conv4_3層輸入到后續(xù)的網(wǎng)絡(luò)中進(jìn)行分類和邊框回歸特征不充足,對于小物體位置定位來說檢測效果不是很好,還有待提升。因此,為了能夠豐富小物體的特征信息,使得對于小物體的位置定位更加精確,提出了特征拼層的策略。首先對卷積conv4_1、conv4_2、conv4_3 進(jìn)行 L2 normalization[12]。假設(shè)用向量 X =(x1,x2,···,xd)來表示一個輸入特征層的所有元素,對該特征圖進(jìn)行如下標(biāo)準(zhǔn)化:式中 Xb表示標(biāo)準(zhǔn)化后的特征圖向量。標(biāo)準(zhǔn)化后的特征向量元素值比較小,使得網(wǎng)絡(luò)訓(xùn)練變得比較困難,為了更好地訓(xùn)練網(wǎng)絡(luò),通常會對標(biāo)準(zhǔn)化后的元素通過一個比例因子 γi進(jìn)行縮放,假設(shè)變化后的元素為 yi,則
最后得到變化后的特征圖向量 Y =(y1,y2,···,yd)。在網(wǎng)絡(luò)訓(xùn)練過程中,假設(shè)l是需要優(yōu)化的損失函數(shù),則關(guān)于縮放因子 γi和輸入特征圖的更新規(guī)則如下:
使用如上標(biāo)準(zhǔn)化方式對VGG16同組的卷積層conv4_1、conv4_2、conv4_3進(jìn)行標(biāo)準(zhǔn)化,然后將它們拼接起來,稱之為組合特征,再輸入到后續(xù)的網(wǎng)絡(luò)中訓(xùn)練模型,然后進(jìn)行分類和邊框回歸,這一改進(jìn)能夠檢測到更多的小物體,小物體定位精確度也得到了一定的提升。
本文實驗采用的交通標(biāo)志檢測數(shù)據(jù)集是由馭勢科技提供的。數(shù)據(jù)集中的圖片都是在真實行車環(huán)境中拍攝的,總共有10 000張分辨率為1 280×720的圖片。將該數(shù)據(jù)集劃分為3部分,4 000張用來作訓(xùn)練集,1 000張用來作驗證集,5 000張用來作測試集,本文所有實驗都是以VGG16在ImageNet上訓(xùn)練好的模型作為基礎(chǔ),在此基礎(chǔ)上進(jìn)行微調(diào),每組實驗迭代70 000次,每10 000次保存一個模型,挑選驗證集上最好的模型在測試集上進(jìn)行測試。圖2是交通標(biāo)志數(shù)據(jù)集中的一些樣本圖,圖(b)是圖(a)中矩形框區(qū)域的放大圖,圖(d)是圖(c)中矩形框區(qū)域的放大圖,可以看到圖片中存在大量較小的交通標(biāo)志。圖3是訓(xùn)練集中交通標(biāo)志尺寸分布圖。橫軸是訓(xùn)練集中交通標(biāo)志短邊的范圍,縱軸是某個范圍內(nèi)的交通標(biāo)志數(shù)量占訓(xùn)練集中所有交通標(biāo)志的比例。從圖3中可以看出有很大一部分交通標(biāo)志短邊范圍在8~16個像素之間,如果在VGG16網(wǎng)絡(luò)的卷積conv5_3上產(chǎn)生候選框,從原圖到conv5_3邊長縮小了16倍,這部分候選框?qū)⒑茈y被檢測到。因此,本文通過降低特征圖縮小倍數(shù),采用conv4_3層的特征來產(chǎn)生候選框,這樣短邊范圍在8~16這一部分的交通標(biāo)志將能夠被更好地檢測出來。
圖2 交通標(biāo)志數(shù)據(jù)集樣本圖Fig. 2 Sample images from traffic sign dataset
圖3 交通標(biāo)志尺寸分布圖Fig. 3 Traffic sign’s size distribution
本文實驗采用mAP(mean average precision)[11]來衡量最終的測試結(jié)果,mAP值越大,表明檢測出來的結(jié)果越準(zhǔn)確。表1是以不同深度的卷積神經(jīng)網(wǎng)絡(luò)作為R-FCN的主體網(wǎng)絡(luò)的測試結(jié)果。從mAP值中可以看出,主體網(wǎng)絡(luò)的層數(shù)越深,小物體的檢測效果越不好。這是因為神經(jīng)網(wǎng)絡(luò)層數(shù)越深,最后一層的特征圖感受野越大,候選框在映射到最后一層特征圖時對于小物體的定位不是很準(zhǔn)確。這也是采用VGG16作為R-FCN的主體網(wǎng)絡(luò)來解決小物體檢測的原因。
表1 基于不同神經(jīng)網(wǎng)絡(luò)R-FCN交通標(biāo)志檢測結(jié)果Table 1 Results based on different CNN’s R-FCN
表2是采用不同改進(jìn)版的VGG16作為R-FCN的主體網(wǎng)絡(luò),分別將conv3_3、conv4_3、conv5_3輸入到RPN網(wǎng)絡(luò)來提取候選框,并將該層的特征輸入到后續(xù)的R-FCN網(wǎng)絡(luò)中,RPN網(wǎng)絡(luò)提取的候選框映射到最后一個卷積層,然后再進(jìn)行分類和邊框回歸。從表2中可以看出,在R-FCN物體檢測框架上,當(dāng)降低特征圖縮放倍數(shù),用VGG16的卷積conv4_3層特征提取候選框時,測試集上檢測結(jié)果從0.537提升到0.637,提高了10個百分點;用VGG16的卷積conv3_3層特征提取候選框時,檢測結(jié)果從0.537提升到0.596,提高了約6%,沒有在卷積conv4_3層上提取候選框的檢測效果好。這是因為卷積conv3_3層的特征在網(wǎng)絡(luò)中處于較淺層特征,抽象程度不夠,不利于候選框分類。
表3 基于卷積conv4_1、conv4_2、conv4_3不同組合特征的檢測結(jié)果Table 3 Results based on conv4_1, conv4_2, and conv4_3 with different aggregated features
表2 基于VGG16網(wǎng)絡(luò)不同層的R-FCN交通標(biāo)志檢測結(jié)果Table 2 Results based on VGG16’s different-layer R-FCN
表3是采用VGG16作為R-FCN的主體網(wǎng)絡(luò),并對主體網(wǎng)絡(luò)VGG16進(jìn)行修改,對conv4_1、conv4_2、conv4_3分別進(jìn)行不同的特征組合,并將組合特征輸入到R-FCN的后續(xù)網(wǎng)絡(luò)中??梢钥吹?,基本上任意兩層特征拼層輸入到R-FCN的后續(xù)網(wǎng)絡(luò)中效果都有提升,特別是將3層特征拼接到一起輸入到R-FCN的后續(xù)網(wǎng)絡(luò)中效果是最好的,達(dá)到了65%。
圖4展示了本文提出的檢測框架檢測出來的交通標(biāo)志與數(shù)據(jù)集提供的真實目標(biāo)框作比較,圖(a)、(c)中的邊框是數(shù)據(jù)集給出的真實目標(biāo)框,圖(b)、(d)中的邊框是使用本文的檢測框架檢測出來的結(jié)果??梢钥闯鑫覀兊臋z測框架檢測出來的結(jié)果更好,可以檢測到交通標(biāo)志數(shù)據(jù)集中真實目標(biāo)框漏標(biāo)的交通標(biāo)志,數(shù)據(jù)集中交通標(biāo)志的漏標(biāo)情況降低了本文實驗的結(jié)果mAP[11]。
圖4 檢測結(jié)果與ground truth對比Fig. 4 Comparison between the detection results and the ground truth
圖5 是從兩張原始圖中裁剪出來的部分區(qū)域,圖(a)、(b)、(c)分別是使用不同模型的檢測結(jié)果,圖(a)是使用卷積conv5_3得到的檢測結(jié)果,圖(b)是使用卷積conv4_3得到的檢測結(jié)果,圖(c)是將卷積conv4_1、conv4_2、conv4_3組合層特征輸入到后續(xù)網(wǎng)絡(luò)得到的檢測結(jié)果,可以看出兩個關(guān)鍵改進(jìn)點結(jié)合起來對于小物體的檢測效果是最好的。
本文提出了針對小物體檢測的物體檢測框架。用VGG16作為R-FCN的主體網(wǎng)絡(luò),并對VGG16網(wǎng)絡(luò)進(jìn)行改進(jìn)。改進(jìn)后的檢測框架對小物體的檢測有了很大的提升,在馭勢科技提供的存在大量小交通標(biāo)志的數(shù)據(jù)集上取得了很好的效果。交通標(biāo)志的精確檢測對自動駕駛起著非常重要的作用,未來自動駕駛的真正到來時代離不開交通標(biāo)志的精確檢測和分類。本文只是將圖片中的所有交通標(biāo)志檢測出來,并沒有對這些交通標(biāo)志進(jìn)行分類,未來將會繼續(xù)研究如何更精確地檢測到較小的交通標(biāo)志,并對檢測出來的交通標(biāo)志進(jìn)行分類。
圖5 使用不同層及組合層檢測結(jié)果Fig. 5 Using different layers and aggregated-layer-detection results