段志偉 蘭時勇 趙啟軍
(四川大學視覺合成圖形圖像技術國防重點學科實驗室 四川 成都 610064)
目標檢測任務主要解決在不同尺度和有復雜背景的圖像中,找出感興趣的目標,并標注它們的類別和定位信息。目標檢測是很多高層計算機視覺任務的基礎,包括場景內容理解、實例分割等,并且在智能監控、人臉檢測、無人駕駛等方面有著廣泛的應用。
隨著卷積神經網絡和深度學習技術的發展,目標檢測也從基于手工特征的傳統方法向深度學習方法轉變。傳統方法更加注重特征的提取,手工設計特征,例如HOG[1]、Harr[2]等特征,特征可解釋性較強;深度學習方法采用多層卷積神經網絡自學習特征,無需人工設計特征,例如RCNN[3]、SPP-Net[4]等框架。由于深度學習方法檢測精度高于傳統方法,所以目前主流的目標檢測算法都基于深度學習。
深度學習目標檢測方法目前分為兩大類:一類是兩階段方法,第一步通過區域建議網絡選出感興趣區域(ROI),第二步根據感興趣區域相應的特征,推斷出目標的類別和位置信息,如FastRCNN[5]、FasterRCNN[6]、MaskRCNN[7]等;另一類方法不使用區域建議網絡,而是在分類網絡提取的特征圖上直接進行目標分類和邊框回歸,如yolo[8]、SSD[9]、DSSD[10]等。相比于第一類方法,直接預測邊框的方法檢測速度較快,但是檢測精度沒有前者高。
兩階段檢目標測方法中使用的區域建議網絡存在以下問題:(1) 正樣本錨點框類內差異小;(2) 使用的分類置信度與定位不匹配。正樣本錨點框類內差異小導致在非極大值抑制階段篩去較多的建議框,用于檢測的區域變少。同時,分類得分高低只能粗略地估計建議框的質量。為解決以上問題,本文在FasterRCNN框架下提出一種基于IoU注意力機制的區域建議網絡,利用IoU注意力模型,選出區分度高、定位準確的建議框。
FasterRCNN是一個兩階段目標檢測框架,其結構如圖1所示。

圖1 Faster RCNN結構圖
首先輸入圖片,利用VGG16[11]深度卷積分類網絡提取特征。接著將提取的特征送入RPN網絡選出感興趣區域。最后使用ROI池化層將每個建議框對應的特征圖固定到同一個尺度,由全連接層計算,得到分類結果和定位信息。
RPN網絡首先會在卷積網絡層后得到的特征圖上生成大量錨點框,錨點框中心即為特征圖上的特征點。它通過滑動窗口的方式,為每一個特征點生成K個中心相同但尺度不同的錨點框。原文采用三種尺度(8,16,32)和三種長寬比(1∶1,1∶2,2∶1),即每個滑動位置都產生9個錨點框。然后根據輸入圖片的尺寸和卷積網絡下采樣比例,計算出錨點框在原圖像中的位置。接著使用兩個卷積層輸出各錨點框的分類置信度和邊框偏移量,并計算出偏移后的建議框。最后在非極大值抑制階段,使用建議框的分類得分作為其置信度,得到去重后得分Top-N的建議框。
RPN網絡本質是一種注意力機制,通過分類置信度,告訴后面的檢測網絡應該關注哪些區域。但是基于分類置信度的RPN網絡有以下幾個問題:
(1) 使用分類置信度選出的錨點框類內差異小。分類置信度是由錨點框與真實框的IoU大小決定的,大于閾值預測為正樣本,小于閾值預測為負樣本。
(1)
式中:A、B為兩個區域的集合。
使用分類置信度會導致錨點框得分集中在1和0附近,錨點框顯著性不強,并且由于RPN網絡對正樣本錨點框不再做額外區分,經過非極大值抑制后,保留的建議框數目較少。
(2) 分類置信度忽略了邊框回歸的質量。邊框回歸的準確性不高,可解釋性較差。文獻[12]指出,如果對邊界框進行多次迭代回歸,邊界框的分布會發生很大變化,其回歸效果會變差,即邊框回歸不一定將錨點框準確地定位到真實框的位置,導致兩者的IoU變低。使用分類置信度無法評價邊框回歸的效果。建議框是由錨點框通過邊框回歸預測的四個回歸偏移量變換得到的,如圖2所示。

圖2 錨點框,建議框,真實框三者關系
錨點框與真實框之間偏移量的計算方法如下:

(2)
式中:x、y、w、h表示矩形框的中心點坐標和寬高。真實框為(xg,yg,wg,hg),錨點框為(xa,ya,wa,ha)。
圖3中,cls為分類分數,gt為建議框與真實框的IoU。圖中兩個建議框與真實框的重疊度差異很小,但分類分數相差很大。使用分類置信度只能粗略地估計錨點框與真實框的重疊程度,無法評價經過偏移后建議框與真實框的重疊程度。

圖3 分類置信度與定位不匹配
為了解決以上問題,本文提出一種基于IoU的注意力機制。使用建議框與真實框的IoU分數表示對每個錨點框的關注程度。
score(i,j,c)=max(IoU(proposali,j,c,gtk))
k=1,2,…,N
(3)
式中:N為每幅圖片真實框個數;proposal為建議框;gt為真實框;score(i,j,c)為特征圖(i,j,c)位置對應的建議框與所有真實框IoU最大的分數。
由IoU的定義可知,IoU可以測量預測區域和真實區域的相似性。使用IoU注意力機制可以簡單地描述定位的準確程度,在一定程度上解決分類置信度與定位不匹配的問題。使用IoU作為非極大值抑制的置信度,由于分數不會集中在1和0附近,能增強建議框的顯著性,使得非極大值抑制后保留更多的建議框。
圖4是未修改的RPN網絡,其中分類任務使用Softmax激活函數為每個錨點框分別預測正負樣本概率。改進后的RPN網絡結構如圖5所示,一共學習三個任務,分別是錨點框分類任務,錨點框偏移回歸任務和建議框IoU回歸任務。在推斷階段,不使用分類得分。分類任務使用Sigmoid激活函數,只預測一個正樣本概率,如此可以減少一半分類模塊的參數量。在原本共享的特征層后新增一個分支,用于預測建議框與真實框的IoU分數。預測IoU分數前使用3×3×64卷積核降低特征通道維度。

圖4 RPN網絡

圖5 改進的RPN網絡
分類任務使用二分類交叉熵損失:
Lcls(p,y)=-ylog(p)-(1-y)log(1-p)
(4)
式中:y為真實值;p為預測值。
建議框IoU回歸任務使用Huber損失函數[13]:
(5)
式中:y為真實值;y′為預測值。訓練時,δ取3。
改進的RPN網絡總損失函數在原RPN網絡的基礎上,修改為:
(6)

式中:i為錨點的索引值;α取0.1,用于平衡三個損失的比例;p*、t*、iou*為真實值;p、t、iou為預測值;Ncls表示用于訓練的正負樣本錨點框數量;Nreg、Niou為錨點框數量;δ為Huber損失函數參數,訓練時取3;th為訓練IoU模塊的閾值,取0.5。
本文使用Tensorflow深度學習框架,操作系統為Ubantu16.04,GPU為GTX1060,CPU為i58400。實驗使用PASCALVOC2007數據集,共20個類別。訓練使用VOC2007數據集中trainval數據,共5011幅,測試使用test數據,共4952幅。
本文FasterRCNN網絡訓練都使用近似聯合訓練,而非文獻[6]中的四階段訓練法,主要是為了實現端到端訓練,減少訓練的時間。文獻[6]也提到近似聯合訓練可以取得與四階段訓練法相近的實驗結果。FasterRCNN網絡訓練使用ImageNet預訓練模型,batchsize為1,使用SGD優化器,共迭代80000次,前50000學習率為0.001,后30000學習率為0.0001,動量為0.9。
改進的RPN網絡訓練使用和文獻[6]相似的設置。與真實框IoU分數最大的錨點框標記為正樣本。錨點框與任意一個真實框IoU≥0.7,也標記為正樣本,IoU≤0.3標記為負樣本,其他錨點框不用于訓練。訓練RPN網絡IoU模塊時,本文選取和真實框IoU≥0.5的所有建議框用于訓練。閾值測試結果如表1所示。

表1 IoU模塊不同訓練閾值的檢測結果
首先在測試集4 952幅圖片上檢測,按分數排序,取前2 000個建議框。每幅圖片的2 000個建議框在非極大值抑制后最多保留前300個建議框。然后分析在不同情況下,非極大值抑制后保留下來的建議框數量。
通過觀察表2可以發現,相比于分類置信度,使用IoU置信度在非極大值抑制后,可以保留更多的建議框。說明使用IoU置信度可以增強建議框的顯著性,擴大類內差異,使得非極大值抑制階段不會淘汰太多的建議框。

表2 NMS后建議框數量
圖6為本文方法產生的建議框質量分布。我們依照提取的建議框與真實框的IoU分布,選出5個區間。結合表2和圖6可以發現,如果只使用IoU置信度,雖然非極大值抑制后可以保留更多的建議框,但建議框質量不高,甚至低于使用分類置信度得到的建議框。這主要因為分類任務對邊框回歸任務有一定的指導意義。若直接刪除分類模塊,則主干網絡學習到的特征語義信息變少,增加邊框回歸任務的難度,降低其預測偏移量的準確性,并且會影響第二階段檢測網絡的精度。若加上分類任務輔助訓練,使用IoU置信度得到的建議框的質量有明顯提高,在各個區間上都超過分類置信度。

圖6 建議框與真實框IoU分布
圖7中依次為建議框分類分數、建議框IoU分數和真實IoU分數。可以發現,對于不同重疊度的建議框,分類分數差別很小,而IoU分數卻明顯不同。在為VOC2007測試集上,我們還測試了不同IoU閾值(VOC2007默認0.5)下的mAP指標,如圖8所示。可以看出本文方法在不同閾值下mAP都略高于Faster RCNN框架。

圖7 分類分數與IoU分數對比

圖8 在VOC2007測試集上mAP與IoU閾值對比
表3為在使用不同配置的RPN網絡下,Faster RCNN檢測精度和速度的對比。

表3 不同的RPN網絡及檢測結果
由表3可知,使用Sigmoid分類模塊相比于Softmax分類模塊,mAP略微下降,但檢測速度提高約5%。這說明精簡RPN網絡分類層,并不會降低太多RPN網絡的分類能力,但能明顯加快檢測速度。同時若刪除分類模塊,只使用IoU模塊和邊框回歸模塊,mAP會降低約2.5%。使用分類模塊輔助訓練,并利用IoU模塊區分建議框,可以提高約1.1%的平均精確率。雖然多增加了一個學習任務,但是通過精簡RPN分類模塊,相比于原來的Faster RCNN框架,檢測速度沒有額外增長。
本文針對區域建議網絡生成的錨點框類內差異小和使用的分類置信度與定位不匹配的問題,提出一種基于IoU注意力機制的區域建議網絡。本文通過在RPN網絡中預測建議框與真實框的IoU,表示對每個建議框的感興趣程度,以此提高建議框的顯著性,使得非極大值抑制后能保留更多的建議框;使用分類任務輔助訓練,提高建議框質量;改進分類損失函數,減少RPN網絡分類模塊參數,加快檢測速度。在Faster RCNN目標檢測框架下,本文方法可以在保持檢測速度不增長的同時,提升網絡的檢測效果。