深度學習(目標檢測)---ROI Pooling層詳解

原文鏈接:https://blog.deepsense.ai/region-of-interest-pooling-explained/

 

目標檢測typical architecture 通常可以分爲兩個階段:

(1)region proposal:給定一張輸入image找出objects可能存在的所有位置。這一階段的輸出應該是一系列object可能位置的bounding box。這些通常稱之爲region proposals或者 regions of interest(ROI)。

(2)final classification:確定上一階段的每個region proposal是否屬於目標一類或者背景。

這個architecture存在的一些問題是:


產生大量的region proposals 會導致performance problems,很難達到實時目標檢測。
在處理速度方面是suboptimal。
無法做到end-to-end training。

這就是ROI pooling提出的根本原因。

ROI pooling層能實現training和testing的顯著加速,並提高檢測accuracy。該層有兩個輸入:


從具有多個卷積核池化的深度網絡中獲得的固定大小的feature maps;
一個表示所有ROI的N*5的矩陣,其中N表示ROI的數目。第一列表示圖像index,其餘四列表示其餘的左上角和右下角座標;

ROI pooling具體操作如下:

(1)根據輸入image,將ROI映射到feature map對應位置;

(2)將映射後的區域劃分爲相同大小的sections(sections數量與輸出的維度相同);

(3)對每個sections進行max pooling操作;

這樣我們就可以從不同大小的方框得到固定大小的相應 的feature maps。值得一提的是,輸出的feature maps的大小不取決於ROI和卷積feature maps大小。ROI pooling 最大的好處就在於極大地提高了處理速度。

ROI pooling example

考慮一個8*8大小的feature map,一個ROI,以及輸出大小爲2*2.

(1)輸入的固定大小的feature map 


(2)region proposal 投影之後位置(左上角,右下角座標):(0,3),(7,8)。

 

(3)將其劃分爲(2*2)個sections(因爲輸出大小爲2*2),我們可以得到:

 

(4)對每個section做max
 pooling,可以得到:

 

 

ROI pooling總結:

(1)用於目標檢測任務;(2)允許我們對CNN中的feature map進行reuse;(3)可以顯著加速training和testing速度;(4)允許end-to-end的形式訓練目標檢測系統。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章