Double-Head:檢測頭上再創(chuàng )新,提升精度(附原論文下載)
論文地址:https://arxiv.org/pdf/1904.06493.pdf
兩種頭結構(即全連接頭和卷積頭)已廣泛用于基于 R-CNN 的檢測器中,用于分類(lèi)和定位任務(wù)。然而,人們對這兩種頭結構如何為這兩項任務(wù)工作缺乏了解。
一、背景
大多數兩階段目標檢測器共享一個(gè)用于分類(lèi)和邊界框回歸的頭。兩種不同的頭結構被廣泛使用。Faster RCNN在單級特征圖(conv4)上使用卷積頭(conv5),而FPN在多級特征圖上使用全連接頭(2-fc)。然而,關(guān)于兩個(gè)任務(wù)(目標分類(lèi)和定位),兩個(gè)頭結構之間缺乏理解。
在今天分享中,研究者對全連接頭(fc-head)和卷積頭(conv-head)在兩個(gè)檢測任務(wù)上進(jìn)行了徹底的比較,即目標分類(lèi)和定位。我們發(fā)現這兩種不同的頭結構是互補的。fc-head更適合分類(lèi)任務(wù),因為它的分類(lèi)分數與建議與其對應的真實(shí)框之間的交集(IoU)更相關(guān)。同時(shí),conv-head提供了更準確的邊界框回歸。
我們認為這是因為fc-head對空間敏感,候選的不同部分具有不同的參數,而conv-head的所有部分共享卷積核。為了驗證這一點(diǎn),研究者檢查了兩個(gè)頭的輸出特征圖,并確認fc-head在空間上更加敏感。因此,fc-head更好地區分完整目標和部分目標的能力,而convhead更健壯地回歸整個(gè)對象(邊界框回歸)。
網(wǎng)絡(luò )的backbone可以使用常用的網(wǎng)絡(luò ),比如VGG、resnet,再加上FPN的結構,根據一個(gè)ROIPooling輸出7×7×256大小的feature map,一般的做法是將這個(gè)featuremap接上一個(gè)全連接分支,在全連接后面接上一個(gè)分支輸出預測的BoundingBox位置信息,一個(gè)分支輸出對應位置的類(lèi)別信息。如上圖(a)所示。
在得到7×7×256大小的feature map后,接上幾個(gè)卷積操作,再接上一個(gè)全連接,再在后面接上一個(gè)分支輸出預測的BoundingBox位置信息,一個(gè)分支輸出對應位置的類(lèi)別信息。如上圖(b)所示。
二、前言
兩種頭結構(即全連接頭和卷積頭)已廣泛用于基于 R-CNN 的檢測器中,用于分類(lèi)和定位任務(wù)。然而,人們對這兩種頭結構如何為這兩項任務(wù)工作缺乏了解。為了解決這個(gè)問(wèn)題,研究者進(jìn)行了徹底的分析并發(fā)現了一個(gè)有趣的事實(shí),即兩個(gè)頭結構對兩個(gè)任務(wù)有相反的偏好。具體來(lái)說(shuō),全連接頭(fc-head)更適合分類(lèi)任務(wù),而卷積頭(conv-head)更適合定位任務(wù)。
此外,研究者檢查了兩個(gè)頭的輸出特征圖,發(fā)現fc-head比conv-head具有更高的空間敏感性。因此,fc-head具有更強的區分完整目標和部分目標的能力,但對回歸整個(gè)目標并不魯棒?;谶@些發(fā)現,研究者提出了一種Double-Head方法,它有一個(gè)專(zhuān)注于分類(lèi)的全連接頭和一個(gè)用于邊界框回歸的卷積頭。沒(méi)有花里胡哨,新的方法在MS COCO數據集上分別從具有ResNet-50和ResNet-101骨干網(wǎng)絡(luò )的特征金字塔網(wǎng)絡(luò ) (FPN) 基線(xiàn)獲得+3.5和+2.8AP。
三、新框架詳細分析
Data Processing for Analysis:
為了進(jìn)行公平的比較,研究者對預定義的候選而不RPN生成的候選對兩個(gè)頭進(jìn)行分析,因為兩個(gè)檢測器具有不同的候選。預定義的候選包括圍繞不同大小的真實(shí)值框滑動(dòng)窗口。對于每個(gè)真實(shí)對象,生成大約14,000個(gè)候選結果。這些候選與真實(shí)框之間的IoU(表示為proposal IoUs)逐漸從零(背景)變?yōu)橐唬ㄕ鎸?shí)框)。對于每個(gè)候選,兩個(gè)檢測器(fc-head和conv-head)生成分類(lèi)分數和回歸邊界框。此過(guò)程適用于驗證集中的所有目標。
研究者將預定義的候選及其相應的GT之間的IoU統一分成20個(gè)bins,并相應地對這些候選進(jìn)行分組。對于每組,計算分類(lèi)分數的均值和標準差以及回歸框的IoU。上圖顯示了小型、中型和大型目標的結果。
Loss Function:
這里的損失函數與平時(shí)的一個(gè)head的計算是類(lèi)似的,只是多一個(gè)分支而已,損失函數如下所示,是doublehead的損失函數加上rpn的損失函數:
上式中,ωfc和ωconv分別是doublehead中全連接和卷積的loss權重,Lfc、Lconv和Lrpn分別是doublehead中fc-head,conv-head,rpn的loss函數。具體采用哪種損失函數,這里同FPN,回歸采用smooth-l1,分類(lèi)采用cross entropy loss。到這里基本就是doublehead的主要原理了,下面還有一些擴展。
擴展的doublehead結構:
我們發(fā)現上面的原始doublehead中的每個(gè)分支都是關(guān)注自己的任務(wù),比如卷積只關(guān)注回歸操作,全連接關(guān)注分類(lèi)操作,而不同的head不只關(guān)注自己的任務(wù)對檢測器的性能還會(huì )有所提升。不只關(guān)注自己任務(wù)(Unfocused Task Supervision)的意思是,fc-head也會(huì )接受回歸任務(wù)的監督信息,conv-head則會(huì )接受分類(lèi)任務(wù)的監督信息。如下圖所示。
擴展doublehead中的損失函數:
在訓練過(guò)程中,fc-head不僅要受到本身擅長(cháng)的分類(lèi)信息監督還要受到回歸信息的監督,同理conv-head也要受到兩個(gè)信息的監督,先拿fc-head來(lái)說(shuō),損失函數如下所示:
conv-head,它的損失函數計算同fc-head:
擴展doublehead中的推斷:
看上面的結構圖可以看出,分類(lèi)結果是兩個(gè)head融合的結果,而回歸還是只采用卷積得到的結果。對于分類(lèi)的融合方式如下式所示:
四、實(shí)驗結果
Evaluations of detectors with different head structures on COCO val2017
Single-Conv和Double-Conv的比較。左:分類(lèi)分數的平均值和標準差。 右:回歸框和GT之間IoU的均值和標準差。 Single-Conv的分類(lèi)分數比Double-Conv高,而回歸結果是可比。
Comparison between Single-FC and Double-FC
AP over balance weights λfc and λconv
可視化
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。