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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Faster R CNN

發布時間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Faster R CNN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Faster R CNN

3 FASTER R-CNN

我們的Faster R CNN 由兩個模塊組成,第一個模塊是 proposes regions 的全卷積網絡,第二個是使用 proposed regions 的 Faster R CNN 檢測器。

3.1 Region Proposal Networks

RPN以一個圖像作為輸入,并輸出一組矩形object proposal 每個提案都有 客觀的score,我們用一個完全卷積的我網絡對這個過程進行建模。由于我們的最終目標是與faster r cnn 目標檢測網絡共享計算,我們假設這兩個網絡共享一組公共的卷積層。

為了產生proposal region 我們在最后一個共享卷積層輸出的卷積特征圖上滑動了一個小網絡。該小網絡采用輸入卷積特征的 nxn 空間窗口作為輸入。每個滑動窗口映射到一個低維特征。這個特征被輸入到兩個完全連接的同級層:一個boxes回歸層, 一個box分類層。本文使用n=3,輸入圖像上的有效感受野很大。由于迷你網絡以滑動的方式工作,全連接層是在所有空間位置共享的。該體系結構自然由nxn卷積層和兩個1x1卷積層(分別用于reg和cls)實現。

3.1.1 Anchors

在每個滑動窗口位置,我們同時預測多個region proposal,其中每個位置最大可能方案數為k,因此reg層有4k輸出編碼k個框的坐標,cls輸出2k分數,估計每個proposal region的的對象概率和非對象概率。

anchor位于滑動窗口的中心,默認情況下,我們使用3個尺度和3個縱橫比,一共9個anchor,對于W×H的feature map 來說,一共有WHk個anchor。

Translation-Invariant Anchors

我們的方法保證了平移不變性。我們的方法有(4 + 2)× 9 維卷積輸出層,因此我們的proposal 層的參數很少。

Multi-Scale Anchors as Regression References

我們的anchor解決了多尺度的挑戰。對于多尺度,第一種,圖像/特征金字塔的方法非常費時,如DPM,第二種,在feature map上使用多尺度的滑動窗口,使用不同的filter尺寸來訓練不同長徑比的模型。基于anchor的方法,依賴單一尺度的圖像和feature map,并且使用單一大小的filter。可以很好的解決多尺度和大小問題。

3.1.2 Loss Function

我們給兩種anchors指定正標簽(1)與ground truth的IoU最高的anchor(2)IoU大于0.7的anchor,一個單一的ground truth 可以為多個anchor指定正標簽。利用這些定義,我們對圖像的loss函數定義為:

其中,pi時anchor作為一個對象的預測概率,如果anchor is positive,即IoU滿足以上兩個條件之一,那么ground truth 的標簽值pi為1。ti是表示預測bounding boxes的4個坐標的參數,ti是與positive anchor 相關聯的ground truth的向量。分類損失是兩個類上的log loss,我們使用

R是robust loss function(smooth L1)。前面乘了p*i表示回歸loss只對positive anchors激活,否則為0。

對于bounding box regression,我們采用以下4個坐標的參數化:

其中帶* *號的是用于groud truth的坐標,不帶 *號的是是anchor和predicted boxes,然而,我們實現bounding box 的方法不同于以往RoI的方法。在我們的公式中,用于回歸的feature在feature map 上有相同的空間大小(3x3)。
為了解釋不同的尺寸,學習了k個bounding box regressors,每個regressor負責一個尺度和縱橫比,他們互相不共享權值。

3.1.3 Training RPNs

每一個mini-batch都是由一張圖像產生的,它包含很多positive的anchor和negative的anchor,可以對所有anchor的loss函數進行優化,但這將偏向負樣本,因為它們的量遠大于正樣本,所以,我們在圖像中隨機抽樣256個anchor,其中采樣的正樣本和負樣本比例為1:1,如果正樣本不足128,則用負樣本填充。

3.2 Sharing Features for RPN and Fast R-CNN

4-Step Alternating Training.

我們采用了一種使用的四步訓練算法,通過交替優化學習共享特征,第一步,我們訓練RPN,使用ImageNet預訓練。第二步, 我們使用RPN產生的proposal region,通過快速R-CNN來訓練一個單獨的檢測器網絡,該網絡進行預訓練,此時,這兩個網絡不共享卷積層。第三步,我們使用檢測器網絡來初始化RPN訓練,但是我們fix共享卷積層,只對unique layer of RPN進行微調,此時,這兩個網絡共享卷積層。第四步,保持共享卷積層的固定,我們微調unique layers of fast R-CNN。

還有一個更為簡單的方法,就是end-to-end的訓練方法,將RPN和Fast R-CNN結合起來一起訓練。

補充RoI pooling

ROI pooling具體操作如下:
(1)根據輸入image,將ROI映射到feature map對應位置;
(2)將映射后的區域劃分為相同大小的sections(sections數量與輸出的維度相同);
(3)對每個sections進行max pooling操作;
這樣我們就可以從不同大小的方框得到固定大小的相應 的feature maps。值得一提的是,輸出的feature maps的大小不取決于ROI和卷積feature maps大小。ROI pooling 最大的好處就在于極大地提高了處理速度。

參考:https://blog.csdn.net/AUTO1993/article/details/78514071

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

關于RPN:
https://blog.csdn.net/qq_36269513/article/details/80421990

關于nms:
https://www.cnblogs.com/makefile/p/nms.html

總結

以上是生活随笔為你收集整理的Faster R CNN的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。