目標(biāo)檢測(上)

一、目標(biāo)檢測概述

  • 什么是目標(biāo)檢測?
    ?目標(biāo)檢測不僅要在圖像中找出目標(biāo)物體,還要標(biāo)記出其具體位置。

    目標(biāo)檢測.png

  • 目標(biāo)檢測的難點?

目標(biāo)檢測的難點.png
  • 常見的問題:
    ?定位不準(zhǔn)確
    ?識別的類別錯位
    ?把背景誤認(rèn)為是目標(biāo)
    ?檢測的目標(biāo)物錯位
常見的問題.png

二、傳統(tǒng)目標(biāo)檢測

?傳統(tǒng)的目標(biāo)檢測一般分為三個階段:首先在給定的圖像上選擇一些候選的區(qū)域,然后對這些區(qū)域提取特征,最后使用訓(xùn)練的分類器進行分類。

  • 區(qū)域選擇
    采用窮舉法滑動窗口,選擇出目標(biāo)可能存在的窗口。
  • 特征提取
    手動特征提取,常用的特征提取法有SIFT和HOG等。
  • 分類器
    主要有SVM,Adaboost等

?\color{green}{綜上所述},傳統(tǒng)目標(biāo)檢測存在兩個主要問題:1.基于滑動窗口的區(qū)域選擇策略沒有針對性,時間復(fù)雜度高,窗口冗余;2.是手工設(shè)計的特征對于多樣性沒有很好的魯棒性。

1.基于HOG的目標(biāo)檢測

1)圖像預(yù)處理(統(tǒng)一亮度、色彩強度)
2)計算圖像中每一個像素點的梯度大小和方向
3)將圖像分為8*8像素的模塊,使用HOG計算次模塊的向量表達(向量長度為9)
4)與4個相鄰的區(qū)域做四次Normalization,將四次的Normalization的結(jié)果連接為一個長度為36的向量,并且將其正則化成為單位向量
5)將圖像向量作為分類器的輸入,訓(xùn)練圖像并分類。

基于HOG的目標(biāo)檢測.png

三、RCNN家族系列

?針對傳統(tǒng)目標(biāo)檢測中存在的兩個問題:窮舉法滑動窗口冗余手動特征提取效果不好,RCNN系列采取了相應(yīng)的解決措施。

RCNN

  • 針對滑動窗口
    RNN采用了\color{green}{selective search算法},對圖像進行region proposal(候選區(qū)域)的選取。這可以保證在選取較少窗的情況保持較高的召回率,并且獲取的候選窗口要比滑動窗口的質(zhì)量更高。

  • 針對特征選取
    RNN采用\color{green}{卷積神經(jīng)網(wǎng)絡(luò)(CNN)}進行圖像特征提取。

?使用Region proposal+CNN的RCNN框架,代替了使用的滑動窗口+手工設(shè)計特征的傳統(tǒng)目標(biāo)檢測結(jié)構(gòu),使得目標(biāo)檢測取得了巨大突破。

1.1 RCNN檢測的總體流程:

?1)用selective search算法選取候選框
?2)將候選區(qū)域resize成CNN輸入的尺寸,進行特征提取
?3)使用SVM進行分類(為每個類都訓(xùn)練一個SVM分類器)

RCNN檢測流程.png
1.2 RCNN訓(xùn)練階段的流程:

1)預(yù)訓(xùn)練
?先在ImageNet上訓(xùn)練一個分類神經(jīng)網(wǎng)絡(luò)(CNN)

2)選取候選框
?用selective search算法選取候選框,并將候選框resize為同樣大小

3)Fine-tuning
?在自己的訓(xùn)練數(shù)據(jù)集中微調(diào)預(yù)訓(xùn)練好的CNN:把ImageNet上預(yù)訓(xùn)練的網(wǎng)絡(luò)從1000個輸出,改為K+1個輸出,作為一個識別K+1種類別的分類問題。(其中K為自己訓(xùn)練數(shù)據(jù)集中感興趣的目標(biāo)類別數(shù),1為背景類:IOU<0.5的預(yù)選框)

4)提取特征向量
?將每一個候選區(qū)域輸入到Fine-tune后的CNN中,去掉CNN的最后一個分類層,就得到了圖像的特征向量(類似Image caption項目)

5)訓(xùn)練SVM分類器
?使用特征向量為每一個類別訓(xùn)練一個二元SVM分類器。(候選區(qū)域與真實區(qū)域的IOU值大于0.3的為正樣本,其它為負(fù)樣本)

6)預(yù)測目標(biāo)位置
?為了減少Selective Search選取的候選區(qū)定位差誤,使用regression模型預(yù)測新的定位(x, y, w, h)

1.3 RCNN預(yù)測階段的流程:

?訓(xùn)練階段,數(shù)據(jù)做了什么處理,測試階段也要做同樣的處理。在RCNN中,測試集數(shù)據(jù)也要先使用selective算法提取圖像預(yù)選框,然后再進行模型預(yù)測。

1)選取預(yù)選框
?使用selective search選取測試圖像的預(yù)選框,并resize為固定大小

2)提取圖像特征向量
?將預(yù)選框輸入到訓(xùn)練好的CNN中,進行圖像特征提取

3)類別預(yù)測
?將特征向量輸入到為該類別訓(xùn)練的SVM分類器進行類別預(yù)測

4)位置預(yù)測
?使用Bounding-box回歸,預(yù)測目標(biāo)最終的位置

1.4 RCNN架構(gòu)
RCNN架構(gòu).png
1.5 RCNN缺點:
  • 預(yù)選框選取速度慢。
    對于每一張圖,需要使用Selective Search算法選擇2000個候選框,這個過程本身就比較慢。
  • 特征提取速度慢。
    每個預(yù)選框都要單獨進入CNN中進行特征提取,存在大量重復(fù)計算
  • 四個分離的部分沒有重用計算:
    Selective Search:選擇候選區(qū)域
    CNN:提取圖像特征
    SVM:目標(biāo)類別識別
    Bounding-box回歸:定位
Selective Search算法原理

1)使用圖像分割算法創(chuàng)建候選區(qū)域
2)使用貪心算法合并候選區(qū)域(通過相鄰區(qū)域的相似度)
3)重復(fù)迭代第二步,直到達到停止條件

Selective Search算法.png
Bounding-box回歸

?Bounding-box 回歸是用來微調(diào)預(yù)選框的,使預(yù)測出來的目標(biāo)定位更加準(zhǔn)確。但并非所有的預(yù)選框都包含真實的目標(biāo),Bounding-box Regression只計算包含目標(biāo)的預(yù)選框(IOU>0.6),其它預(yù)選框則拋棄。

?在Bounding-box Regression的訓(xùn)練過程中,P = \left ( P_{x} ,P_{y} ,P_{w} ,P_{h} \right )為預(yù)選框的位置,G = \left ( G_{x} ,G_{y} ,G_{w} ,G_{h} \right )為真實框的位置,Bounding-box Regression的目標(biāo)就是學(xué)會一種映射將P轉(zhuǎn)換為G。這種映射關(guān)系公式為:
\begin{align*}\label{2} & t_{x} = \left ( G_{x} - P_{x} \right )/P_{w}\\ & t_{y} = \left ( G_{y} - P_{y} \right )/P_{h}\\ & t_{w} = log\left (G_{w}/P_{w} \right )\\ & t_{h} = log\left (G_{h}/P_{h} \right ) \end{align*}

關(guān)于Bounding-box回歸,\color{red}{我的理解是}
?訓(xùn)練時,其目標(biāo)就是找到預(yù)選框和真實框之間的映射關(guān)系;
?測試時,采用這種'映射關(guān)系',對預(yù)測出的預(yù)選框進行微調(diào),使得預(yù)選框定位更加準(zhǔn)確。

2.Fast RCNN

?Fast-RCNN不再像RCNN一樣,把每個候選框都單獨通過CNN提取特征,而是將整個圖像通過CNN一次性提取特征,大大減少了計算量,提高了目標(biāo)檢測的加速。

2.1 Fast RCNN工作流程:

1)將一整張圖像直接輸入到CNN網(wǎng)絡(luò)中,一次性提取圖像特征,得到CNN特征矩陣
2)仍然使用select search算法對圖像提取預(yù)選框
3)將可能包含目標(biāo)的預(yù)選框,在第一步提取的CNN特征圖上,找到其對應(yīng)的特征矩陣
4)通過ROI Pooling層,將預(yù)選框?qū)?yīng)的特征矩陣,resize為同樣大小
5)將預(yù)選框特征圖輸入到CNN網(wǎng)絡(luò)中,進行目標(biāo)檢測(分類+回歸)

Fast-RCNN架構(gòu)圖.png
2.2 Fast RCNN優(yōu)缺點:

優(yōu)點:

  • 使用ROI池化層將不同size的預(yù)選框特征圖,映射為同一大小
  • 使用一個Softmax分類代替了多個SVM分類器
  • 使用多任務(wù)損失函數(shù),同時進行分類和回歸
  • 將RCNN中下面3個獨立模塊整合在一起:
    CNN:提取圖像特征
    SVM:目標(biāo)類別識別
    Bounding-box回歸:定位

缺點:

  • 預(yù)選框的選取仍然是使用Selective Search算法,非常耗時
  • 并為實現(xiàn)真正意義上的“端到端”架構(gòu)
2.3 Fast RCNN架構(gòu)圖:
Fast RCNN架構(gòu)圖.png

3.Faster RCNN

?Faster RCNN不再使用select search傳統(tǒng)的算法提取預(yù)選框,而是采用Region Proposal Netword神經(jīng)網(wǎng)絡(luò)直接產(chǎn)生預(yù)選框。

?Faster RCNN將一直以來分離的region proposal和CNN分類融合到了一起,使用端到端的網(wǎng)絡(luò)進行目標(biāo)檢測,在速度和精度上都得到了不錯的提高,實現(xiàn)真正意義上的“端到端”架構(gòu)。

Faster RCNN.png

四、RCNN家族系列總結(jié)

RCNN家族總結(jié).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容