??本文探討了目標(biāo)檢測中一直存在的一個問題,網(wǎng)絡(luò)的結(jié)構(gòu)和分類、分割有很大的不同,整個流程太復(fù)雜,主要原因是anchor的使用,我們知道,從RCNN開始使用selective生成密集box,到faster rcnn使用RPN模塊來生成密集anchor,這種方法在目標(biāo)檢測中取得了很大的成功。但是這種方式背離了全卷積這種優(yōu)雅的結(jié)構(gòu)方式,因此作者這里提出了一種不依賴anchor的方法。
一、Introduction
??基于anchor檢測方法的缺點(diǎn):(1)檢測的效果對anchor的大小、寬高比和數(shù)量很敏感。(2)由于anchor的大小和寬高比是固定的,因此網(wǎng)絡(luò)對和設(shè)定的anchor相差較大的目標(biāo)效果不好,特別是小目標(biāo)。(3)由于anchor的數(shù)量密集,但是大部分是negative的,這會造成訓(xùn)練樣本的不均衡,要靠人工篩選限定的方式來解決這個問題。(4)在訓(xùn)練過程中需要大量計算IoU,這需要的計算量很大。
二、Related work
??Yolo v1直接使用回歸的方式去計算目標(biāo)框,我們知道這種方法的漏檢率比較高,特別是對于小目標(biāo),根本原因是網(wǎng)絡(luò)只是利用了目標(biāo)框的中心點(diǎn)所在的格子來檢測,而這個數(shù)量是比較少的,對于特征圖沒有充分的利用。
??CornerNet是基于關(guān)鍵點(diǎn)的檢測,不僅計算量大而且對現(xiàn)有的網(wǎng)絡(luò)架構(gòu)不適合。
三、FCOS
??1、:網(wǎng)絡(luò)的第i層特征圖,s代表stride步長。
代表gt_box。
、
分別代表左上角和右下角的坐標(biāo)。
:物體類別。
??對于中的任意一個點(diǎn)
,其在原圖上對應(yīng)的組標(biāo)為
,如果
落在gt_box內(nèi)部,則其為positive,我們計算
距離gt_box四條邊的距離,分別為
,回歸的目標(biāo)為
,具體如下圖左邊部分。

??2、網(wǎng)絡(luò)輸出
??(1)分類分支:,這里不是直接進(jìn)行c分類,而是改為c個二分類。
??(2)回歸分支:,因?yàn)槲覀冎阑貧w的目標(biāo)肯定是正的,因此我們用指數(shù)函數(shù)exp(x)作用在網(wǎng)絡(luò)的輸出結(jié)果上。我們知道exp函數(shù)的取值范圍是
,因此這種做法是合理的。
??(3)在分類分支旁邊新增要給center-ness分支,迎來抑制距離gt_box中心較遠(yuǎn)的,維度為:
??(4)借鑒focal loss中的做法,在每個分支的head中增加4個卷積層,而且這個head在FPN的結(jié)構(gòu)中是共享的。
??3、loss

??其中是focal loss,
是IoU loss,這里可以考慮改用GIoU loss或者DIoU loss。
四、FPN結(jié)構(gòu)
??基于anchor的方法,是在不同的特征圖中使用不同大小的anchor。我們這里的做法是直接使用限制回歸的范圍,在不同特征圖中回歸不同大小的目標(biāo),原則就是在低層中檢測小目標(biāo),在高層中檢測大目標(biāo)。如果或者
,則設(shè)置為negative。其中,
。
??基于這個原則,不同大小的目標(biāo)會被分配到不同的層,如果一個location屬于兩個目標(biāo)(即重疊目標(biāo)),而且這個兩個目標(biāo)被分配在了同一個特征圖,那么將其選擇為小物體。
??在上面的介紹中,我們知道,不同大小的特征圖共享head,這種方法看起來是不合理的,所以我們這里對標(biāo)準(zhǔn)的exp函數(shù)進(jìn)行修改,用
代替,這里
是一個可訓(xùn)練的變量以適用于不同大小的特征層
。
五、center_ness for FCOS
??cnter-ness描繪的是和gt_box中心點(diǎn)的距離,需要回歸的目標(biāo)為:

??這里使用的損失函數(shù)是BCE loss,而且最終的loss需要加上這里的BCE loss。
??注:(1)在inference階段,目標(biāo)得分=center-ness * 分類得分。
??(2)作者的試驗(yàn)中,center-ness結(jié)構(gòu)放在回歸分支結(jié)果會更好。