博客專欄

        EEPW首頁 > 博客 > Double-Head:重新思考檢測頭,提升精度

        Double-Head:重新思考檢測頭,提升精度

        發布人:CV研究院 時間:2022-11-20 來源:工程師 發布文章
        一、背景


        大多數兩階段目標檢測器共享一個用于分類和邊界框回歸的頭。兩種不同的頭結構被廣泛使用。Faster RCNN在單級特征圖(conv4)上使用卷積頭(conv5),而FPN在多級特征圖上使用全連接頭(2-fc)。然而,關于兩個任務(目標分類和定位),兩個頭結構之間缺乏理解。

        在今天分享中,研究者對全連接頭(fc-head)和卷積頭(conv-head)在兩個檢測任務上進行了徹底的比較,即目標分類和定位。我們發現這兩種不同的頭結構是互補的。fc-head更適合分類任務,因為它的分類分數與建議與其對應的真實框之間的交集(IoU)更相關。同時,conv-head提供了更準確的邊界框回歸。

        我們認為這是因為fc-head對空間敏感,候選的不同部分具有不同的參數,而conv-head的所有部分共享卷積核。為了驗證這一點,研究者檢查了兩個頭的輸出特征圖,并確認fc-head在空間上更加敏感。因此,fc-head更好地區分完整目標和部分目標的能力,而convhead更健壯地回歸整個對象(邊界框回歸)。

        圖片

        網絡的backbone可以使用常用的網絡,比如VGG、resnet,再加上FPN的結構,根據一個ROIPooling輸出7×7×256大小的feature map,一般的做法是將這個featuremap接上一個全連接分支,在全連接后面接上一個分支輸出預測的BoundingBox位置信息,一個分支輸出對應位置的類別信息。如上圖(a)所示。

        在得到7×7×256大小的feature map后,接上幾個卷積操作,再接上一個全連接,再在后面接上一個分支輸出預測的BoundingBox位置信息,一個分支輸出對應位置的類別信息。如上圖(b)所示。


        二、前言


        兩種頭結構(即全連接頭和卷積頭)已廣泛用于基于 R-CNN 的檢測器中,用于分類和定位任務。然而,人們對這兩種頭結構如何為這兩項任務工作缺乏了解。為了解決這個問題,研究者進行了徹底的分析并發現了一個有趣的事實,即兩個頭結構對兩個任務有相反的偏好。具體來說,全連接頭(fc-head)更適合分類任務,而卷積頭(conv-head)更適合定位任務。

        圖片

        此外,研究者檢查了兩個頭的輸出特征圖,發現fc-head比conv-head具有更高的空間敏感性。因此,fc-head具有更強的區分完整目標和部分目標的能力,但對回歸整個目標并不魯棒。基于這些發現,研究者提出了一種Double-Head方法,它有一個專注于分類的全連接頭和一個用于邊界框回歸的卷積頭。沒有花里胡哨,新的方法在MS COCO數據集上分別從具有ResNet-50和ResNet-101骨干網絡的特征金字塔網絡 (FPN) 基線獲得+3.5和+2.8AP。


        三、新框架詳細分析


        Data Processing for Analysis:

        為了進行公平的比較,研究者對預定義的候選而不RPN生成的候選對兩個頭進行分析,因為兩個檢測器具有不同的候選。預定義的候選包括圍繞不同大小的真實值框滑動窗口。對于每個真實對象,生成大約14,000個候選結果。這些候選與真實框之間的IoU(表示為proposal IoUs)逐漸從零(背景)變為一(真實框)。對于每個候選,兩個檢測器(fc-head和conv-head)生成分類分數和回歸邊界框。此過程適用于驗證集中的所有目標。

        圖片

        研究者將預定義的候選及其相應的GT之間的IoU統一分成20個bins,并相應地對這些候選進行分組。對于每組,計算分類分數的均值和標準差以及回歸框的IoU。上圖顯示了小型、中型和大型目標的結果。

        Loss Function:

        這里的損失函數與平時的一個head的計算是類似的,只是多一個分支而已,損失函數如下所示,是doublehead的損失函數加上rpn的損失函數:

        圖片

        上式中,ωfc和ωconv分別是doublehead中全連接和卷積的loss權重,Lfc、Lconv和Lrpn分別是doublehead中fc-head,conv-head,rpn的loss函數。具體采用哪種損失函數,這里同FPN,回歸采用smooth-l1,分類采用cross entropy loss。到這里基本就是doublehead的主要原理了,下面還有一些擴展

        擴展的doublehead結構:

        我們發現上面的原始doublehead中的每個分支都是關注自己的任務,比如卷積只關注回歸操作,全連接關注分類操作,而不同的head不只關注自己的任務對檢測器的性能還會有所提升。不只關注自己任務(Unfocused Task Supervision)的意思是,fc-head也會接受回歸任務的監督信息,conv-head則會接受分類任務的監督信息。如下圖所示。

        圖片

        擴展doublehead中的損失函數:

        在訓練過程中,fc-head不僅要受到本身擅長的分類信息監督還要受到回歸信息的監督,同理conv-head也要受到兩個信息的監督,先拿fc-head來說,損失函數如下所示:

        圖片

        conv-head,它的損失函數計算同fc-head:

        圖片

        擴展doublehead中的推斷:

        看上面的結構圖可以看出,分類結果是兩個head融合的結果,而回歸還是只采用卷積得到的結果。對于分類的融合方式如下式所示:

        圖片


        四、實驗結果


        圖片

         Evaluations of detectors with different head structures on COCO val2017


        圖片

        Single-Conv和Double-Conv的比較。左:分類分數的平均值和標準差。 右:回歸框和GT之間IoU的均值和標準差 Single-Conv的分類分數比Double-Conv高,而回歸結果是可比。

        圖片

        Comparison between Single-FC and Double-FC

        圖片

        AP over balance weights λfc and λconv

        圖片

        可視化

        圖片

        圖片


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 河西区| 兴化市| 南城县| 桐梓县| 松滋市| 南宫市| 青龙| 渑池县| 榆中县| 西乌珠穆沁旗| 崇州市| 延安市| 同心县| 瑞安市| 阳新县| 鲁山县| 常宁市| 鹤峰县| 华蓥市| 黄冈市| 岳西县| 牡丹江市| 阿拉善盟| 伊吾县| 平顶山市| 资阳市| 江永县| 临猗县| 开平市| 玛多县| 郁南县| 临夏县| 凭祥市| 呼图壁县| 建瓯市| 黄大仙区| 辽中县| 庆安县| 平阴县| 莆田市| 龙口市|