目標檢測之FCOS

2021-10-09 00:19:03 字數 2873 閱讀 6871

fcos: fully convolutional one-stage object detection

去掉了anchor做檢測,也就是常說去掉了anchor做檢測,也就是常說anchor free,這是最近一段時間目標檢測領域比較活躍的方向,比如eccv2018上的cornernet

anhcor的引入對目標檢測演算法的效果提公升幫助很大,這也是為什麼最近幾年流行的目標檢測演算法基本上都是基於anchor來**目標框位置的。但是顯然anchor的引入也帶來一些問題,最主要的有2點:

fcos的核心思想就是**輸入影象中每個點所屬的目標類別和目標框

整體上是類似fpn的網路結構,最後基於5個融合後的特徵層做**,重點在於**層,也就是虛線框裡面的內容。因為這篇**主要是和retinanet做對比,所以在網路結構設計上也盡可能和retinanet貼近,因此在最後3個輸出層之前的全部網路結構基本上和retinanet(包含fpn)一樣

fcos的回歸部分**4個值(l, t, r, b),分別表示目標框內某個點離框的左邊、上邊、右邊、下邊的距離,如figure1的左圖所示。假設一張影象上的乙個標註好的目標框bi的座標和類別用如下式子表示,其中前4個值是框的左上角和右下角點座標,最後乙個值是類別,c的範圍是1到c,比如對coco資料集而言,c就是80:

那麼輸入影象上每個點的類別標籤就可以根據這個點是否在標註框內來確定,在標註框外的點就是負樣本,類別設定為0;在標註框內的點(x,y)就是正樣本,類別目標就是標註框的類別,回歸目標就是下面這4個值:

因此可以看出fcos的正負樣本是基於每個點的,一般一張影象上目標框的面積和非目標框的面積差距不會非常大,因此基本不存在正負樣本不均衡的現象

當然,因為這4個值都是正的,所以為了保證回歸支路的輸出結果都是正,回歸支路的輸出會通過exp()函式再輸出,exp()函式輸入是負無窮到正無窮,輸出大於0

仔細看figure1的右圖,影象中存在2個部分重疊的標註框,那麼2個目標框重合部分的點的訓練目標該怎麼算?

因為目標框重合是比較常見的現象,因此這個問題就顯得十分重要,作者也通過實驗證明了這樣的歧義樣本(ambiguous sample)大概佔23.16%(table2左邊一列第一行)。

為了解決這個問題,作者

基於這樣的優化,這種歧義樣本數量就降到7.14%(table2左邊一列第二行),再進一步,假如歧義樣本所屬的框類別一樣,那這種情況對回歸來說影響相對小一些,假如把這樣的歧義樣本去掉,那麼比重就進一步降低至3,75%,可以看到影響越來越小。作者也通過table3這個實驗證明引入fpn且為每個特徵層分配不同尺度的目標框對最終檢測指標的影響,基本上差了一倍

基於上述的實驗設計,fcos能得到的最好結果是33.8的ap,這仍然和ap值為36.1的retinanet有2個點差距。基於對實驗結果的分析,發現問題在於部分誤檢框離真實框的中心點距離較大,也就是說這部分其實是錯得比較離譜的誤檢,因此作者用一種比較簡單的方式減少這種誤檢,這個方法的核心就是將分類支路的輸出乘以乙個權重圖得到最終的分類置信度,而這個權重圖代表的就是目標框中每個點到中心點的距離,距離越近,權重越大,如figure3所示。而這個權重圖就是通過figure2中的center-ness支路訓練得到的

既然是訓練得到的,那麼就涉及監督資訊,這個監督資訊可以通過下面這個式子計算得到,4個輸入值就是回歸支路的回歸目標:

增加center-ness的效果如table5的最後一行所示(36.6),第二行的33.1表示權重圖直接基於回歸支路的4個輸出值計算得到,可以看到效果較差,這說明增加center-ness分支並訓練得到權重圖是非常有必要的,這也比較容易理解,畢竟回歸支路的引數是基於回歸目標來訓練的,對於center-ness任務並不是最優的,而新增的center-ness分支引數可以更好地擬合權重圖的訓練目標。另外,為了證明增加權重圖確實能減少那些遠離目標框中心的的**框(誤判),作者直接基於標註資訊計算權重圖,測試ap能達到42.1,這同時也說明了目前的這種基於單獨分支訓練得到的權重圖還有較大的優化空間。

最後,fcos演算法和其他基於anchor的目標檢測演算法的對比試驗可以看table7,提公升還是比較明顯的。

目標檢測之Selective Search原理簡述

目標檢測物體的候選框是如何產生的?如今深度學習火熱的今天,rcnn spp net fast rcnn等文章都會談及bounding boxes 候選邊界框 的生成與篩選策略。那麼候選框是如何產生,又是如何進行篩選的呢?其實物體候選框獲取當前主要使用影象分割與區域生長技術。區域生長 合併 主要由於檢...

目標檢測之SSD

ssd single shot multibox detector 翻譯 詳解 圖1 圖2 演算法步驟 1 輸入一幅 300x300 將其輸入到預訓練好的分類網路中來獲得不同大小的特徵對映,修改了傳統的vgg16網路 2 抽取conv4 3 conv7 conv8 2 conv9 2 conv10 ...

目標檢測之 IoU

iou 作為目標檢測演算法效能 map 計算的乙個非常重要的函式 但縱觀 iou 計算的介紹知識,都是直接給出 給出計算方法,沒有人徹底地分析過其中的邏輯,故本人書寫該篇部落格來介紹下其中的邏輯。iou 的全稱為交並比 intersection over union 通過這個名稱我們大概可以猜到 i...