段志偉 蘭時(shí)勇 趙啟軍
(四川大學(xué)視覺合成圖形圖像技術(shù)國防重點(diǎn)學(xué)科實(shí)驗(yàn)室 四川 成都 610064)
目標(biāo)檢測任務(wù)主要解決在不同尺度和有復(fù)雜背景的圖像中,找出感興趣的目標(biāo),并標(biāo)注它們的類別和定位信息。目標(biāo)檢測是很多高層計(jì)算機(jī)視覺任務(wù)的基礎(chǔ),包括場景內(nèi)容理解、實(shí)例分割等,并且在智能監(jiān)控、人臉檢測、無人駕駛等方面有著廣泛的應(yīng)用。
隨著卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)技術(shù)的發(fā)展,目標(biāo)檢測也從基于手工特征的傳統(tǒng)方法向深度學(xué)習(xí)方法轉(zhuǎn)變。傳統(tǒng)方法更加注重特征的提取,手工設(shè)計(jì)特征,例如HOG[1]、Harr[2]等特征,特征可解釋性較強(qiáng);深度學(xué)習(xí)方法采用多層卷積神經(jīng)網(wǎng)絡(luò)自學(xué)習(xí)特征,無需人工設(shè)計(jì)特征,例如RCNN[3]、SPP-Net[4]等框架。由于深度學(xué)習(xí)方法檢測精度高于傳統(tǒng)方法,所以目前主流的目標(biāo)檢測算法都基于深度學(xué)習(xí)。
深度學(xué)習(xí)目標(biāo)檢測方法目前分為兩大類:一類是兩階段方法,第一步通過區(qū)域建議網(wǎng)絡(luò)選出感興趣區(qū)域(ROI),第二步根據(jù)感興趣區(qū)域相應(yīng)的特征,推斷出目標(biāo)的類別和位置信息,如FastRCNN[5]、FasterRCNN[6]、MaskRCNN[7]等;另一類方法不使用區(qū)域建議網(wǎng)絡(luò),而是在分類網(wǎng)絡(luò)提取的特征圖上直接進(jìn)行目標(biāo)分類和邊框回歸,如yolo[8]、SSD[9]、DSSD[10]等。相比于第一類方法,直接預(yù)測邊框的方法檢測速度較快,但是檢測精度沒有前者高。
兩階段檢目標(biāo)測方法中使用的區(qū)域建議網(wǎng)絡(luò)存在以下問題:(1) 正樣本錨點(diǎn)框類內(nèi)差異?。?2) 使用的分類置信度與定位不匹配。正樣本錨點(diǎn)框類內(nèi)差異小導(dǎo)致在非極大值抑制階段篩去較多的建議框,用于檢測的區(qū)域變少。同時(shí),分類得分高低只能粗略地估計(jì)建議框的質(zhì)量。為解決以上問題,本文在FasterRCNN框架下提出一種基于IoU注意力機(jī)制的區(qū)域建議網(wǎng)絡(luò),利用IoU注意力模型,選出區(qū)分度高、定位準(zhǔn)確的建議框。
FasterRCNN是一個(gè)兩階段目標(biāo)檢測框架,其結(jié)構(gòu)如圖1所示。
圖1 Faster RCNN結(jié)構(gòu)圖
首先輸入圖片,利用VGG16[11]深度卷積分類網(wǎng)絡(luò)提取特征。接著將提取的特征送入RPN網(wǎng)絡(luò)選出感興趣區(qū)域。最后使用ROI池化層將每個(gè)建議框?qū)?yīng)的特征圖固定到同一個(gè)尺度,由全連接層計(jì)算,得到分類結(jié)果和定位信息。
RPN網(wǎng)絡(luò)首先會在卷積網(wǎng)絡(luò)層后得到的特征圖上生成大量錨點(diǎn)框,錨點(diǎn)框中心即為特征圖上的特征點(diǎn)。它通過滑動窗口的方式,為每一個(gè)特征點(diǎn)生成K個(gè)中心相同但尺度不同的錨點(diǎn)框。原文采用三種尺度(8,16,32)和三種長寬比(1∶1,1∶2,2∶1),即每個(gè)滑動位置都產(chǎn)生9個(gè)錨點(diǎn)框。然后根據(jù)輸入圖片的尺寸和卷積網(wǎng)絡(luò)下采樣比例,計(jì)算出錨點(diǎn)框在原圖像中的位置。接著使用兩個(gè)卷積層輸出各錨點(diǎn)框的分類置信度和邊框偏移量,并計(jì)算出偏移后的建議框。最后在非極大值抑制階段,使用建議框的分類得分作為其置信度,得到去重后得分Top-N的建議框。
RPN網(wǎng)絡(luò)本質(zhì)是一種注意力機(jī)制,通過分類置信度,告訴后面的檢測網(wǎng)絡(luò)應(yīng)該關(guān)注哪些區(qū)域。但是基于分類置信度的RPN網(wǎng)絡(luò)有以下幾個(gè)問題:
(1) 使用分類置信度選出的錨點(diǎn)框類內(nèi)差異小。分類置信度是由錨點(diǎn)框與真實(shí)框的IoU大小決定的,大于閾值預(yù)測為正樣本,小于閾值預(yù)測為負(fù)樣本。
(1)
式中:A、B為兩個(gè)區(qū)域的集合。
使用分類置信度會導(dǎo)致錨點(diǎn)框得分集中在1和0附近,錨點(diǎn)框顯著性不強(qiáng),并且由于RPN網(wǎng)絡(luò)對正樣本錨點(diǎn)框不再做額外區(qū)分,經(jīng)過非極大值抑制后,保留的建議框數(shù)目較少。
(2) 分類置信度忽略了邊框回歸的質(zhì)量。邊框回歸的準(zhǔn)確性不高,可解釋性較差。文獻(xiàn)[12]指出,如果對邊界框進(jìn)行多次迭代回歸,邊界框的分布會發(fā)生很大變化,其回歸效果會變差,即邊框回歸不一定將錨點(diǎn)框準(zhǔn)確地定位到真實(shí)框的位置,導(dǎo)致兩者的IoU變低。使用分類置信度無法評價(jià)邊框回歸的效果。建議框是由錨點(diǎn)框通過邊框回歸預(yù)測的四個(gè)回歸偏移量變換得到的,如圖2所示。
圖2 錨點(diǎn)框,建議框,真實(shí)框三者關(guān)系
錨點(diǎn)框與真實(shí)框之間偏移量的計(jì)算方法如下:
(2)
式中:x、y、w、h表示矩形框的中心點(diǎn)坐標(biāo)和寬高。真實(shí)框?yàn)?xg,yg,wg,hg),錨點(diǎn)框?yàn)?xa,ya,wa,ha)。
圖3中,cls為分類分?jǐn)?shù),gt為建議框與真實(shí)框的IoU。圖中兩個(gè)建議框與真實(shí)框的重疊度差異很小,但分類分?jǐn)?shù)相差很大。使用分類置信度只能粗略地估計(jì)錨點(diǎn)框與真實(shí)框的重疊程度,無法評價(jià)經(jīng)過偏移后建議框與真實(shí)框的重疊程度。
圖3 分類置信度與定位不匹配
為了解決以上問題,本文提出一種基于IoU的注意力機(jī)制。使用建議框與真實(shí)框的IoU分?jǐn)?shù)表示對每個(gè)錨點(diǎn)框的關(guān)注程度。
score(i,j,c)=max(IoU(proposali,j,c,gtk))
k=1,2,…,N
(3)
式中:N為每幅圖片真實(shí)框個(gè)數(shù);proposal為建議框;gt為真實(shí)框;score(i,j,c)為特征圖(i,j,c)位置對應(yīng)的建議框與所有真實(shí)框IoU最大的分?jǐn)?shù)。
由IoU的定義可知,IoU可以測量預(yù)測區(qū)域和真實(shí)區(qū)域的相似性。使用IoU注意力機(jī)制可以簡單地描述定位的準(zhǔn)確程度,在一定程度上解決分類置信度與定位不匹配的問題。使用IoU作為非極大值抑制的置信度,由于分?jǐn)?shù)不會集中在1和0附近,能增強(qiáng)建議框的顯著性,使得非極大值抑制后保留更多的建議框。
圖4是未修改的RPN網(wǎng)絡(luò),其中分類任務(wù)使用Softmax激活函數(shù)為每個(gè)錨點(diǎn)框分別預(yù)測正負(fù)樣本概率。改進(jìn)后的RPN網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,一共學(xué)習(xí)三個(gè)任務(wù),分別是錨點(diǎn)框分類任務(wù),錨點(diǎn)框偏移回歸任務(wù)和建議框IoU回歸任務(wù)。在推斷階段,不使用分類得分。分類任務(wù)使用Sigmoid激活函數(shù),只預(yù)測一個(gè)正樣本概率,如此可以減少一半分類模塊的參數(shù)量。在原本共享的特征層后新增一個(gè)分支,用于預(yù)測建議框與真實(shí)框的IoU分?jǐn)?shù)。預(yù)測IoU分?jǐn)?shù)前使用3×3×64卷積核降低特征通道維度。
圖4 RPN網(wǎng)絡(luò)
圖5 改進(jìn)的RPN網(wǎng)絡(luò)
分類任務(wù)使用二分類交叉熵?fù)p失:
Lcls(p,y)=-ylog(p)-(1-y)log(1-p)
(4)
式中:y為真實(shí)值;p為預(yù)測值。
建議框IoU回歸任務(wù)使用Huber損失函數(shù)[13]:
(5)
式中:y為真實(shí)值;y′為預(yù)測值。訓(xùn)練時(shí),δ取3。
改進(jìn)的RPN網(wǎng)絡(luò)總損失函數(shù)在原RPN網(wǎng)絡(luò)的基礎(chǔ)上,修改為:
(6)
式中:i為錨點(diǎn)的索引值;α取0.1,用于平衡三個(gè)損失的比例;p*、t*、iou*為真實(shí)值;p、t、iou為預(yù)測值;Ncls表示用于訓(xùn)練的正負(fù)樣本錨點(diǎn)框數(shù)量;Nreg、Niou為錨點(diǎn)框數(shù)量;δ為Huber損失函數(shù)參數(shù),訓(xùn)練時(shí)取3;th為訓(xùn)練IoU模塊的閾值,取0.5。
本文使用Tensorflow深度學(xué)習(xí)框架,操作系統(tǒng)為Ubantu16.04,GPU為GTX1060,CPU為i58400。實(shí)驗(yàn)使用PASCALVOC2007數(shù)據(jù)集,共20個(gè)類別。訓(xùn)練使用VOC2007數(shù)據(jù)集中trainval數(shù)據(jù),共5011幅,測試使用test數(shù)據(jù),共4952幅。
本文FasterRCNN網(wǎng)絡(luò)訓(xùn)練都使用近似聯(lián)合訓(xùn)練,而非文獻(xiàn)[6]中的四階段訓(xùn)練法,主要是為了實(shí)現(xiàn)端到端訓(xùn)練,減少訓(xùn)練的時(shí)間。文獻(xiàn)[6]也提到近似聯(lián)合訓(xùn)練可以取得與四階段訓(xùn)練法相近的實(shí)驗(yàn)結(jié)果。FasterRCNN網(wǎng)絡(luò)訓(xùn)練使用ImageNet預(yù)訓(xùn)練模型,batchsize為1,使用SGD優(yōu)化器,共迭代80000次,前50000學(xué)習(xí)率為0.001,后30000學(xué)習(xí)率為0.0001,動量為0.9。
改進(jìn)的RPN網(wǎng)絡(luò)訓(xùn)練使用和文獻(xiàn)[6]相似的設(shè)置。與真實(shí)框IoU分?jǐn)?shù)最大的錨點(diǎn)框標(biāo)記為正樣本。錨點(diǎn)框與任意一個(gè)真實(shí)框IoU≥0.7,也標(biāo)記為正樣本,IoU≤0.3標(biāo)記為負(fù)樣本,其他錨點(diǎn)框不用于訓(xùn)練。訓(xùn)練RPN網(wǎng)絡(luò)IoU模塊時(shí),本文選取和真實(shí)框IoU≥0.5的所有建議框用于訓(xùn)練。閾值測試結(jié)果如表1所示。
表1 IoU模塊不同訓(xùn)練閾值的檢測結(jié)果
首先在測試集4 952幅圖片上檢測,按分?jǐn)?shù)排序,取前2 000個(gè)建議框。每幅圖片的2 000個(gè)建議框在非極大值抑制后最多保留前300個(gè)建議框。然后分析在不同情況下,非極大值抑制后保留下來的建議框數(shù)量。
通過觀察表2可以發(fā)現(xiàn),相比于分類置信度,使用IoU置信度在非極大值抑制后,可以保留更多的建議框。說明使用IoU置信度可以增強(qiáng)建議框的顯著性,擴(kuò)大類內(nèi)差異,使得非極大值抑制階段不會淘汰太多的建議框。
表2 NMS后建議框數(shù)量
圖6為本文方法產(chǎn)生的建議框質(zhì)量分布。我們依照提取的建議框與真實(shí)框的IoU分布,選出5個(gè)區(qū)間。結(jié)合表2和圖6可以發(fā)現(xiàn),如果只使用IoU置信度,雖然非極大值抑制后可以保留更多的建議框,但建議框質(zhì)量不高,甚至低于使用分類置信度得到的建議框。這主要因?yàn)榉诸惾蝿?wù)對邊框回歸任務(wù)有一定的指導(dǎo)意義。若直接刪除分類模塊,則主干網(wǎng)絡(luò)學(xué)習(xí)到的特征語義信息變少,增加邊框回歸任務(wù)的難度,降低其預(yù)測偏移量的準(zhǔn)確性,并且會影響第二階段檢測網(wǎng)絡(luò)的精度。若加上分類任務(wù)輔助訓(xùn)練,使用IoU置信度得到的建議框的質(zhì)量有明顯提高,在各個(gè)區(qū)間上都超過分類置信度。
圖6 建議框與真實(shí)框IoU分布
圖7中依次為建議框分類分?jǐn)?shù)、建議框IoU分?jǐn)?shù)和真實(shí)IoU分?jǐn)?shù)。可以發(fā)現(xiàn),對于不同重疊度的建議框,分類分?jǐn)?shù)差別很小,而IoU分?jǐn)?shù)卻明顯不同。在為VOC2007測試集上,我們還測試了不同IoU閾值(VOC2007默認(rèn)0.5)下的mAP指標(biāo),如圖8所示??梢钥闯霰疚姆椒ㄔ诓煌撝迪耺AP都略高于Faster RCNN框架。
圖7 分類分?jǐn)?shù)與IoU分?jǐn)?shù)對比
圖8 在VOC2007測試集上mAP與IoU閾值對比
表3為在使用不同配置的RPN網(wǎng)絡(luò)下,F(xiàn)aster RCNN檢測精度和速度的對比。
表3 不同的RPN網(wǎng)絡(luò)及檢測結(jié)果
由表3可知,使用Sigmoid分類模塊相比于Softmax分類模塊,mAP略微下降,但檢測速度提高約5%。這說明精簡RPN網(wǎng)絡(luò)分類層,并不會降低太多RPN網(wǎng)絡(luò)的分類能力,但能明顯加快檢測速度。同時(shí)若刪除分類模塊,只使用IoU模塊和邊框回歸模塊,mAP會降低約2.5%。使用分類模塊輔助訓(xùn)練,并利用IoU模塊區(qū)分建議框,可以提高約1.1%的平均精確率。雖然多增加了一個(gè)學(xué)習(xí)任務(wù),但是通過精簡RPN分類模塊,相比于原來的Faster RCNN框架,檢測速度沒有額外增長。
本文針對區(qū)域建議網(wǎng)絡(luò)生成的錨點(diǎn)框類內(nèi)差異小和使用的分類置信度與定位不匹配的問題,提出一種基于IoU注意力機(jī)制的區(qū)域建議網(wǎng)絡(luò)。本文通過在RPN網(wǎng)絡(luò)中預(yù)測建議框與真實(shí)框的IoU,表示對每個(gè)建議框的感興趣程度,以此提高建議框的顯著性,使得非極大值抑制后能保留更多的建議框;使用分類任務(wù)輔助訓(xùn)練,提高建議框質(zhì)量;改進(jìn)分類損失函數(shù),減少RPN網(wǎng)絡(luò)分類模塊參數(shù),加快檢測速度。在Faster RCNN目標(biāo)檢測框架下,本文方法可以在保持檢測速度不增長的同時(shí),提升網(wǎng)絡(luò)的檢測效果。