ROI Align 是在Mask-RCNN這篇論文里提出的一種區(qū)域特征聚集方式, 很好地解決了ROI Pooling操作中兩次量化造成的區(qū)域不匹配(mis-alignment)的問題歌粥。實(shí)驗(yàn)顯示男窟,在檢測測任務(wù)中將 ROI Pooling 替換為 ROI Align 可以提升檢測模型的準(zhǔn)確性碘裕。
ROI Pooling過程:
1、首先根據(jù)后面網(wǎng)絡(luò)要求的輸入尺寸求網(wǎng)格大小,如輸入特征圖尺寸為5*5,而網(wǎng)絡(luò)輸入尺寸為2*2,那么網(wǎng)格的劃分結(jié)果為
2丹壕、對于每個(gè)小網(wǎng)格,求最大值作為該網(wǎng)格最大池化之后的值薇溃。
在這個(gè)過程中會(huì)有兩次量化操作菌赖。對于一個(gè)region proposal,首先從原圖經(jīng)過全卷積網(wǎng)絡(luò)到特征圖沐序,得到的候選框位置可能存在浮點(diǎn)數(shù)琉用,進(jìn)行取整操作從而出現(xiàn)第一次量化;其次策幼,在ROI Pooling求取每個(gè)小網(wǎng)格的位置時(shí)也同樣存在浮點(diǎn)數(shù)取整的情況邑时。這兩次量化的結(jié)果都使得候選框的位置會(huì)出現(xiàn)偏差,在論文里特姐,作者把它總結(jié)為“不匹配問題(misalignment)晶丘。如下圖所示,假設(shè)圖片經(jīng)過主干網(wǎng)絡(luò)提取特征后唐含,特征圖縮放步長(stride)為32浅浮,則該層特征圖上0.1個(gè)像素的偏差,縮放到原圖就是3.2個(gè)像素捷枯。
ROI Align過程:
為了解決ROI Pooling的上述缺點(diǎn)滚秩,作者提出了ROI Align這一改進(jìn)的方法。ROI Align的思路很簡單:取消量化操作淮捆,使用雙線性內(nèi)插的方法獲得坐標(biāo)為浮點(diǎn)數(shù)的像素點(diǎn)上的圖像數(shù)值,從而將整個(gè)特征聚集過程轉(zhuǎn)化為一個(gè)連續(xù)的操作郁油,。值得注意的是攀痊,在具體的算法操作上桐腌,ROI Align并不是簡單地補(bǔ)充出候選區(qū)域邊界上的坐標(biāo)點(diǎn),然后將這些坐標(biāo)點(diǎn)進(jìn)行池化蚕苇,而是重新設(shè)計(jì)了一套比較優(yōu)雅的流程哩掺,如圖3所示:
遍歷每一個(gè)候選區(qū)域,保持浮點(diǎn)數(shù)邊界不做量化涩笤。
將候選區(qū)域分割成k x k個(gè)單元嚼吞,每個(gè)單元的邊界也不做量化。
在每個(gè)單元中計(jì)算固定四個(gè)坐標(biāo)位置蹬碧,用雙線性內(nèi)插的方法計(jì)算出這四個(gè)位置的值舱禽,然后進(jìn)行最大池化操作。
這里對上述步驟的第三點(diǎn)作一些說明:這個(gè)固定位置是指在每一個(gè)矩形單元(bin)中按照固定規(guī)則確定的位置恩沽。比如底扳,如果采樣點(diǎn)數(shù)是1捻勉,那么就是這個(gè)單元的中心點(diǎn)随抠。如果采樣點(diǎn)數(shù)是4蓉驹,那么就是把這個(gè)單元平均分割成四個(gè)小方塊以后它們分別的中心點(diǎn)捂掰。顯然這些采樣點(diǎn)的坐標(biāo)通常是浮點(diǎn)數(shù),所以需要使用插值的方法得到它的像素值。在相關(guān)實(shí)驗(yàn)中,作者發(fā)現(xiàn)將采樣點(diǎn)設(shè)為4會(huì)獲得最佳性能脖镀,甚至直接設(shè)為1在性能上也相差無幾。事實(shí)上狼电,ROI Align 在遍歷取樣點(diǎn)的數(shù)量上沒有ROIPooling那么多蜒灰,但卻可以獲得更好的性能,這主要?dú)w功于解決了misalignment的問題肩碟。值得一提的是强窖,我在實(shí)驗(yàn)時(shí)發(fā)現(xiàn),ROI Align在VOC2007數(shù)據(jù)集上的提升效果并不如在COCO上明顯削祈。經(jīng)過分析翅溺,造成這種區(qū)別的原因是COCO上小目標(biāo)的數(shù)量更多,而小目標(biāo)受misalignment問題的影響更大(比如髓抑,同樣是0.5個(gè)像素點(diǎn)的偏差未巫,對于較大的目標(biāo)而言顯得微不足道,但是對于小目標(biāo)启昧,誤差的影響就要高很多)。
反向傳播公式:
常規(guī)的ROI Pooling的反向傳播公式如下:
這里劈伴,xi代表池化前特征圖上的像素點(diǎn)密末;yrj代表池化后的第r個(gè)候選區(qū)域的第j個(gè)點(diǎn);i*(r,j)代表點(diǎn)yrj像素值的來源(最大池化的時(shí)候選出的最大像素值所在點(diǎn)的坐標(biāo))跛璧。由上式可以看出严里,只有當(dāng)池化后某一個(gè)點(diǎn)的像素值在池化過程中采用了當(dāng)前點(diǎn)Xi的像素值(即滿足i=i*(r,j))追城,才在xi處回傳梯度刹碾。
類比于ROIPooling,ROIAlign的反向傳播需要作出稍許修改:首先座柱,在ROIAlign中迷帜,xi*(r,j)是一個(gè)浮點(diǎn)數(shù)的坐標(biāo)位置(前向傳播時(shí)計(jì)算出來的采樣點(diǎn)),在池化前的特征圖中色洞,每一個(gè)與 xi*(r,j) 橫縱坐標(biāo)均小于1的點(diǎn)都應(yīng)該接受與此對應(yīng)的點(diǎn)yrj回傳的梯度戏锹,故ROI Align 的反向傳播公式如下:
上式中,d(.)表示兩點(diǎn)之間的距離火诸,Δh和Δw表示 xi 與 xi*(r,j) 橫縱坐標(biāo)的差值锦针,這里作為雙線性內(nèi)插的系數(shù)乘在原始的梯度上。
參考文獻(xiàn):
http://blog.csdn.net/u011918382/article/details/79455407