一文看盡物體檢測中的各種FPN(閱讀筆記)

2021-10-07 18:56:30 字數 2120 閱讀 6120

早期的目標檢測演算法(無論是單階段還是雙階段)通常都是在backbone的最後一層的特徵圖直接外接檢測頭做物體檢測。其輸出的特徵圖解析度是輸入解析度的1/32,太小,不利於物體檢測,因此一般會將最後乙個stage(backbone中featuremap解析度相同的若干層)的maxpooling去掉或者將stride為2的conv改為stride為1的conv,以增大最後一層特徵圖的解析度。

而單一尺度的特徵圖無法同時有效的表徵各個尺度的物體,因此,逐漸利用不同stage的不同尺度特徵圖。用特徵金字塔網路(feature parymid network)表徵不同scale的物體,也就是進入了fpn時代。

1)backbone生成特徵階段

2)特徵融合階段

3)檢測頭輸出bounding box

物體檢測效能提公升,一般主要通過資料增強、改進backbone、改進fpn、改進檢測頭、改進loss、改進後處理等6個常用手段。

其中fpn自從被提出來,先後迭代了不少版本。大致迭代路徑如下圖:

無融合,又利用多尺度特徵的典型代表就是2023年提出的ssd,它直接利用不同stage的特徵圖分別負責不同scale大小物體的檢測。

自上而下單向融合的fpn,事實上仍然是當前物體檢測模型的主流融合模式。如我們常見的faster rcnn、mask rcnn、yolov3、retinanet、cascade rcnn等,具體各個fpn的內部細節如下圖。

panet是第乙個提出從下向上二次融合的模型,並且panet就是在faster/master/cascade rcnn中的fpn的基礎上,簡單增了從下而上的融合路徑。看下圖。

asff在yolov3的fpn的基礎上,採用了注意力機制

其中bifpn的具體細節如下圖。

遞迴fpn(2023年)(detectors: detecting objects with recursive feature pyramid and switchable atrous convolution),效果之好令人驚訝,使用遞迴fpn的detectors是目前物體檢測(coco map 54.7)、實體分割和全景分割的sota,太強悍了。

遞迴fpn理解起來很容易,就是將傳統fpn的融合後的輸出,再輸入給backbone,進行二次迴圈,如下圖。

下圖給出了fpn與recursive-fpn的區別,並且把乙個2層的遞迴fpn展開了,非常簡單明瞭,不做過多介紹。

m2det中的sfam,比較複雜,它是先把c3與c5兩個stage的特徵融合成乙個與c3解析度相同的特徵圖(下圖中的ffm1模組),然後再在此特徵圖上疊加多個unet(下圖中的tum模組),最後將每個unet生成的多個解析度中相同解析度特徵一起融合(下圖中的sfam模組),從而生成最終的p3、p4、p5、p6特徵,以供檢測頭使用。具體如下圖。

每乙個模組的詳細細節如下圖。

使用3d卷積從fpn中提取尺度不變特徵

物體檢測中的mAP含義

1.對於某個類別 c c 在某一張上,首先計算 c role presentation style position relative c c在一張上的pr ecis ion pre cisi on precis ion 在一張圖 片上類別 c識別正 確的個數 也就是 iou 0.5 一 張 上 類...

物體檢測的一些概念(1)

1 遷移學習 遷移學習也即所謂的有監督預訓練 supervised pre training 我們通常把它稱之為遷移學習。比如你已經有一大堆標註好的人臉年齡分類的資料,訓練了乙個cnn,用於人臉的年齡識別。然後當你遇到新的專案任務是 人臉性別識別,那麼這個時候你可以利用已經訓練好的年齡識別cnn模型...

名詞解釋 物體檢測中的mAP含義

目標檢測模型中的一種效能評估指標 precision 在一張上類別c識別正確的個數 也就是iou 0.5 一張上類別c的總個數precision 在一張上類別c識別正確的個數 也就是iou 0.5 一張上類別c的總個數 ap 每張上的precision求和 含有類別c的數目ap 每張上的precis...