目標檢測精讀系列

2021-10-07 03:49:38 字數 2692 閱讀 5784

1. 概述

目標檢測是乙個比較活躍的領域,其目標是通過演算法檢測出影象中的感興趣目標。目前,基本上最先進的目標檢測演算法都是基於神經網路。

在深度學習之前,基本上是提取特定角點(sift,hog等)去檢測目標,或是利用劃窗的方式結合svm等經典分類器去檢測目標,這類傳統的演算法的檢測效果不佳。隨著卷積神經網路的出現,目標檢測的效果被提公升了一大截,遠遠超過了傳統的演算法。

最開始是r-cnn,然後是fast r-cnn, faster r-cnn, 然後發展出了yolo,ssd,接著是fcos,centernet等目標檢測演算法。目前,目標檢測演算法基本可以分為兩類:anchor-based和anchor-free。

anchor-based

anchor-free

兩類網路最大的不同點,就是是否利用anchor機制。anchor本質上就是一些預先定義在特徵圖上面的框,anchor-based的演算法,就是在這些框的基礎上進行分類和回歸。而anchor-free演算法捨棄了anchor的設定,通過檢測關鍵點或是概率圖的方式,直接獲得物體的位置和邊界框等資訊。

一般而言,anchor-based演算法的精度更高,anchor-free演算法的推理速度更快。但是,目前出現的anchor-free演算法,如fcos,其精度比retinanet等anchor-based的演算法精度更高。atss(adaptive training sample selection)演算法[1],討論了anchor-based演算法和anchor-free演算法精度差異的原因,指出兩者本質的差別在於正負樣本的選擇。如果採用atss的正負樣本選擇方式,retinanet和fcos幾乎能夠達到相同的精度。

2. anchor-based

anchor-based網路的機制是基於anchor點進行分類和回歸。anchor點是特徵圖上的乙個個點,其上面預先定義了一些大小(anchor_scale)和比例(anchor_ratio)框。然後通過這些框去和目標真值框判斷這些框的正負性。對於正樣本,還需要去計算這個框和真值框之間的差距。網路對框的回歸目標,就是去回歸這些差值。至於這些差值是如何定義的,retinanet以及faster r-cnn[2]都是採用中心點偏差和長寬比例的對數值。

所以,本質上anchor-based演算法就是去學習anchor預定義框和真值框之間的偏差,然後在inference階段,利用這些偏差和anchor預定義框去反解出目標的邊界框。

anchor-free演算法則是完全扔掉了anchor的機制,認為anchor機制是需要預定義框的,理論上,每個資料集目標大小的分布不一樣,那麼最佳anchor預定義框應該也是不一樣的,所以何不放棄這種目標檢測的方式。anchor-free演算法目前主要發展出兩個方向:乙個是keypoint-based的方式,另乙個是center-based的方式。

keypoint-based的演算法,參考了keypoint的檢測思路,認為目標檢測中存在一些特殊點,例如目標框的左上角點和右下角點,以及目標的中心點等。於是,這類演算法直接去獲得左上角點和右下角點,然後利用一些embedding空間等方法將這些關鍵點組合起來,獲得目標檢測的邊界框。比較有代表性的是:cornernet[3], centernet等。

center-based的演算法,相比而言就更加簡潔一些,認為目標檢測框應該可以由目標中心和目標中心到四條邊界的距離構成。所以,這類演算法一般會從特徵層分出兩個分支,乙個分支是獲得物體在影象中的位置(一般是物體的中心點),另乙個分支是回歸中心點位置到四條邊界之間的距離。在inference階段,通過中心點位置和四條邊的距離,就能夠獲得目標檢測框。這類演算法中,比較典型的有fcos[4],ttfnet等。

4. 其它

以上只是從模型上對目標檢測演算法進行了乙個大致分類。從具體問題出發,樣本平衡,小目標檢測,檢測實時性等角度,也可以有新的一些劃分方式和解決方法,如focal_loss, snip, mobilenet等。

目標檢測演算法現在依舊是乙個比較活躍的領域,時不時都有新的**出現。且隨著目標檢測發展,尤其是anchor-free演算法的發展,檢測速度和檢測效果進一步提公升,也引起了其它相關領域的發展。例如:例項分割領域,polarmask、blendmask等網路都是基於fcos網路進行例項分割的

接下來,我將會從三個方面進行: 參考

[1] bridging the gap between anchor-based and anchor-free detection via adaptive training sample selection

[2] faster r-cnn: towards real-time object detection with region proposal networks

[3] cornernet: detecting objects as paired keypoints

[4] fcos: fully convolutional one-stage object detection

目標檢測之IOU系列

distance iou loss faster and better learning for bounding box regression aaai 2020 iou是目標檢測裡面很重要的乙個指標,通過 的框和gt間的交集與並集的比例進行計算,經常用於評價bbox的優劣 但一般對bbox的精調...

目標檢測演算法之YOLO系列

1.演算法解讀 2.原始碼解析 nms演算法包含在 interpret output 這個函式中 v2通過對標籤聚類得到一系列anchor box prior box 相比v1,bounding box的數量大幅增加。v2 的bounding box以這些anchor box為基準,在一定程度上減少...

目標檢測演算法之SSD系列

ssd可以看成乙個有特定類別 class specific 的rpn網路 一 ssd ssd和yolov3的區別 1.ssd在不同尺度的特徵圖上分別 yolov3則是將不同尺度的特徵圖進行特徵融合再分別 2.損失函式不同 ssd有loss loc loss cof損失,yolov3有loss xy ...