目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

>>戳此處立即下載電子書<< ,學(xué)習(xí)全套目標(biāo)檢測(cè)算法&模型

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

創(chuàng)新互聯(lián)專注于莊浪企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。莊浪網(wǎng)站建設(shè)公司,為莊浪等地區(qū)提供建站服務(wù)。全流程按需制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

目標(biāo)檢測(cè)需要獲取圖片中所有目標(biāo)的位置及其類別,對(duì)于圖2-1 中的 3 張圖而言,當(dāng)圖片中只有一個(gè)目標(biāo)時(shí),“regression head”預(yù)測(cè) 4 個(gè)值,當(dāng)圖片中有 3 個(gè)目標(biāo)時(shí),“regression head”預(yù)測(cè) 12 個(gè)值,那么當(dāng)圖片中有多個(gè)目標(biāo)時(shí),“regression head”要預(yù)測(cè)多少個(gè)值呢?

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

這時(shí)根據(jù)讀者已經(jīng)學(xué)過(guò)的一些知識(shí),可能會(huì)嘗試用滑窗的方法來(lái)解決,如圖2-2所示。但是,這里有一個(gè)問(wèn)題,我們需要設(shè)計(jì)大量的不同尺度和長(zhǎng)寬比的“滑窗”使它們通過(guò)CNN,然而這個(gè)計(jì)算量是非常巨大的。有沒(méi)有什么方法能使得我們快速定位到目標(biāo)的潛在區(qū)域,從而減少大量不必要的計(jì)算呢?

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

學(xué)者們?cè)谶@個(gè)方向做了很多研究,比較有名的是selective search 方法,具體方法這里不做詳細(xì)說(shuō)明,感興趣的讀者可以看關(guān)于selective search 的論文。大家只要知道這是一種從圖片中選出潛在物體候選框(Regions of Interest,ROI)的方法即可。有了獲取ROI 的方法,接下來(lái)就可以通過(guò)分類和合并的方法來(lái)獲取最終的目標(biāo)檢測(cè)結(jié)果。基于這個(gè)思路有了下面的R-CNN 方法。

R-CNN

下面介紹R-CNN[1] 的訓(xùn)練過(guò)程,整體訓(xùn)練流程如圖2-3 所示:

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

圖2-3 R-CNN 訓(xùn)練過(guò)程[9]

(1)選出潛在目標(biāo)候選框(ROI)
objectness[10], selective search[11], category-independent object proposals[12]等很多論文都講述了候選框提取的方法,R-CNN 使用selective search 的方法選出2000 個(gè)潛在物體候選框。

(2)訓(xùn)練一個(gè)好的特征提取器
R-CNN 的提出者使用卷積神經(jīng)網(wǎng)絡(luò)AlexNet 提取4096 維的特征向量,實(shí)際上使用VGGNet/GoogLeNet/ResNet 等也都可以。細(xì)心的讀者會(huì)發(fā)現(xiàn),AlexNet等網(wǎng)絡(luò)要求輸入的圖片尺寸是固定的,而步驟(1)中的ROI 尺寸大小不定,這就需要將每個(gè)ROI 調(diào)整到指定尺寸,調(diào)整的方法有多種,可參見圖2-4,其中(a)是原始ROI 圖片,(b)是包含上下文的尺寸調(diào)整,(c)是不包含上下文的尺寸調(diào)整,(d)是尺度縮放。

接下來(lái),為了獲得一個(gè)好的特征提取器,一般會(huì)在ImageNet 預(yù)訓(xùn)練好的模型基礎(chǔ)上做調(diào)整(因?yàn)镮mageNet 預(yù)測(cè)的種類較多,特征學(xué)習(xí)相對(duì)完善),唯一的改動(dòng)就是將ImageNet 中的1000 個(gè)類別的輸出改為(C+1)個(gè)輸出,其中C 是真實(shí)需要預(yù)測(cè)的類別個(gè)數(shù),1 是背景類。新特征的訓(xùn)練方法是使用隨機(jī)梯度下降(stochastic gradient descent,即SGD),與前幾章介紹的普通神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法相同。

提到訓(xùn)練,就一定要有正樣本和負(fù)樣本,這里先拋出一個(gè)用于衡量?jī)蓚€(gè)矩形交疊情況的指標(biāo):IOU(Intersection Over Union)。IOU 其實(shí)就是兩個(gè)矩形面積的交集除以并集,如圖2-5 所示。一般情況下,當(dāng)IOU>=0.5 時(shí),可以認(rèn)為兩個(gè)矩形基本相交,所以在這個(gè)任務(wù)中,假定兩個(gè)矩形框中,1 個(gè)矩形代表ROI,另一個(gè)代表真實(shí)的矩形框,那么當(dāng)ROI 和真實(shí)矩形框的IOU>=0.5 時(shí)則認(rèn)為是正樣本,其余為負(fù)樣本。

至此,R-CNN 的第二步特征提取器可以開始訓(xùn)練了,不過(guò)在訓(xùn)練過(guò)程中要注意,需要對(duì)負(fù)樣本進(jìn)行采樣,因?yàn)橛?xùn)練數(shù)據(jù)中正樣本太少會(huì)導(dǎo)致正負(fù)樣本極度不平衡。最終在該步得到的是一個(gè)卷積神經(jīng)網(wǎng)絡(luò)的特征提取器,其特征是一個(gè)4096 維特征向量。

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

(3)訓(xùn)練最終的分類器
這里為每個(gè)類別單獨(dú)訓(xùn)練一個(gè)SVM 分類器。這里面有個(gè)小技巧,SVM 的訓(xùn)練也需要選擇正負(fù)樣本,R-CNN 的提出者做了一個(gè)實(shí)驗(yàn)來(lái)選擇最優(yōu)IOU 閾值,最終僅僅選擇真實(shí)值的矩形框作為正樣本。

注意:正負(fù)樣本的選擇比較有講究,F(xiàn)ast R-CNN 和Faster R-CNN 是根據(jù)IOU 的大小選取正負(fù)樣本,2.2.3 節(jié)有詳細(xì)介紹。

(4)為每個(gè)類訓(xùn)練一個(gè)回歸模型,用來(lái)微調(diào)ROI 與真實(shí)矩形框位置和大小的偏差,如圖2-6 所示。

目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程

下面是所有檢測(cè)問(wèn)題都會(huì)用到的一塊代碼:IOU 的計(jì)算。

def bboxIOU (bboxA, bboxB):

A_xmin = bboxA[0]
A_ymin = bboxA[1]
A_xmax = bboxA[2]
A_ymax = bboxA[3]
A_width = A_xmax - A_xmin
A_height = A_ymax - A_ymin

B_xmin = bboxB[0]
B_ymin = bboxB[1]
B_xmax = bboxB[2]
B_ymax = bboxB[3]
B_width = B_xmax - B_xmin
B_height = B_ymax - B_ymin

xmin = min(A_xmin, B_xmin)
ymin = min(A_ymin, B_ymin)
xmax = max(A_xmax, B_xmax)
ymax = max(A_ymax, B_ymax)

A_width_and = (A_width + B_width) - (xmax - xmin) # 寬的交集
A_height_and = (A_height + B_height) - (ymax - ymin) # 高的交集

if ( A_width_and <= 0.0001 or A_height_and <= 0.0001):
return 0

area_and = (A_width_and * A_height_and)
area_or = (A_width  A_height) + (B_width B_height)
IOU = area_and / (area_or - area_and)

return IOU

預(yù)測(cè)階段有如下幾個(gè)步驟:
(1)同樣地,使用selective search 方法先選出2000 個(gè)ROI。

(2)所有ROI 調(diào)整為特征提取網(wǎng)絡(luò)所需的輸入大小并進(jìn)行特征提取,得到2000個(gè)ROI 對(duì)應(yīng)的2000 個(gè)4096 維的特征向量。

(3)將2000 個(gè)特征向量分別輸入到SVM 中,得到每個(gè)ROI 預(yù)測(cè)的類別。

(4)通過(guò)回歸網(wǎng)絡(luò)微調(diào)ROI 的位置。

(5)最終使用非極大值抑制(Non-Maximum Suppression,NMS)方法對(duì)同一個(gè)類別的ROI 進(jìn)行合并得到最終檢測(cè)結(jié)果。NMS 的原理是得到每個(gè)矩形框的分?jǐn)?shù)(置信度),如果兩個(gè)矩形框的IOU 超過(guò)指定閾值,則僅僅保留分?jǐn)?shù)大的那個(gè)矩形框。

以上就是R-CNN 的全部過(guò)程,我們可以從中看出,R-CNN 存在的一些問(wèn)題:
● 不論是訓(xùn)練還是預(yù)測(cè),都需要對(duì) selective search 出來(lái)的 2000 個(gè) ROI 全部通過(guò)CNN 的forward 過(guò)程來(lái)獲取特征,這個(gè)過(guò)程非常慢。

● 卷積神經(jīng)網(wǎng)的特征提取器和用來(lái)預(yù)測(cè)分類的 SVM 是分開的,也就是特征提取的過(guò)程不會(huì)因SVM 和回歸的調(diào)整而更新。

● R-CNN 有非常復(fù)雜的操作流程,而且每一步都是分裂的,如特征提取器通過(guò)softmax 分類獲得,最終分類結(jié)果由SVM 獲得,矩形框的位置通過(guò)回歸方式獲得。

文章來(lái)源:阿里云-機(jī)器智能技術(shù)


網(wǎng)站欄目:目標(biāo)檢測(cè)入門系列手冊(cè)二:RCNN訓(xùn)練教程
網(wǎng)站地址:http://bm7419.com/article14/iihode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、ChatGPT營(yíng)銷型網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站制作、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)