1 目標(biāo)檢測(cè)算法概述
檢測(cè) = 分類(目標(biāo)物是什么) + 定位(定位目標(biāo)的的位置)
1.1 分類
- N個(gè)類別
- 輸入:圖片
- 輸出:類別標(biāo)簽
- 評(píng)估指標(biāo):Accuracy
1.2 定位
- N個(gè)類別
- 輸入:圖片
- 輸出:物體的位置坐標(biāo)(x,y,w,h),成一個(gè)邊界框bounding box(bbox)
- 主要評(píng)估指標(biāo):IoU
1.3 邊界框bounding box(bbox)
Ground-truth bounding box:圖片中真實(shí)標(biāo)記的框,真實(shí)框
Predicted bounding box:預(yù)測(cè)框
1.4 目標(biāo)檢測(cè)算法分類
- 雙階段:先進(jìn)行區(qū)域推薦,而后進(jìn)行目標(biāo)分類
代表:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN - 單階段:一個(gè)網(wǎng)絡(luò)端到端
代表:YOLO系列、SSD
1.5 IoU及作用
IoU(Intersection over Union)表示真實(shí)框和預(yù)測(cè)框交集的面積與并集的面積比值。
藍(lán)色表示真實(shí)框,紅色表示預(yù)測(cè)框

IoU用來(lái)干嘛?
做檢測(cè)任務(wù)時(shí),會(huì)設(shè)置IoU的閾值(voc數(shù)據(jù)集通常是0.5),為度量目標(biāo)定位精度,當(dāng)大于這個(gè)閾值時(shí)表示成功檢測(cè),否則表示漏檢。
后期計(jì)算單類別AP(Average Precision),多類別mAP(Mean Average Precision)值時(shí)很有用。
MS?COCO 的 AP 是在 0.5?0.95多個(gè) IoU 閾值上的平均值。
1.6 置信度
作用:用來(lái)判斷邊界框內(nèi)的物體是正樣本還是負(fù)樣本,大于置信度閾值的判定為正樣本(框內(nèi)有目標(biāo)物體),小于置信度閾值的判定為負(fù)樣本即背景。
總的置信度 = 種類置信度class_conf × 先驗(yàn)框內(nèi)部是否包含物體的置信度image_pred
在進(jìn)行預(yù)測(cè)可視化的時(shí)候,在預(yù)測(cè)框的左上角顯示的(類別id和一個(gè)分?jǐn)?shù)),這個(gè)分?jǐn)?shù)是置信度,還是對(duì)象類別概率?
答:預(yù)測(cè)的分?jǐn)?shù)是置信度和對(duì)象類別概率的乘積,也就是總的置信度。
置信度在訓(xùn)練時(shí),是直接算出來(lái)的,根據(jù)是否為背景和IOU的乘積得到;在測(cè)試時(shí),網(wǎng)絡(luò)直接輸出一個(gè)置信度分?jǐn)?shù)(也就是置信度和類對(duì)象概率的乘積,因?yàn)闆](méi)有g(shù)roundtruth來(lái)算IOU與之對(duì)應(yīng))。
2 評(píng)價(jià)指標(biāo) AP/mAP
2.1 TP、TP、FN、FP

T、F:True、False------該樣本 是否被正確分類
P、N:Positive、Negative------該樣本 被預(yù)測(cè)成了正樣本還是負(fù)樣本
2.2 正、負(fù)樣本
TP:被分為正樣本,而且分對(duì)了。
TN:被分為負(fù)樣本,而且分對(duì)了,
FP:被分為正樣本,但是分錯(cuò)了(事實(shí)上這個(gè)樣本是負(fù)樣本)。
FN:被分為負(fù)樣本,但是分錯(cuò)了(事實(shí)上這個(gè)樣本是正樣本)。
- 正樣本、負(fù)樣本針對(duì)網(wǎng)絡(luò)訓(xùn)練時(shí)期;測(cè)試時(shí),所有預(yù)測(cè)的框都是P(模型認(rèn)為的正樣本),正樣本網(wǎng)絡(luò)生成的預(yù)測(cè)框是與gt的iou值高于iou閾值(一般為0.5)
- 正樣本、負(fù)樣本都是針對(duì)程序生成的框而言,而不是ground Truth而言。
- 目標(biāo)檢測(cè)測(cè)試過(guò)程中,一般不區(qū)分TN和FN。因?yàn)樨?fù)樣本(模型認(rèn)為的)根本沒(méi)有顯示出來(lái)。此時(shí),TN和FN無(wú)意義。
2.3 Recall、Precision
Recall=TP/(TP+FN),召回率,可理解為:正確的,被判斷正確的比例。(被正確識(shí)別出來(lái)的飛機(jī)個(gè)數(shù)與測(cè)試集中所有真實(shí)飛機(jī)的個(gè)數(shù)的比值。)
Precision=TP/(TP+FP),準(zhǔn)確度,預(yù)測(cè)為正類中,實(shí)際為正類的比例。(所有被識(shí)別出來(lái)的飛機(jī)中,真正的飛機(jī)所占的比例。)
2.4 AP、mAP
準(zhǔn)確率-召回率曲線(P-R曲線):以召回率為橫坐標(biāo),精確率為縱坐標(biāo)。
AP表示P-R曲線下的面積,一個(gè)越好的分類器,AP值越高,通常在某一特定類別下進(jìn)行評(píng)估。
mAP是多個(gè)類別AP的平均值。這個(gè)mean的意思是對(duì)每個(gè)類的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]區(qū)間,越大越好。
3 目標(biāo)檢測(cè)原理
3.1 分類原理
輸入一張圖片,經(jīng)過(guò)卷積、激活、池化層,最后一層通過(guò)(全連接層+softmax)得到分類概率。
使用的損失函數(shù):交叉熵?fù)p失
3.2 如何理解最后一層全連接層+Softmax
全連接層:將權(quán)重矩陣與輸入向量相乘再加上偏置,將n個(gè)(?∞,+∞)的實(shí)數(shù)映射為K個(gè)(?∞,+∞)的實(shí)數(shù);
Softmax:將K個(gè)( ? ∞ , + ∞ ) 的實(shí)數(shù)映射為K個(gè)(0,1)的實(shí)數(shù)(概率),同時(shí)保證它們之和為1。
3.3 非極大值抑制(Non-Maximum Suppression,NMS)
根據(jù)分類器類別分類概率做排序
(1)從最大概率矩形框開(kāi)始,分別得分后面的矩形框與其的重疊度IOU是否大于某個(gè)設(shè)定的閾值;
(2)假設(shè)重疊度超過(guò)閾值,那么就扔掉;并標(biāo)記第一個(gè)矩形框,是我們保留下來(lái)的。
(3)從剩下的矩形框中,選擇概率最大的,然后判斷得分后面的矩形框與其的重疊度,重疊度大于一定的閾值,那么就扔掉;并標(biāo)記是我們保留下來(lái)的第二個(gè)矩形框。
如此循環(huán)往復(fù)知道沒(méi)有剩余的矩形框,然后找到所有被保留下來(lái)的矩形框,就是我們認(rèn)為最可能包含目標(biāo)的矩形框。
3.4 目標(biāo)檢測(cè)的候選框(Proposal)
物體候選框獲取,當(dāng)前主要使用圖像分割與區(qū)域生長(zhǎng)技術(shù)。區(qū)域生長(zhǎng)(合并)主要由于檢測(cè)圖像中存在的物體具有局部區(qū)域相似性(顏色、紋理等)。
根據(jù)目標(biāo)候選區(qū)域的提取方式不同,傳統(tǒng)目標(biāo)檢測(cè)算法可以分為基于滑動(dòng)窗口的目標(biāo)檢測(cè)算法和基于選擇性搜索的目標(biāo)檢測(cè)算法。
3.4.1 滑動(dòng)窗口(Sliding Window)

基本原理:采用不同大小和比例(寬高比)的窗口在整張圖片上以一定的步長(zhǎng)進(jìn)行滑動(dòng),然后對(duì)這些窗口對(duì)應(yīng)的區(qū)域做圖像分類
缺點(diǎn):不知道要檢測(cè)的目標(biāo)大小是什么規(guī)模,所以要設(shè)置不同大小和比例的窗口去滑動(dòng),而且還要選取合適的步長(zhǎng)。但是這樣會(huì)產(chǎn)生很多的子區(qū)域,并且都要經(jīng)過(guò)分類器去做預(yù)測(cè),這需要很大的計(jì)算量。
具體步驟:首先對(duì)輸入圖像進(jìn)行不同窗口大小的滑窗進(jìn)行從左往右、從上到下的滑動(dòng)。每次滑動(dòng)時(shí)候?qū)Ξ?dāng)前窗口執(zhí)行分類器(分類器是事先訓(xùn)練好的)。如果當(dāng)前窗口得到較高的分類概率,則認(rèn)為檢測(cè)到了物體。對(duì)每個(gè)不同窗口大小的滑窗都進(jìn)行檢測(cè)后,會(huì)得到不同窗口檢測(cè)到的物體標(biāo)記,這些窗口大小會(huì)存在重復(fù)較高的部分,最后采用非極大值抑制(Non-Maximum Suppression, NMS)的方法進(jìn)行篩選。最終,經(jīng)過(guò)NMS篩選后獲得檢測(cè)到的物體。
3.4.2 選擇性搜索(Selective Search)
滑窗法類似窮舉進(jìn)行圖像子區(qū)域搜索,但是一般情況下圖像中大部分子區(qū)域是沒(méi)有物體的。學(xué)者們自然而然想到只對(duì)圖像中最有可能包含物體的區(qū)域進(jìn)行搜索以此來(lái)提高計(jì)算效率。

主要觀點(diǎn):圖像中物體可能存在的區(qū)域應(yīng)該是有某些相似性或者連續(xù)性區(qū)域的。因此,選擇搜索基于上面這一想法采用子區(qū)域合并的方法進(jìn)行提取候選邊界框(bounding boxes)。首先,對(duì)輸入圖像進(jìn)行分割算法產(chǎn)生許多小的子區(qū)域(大約2000個(gè)子區(qū)域)。其次,根據(jù)這些子區(qū)域之間相似性(相似性標(biāo)準(zhǔn)主要有顏色、紋理、大小等等)進(jìn)行區(qū)域合并,不斷的進(jìn)行區(qū)域迭代合并。每次迭代過(guò)程中對(duì)這些合并的子區(qū)域做外切矩形(bounding boxes),這些子區(qū)域外切矩形就是通常所說(shuō)的候選框。
優(yōu)點(diǎn):
- (a)計(jì)算效率優(yōu)于滑窗法。
- (b)由于采用子區(qū)域合并策略,所以可以包含各種大小的疑似物體框。
- (c)合并區(qū)域相似的指標(biāo)多樣性,提高了檢測(cè)物體的概率。
3.5 邊界框回歸(Bounding-Box regression)
窗口一般使用四維向量(x,y,w,h)來(lái)表示, 分別表示窗口的中心點(diǎn)坐標(biāo)和寬高。 對(duì)于下圖, 紅色的框 P 代表原始的Proposal, 綠色的框 G 代表目標(biāo)的 Ground Truth, 目標(biāo)是尋找一種關(guān)系使得輸入原始的窗口 P 經(jīng)過(guò)映射得到一個(gè)跟真實(shí)窗口 G 更接近的回歸窗口
G^。


感謝鏈接
https://qiyuan-z.github.io/2020/01/14/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%E8%B0%83%E7%A0%94/