FCOS: Fully Convolutional One-Stage Object Detection

Github:FCOS

摘要

提出了一種全卷積的one-stage目標(biāo)檢測(cè)方法,以逐像素點(diǎn)的方式解決目標(biāo)檢測(cè)問(wèn)題,類(lèi)似于語(yǔ)義分割。FCOS是anchor free的方法挖垛,F(xiàn)COS with ResNeXt-64x4d-101 在單模型單尺度的測(cè)試下,AP達(dá)到44.7%诚亚,超越了之前的one-stage方法晕换。


image.png

一、介紹

作者了分析anchor based方法的缺點(diǎn)站宗,主要有以下四點(diǎn):

  • 1闸准、檢測(cè)性能對(duì)于anchor的尺寸、數(shù)量梢灭、高寬比非常敏感夷家,通過(guò)改變這些超參數(shù)Retinanet在COCO benchmark上面提升了4%的AP。

  • 2敏释、泛化能力較差库快,即使是精心設(shè)計(jì)的anchor,在處理形狀變化比較大的場(chǎng)景時(shí)表現(xiàn)仍然不佳钥顽,特別是對(duì)于小對(duì)象來(lái)說(shuō)义屏。需要在新檢測(cè)任務(wù)上重新設(shè)計(jì)anchor。

  • 3蜂大、為了提高召回率闽铐,需要生成大量的anchor,在訓(xùn)練過(guò)程中奶浦,大部分的anchor都被標(biāo)記為負(fù)樣本兄墅,從而導(dǎo)致了樣本不平衡的問(wèn)題。

  • 4澳叉、在訓(xùn)練過(guò)程中涉及到大量復(fù)雜的運(yùn)算隙咸,如IOU,消耗額外的計(jì)算資源和內(nèi)存成洗。

作者認(rèn)為可以用語(yǔ)義分割(FCN)的框架來(lái)進(jìn)行目標(biāo)檢測(cè)五督,在之前的一些工作中基于FCN框架直接預(yù)測(cè)一個(gè)4D向量及類(lèi)別,4D向量描述了到四條邊的偏移量瓶殃。但是對(duì)于高度重疊邊界框會(huì)導(dǎo)致一個(gè)難以處理的歧義問(wèn)題充包,重疊部分到底屬于哪一類(lèi)。作者在后面的論文中通過(guò)FPN大大消除了這種模糊性碌燕。此外误证,作者發(fā)現(xiàn)該方法在離目標(biāo)較遠(yuǎn)的位置產(chǎn)生大量的的低質(zhì)量預(yù)測(cè)框。因此提出了一個(gè)center-ness分支去解決該問(wèn)題修壕。

作者總結(jié)了FCOS的優(yōu)點(diǎn)愈捅,主要有以下四點(diǎn):

  • 1、檢測(cè)任務(wù)可以和其他FCN-sovable的任務(wù)統(tǒng)一慈鸠,類(lèi)似于語(yǔ)義分割蓝谨,使其中的一些idea可以通用。

  • 2青团、檢測(cè)不需要anchor譬巫,大大減少了設(shè)計(jì)參數(shù)的數(shù)量。使得訓(xùn)練變得更加簡(jiǎn)單督笆。

  • 3芦昔、不需要在訓(xùn)練過(guò)程中有復(fù)雜的IOU計(jì)算,比anchor-based的方法節(jié)省了更多的內(nèi)存娃肿。

  • 4咕缎、沒(méi)有什么花里胡哨的,是目前state-of-the-art方法料扰。也可以替換兩階段方法的RPN網(wǎng)絡(luò)凭豪。

  • 5、只需要少量的修改晒杈,可以輕易的拓展到其他視覺(jué)任務(wù)嫂伞,例如實(shí)例分割和關(guān)鍵點(diǎn)檢測(cè)。

image.png

二拯钻、相關(guān)工作

1帖努、anchor-based

作者在這部分主要探討了anchor based方法的發(fā)展及其超參數(shù)是非常復(fù)雜的,其中提到了:

  • 通過(guò)IOU閾值進(jìn)行正負(fù)樣本的劃分说庭。

  • 之前提到的anchor的設(shè)計(jì)然磷,包括尺寸,寬高比等刊驴。

  • 檢測(cè)任務(wù)偏離了語(yǔ)義分割任務(wù)的簡(jiǎn)單的全卷積架構(gòu)姿搜。

2、anchor-free

作者介紹了yolov1和densebox方法捆憎。

三舅柜、FOCS

  • 1、通過(guò)FPN進(jìn)行多級(jí)預(yù)測(cè)提高召回率并解決重疊的邊界框引起的歧義問(wèn)題躲惰。

  • 2致份、通過(guò)center-ness分支,抑制低質(zhì)量的預(yù)測(cè)框础拨,大大提高了性能氮块。

1绍载、全卷積one-stage檢測(cè)器

image.png
  1. FCOS直接對(duì)feature map中每個(gè)位置對(duì)應(yīng)原圖的邊框都進(jìn)行回歸,換句話(huà)說(shuō)FCOS直接把每個(gè)位置都作為訓(xùn)練樣本滔蝉,這一點(diǎn)和FCN用于語(yǔ)義分割相同击儡。由feature map映射回input image的公式為:

  2. FOCS中,如果一個(gè)位置(x,y)落入任何ground truth中蝠引,就認(rèn)為它是一個(gè)正樣本阳谍,并將它標(biāo)記為對(duì)應(yīng)類(lèi)別。并且還需要標(biāo)記一個(gè)4D向量螃概,即(l, t, r, b)矫夯,該點(diǎn)到邊界框的偏移量。如果一個(gè)(x,y)落入多個(gè)ground truth中吊洼,則將它視作一個(gè)模糊樣本训貌,選擇面積較小的ground truth將其標(biāo)記。在下一節(jié)中融蹂,將利用多級(jí)預(yù)測(cè)去減少模糊樣本的數(shù)量旺订,從而不影響檢測(cè)性能。

  3. FOCS盡量使用多的前景(正樣本)參與訓(xùn)練回歸器超燃,而不是像anchor based的方法区拳,只考慮IOU足夠大的anchor作為正樣本。作者認(rèn)為這是FCOS表現(xiàn)優(yōu)于anchor based方法的原因之一意乓。

  4. 損失函數(shù):?是focal loss類(lèi)別損失樱调,?是交并 比損失。

L(\{p_{x,y},t_{x,y}\})= \frac{1}{N_{pos}}\sum L_{cls}(p_{x,y},c^{*}_{x,y}) + \frac{\lambda}{N_{pos}}\sum 1_{\{c^{*}_{x,y}>0\}}L_{reg}(t_{x,y},t^{*}_{x,y})

2届良、使用FPN進(jìn)行多級(jí)預(yù)測(cè)

作者使用FPN解決了兩個(gè)問(wèn)題笆凌。

  1. 基于錨框的檢測(cè)器由于大的步伐導(dǎo)致低召回率,需要通過(guò)降低正的錨框所需的交并比分?jǐn)?shù)來(lái)進(jìn)行補(bǔ)償:在FCOS算法中表明士葫,及時(shí)是大的步伐(stride)乞而,也可以獲取較好的召回率,甚至效果可以?xún)?yōu)于基于錨框的檢測(cè)器慢显。


    image.png
  2. 真實(shí)邊框中的重疊可能會(huì)在訓(xùn)練過(guò)程中造成難以處理的歧義爪模,這種模糊性導(dǎo)致基于fcn的檢測(cè)器性能下降:在FCOS中,采用多級(jí)預(yù)測(cè)方法可以有效地解決模糊問(wèn)題荚藻,與基于錨框的模糊檢測(cè)器相比屋灌,基于FCN的模糊檢測(cè)器具有更好的性能∮τ基于錨框的檢測(cè)器將不同尺寸的錨框分配到不同級(jí)別的特征層共郭,所以作者為了減少尺度差異大的物體重疊,引入?yún)?shù) m_{i}為特征層 i 的最大距離,如果一個(gè)location(x, y)滿(mǎn)足 max(l^{*}, t^{*},r^{*},b^{*}) > m_{i} 或者 max(l^{*}, t^{*},r^{*},b^{*}) < m_{i-1}除嘹,那么我們?cè)谶@個(gè)特征層就將其視為負(fù)樣本写半,不在進(jìn)行回歸。其中 m_{i} 分別設(shè)置為0尉咕,64污朽,128,256龙考,512和正無(wú)窮,正好可以形成5個(gè)區(qū)間矾睦,在5個(gè)層上進(jìn)行限制尺寸以減少重疊區(qū)域晦款。如果在一個(gè)層中出現(xiàn)重疊區(qū)域呢仍存在重疊區(qū)域,就直接簡(jiǎn)單的使用最小區(qū)域作為回歸目標(biāo)枚冗。作者還提到加入P3是[0,64]缓溅,P4是[64,128]存在重疊部分是不合理的,因此沒(méi)有使用固定的exp(x)赁温,而是加入了一個(gè)可訓(xùn)練的參數(shù) s_{i} 坛怪,exp(s_{i}x)自動(dòng)調(diào)整不同特征圖的的范圍,略微提升了一點(diǎn)檢測(cè)性能股囊。

    image.png

3袜匿、Center-ness

在FCOS中使用了多級(jí)預(yù)測(cè)后,還是和anchor based的方法存在性能差距稚疹,這是由于遠(yuǎn)離對(duì)象中心的位置產(chǎn)生了大量的低質(zhì)量預(yù)測(cè)框居灯。所以添加了一個(gè)簡(jiǎn)單的center-ness分支,與分類(lèi)分支并行内狗,來(lái)預(yù)測(cè)center-ness的位置怪嫌。center-ness(可以理解為一種具有度量作用的概念,在這里稱(chēng)之為"中心度")柳沙,中心度取值為0,1之間岩灭,使用交叉熵?fù)p失進(jìn)行訓(xùn)練。并把損失加入前面提到的損失函數(shù)中赂鲤。測(cè)試時(shí)噪径,將預(yù)測(cè)的中心度與相應(yīng)的分類(lèi)分?jǐn)?shù)相乘,計(jì)算最終得分(用于對(duì)檢測(cè)到的邊界框進(jìn)行排序)蛤袒。因此熄云,中心度可以降低遠(yuǎn)離對(duì)象中心的邊界框的權(quán)重。因此妙真,這些低質(zhì)量邊界框很可能被最終的非最大抑制(NMS)過(guò)程濾除缴允,從而顯著提高了檢測(cè)性能。
centerness^{*}=\sqrt{\frac{min(l^{*},r^{*})}{max(l^{*},r^{*})} \times \frac{min(t^{*},b^{*})}{max(t^{*},b^{*})}}

image.png

image.png

四、實(shí)驗(yàn)

使用COCO數(shù)據(jù)集练般,使用trainval135K(115K張圖片)進(jìn)行訓(xùn)練矗漾,使用minival(5K張圖片)進(jìn)行消融實(shí)驗(yàn),最后在test_dev(20K張圖片)上報(bào)告我們的結(jié)果薄料。

  • 訓(xùn)練細(xì)節(jié):
    • 1敞贡、使用RetinaNet相同的超參數(shù),采用resnet-50作為backbone摄职,使用ImageNet上的預(yù)訓(xùn)練權(quán)重進(jìn)行初始化誊役。
    • 2、使用SGD作為優(yōu)化器谷市,初始學(xué)習(xí)率為0.01蛔垢,Moment為0.9,batch size 16迫悠。
    • 3鹏漆、訓(xùn)練90K次,學(xué)習(xí)率在60K和80K時(shí)衰減10倍创泄。
    • 4艺玲、weight decay為0.0001。
    • 5鞠抑、短邊為800饭聚,長(zhǎng)邊不超過(guò)1333。
  • 推理細(xì)節(jié):
    • 使用RetinaNet相同的后處理超參數(shù)搁拙。
    • 使用和訓(xùn)練時(shí)一樣大小的圖像進(jìn)行推理若治。

1、消融實(shí)驗(yàn)

image.png
  • 使用FPN進(jìn)行多級(jí)預(yù)測(cè):主要解決了召回率低以及模糊樣本的問(wèn)題感混。主要參考本文前面列的兩張實(shí)驗(yàn)圖端幼,這里不再重復(fù)論述了。

  • 使用Center-ness:


    image.png
  • 和anchor based的方法對(duì)比:


    image.png

2弧满、和最新的一些方法對(duì)比

簡(jiǎn)而言之婆跑,F(xiàn)COS最好。

五庭呜、替換RPN

image.png

后面還有一些別的討論有興趣的可以自己看看論文滑进。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市募谎,隨后出現(xiàn)的幾起案子扶关,更是在濱河造成了極大的恐慌,老刑警劉巖数冬,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件节槐,死亡現(xiàn)場(chǎng)離奇詭異搀庶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)铜异,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)哥倔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人揍庄,你說(shuō)我怎么就攤上這事咆蒿。” “怎么了蚂子?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵沃测,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我食茎,道長(zhǎng)芽突,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任董瞻,我火速辦了婚禮,結(jié)果婚禮上田巴,老公的妹妹穿的比我還像新娘钠糊。我一直安慰自己,他們只是感情好壹哺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布抄伍。 她就那樣靜靜地躺著,像睡著了一般管宵。 火紅的嫁衣襯著肌膚如雪截珍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天箩朴,我揣著相機(jī)與錄音岗喉,去河邊找鬼。 笑死炸庞,一個(gè)胖子當(dāng)著我的面吹牛钱床,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播埠居,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼查牌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了滥壕?” 一聲冷哼從身側(cè)響起纸颜,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绎橘,沒(méi)想到半個(gè)月后胁孙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年浊洞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牵敷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡法希,死狀恐怖枷餐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苫亦,我是刑警寧澤毛肋,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站屋剑,受9級(jí)特大地震影響润匙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唉匾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一孕讳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巍膘,春花似錦厂财、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至肪康,卻和暖如春荚恶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磷支。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工谒撼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雾狈。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓嗤栓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親箍邮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茉帅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容