溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

發(fā)布時(shí)間:2021-12-18 16:07:59 來(lái)源:億速云 閱讀:385 作者:柒染 欄目:互聯(lián)網(wǎng)科技

本篇文章給大家分享的是有關(guān)如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

Faster-RCNN圖片識(shí)別

Faster-RCNN對(duì)象檢測(cè)算法是R-CNN對(duì)象檢測(cè)的第三個(gè)版本算法,其前面還有Fast-RCNN與RCNN算法,由于R-CNN無(wú)法實(shí)現(xiàn)End-to-End訓(xùn)練,F(xiàn)ast R-CNN Selective Search耗時(shí)比較長(zhǎng)等原因,作者在此2版的基礎(chǔ)上,更新到了Faster-RCNN對(duì)象檢測(cè)算法。

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

對(duì)象檢測(cè)

從下方結(jié)構(gòu)圖可以看出:Faster-RCNN對(duì)象檢測(cè)算法將特征提取、proposal提取、Bounding Box Regression、Classification整合到一個(gè)網(wǎng)絡(luò)中,對(duì)象檢測(cè)速度不僅有了提示還避免了前2個(gè)版本的缺點(diǎn)。

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

Faster R-CNN

Faster R-CNN對(duì)象檢測(cè)流程:

1、特征提取(convolutional layer):Faster R-CNN使用卷積+relu+pooling池化層提取被檢測(cè)對(duì)象的特征。

2、區(qū)域預(yù)測(cè)網(wǎng)絡(luò)(Region Proposal Network):RPN通過(guò)softmax函數(shù)判斷錨點(diǎn)(anchors)屬于某個(gè)特征,再利用邊界框回歸(bounding box regression)修正anchors獲得精確的對(duì)象檢測(cè)值。

3、目標(biāo)區(qū)池化(Roi Pooling):收集輸入的特征數(shù)據(jù)和候選目標(biāo)區(qū)域,利用此層信息提取目標(biāo)區(qū)域特征數(shù)據(jù),然后全連接層識(shí)別圖片。

4、分類(Classification):利用目標(biāo)區(qū)域特征數(shù)據(jù)計(jì)算太識(shí)別圖片,同時(shí)利用邊界框回歸獲得對(duì)象檢測(cè)的精確位置。

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

Faster R-CNN流程圖

如何來(lái)實(shí)現(xiàn)Faster R-CNN,以及Faster R-CNN的具體工作是如何實(shí)現(xiàn)的,小編也參考了很多網(wǎng)友的源碼,無(wú)奈代碼量太大(少的也得幾千行),我們前期分享了如何使用opencv與MobileNet SSD的圖像識(shí)別以及視頻實(shí)時(shí)識(shí)別

MobileNet SSD視頻流實(shí)時(shí)識(shí)別

MobileNet SSD圖像識(shí)別

同樣使用opencv也可以來(lái)實(shí)現(xiàn)Faster R-CNN的對(duì)象檢測(cè)算法,很多代碼都比較類似,小伙伴們也可以參考往期文章

使用OpenCV進(jìn)行基于Faster R-CNN深度學(xué)習(xí)的對(duì)象檢測(cè)

Faster R-CNN prototxt 與Faster R-CNN model模型已經(jīng)共享:

回復(fù):RCNN 即可領(lǐng)取

模型一共2種:

faster_rcnn_inception_v2與faster_rcnn_resnet50,2種模型是在不同的訓(xùn)練集上訓(xùn)練的數(shù)據(jù),其中faster_rcnn_inception_v2模型較小,速度較快,本期按照此模型來(lái)搭建對(duì)象檢測(cè),其faster_rcnn_resnet50模型跟faster_rcnn_inception_v2模型的代碼完全一致,只是修改一下模型的路徑便可

在本節(jié)中,我們將使用 OpenCV中的深度神經(jīng)網(wǎng)絡(luò)( dnn)模塊與Faster R-CNN prototxt 與Faster R-CNN model來(lái)構(gòu)建我們的對(duì)象檢測(cè)器

1、模型以及第三方庫(kù)

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

模型以及第三方庫(kù)

首先導(dǎo)入模型以及模型參數(shù),若使用faster_rcnn_resnet50模型, 12 、13行直接修改為faster_rcnn_resnet50模型的相對(duì)地址

2、定義模型識(shí)別類型

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

定義模型識(shí)別類型

Faster R-CNN模型相比SSD來(lái)說(shuō),能夠識(shí)別的種類,豐富了很多,大概有100個(gè)種類,幾乎包含了生活中所能涉及的種類,當(dāng)然,若你有強(qiáng)大的數(shù)據(jù)支撐,也可以來(lái)訓(xùn)練自己的模型(后期分享如何來(lái)訓(xùn)練自己的模型)

3、opencv建立神經(jīng)網(wǎng)絡(luò)

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

opencv建立神經(jīng)網(wǎng)絡(luò)

對(duì)比51 、52行可以知道,SSD模型是在caffe上訓(xùn)練的模型,而Faster R-CNN模型是tensorflow上訓(xùn)練的模型,但是強(qiáng)大的opencv庫(kù)使用dnn函數(shù)就能很方便的加載預(yù)訓(xùn)練模型,且可以對(duì)比看出,其模型與參數(shù)文件前后有區(qū)別

4、計(jì)算blob,進(jìn)行神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

計(jì)算blob,進(jìn)行神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)

獲取圖片的長(zhǎng)寬參數(shù),重新調(diào)整圖片長(zhǎng)寬為300*300,來(lái)進(jìn)行圖片blob的計(jì)算,然后blob傳入神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行計(jì)算,使用前向傳播來(lái)預(yù)測(cè)圖片

5、遍歷預(yù)測(cè)值,提取設(shè)置閾值的對(duì)象

如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別

遍歷預(yù)測(cè)值,提取設(shè)置閾值的對(duì)象

以上就是如何實(shí)現(xiàn)深度學(xué)習(xí)OpenCV對(duì)象檢測(cè)中的Faster-RCNN圖片識(shí)別,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI