【object_detection】目標檢測與定位:一些基本概念

libo-coder發表於2020-12-09

一、識別、定位、檢測和分割

1.1 識別和定位:

針對單個目標的任務,識別就是給定一張圖片,要讓計算機告訴你圖片中是什麼。而定位任務不僅要識別出影像中是什麼,還要給出目標在影像中的位置資訊。簡單的說,就是用一個矩形框把識別的目標框出來(有時候也有多個固定數量的目標)。而我們通常採用兩種方式在影像中表示一個矩形框:

(1) (x1, y1, x2, y2): 即給出矩形框左上角和右下角的座標
(2) (x1, y1, w, h):即給出矩形框的左上角座標和矩形框的長寬。

總的的來說,不管用哪種方法表示,我們都至少需要4個值來定位出影像中的一個目標,如果一副影像中包含 C 個目標,那我們至需要 4*C 值來定位所有目標(這裡不包括用於識別的類別標籤)。

1.2 檢測和分割:

針對一幅影像中有多個目標(數量不固定)的情況。檢測任務要儘可能多的將影像中的目標用矩形框定位出來,相當於對多個目標的定位。而分割要求更嚴格,不再是用矩形框框出目標,而是要從畫素層面上將目標和背景完全分離出來。分割的結果往往是找出目標的輪廓線。
在這裡插入圖片描述

二、定位任務評估方法:Intersection over Union (IoU)

IoU用來衡量模型最終輸出的矩形框或者測試過程中找出的候選區域(Region Proposal)與實際的矩形框(Gound Truth)的差異程度,定義為兩者交集和並集的比值。
在這裡插入圖片描述

三、目標檢測評價指標:mean average precision (mAP)

這裡涉及到兩個概念:查準率(precision)查全率(recall) 因為對於目標檢測任務,我們往往需要在一張圖中檢測多個目標。對於每一個目標都可以計算測試的查準率和查全率,通過選用不同的閾值進行測試實驗,可以得出多組查準率和查全率資料,利用這些資料可以得到一條 P-R 曲線,而曲線下包圍的面積就表示 average precision (AP),也就是說,這個值越大,說明模型的綜合效能越好。而對於多個目標,我們計算所有目標AP的平均值作為目標檢測最終的效能評價指標即 mean average precision (mAP)

四、選擇性搜尋(selective search)

基於候選框的目標檢測需要先產生2000個左右的候選區域,而產生這些區域用的最多的方法是選擇性搜尋。
演算法過程大致如下:

(1) 生成初始區域集合
(2) 計算區域集合中所有相區域的相似度(相似度綜合考慮了顏色、紋理、尺寸和空間交疊)
(3) 合併相似度最高的兩個區域,並移除所有與這兩個區域有關的區域
(4) 重新計算合併的區域和其他所有區域的相似度並執行合併過程直到結束

五、非極大值抑制(Non-Maximum Suppression)

在目標檢測的時候,因為我們是在多個區域上分別執行的,最終必然會產生大量的候選框。而我們希望得到一個最好的框來定位目標的位置。非極大值抑制完成的就是抑制冗餘的矩形框,保留最優框的過程。

具體來說,對於某一個目標,我們的模型框出了很多候選框,每一矩形框都會有一個對應的類別分類概率,我們將他們從大到小排序,然後捨棄掉與最大概率的矩形框相似度高的矩形框(IoU值大於設定的閾值),保留剩下來的矩形框。

非極大值抑制流程如下:

# INPUT:所有預測出的bounding box (bbx)資訊(座標和置信度confidence), IOU閾值(大於該閾值的bbx將被移除)
for object in all objects:
	(1) 獲取當前目標類別下所有bbx的資訊
	(2) 將bbx按照confidence從高到低排序,並記錄當前confidence最大的bbx
	(3) 計算最大confidence對應的bbx與剩下所有的bbx的IOU,移除所有大於IOU閾值的bbx
	(4) 對剩下的bbx,迴圈執行(2)(3)直到所有的bbx均滿足要求(即不能再移除bbx)

參考連結

  1. https://blog.csdn.net/sinat_34474705/article/details/79131542

相關文章