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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Faster R-CNN改进篇(二): RFCN ● RON

發布時間:2024/9/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Faster R-CNN改进篇(二): RFCN ● RON 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/linolzhang/article/details/75137050

@改進1:RFCN

? ? ? ?論文:R-FCN: Object Detection via Region-based Fully Convolutional Networks?? ?【點擊下載】

? ? ? ?MXNet代碼:【Github】

一. 背景介紹

? ? ? ?RCNN 在目標檢測上取得了很大的成功,比如 SPPnet、Fast R-CNN、Faster R-CNN 等,這些方法的典型特征都是 一個二分網絡,以 ROI Pooling 為界,前面子網絡用于特征提取后面子網絡用于 目標檢測(Per ROI),帶來的問題是?后面的子網絡需要對每一個 ROI(Candidate)進行重復計算

? ? ? ?這種模式的形成是有原因的:Detection 來自于前期的分類網絡(如 AlexNet、VGG),最后一個 Spatial Pooling 層直觀對應到 RoI Pooling,這算是一個歷史問題。

? ? ? ?新提出的幾個網絡(ResNet、GoogLeNets)原生就是全卷積網絡,因此也就將這種結構天然的對應到 Detection 問題上,想在?ResNet 上實現Detection,需要增加一個 ROI Pooling 層,但插入的位置很關鍵(每個 ROI 候選框對應一次計算,對應?后面子網的計算量 x N):

?

  • 越靠近 Input - 對應 ROI-Wise 檢測子網越深,準確度也就越高;
  • 越靠近 Output - 對應 ROI-Wise 子網越淺,針對每個 ROI 計算量就越小,效率提高;

?

? ? ? ?PS:減少 Proposal(ROI)的數量也是一個好辦法,這對 Proposal 的要求會比較高(根據得分排序),先不討論這種思路。

? ? ? ??

? ? ? ?通過上面?可選的方案對比,可以看到 R-CNN 直接輸入 Proposal,因此整個網絡都用作檢測,Faster 保留了后面10層用于檢測,而作者新提出的方法則是 將 101 層全部用于共享,那么這種方案的可行性是怎么來保證的呢?

? ? ? ?

二. 提出框架

? ? ? ?作者首先分析了 分類/檢測 這兩類問題的區別:

● 分類問題 - 具有平移不變性(Translation Invariance);

● 檢測問題 - 在一定程度上具有平移敏感性 (Translation Variance);

? ? ? ?通過 RoI pooling 的插入,打破了原卷積網絡的平移不變性,但這種做法犧牲了訓練和測試效率(Region-Wise)。

? ? ? ?針對上述問題,作者提出了?一種新的卷積層?-?Position Sensitive 的 Score Map,Score Map 包含了位置信息,如下圖所示:

? ? ? ??

? ? ? ?有兩個關鍵層:

1)包含多個 Score Map 的卷積層;

? ? ??把目標分割成了 k*k 個部分(比如3*3),每個部分映射到一張 Score Map 上,每個 Score Map 對應目標的一部分(如上圖中的 top-left 左上角的 1/9)。

? ? ? 最終得到 k*k 個Score Map,每一個 Map通道數為 分類個數?C+1。

2)一個 ROI Pooling 層;

? ? ? 這個 ROI 層僅針對上面的其中一個 Score Map 執行 Pooling 操作,重新排列成 k*k,通道數為 C+1。

? ? ? ROI Pooling 層通過 k*k 個 Part 進行投票,得到分類結果。

? ? ? ?Score Map 和 ROI Pooling 層的工作方式示意如下:

? ? ? ??

?

三. 網絡結構

? ? ? ?R-FCN 沿用了 Faster RCNN 的網絡結構,通過 RPN 生成 Proposal,RPN 層與 Detection 共享前面的特征層:

? ? ? ??

? ? ? ?R-FCN 的基礎網絡部分是基于 ResNet101 的修改:

1)共享卷積子網

? ? ?去掉了最后的 average pooling 層和全連接層,并新增了一個卷積層進行降維,共101個卷積層。

2)RPN 子網

? ? ?與 Faster 一致,沒有變化。

3)檢測分類子網

? ? ?1個 Score Maps層 + 1個 ROI Pooling層,上一節提到的兩個關鍵層,與 RPN 并聯。

? ? ? >?Scores Map & ROI 具體過程:

? ? ? ? Scores Maps 的組合是卷積層的關鍵部分,描述了目標的 Score 信息,每一個 Score Map 對應目標的一部分,比如 上圖中黃色 Map 始終表示左上角,其 C+1 維通道表示了 分類類別(C個類別+1個背景)。

? ? ? ?Pooling 過程:結合 ROI (W‘,H’)來看,bin(Pool之后得到的9個不同的顏色塊) 的尺寸描述為 (W‘/k,H’/k),對于上面的 3*3 的情況,每一個 bin 用公式來描述:

? ? ? ??

? ? ? ?其中 i,j 取值為[0,k),理解為在 ROI 對應的其中一個 Map 上,采樣其中的 1/9,上圖中黃色 Map的采樣范圍始終為左上角,最右側淺藍色始終采樣右下角

? ? ? ?投票過程是(每個類單獨計算)通過多個 bin 求和得到 一個類的 Score,并通過 Softmax 進行分類,Loss 函數定義為:

? ? ? ??

? ? ? ?分類 Loss 和 回歸 Loss 通過一個參數?λ 加權平均,Lreg 同樣采用 L1 Smooth。

?

四. 實驗結果

? ? ? 在 VOC07,VOC12,MS COCO 上的測試對比結果,具體的配置和細節可以參考原文,R-FCN 與 Faster R-CNN 的對比,效果幾乎相同,但效率有了成倍的提升。

? ? ? ?

? ? ? ? ?

? ? ? ??

@改進2:RON

? ? ? ?論文:RON: Reverse Connection with Objectness Prior Networks for Object Detection ? ?【點擊下載】

? ? ? ?Caffe代碼:【Github】

?

一. 背景介紹

? ? ? ?論文首先闡述了 Region-Based 方法在精確度上的優點,以及 Region-Free 方法在效果上的表現,想結合這兩類方法,提出一種新的方法。

? ? ? ?該方法包括三個方面:

1)提出一種新的全卷積網絡 RON;

? ? ? 第一,通過 Reverse Connection 為前一層 Feature 提供更多語義信息,第二,Objectness Prior 有效約束了目標搜索區域,最后,通過多任務 Loss 讓整個網絡實現 end-to-end 訓練。

2)引入 Negative example mining(副樣本挖掘) 和?data augmentation(數據增強),有效提高檢測效果;

3)有效節約 計算時間 和 計算資源,1.5G顯存+15fps,比 Faster R-CNN快3倍;

? ? ?另外,我們還拓展了更多的設計選擇,像不同層的合并,可選的Objectness Prior?,and so on。

? ? ? ?這里面只有 1)算是文章創新,也是本文的核心;

? ? ? ? ? ? ? ? ? ? ? ? ? 2)頂多算是引入了別人的 Trick,不用考慮;

? ? ? ? ? ? ? ? ? ? ? ? ? 3)把功能性能搞混了吧,搞學術的童鞋湊數的本領強!

?

二. 算法框架

? ? ? ?基礎框架為 VGG16,將其中的 FC6,FC7 替換為卷積層,并通過 2*2的卷積核(stride=2)將 FC7 的分辨率減半,FC8 未使用。

? ? ? ?特征圖尺寸(基于 input 的縮放比例)分別為:1/8 (conv 4_3), 1/16 (conv 5_3), 1/32 (conv 6) , 1/64 (conv 7)。

? ? ? ??

? ? ? ?Follow 論文組織結構往下看:

1)Reverse Connection(反向連接)

? ? ? 與作者之前的 HyperNet 一樣,采用 反卷積(Deconv)將當前層的語義信息反饋到上層,通過一個上采樣與之前層進行 融合。

? ? ? 多尺度信息能夠對小目標有更好的檢測精度,這一點都有共識了,通過 conv4、5、6、7 各特征層分別進行檢測。

2)Reference Boxes(參考框)

? ? ?參考框的提出與 Faster RCNN 里的 Anchor 類似,這里采用的是 2個尺度,5種長寬比 {1/3,1/2,1,2,3},對應 10個 Anchor。

? ? ?尺度公式描述為:

? ? ?

? ? ? Smin 取值為 Input 尺寸的 1/10,對于 1000*1000的 image,Smin = 100,對應每個特征圖 k 得到:

k=1, ? S1 = (100,200)

k=2, ? S2 = (300,400)

k=3, ? S3 = (500,600)

k=4, ? S4 = (700,800)

3)Objectness Prior(目標先驗)

? ? ? 對應上一節提出的 參考框(default boxes),只有很少一部分框包含目標,其余大部分都是無效的背景,Region-Based 方法能夠通過預計算來解決這個問題,有效避免每個 Region 帶來的重復計算。作者提出的方法與之不同:

? ? ??用一個3x3x2的卷積 加 一個 Softmax 來表示每個 Box 里面是否存在目標。

? ? ? ? ? PS:與 RPN 的區別在于這里只有一個 2位的 Score(目標Score,背景Score),沒有位置偏移。

? ? ? 下圖是 Prior 的一個可視化效果(很明顯地反映有無目標):

? ? ? ??

? ? ? 圖中對10個目標先驗特征圖沿通道方向取了平均。

?

4)Detection and Bounding?Box Regression(檢測和邊框回歸)

? ? ?與 Objectness Prior 不同,這里要把目標分為 K+1個類:對應 VOC(20+1) COCO(80+1)。

? ? ?這里引入了 inception 模塊,看圖說話:

? ? ? ??

?

5)Combining Objectness Prior with Detection(結合目標先驗和檢測)

? ? ?訓練網絡時,首先為每個候選區域指定一個二進制 Label。如果候選區域包含目標,就再指定一個 特定類別 Label。

i)對每一個 Ground Truth Box,找到和它重疊面積最大的候選區域;

ii)對每個候選區域,找到和它重疊面積大于0.5的 Ground Truth;

? ? 這種匹配策略保證每一個 Ground Truth 至少有一個候選框與之關聯,重疊比例小于0.3的作為負樣本。

? ? 這樣,每一個 Box 有兩個 Label,Objectness(是否為目標) Label,Class Label。訓練的時候網絡會根據 Objectness Prior 動態更新 Class Label。

? ? > 前向傳播時,網絡首先產生目標先驗,并進行類別檢測。

? ? > 反向傳播時,網絡首先會產生目標先驗,然后對于檢測,只會在 Objectness 得分大于某個閾值的區域內進行目標檢測,如下圖所示。

? ? ? ?額外的計算僅僅在于為反向傳播選擇訓練樣本。當選擇合適的閾值時(我們選擇閾值為0.03),樣本的數量減少了,這樣反向傳播的時間就縮短了。

? ? ? ??

?

?

三. 訓練及測試結果

? ?● Loss函數:

? ? ? ?先來看 Loss 函數定義:

? ? ? ??

? ? ? ?將 目標檢測Loss、定位Loss、分類Loss?組成一個加權 Loss 函數,原文 3個項都為 1/3。

? ?●?訓練過程:

a)對于 Objectness Prior,選擇全部的正樣本,隨機選取負樣本,保證正負樣本的比例為1:3;

b)對于 Detection,首先通過?Objectness Prior Score?減少樣本數量,然后選擇全部的正樣本,隨機選取負樣本,保證正負樣本的比例為1:3;

? ? ? ?Faster RCNN 和 RFCN 常常用 Multi Stage 訓練 做聯合優化,相比之下,我們這種端到端的訓練方法更有效率。訓練初期,目標先驗是一片吵雜。隨著訓練的進行,目標先驗圖越來越集中在目標附近。(這一點確實不敢茍同,Multi Stage 的作用保證的是更快收斂)。

? ?● 數據增強:

? ? ? 使用了如下策略:

1)使用 原始/翻轉 的Image 做 Input;

2)按照比例 { 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 } 從原圖中 Crop Patch,保證每個 Patch 中包含目標中心;

? ? ? ?這些方法可以有效增加大目標數量,對小目標沒有幫助。

? ? ? ?針對小目標,通過 Scale 將某個尺度下的大目標變成 較小的尺度下的小目標,這個訓練策略可以避免對特定目標尺寸的過擬合。

?

? ?● 預測:

? ? ? ?每個 Box 的類置信度表示為:

? ? ? ??

? ? ? ?這個得分包含兩部分,一是 Objectness 的概率,二是目標的類別概率。

? ? ? ?得到目標 Score之后,通過邊框回歸調整 Box位置,最后用 NMS 得到最終檢測結果。

? ?● 效果對比:

? ? ? ?作者分別在 VOC07,VOC12,COCO 數據集上給出了測試結果,我們只貼出來 VOC12 的效果對比:

? ? ? ??

? ? ? ? 其他數據集 測試結果都差不多,總體上效果還是不錯的,大家可以跑代碼之后對比。

--------------------- 本文來自 linolzhang 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/linolzhang/article/details/75137050?utm_source=copy

總結

以上是生活随笔為你收集整理的Faster R-CNN改进篇(二): RFCN ● RON的全部內容,希望文章能夠幫你解決所遇到的問題。

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