日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Faster-RCNN算法精读

發(fā)布時間:2024/9/21 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Faster-RCNN算法精读 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

論文:《Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks》

摘要:算法主要解決兩個問題:

1、提出區(qū)域建議網(wǎng)絡RPN,快速生成候選區(qū)域;

2、通過交替訓練,使RPN和Fast-RCNN網(wǎng)絡共享參數(shù)。

?

一、 RPN網(wǎng)絡結構

RPN網(wǎng)絡的作用是輸入一張圖像,輸出一批矩形候選區(qū)域,類似于以往目標檢測中的Selective Search一步。網(wǎng)絡結構是基于卷積神經(jīng)網(wǎng)絡,但輸出包含二類softmax和bbox回歸的多任務模型。網(wǎng)絡結果如下(以ZF網(wǎng)絡為參考模型):


其中,虛線以上是ZF網(wǎng)絡最后一層卷積層前的結構,虛線以下是RPN網(wǎng)絡特有的結構。首先是3*3的卷積,然后通過1*1卷積輸出分為兩路,其中一路輸出是目標和非目標的概率,另一路輸出box相關的四個參數(shù),包括box的中心坐標x和y,box寬w和長h。

(至于之前為什么要用3*3的卷積核,我覺得是和感受野大小相對應的。在原來的ZF模型中,3*3卷積核對應map比例是3/13,相當于在型如1000*600的圖片中采用180左右的感受野。對于1000*600的圖片中大部分目標而言,這個大小的感受野是比較合適的吧。)

從卷積運算本身而言,卷積相當于滑窗。假如輸入圖像是1000*600,則經(jīng)過了幾次stride后,map大小縮小了16倍,最后一層卷積層輸出大約為60*40大小,那么相當于用3*3的窗口滑窗(注意有padding),對于左邊一支路而言,輸出18個通道,每個通道m(xù)ap大小仍為60*40,代表每個滑窗中心對應感受野內(nèi)存在目標與否的概率。右支路同理。

二、 anchor機制

anchor是rpn網(wǎng)絡的核心。剛剛說到,需要確定每個滑窗中心對應感受野內(nèi)存在目標與否。由于目標大小和長寬比例不一,需要多個尺度的窗。Anchor即給出一個基準窗大小,按照倍數(shù)和長寬比例得到不同大小的窗。例如論文中基準窗大小為16,給了(8、16、32)三種倍數(shù)和(0.5、1、2)三種比例,這樣能夠得到一共9種尺度的anchor,如圖(摘自http://blog.csdn.net/shenxiaolu1984/article/details/51152614)。


因此,在對60*40的map進行滑窗時,以中心像素為基點構造9種anchor映射到原來的1000*600圖像中,映射比例為16倍。那么總共可以得到60*40*9大約2萬個anchor。

三、 訓練

RPN網(wǎng)絡訓練,那么就涉及ground truth和loss function的問題。對于左支路,ground truth為anchor是否為目標,用0/1表示。那么怎么判定一個anchor內(nèi)是否有目標呢?論文中采用了這樣的規(guī)則:1)假如某anchor與任一目標區(qū)域的IoU最大,則該anchor判定為有目標;2)假如某anchor與任一目標區(qū)域的IoU>0.7,則判定為有目標;3)假如某anchor與任一目標區(qū)域的IoU<0.3,則判定為背景。所謂IoU,就是預測box和真實box的覆蓋率,其值等于兩個box的交集除以兩個box的并集。其它的anchor不參與訓練。

于是,代價函數(shù)定義為:


代價函數(shù)分為兩部分,對應著RPN兩條支路,即目標與否的分類誤差和bbox的回歸誤差,其中Leg(ti,ti*) = R(ti-ti*)采用在Fast-RCNN中提出的平滑L1函數(shù),作者認為其比L2形式的誤差更容易調(diào)節(jié)學習率。注意到回歸誤差中Leg與pi相乘,因此bbox回歸只對包含目標的anchor計算誤差。也就是說,如果anchor不包含目標,box輸出位置無所謂。所以對于bbox的groundtruth,只考慮判定為有目標的anchor,并將其標注的坐標作為ground truth。此外,計算bbox誤差時,不是比較四個角的坐標,而是tx,ty,tw,th,具體計算如下:


四、 聯(lián)合訓練

作者采用四步訓練法:

1) 單獨訓練RPN網(wǎng)絡,網(wǎng)絡參數(shù)由預訓練模型載入;

2) 單獨訓練Fast-RCNN網(wǎng)絡,將第一步RPN的輸出候選區(qū)域作為檢測網(wǎng)絡的輸入。具體而言,RPN輸出一個候選框,通過候選框截取原圖像,并將截取后的圖像通過幾次conv-pool,然后再通過roi-pooling和fc再輸出兩條支路,一條是目標分類softmax,另一條是bbox回歸。截止到現(xiàn)在,兩個網(wǎng)絡并沒有共享參數(shù),只是分開訓練了;

3) 再次訓練RPN,此時固定網(wǎng)絡公共部分的參數(shù),只更新RPN獨有部分的參數(shù);

4) 那RPN的結果再次微調(diào)Fast-RCNN網(wǎng)絡,固定網(wǎng)絡公共部分的參數(shù),只更新Fast-RCNN獨有部分的參數(shù)。

至此,網(wǎng)絡訓練結束,網(wǎng)絡集檢測-識別于一體,測試階段流程圖如下:

有一些實現(xiàn)細節(jié),比如RPN網(wǎng)絡得到的大約2萬個anchor不是都直接給Fast-RCNN,因為有很多重疊的框。文章通過非極大值抑制的方法,設定IoU為0.7的閾值,即僅保留覆蓋率不超過0.7的局部最大分數(shù)的box(粗篩)。最后留下大約2000個anchor,然后再取前N個box(比如300個)給Fast-RCNN。Fast-RCNN將輸出300個判定類別及其box,對類別分數(shù)采用閾值為0.3的非極大值抑制(精篩),并僅取分數(shù)大于某個分數(shù)的目標結果(比如,只取分數(shù)60分以上的結果)。

總結

以上是生活随笔為你收集整理的Faster-RCNN算法精读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。