0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

目標(biāo)檢測(cè):Faster RCNN算法詳解

ss ? 來(lái)源:shenxiaolu1984 ? 作者:shenxiaolu1984 ? 2021-01-13 16:25 ? 次閱讀

本文是繼RCNN[1],fast RCNN[2]之后,目標(biāo)檢測(cè)界的領(lǐng)軍人物Ross Girshick團(tuán)隊(duì)在2015年的又一力作。簡(jiǎn)單網(wǎng)絡(luò)目標(biāo)檢測(cè)速度達(dá)到17fps,在PASCAL VOC上準(zhǔn)確率為59.9%;復(fù)雜網(wǎng)絡(luò)達(dá)到5fps,準(zhǔn)確率78.8%。

作者在github上給出了基于matlabpython的源碼。對(duì)Region CNN算法不了解的同學(xué),請(qǐng)先參看這兩篇文章:《RCNN算法詳解》,《fast RCNN算法詳解》。

思想

從RCNN到fast RCNN,再到本文的faster RCNN,目標(biāo)檢測(cè)的四個(gè)基本步驟(候選區(qū)域生成,特征提取,分類(lèi),位置精修)終于被統(tǒng)一到一個(gè)深度網(wǎng)絡(luò)框架之內(nèi)。所有計(jì)算沒(méi)有重復(fù),完全在GPU中完成,大大提高了運(yùn)行速度。

faster RCNN可以簡(jiǎn)單地看做“區(qū)域生成網(wǎng)絡(luò)+fast RCNN“的系統(tǒng),用區(qū)域生成網(wǎng)絡(luò)代替fast RCNN中的Selective Search方法。本篇論文著重解決了這個(gè)系統(tǒng)中的三個(gè)問(wèn)題:

如何設(shè)計(jì)區(qū)域生成網(wǎng)絡(luò)

如何訓(xùn)練區(qū)域生成網(wǎng)絡(luò)

如何讓區(qū)域生成網(wǎng)絡(luò)和fast RCNN網(wǎng)絡(luò)共享特征提取網(wǎng)絡(luò)

區(qū)域生成網(wǎng)絡(luò):結(jié)構(gòu)

基本設(shè)想是:在提取好的特征圖上,對(duì)所有可能的候選框進(jìn)行判別。由于后續(xù)還有位置精修步驟,所以候選框?qū)嶋H比較稀疏。

特征提取

原始特征提?。ㄉ蠄D灰色方框)包含若干層conv+relu,直接套用ImageNet上常見(jiàn)的分類(lèi)網(wǎng)絡(luò)即可。本文試驗(yàn)了兩種網(wǎng)絡(luò):5層的ZF[3],16層的VGG-16[[^-4]],具體結(jié)構(gòu)不再贅述。

額外添加一個(gè)conv+relu層,輸出5139256維特征(feature)。

候選區(qū)域(anchor)

特征可以看做一個(gè)尺度5139的256通道圖像,對(duì)于該圖像的每一個(gè)位置,考慮9個(gè)可能的候選窗口:三種面積{ 12 8 2 , 25 6 2 , 51 2 2 } × \{128^2, 256^2, 512^2 \}\times{1282,2562,5122}×三種比例{ 1 : 1 , 1 : 2 , 2 : 1 } \{ 1:1, 1:2, 2:1\}{1:1,1:2,2:1}。這些候選窗口稱(chēng)為anchors。下圖示出5139個(gè)anchor中心,以及9種anchor示例。

在整個(gè)faster RCNN算法中,有三種尺度。

原圖尺度:原始輸入的大小。不受任何限制,不影響性能。

歸一化尺度:輸入特征提取網(wǎng)絡(luò)的大小,在測(cè)試時(shí)設(shè)置,源碼中opts.test_scale=600。anchor在這個(gè)尺度上設(shè)定。這個(gè)參數(shù)和anchor的相對(duì)大小決定了想要檢測(cè)的目標(biāo)范圍。

網(wǎng)絡(luò)輸入尺度:輸入特征檢測(cè)網(wǎng)絡(luò)的大小,在訓(xùn)練時(shí)設(shè)置,源碼中為224*224。

窗口分類(lèi)和位置精修

分類(lèi)層(cls_score)輸出每一個(gè)位置上,9個(gè)anchor屬于前景和背景的概率;窗口回歸層(bbox_pred)輸出每一個(gè)位置上,9個(gè)anchor對(duì)應(yīng)窗口應(yīng)該平移縮放的參數(shù)。

對(duì)于每一個(gè)位置來(lái)說(shuō),分類(lèi)層從256維特征中輸出屬于前景和背景的概率;窗口回歸層從256維特征中輸出4個(gè)平移縮放參數(shù)。

就局部來(lái)說(shuō),這兩層是全連接網(wǎng)絡(luò);就全局來(lái)說(shuō),由于網(wǎng)絡(luò)在所有位置(共51*39個(gè))的參數(shù)相同,所以實(shí)際用尺寸為1×1的卷積網(wǎng)絡(luò)實(shí)現(xiàn)。

實(shí)際代碼中,將51399個(gè)候選位置根據(jù)得分排序,選擇最高的一部分,再經(jīng)過(guò)Non-Maximum Suppression獲得2000個(gè)候選結(jié)果。之后才送入分類(lèi)器和回歸器。

所以Faster-RCNN和RCNN, Fast-RCNN一樣,屬于2-stage的檢測(cè)算法。

區(qū)域生成網(wǎng)絡(luò):訓(xùn)練

樣本

考察訓(xùn)練集中的每張圖像:

a. 對(duì)每個(gè)標(biāo)定的真值候選區(qū)域,與其重疊比例最大的anchor記為前景樣本

b. 對(duì)a)剩余的anchor,如果其與某個(gè)標(biāo)定重疊比例大于0.7,記為前景樣本;如果其與任意一個(gè)標(biāo)定的重疊比例都小于0.3,記為背景樣本

c. 對(duì)a),b)剩余的anchor,棄去不用。

d. 跨越圖像邊界的anchor棄去不用

代價(jià)函數(shù)

同時(shí)最小化兩種代價(jià):

a. 分類(lèi)誤差

b. 前景樣本的窗口位置偏差

具體參看fast RCNN中的“分類(lèi)與位置調(diào)整”段落。

超參數(shù)

原始特征提取網(wǎng)絡(luò)使用ImageNet的分類(lèi)樣本初始化,其余新增層隨機(jī)初始化。

每個(gè)mini-batch包含從一張圖像中提取的256個(gè)anchor,前景背景樣本1:1.

前60K迭代,學(xué)習(xí)率0.001,后20K迭代,學(xué)習(xí)率0.0001。

momentum設(shè)置為0.9,weight decay設(shè)置為0.0005。[4]

共享特征

區(qū)域生成網(wǎng)絡(luò)(RPN)和fast RCNN都需要一個(gè)原始特征提取網(wǎng)絡(luò)(下圖灰色方框)。這個(gè)網(wǎng)絡(luò)使用ImageNet的分類(lèi)庫(kù)得到初始參數(shù)W 0 W_0W0?,但要如何精調(diào)參數(shù),使其同時(shí)滿(mǎn)足兩方的需求呢?本文講解了三種方法。

輪流訓(xùn)練

a. 從W 0 W_0W0?開(kāi)始,訓(xùn)練RPN。用RPN提取訓(xùn)練集上的候選區(qū)域

b. 從W 0 W_0W0?開(kāi)始,用候選區(qū)域訓(xùn)練Fast RCNN,參數(shù)記為W 1 W_1W1?

c. 從W 1 W_1W1?開(kāi)始,訓(xùn)練RPN…

具體操作時(shí),僅執(zhí)行兩次迭代,并在訓(xùn)練時(shí)凍結(jié)了部分層。論文中的實(shí)驗(yàn)使用此方法。

如Ross Girshick在ICCV 15年的講座Training R-CNNs of various velocities中所述,采用此方法沒(méi)有什么根本原因,主要是因?yàn)椤睂?shí)現(xiàn)問(wèn)題,以及截稿日期“。

近似聯(lián)合訓(xùn)練

直接在上圖結(jié)構(gòu)上訓(xùn)練。在backward計(jì)算梯度時(shí),把提取的ROI區(qū)域當(dāng)做固定值看待;在backward更新參數(shù)時(shí),來(lái)自RPN和來(lái)自Fast RCNN的增量合并輸入原始特征提取層。

此方法和前方法效果類(lèi)似,但能將訓(xùn)練時(shí)間減少20%-25%。公布的python代碼中包含此方法。

聯(lián)合訓(xùn)練

直接在上圖結(jié)構(gòu)上訓(xùn)練。但在backward計(jì)算梯度時(shí),要考慮ROI區(qū)域的變化的影響。推導(dǎo)超出本文范疇,請(qǐng)參看15年NIP論文[5]。

實(shí)驗(yàn)

除了開(kāi)篇提到的基本性能外,還有一些值得注意的結(jié)論

與Selective Search方法(黑)相比,當(dāng)每張圖生成的候選區(qū)域從2000減少到300時(shí),本文RPN方法(紅藍(lán))的召回率下降不大。說(shuō)明RPN方法的目的性更明確。

使用更大的Microsoft COCO庫(kù)[6]訓(xùn)練,直接在PASCAL VOC上測(cè)試,準(zhǔn)確率提升6%。說(shuō)明faster RCNN遷移性良好,沒(méi)有over fitting。

Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014. ??

Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE International Conference on Computer Vision. 2015. ??

M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” in European Conference on Computer Vision (ECCV), 2014. ??

learning rate-控制增量和梯度之間的關(guān)系;momentum-保持前次迭代的增量;weight decay-每次迭代縮小參數(shù),相當(dāng)于正則化。 ??

Jaderberg et al. “Spatial Transformer Networks”

NIPS 2015 ??

30萬(wàn)+圖像,80類(lèi)檢測(cè)庫(kù)。

責(zé)任編輯:xj

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    圖像分割與目標(biāo)檢測(cè)的區(qū)別是什么

    圖像分割與目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域的兩個(gè)重要任務(wù),它們?cè)谠S多應(yīng)用場(chǎng)景中都發(fā)揮著關(guān)鍵作用。然而,盡管它們?cè)谀承┓矫嬗邢嗨浦?,但它們?b class='flag-5'>目標(biāo)、方法和應(yīng)用場(chǎng)景有很大的不同。本文將介紹圖像分割與目標(biāo)
    的頭像 發(fā)表于 07-17 09:53 ?546次閱讀

    目標(biāo)檢測(cè)與識(shí)別技術(shù)有哪些

    目標(biāo)檢測(cè)與識(shí)別技術(shù)是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要研究方向,廣泛應(yīng)用于安全監(jiān)控、自動(dòng)駕駛、醫(yī)療診斷、工業(yè)自動(dòng)化等領(lǐng)域。 目標(biāo)檢測(cè)與識(shí)別技術(shù)的基本概念 目標(biāo)
    的頭像 發(fā)表于 07-17 09:40 ?305次閱讀

    目標(biāo)檢測(cè)與識(shí)別技術(shù)的關(guān)系是什么

    目標(biāo)檢測(cè)與識(shí)別技術(shù)是計(jì)算機(jī)視覺(jué)領(lǐng)域的兩個(gè)重要研究方向,它們之間存在著密切的聯(lián)系和相互依賴(lài)的關(guān)系。 一、目標(biāo)檢測(cè)與識(shí)別技術(shù)的概念 目標(biāo)
    的頭像 發(fā)表于 07-17 09:38 ?282次閱讀

    目標(biāo)檢測(cè)識(shí)別主要應(yīng)用于哪些方面

    目標(biāo)檢測(cè)識(shí)別是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要研究方向,它主要關(guān)注于從圖像或視頻中識(shí)別和定位目標(biāo)物體。隨著計(jì)算機(jī)視覺(jué)技術(shù)的不斷發(fā)展,目標(biāo)檢測(cè)識(shí)別已經(jīng)
    的頭像 發(fā)表于 07-17 09:34 ?451次閱讀

    慧視小目標(biāo)識(shí)別算法 解決目標(biāo)檢測(cè)中的老大難問(wèn)題

    隨著深度學(xué)習(xí)和人工智能技術(shù)的興起與技術(shù)成熟,一大批如FasterR-CNN、RetinaNet、YOLO等可以在工業(yè)界使用的目標(biāo)檢測(cè)算法已逐步成熟并進(jìn)入實(shí)際應(yīng)用,大多數(shù)場(chǎng)景下的目標(biāo)檢測(cè)
    的頭像 發(fā)表于 07-17 08:29 ?206次閱讀
    慧視小<b class='flag-5'>目標(biāo)</b>識(shí)別<b class='flag-5'>算法</b>   解決<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>中的老大難問(wèn)題

    基于深度學(xué)習(xí)的小目標(biāo)檢測(cè)

    在計(jì)算機(jī)視覺(jué)領(lǐng)域,目標(biāo)檢測(cè)一直是研究的熱點(diǎn)和難點(diǎn)之一。特別是在小目標(biāo)檢測(cè)方面,由于小目標(biāo)在圖像中所占比例小、特征不明顯,使得
    的頭像 發(fā)表于 07-04 17:25 ?424次閱讀

    機(jī)器學(xué)習(xí)算法原理詳解

    機(jī)器學(xué)習(xí)作為人工智能的一個(gè)重要分支,其目標(biāo)是通過(guò)讓計(jì)算機(jī)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無(wú)需進(jìn)行明確的編程。本文將深入解讀幾種常見(jiàn)的機(jī)器學(xué)習(xí)算法原理,包括線性回歸、邏輯回歸、支持向量機(jī)(SVM)、決策樹(shù)和K近鄰(KNN)算法,探
    的頭像 發(fā)表于 07-02 11:25 ?397次閱讀

    人員跌倒識(shí)別檢測(cè)算法

    人員跌倒識(shí)別檢測(cè)算法是基于視頻的檢測(cè)方法,通過(guò)對(duì)目標(biāo)人體監(jiān)測(cè),當(dāng)目標(biāo)人體出現(xiàn)突然倒地行為時(shí),自動(dòng)監(jiān)測(cè)并觸發(fā)報(bào)警。人員跌倒識(shí)別檢測(cè)算法基于計(jì)算
    的頭像 發(fā)表于 06-30 11:47 ?300次閱讀
    人員跌倒識(shí)別<b class='flag-5'>檢測(cè)算法</b>

    深入了解目標(biāo)檢測(cè)深度學(xué)習(xí)算法的技術(shù)細(xì)節(jié)

    本文將討論目標(biāo)檢測(cè)的基本方法(窮盡搜索、R-CNN、FastR-CNN和FasterR-CNN),并嘗試?yán)斫饷總€(gè)模型的技術(shù)細(xì)節(jié)。為了讓經(jīng)驗(yàn)水平各不相同的讀者都能夠理解,文章不會(huì)使用任何公式來(lái)進(jìn)行講解
    的頭像 發(fā)表于 04-30 08:27 ?226次閱讀
    深入了解<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>深度學(xué)習(xí)<b class='flag-5'>算法</b>的技術(shù)細(xì)節(jié)

    目標(biāo)跟蹤算法總結(jié)歸納

    目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)領(lǐng)域中的一個(gè)重要任務(wù),它旨在從視頻或圖像序列中準(zhǔn)確地檢測(cè)和跟蹤多個(gè)移動(dòng)目標(biāo)。不過(guò)在落地部署時(shí),有一些關(guān)鍵點(diǎn)需要解決。
    的頭像 發(fā)表于 04-28 09:42 ?1205次閱讀
    多<b class='flag-5'>目標(biāo)</b>跟蹤<b class='flag-5'>算法</b>總結(jié)歸納

    AI驅(qū)動(dòng)的雷達(dá)目標(biāo)檢測(cè):前沿技術(shù)與實(shí)現(xiàn)策略

    傳統(tǒng)的雷達(dá)目標(biāo)檢測(cè)方法,主要圍繞雷達(dá)回波信號(hào)的統(tǒng)計(jì)特性進(jìn)行建模,進(jìn)而在噪聲和雜波的背景下對(duì)目標(biāo)存在與否進(jìn)行判決,常用的典型算法如似然比檢測(cè)
    發(fā)表于 03-01 12:26 ?1557次閱讀
    AI驅(qū)動(dòng)的雷達(dá)<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>:前沿技術(shù)與實(shí)現(xiàn)策略

    激光SLAM:Faster-Lio算法編譯與測(cè)試

    Faster-LIO是基于FastLIO2開(kāi)發(fā)的。FastLIO2是開(kāi)源LIO中比較優(yōu)秀的一個(gè),前端用了增量的kdtree(ikd-tree),后端用了迭代ESKF(IEKF),流程短,計(jì)算快
    的頭像 發(fā)表于 01-12 10:22 ?2395次閱讀
    激光SLAM:<b class='flag-5'>Faster</b>-Lio<b class='flag-5'>算法</b>編譯與測(cè)試

    PID算法詳解及實(shí)例分析

    PID算法詳解及實(shí)例分析#include using namespace std;struct _pid{? ?float SetSpeed; //定義設(shè)定值? ?float ActualSpeed
    發(fā)表于 11-09 16:33 ?1次下載

    如何使用質(zhì)心法進(jìn)行目標(biāo)追蹤--文末送書(shū)

    TBD方法完整的流程如圖2所示,該方法共有5個(gè)步驟,其中最關(guān)鍵的是“目標(biāo)檢測(cè)”和“目標(biāo)關(guān)聯(lián)”兩個(gè)步驟,“目標(biāo)檢測(cè)”需要一個(gè)訓(xùn)練好的
    的頭像 發(fā)表于 10-31 15:47 ?630次閱讀
    如何使用質(zhì)心法進(jìn)行<b class='flag-5'>目標(biāo)</b>追蹤--文末送書(shū)

    都2023年了,Faster-RCNN還能用嗎?

    在多數(shù)深度學(xué)習(xí)開(kāi)發(fā)者的印象中Faster-RCNN與Mask-RCNN作為早期的RCNN系列網(wǎng)絡(luò)現(xiàn)在應(yīng)該是日薄西山,再也沒(méi)有什么值得留戀的地方,但是你卻會(huì)發(fā)現(xiàn)Pytorch無(wú)論哪個(gè)版本的torchvision都一直在支持
    的頭像 發(fā)表于 10-11 16:44 ?557次閱讀
    都2023年了,<b class='flag-5'>Faster-RCNN</b>還能用嗎?