1. 程式人生 > >ROI Align 在 R-FCN 中的推廣:PSROI-Align(附程式碼)

ROI Align 在 R-FCN 中的推廣:PSROI-Align(附程式碼)

ROI Align 在 R-FCN 中的推廣:PSROI-Align(附程式碼)

1. Position Sensitive ROI-Pooling 簡介

原文:https://blog.csdn.net/Bruce_0712/article/details/80287355

原始碼解析:https://blog.csdn.net/u013010889/article/details/79232740

https://blog.csdn.net/bruce_0712/article/details/80287385

上面兩個講的比較好

講解:https://blog.csdn.net/wfei101/article/details/79597707

https://blog.csdn.net/lanyuxuan100/article/details/78909211

https://blog.csdn.net/wfei101/article/details/79598143

  Position Sensitive ROI Pooling(位置敏感的候選區域池化)是檢測框架R-FCN的主要創新點。一般來講,網路越深,其具有的平移旋轉不變性越強,這個性質對於保證分類模型的魯棒性有積極意義。然而,在檢測問題中,對物體的定位任務要求模型對位置資訊有良好的感知能力,過度的平移旋轉不變性會削弱這一效能。研究發現,對於較深的全卷積神經網路(Inception、ResNet 等),Faster-RCNN檢測框架存在著一個明顯的缺陷:檢測器對物體的位置資訊的敏感度下降,檢測準確度降低。一般來講最直觀的解決方法是將RPN的位置向淺層移動(比如在ResNet中將RPN嵌入到conv4_x的位置),但這樣做會明顯增加 Fast-RCNN 部分的計算量,使得檢測速度明顯變慢。 
  有鑑於此,R-FCN 這篇文章的作者提出了一種全新的特徵聚集方法:Position Sensitive ROI Pooling。其主要思想是在特徵聚集時人工引入位置資訊,從而有效改善較深的神經網路對物體位置資訊的敏感程度。同時,R-FCN的大部分操作都直接對整張圖片進行,這也大大優化了網路的執行速度。PS-ROI Pooling 具體操作方法如下圖所示(這裡僅顯示了分類分支,包圍框迴歸分支操作類似,在通道數和損失函式形式上有一些區別): 
   
圖片標題

  如上圖,每一個候選區域(ROI)被平均分割成 k^2 個矩形單元,前序特徵圖先通過一層 1*1 的卷積核生成通道數為 k^2*(C+1) 的特徵圖。這裡,k^2 代表一個ROI裡所有矩形單元的數量,C+1 代表所有的類別數加上背景。這 k^2*(C+1) 張特徵圖每 C+1 張分成一組、共包含 k^2 組,每組負責向對應的矩形單元進行響應。池化每一個ROI時,各個點(一共 k^2 個),均由上一層中對應分組的對應位置區域通過平均池化獲得。由此獲得一組 C+1 張特徵圖。最後,將這些特徵圖經過全域性平均池化,得到 C+1 維的向量,計算分類損失函式。 
  計算反向傳播時,遵循“向對應位置回傳梯度的原則”,池化後的每一個點回傳的梯度傳向池化前特徵圖上對應通道對應區域的特徵點上。具體實現可參見原始碼:

PSROI-Pooling 原始碼

2. PS-ROI Align 的主要思路和實現細節

  ROI Align的具體原理和實現細節已在博文中說明得很清楚了。在這一改進思路的啟發下,博主嘗試將 ROI Align 移植到 PS-ROI Pooling 中,實現了一個 Position Sensitive ROI Align 的演算法。主要改進就是兩次量化的取消:ROI的邊界座標值和每個ROI中所有矩形單元的邊界值保持浮點數形式,在每個矩形單元中計算出固定位置固定數量的取樣點的畫素值作平均池化。具體的前向傳播和反向傳播細節如下:

  • 前向傳播: 
    a. 遍歷池化後特徵圖上的每一個畫素點,在池化前特徵圖上尋找對應通道上的對應區域; 
    b. 將每一個候選區域平均劃分成 n * n 個單元; 
    c. 在每一個單元內,按照設定的取樣點數目計算出取樣點的座標值; 
    d. 使用雙線性內插的方法計算出特徵圖上每一個取樣點處所對應的值; 
    e. 依照平均池化的方式計算出 a 步驟中當前點的值,並且記錄下所有采樣點的位置座標。
  • 反向傳播: 
    a. 遍歷池化後特徵圖上的每一個畫素點,在池化前特徵圖上尋找對應通道上的對應區域; 
    b. 在a步驟的當前區域中遍歷每一個點,分別和前向傳播中記錄下來的所有采樣點座標比較,如果橫縱座標都小於1,則回傳平均後的梯度值。

初步的實驗表明,PS-ROI Align 對模型的檢測效能有提升,對小物體的感知能力有明顯改善,具體的實驗結果將過段時間發出。

3.原始碼連結

先把原始碼po出來,具體資訊慢慢完善,請各位見諒。如果有任何問題,歡迎批評指正。 
https://github.com/afantideng/R-FCN-PSROIAlign

--------------------- 本文來自 ShellCollector 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/jacke121/article/details/80399666?utm_source=copy