一、什麼是ROI Pooling
ROI是Region of Intersect的簡寫,是指一張圖的感興趣區域,可以理解爲目標檢測的候選框也就是region of proposal,我們將原圖進行特徵提取的時候,就會提取到相應的特徵圖feature map。那麼相應的ROI就會在feature map上有映射,這個映射過程就是ROI Pooling的一部分,一般ROI的步驟會繼續進行max pooling,進而得到我們需要的feature map,送入後續計算中。
根據ROI提供的候選框座標,映射到Feature map上,然後進行max-pooling,和普通的max-pooling的不同之處在於池化窗口的內部的各自包含的特徵數量可能會不一樣。
下面一組圖就能很好的說明這個過程:
1、輸入是特徵圖
2、特徵圖對應的region proposal
3、若想輸出2*2的featureMap
我們需要將這個ROI區域分成4大塊,每一塊做一下max-pooling得到最終的值。
最終的值就是
再用一張動圖體現一下整個過程:
二、ROI Pooling存在的問題
1、候選框從原圖座標映射到的feature Map座標時,位置座標可能存在浮點數,此時進行取整操作而出現第一次量化;
2、在ROI Pooling求取每個小網格的位置時也同樣存在浮點數取整的情況,此時進行取證操作出現第二次量化。
三、ROI Align
爲了解決ROI Pooling兩次量化問題,ROI Align不再採用取整量化操作,而是保留了浮點數的運算,並使用雙線性插值的方式求取像素值。
具體過程如下所示:
四、雙線性插值計算方法
如上圖,每一個藍色點周圍都有4個像素點,藍色點的值爲該4個點的加權平均,權重是距離像素點的距離,距離越近,權重越大。如下圖所示:
圓圈代表像素值,色塊面積代表權重。以紅色點爲例,待計算點(黑色點)距離紅色點最遠,因此它權重最小,反映在色塊面積上就是紅色色塊面積最小。說明紅色對黑色點的影響比較小。