計算機(jī)視覺——典型的目標(biāo)檢測算法(R-CNN算法)(三)

姓名:賈軼名? ? 學(xué)號:21011210011? ? ?學(xué)院:通信工程學(xué)院

【嵌牛導(dǎo)讀】目標(biāo)檢測在現(xiàn)實(shí)中的應(yīng)用很廣泛,我們需要檢測數(shù)字圖像中的物體位置以及類別,它需要我們構(gòu)建一個模型,模型的輸入一張圖片,模型的輸出需要圈出圖片中所有物體的位置以及物體所屬的類別。在深度學(xué)習(xí)浪潮到來之前,目標(biāo)檢測精度的進(jìn)步十分緩慢,靠傳統(tǒng)依靠手工特征的方法來提高精度已是相當(dāng)困難的事。而ImageNet分類大賽出現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)——AlexNet所展現(xiàn)的強(qiáng)大性能,吸引著學(xué)者們將CNN遷移到了其他的任務(wù),這也包括著目標(biāo)檢測任務(wù),近年來,出現(xiàn)了很多目標(biāo)檢測算法。

【嵌牛鼻子】計算機(jī)視覺

【嵌牛提問】如何理解目標(biāo)檢測算法——R-CNN

【嵌牛正文】

深度學(xué)習(xí)目標(biāo)檢測算法主要分為雙階段檢測算法單階段檢測算法,如圖1所示。

? ? ? ?雙階段目標(biāo)檢測算法先對圖像提取候選框,然后基于候選區(qū)域做二次修正得到檢測結(jié)果,檢測精度較高,但檢測速度較慢;單階段目標(biāo)驗測算法直接對圖像進(jìn)行計算生成檢測結(jié)果,檢測速度快,但檢測精度低。

1、雙階段目標(biāo)檢測算法

? ? ? ? 雙階段目標(biāo)檢測方法主要通過選擇性搜索(Selective Search)或者Edge Boxes等算法對輸入圖像選取可能包含檢測目標(biāo)的候選區(qū)域(Region Proposal),再對候選區(qū)域進(jìn)行分類和位置回歸以得到檢測結(jié)果。

R-CNN算法(Selective Search + CNN + SVM)

2014年,Girshick等將卷積神經(jīng)網(wǎng)絡(luò)CNN應(yīng)用于目標(biāo)檢測任務(wù),提出了典型的雙階段目標(biāo)檢測算法R-CNN,R-CNN將AlexNet與選擇性搜索算法相結(jié)合,包含區(qū)域建議基于CNN的深度特征提取、分類回歸三個模塊:

[if !supportLists](1)[endif]使用選擇性算法從每張圖像中提取2 000個左右可能包含目標(biāo)物體的區(qū)域候選框;

(2)對候選區(qū)域進(jìn)行歸一化操作縮放成固定大小,進(jìn)行特征提?。?/p>

(3)使用AlexNet將候選區(qū)域特征逐個輸進(jìn)SVM進(jìn)行分類,通過使用邊界框回歸(Bounding Box Regression)和非極大值抑制(Non-Maximum Suppression,NMS)對區(qū)域得分進(jìn)行調(diào)整和過濾,在全連接網(wǎng)絡(luò)進(jìn)行位置回歸。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1 R-CNN算法框架

在一張測試圖像上進(jìn)行選擇性搜索,以提取大約2000個候選區(qū)域(在所有實(shí)驗中使用選擇性搜索的“快速模式”),再把每一個候選區(qū)域都變換成要求的形狀大小(224*224 RGB),并通過CNN向前傳播,以便從所需的層讀取特征圖。然后,對于每個類,我們使用針對該類訓(xùn)練的SVM來對每個提取的特征圖進(jìn)行評分。給定圖像中的所有得分區(qū)域,我們應(yīng)用非極大抑制,如果它具有與交并比(IoU)重疊有著較高得分的非抑制區(qū)域大于學(xué)習(xí)閾值(閾值設(shè)為0.3),則排除該區(qū)域。

R-CNN網(wǎng)絡(luò)結(jié)構(gòu)

在訓(xùn)練時使用兩個數(shù)據(jù)庫:?

識別庫(ImageNet ILSVC 2012):標(biāo)定每張圖片中物體的類別,一千萬張圖像,1000類。?

檢測庫(PASCAL VOC 2007):標(biāo)定每張圖片中,物體的類別和位置。一萬張圖像,20類。?????使用識別庫進(jìn)行預(yù)訓(xùn)練,而后用檢測庫調(diào)優(yōu)參數(shù)。最后在檢測庫上評測。

訓(xùn)練過程:

數(shù)據(jù)集采用pascal VOC,這個數(shù)據(jù)集的object一共有20個類別。首先用selective search方法在每張圖像上選取約2000?region proposal,region proposal就是object有可能出現(xiàn)的位置。然后根據(jù)這些region proposal構(gòu)造訓(xùn)練和測試樣本,region proposal的大小不一,樣本的類別是21個(包括背景)。

預(yù)訓(xùn)練:在ImageNet數(shù)據(jù)集下用AlexNet進(jìn)行訓(xùn)練。使用ILVCR 2012的全部數(shù)據(jù)進(jìn)行訓(xùn)練,輸入一張圖片,輸出1000維的類別標(biāo)號。輸入是前面的region proposal進(jìn)行尺寸變換到一個統(tǒng)一尺寸227*227,保留f7的輸出特征2000*4096維。

調(diào)優(yōu)訓(xùn)練在數(shù)據(jù)集上fine-tuning,網(wǎng)絡(luò)結(jié)構(gòu)不變(最后一層輸出由1000改為21)使用PASCAL VOC 2007的訓(xùn)練集,輸入一張圖片,輸出21維的類別標(biāo)號,表示20類+背景。

針對每個類別(一共20類)訓(xùn)練一個SVM分類器,以f7層的輸出作為輸入,訓(xùn)練SVM的權(quán)重4096*20維,所以測試時候會得到2000*20的得分輸出,且測試的時候會對這個得分輸出做NMS(non-maximun suppression),以去掉重復(fù)框的過程。同時針對每個類別(一共20類)訓(xùn)練一個回歸器,輸入是pool5的特征和每個樣本對的坐標(biāo)和長寬。

用pool5的特征6*6*256維和bounding box的ground truth來訓(xùn)練回歸,每種類型的回歸器單獨(dú)訓(xùn)練。輸入是pool5的特征,以及每個樣本對的坐標(biāo)和長寬值。如上圖,黃色框口P表示建議框Region Proposal,綠色窗口G表示實(shí)際框Ground Truth,紅色窗口表示Region Proposal進(jìn)行回歸后的預(yù)測窗口,現(xiàn)在的目標(biāo)是找到P到?

的線性變換,使得與G越相近.

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

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

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