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