RepPoints:可形變卷積的進(jìn)階
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
一直以來都非常欣賞微軟的研究,尤其是可形變卷積,這個工作在我看來非常的有創(chuàng)造力(很喜歡可形變卷積這個思路),這次借著RepPoints這篇最新的論文,回顧一下可形變卷積。
本文主要涉及DCNv1、DCNv2、RepPoints三篇文章,其中RepPoints可以認(rèn)為是DCNv3。這三篇文章不斷改進(jìn)可形變卷積,提升模型的幾何形變建模能力。
Review of DCNv1 and DCNv2
由尺度、姿態(tài)、視角和部分形變等因素引起的幾何變化是目標(biāo)識別和檢測的主要挑戰(zhàn)。在卷積/RoI池化模塊中,DCN通過學(xué)習(xí)采樣點(diǎn)的位置來得到幾何形變建模的能力。

Deformable Convolution

由輸入特征學(xué)習(xí)得到的偏移量來改變標(biāo)準(zhǔn)卷積的采樣位置。
可形變卷積可以表示為:

給定一個有
個采樣點(diǎn)的卷積核,
表示為第
個采樣點(diǎn)的權(quán)值,
表示為第
個采樣點(diǎn)預(yù)定義的偏移量(例如,
和
定義了一個3x3的卷積核)。
定義為輸入特征位置
的特征,
定義為輸出特征位置
的特征。
為卷積學(xué)習(xí)得到的第
個采樣點(diǎn)的位置偏移量。因?yàn)?nbsp;
是小數(shù),所以
通過雙線性插值得到。
PS:偏移量特征的分辨率與輸入特征的分辨率相同,且通道數(shù)為采樣點(diǎn)個數(shù)的兩倍(即每個位置都有x和y兩個方向的偏移量)。
Modulated Deformable Convolution

相比可形變卷積多了一個調(diào)制因子。
調(diào)制可形變卷積可以表示為:

表示為第
個采樣點(diǎn)的調(diào)制因子(范圍在
之間)。
PS:調(diào)制因子特征的分辨率與輸入特征的分辨率相同,且通道數(shù)為采樣點(diǎn)的個數(shù),加上偏移量特征后的通道數(shù)為采樣點(diǎn)個數(shù)的三倍(即每個位置都有x和y兩個方向的偏移量,還有一個調(diào)制因子)。
Deformable RoI Pooling

給定一個輸入RoI,RoI pooling將它分成
個bins。首先通過RoI pooling得到池化后的feature maps,然后通過一個fc層產(chǎn)生歸一化偏移量
(該偏移量可以轉(zhuǎn)化為
)。
單個bin的輸出特征可表示為:

表示為第
個bin的第
個采樣點(diǎn)的位置,
表示為第
個bin的采樣點(diǎn)數(shù)量。
通過雙線性插值得到。
為第
個bin的偏移量。
PS:fc層的輸出為bin個數(shù)的兩倍(即每個bin都有x和y兩個方向的偏移量)。
Modulated Deformable RoI Pooling

帶調(diào)制因子的單個bin的輸出特征可表示為:

為第
個bin的調(diào)制因子(范圍在
之間)。
PS:有兩個fc層,第二個fc層的輸出為bin個數(shù)的三倍(即每個bin都有x和y兩個方向的偏移量,還有一個調(diào)制因子)。
RepPoints
Motivation
在目標(biāo)檢測任務(wù)中,邊界框描述了目標(biāo)檢測器各階段的目標(biāo)位置。
雖然邊界框便于計算,但它們僅提供目標(biāo)的粗略定位,并不完全擬合目標(biāo)的形狀和姿態(tài)。因此,從邊界框的規(guī)則單元格中提取的特征可能會受到背景內(nèi)容或前景區(qū)域的無效信息的嚴(yán)重影響。這可能導(dǎo)致特征質(zhì)量降低,從而降低了目標(biāo)檢測的分類性能。
本文提出一種新的表示方法,稱為 RepPoints,它提供了更細(xì)粒度的定位和更方便的分類。

如圖所示,RepPoints 是一組點(diǎn),通過學(xué)習(xí)自適應(yīng)地將自己置于目標(biāo)之上,該方式限定了目標(biāo)的空間范圍,并且表示具有重要語義信息的局部區(qū)域。
RepPoints 的訓(xùn)練由目標(biāo)定位和識別共同驅(qū)動的,因此,RepPoints 與 ground-truth 的邊界框緊密相關(guān),并引導(dǎo)檢測器正確地分類目標(biāo)。
Bounding Box Representation
邊界框是一個4維表示,編碼目標(biāo)的空間位置,即
,
表示中心點(diǎn),
表示寬度和高度。
由于其使用簡單方便,現(xiàn)代目標(biāo)檢測器嚴(yán)重依賴于邊界框來表示檢測 pipeline 中各個階段的對象。
性能最優(yōu)的目標(biāo)檢測器通常遵循一個 multi-stage 的識別范式,其中目標(biāo)定位是逐步細(xì)化的。其中,目標(biāo)表示的角色如下:

RepPoints
如前所述,4維邊界框是目標(biāo)位置的一個粗略表示。邊界框表示只考慮目標(biāo)的矩形空間范圍,不考慮形狀、姿態(tài)和語義上重要的局部區(qū)域的位置,這些可用于更好的定位和更好的目標(biāo)特征提取。
為了克服上述限制,RepPoints 轉(zhuǎn)而對一組自適應(yīng)樣本點(diǎn)進(jìn)行建模:

其中
為表示中使用的樣本點(diǎn)的總數(shù)。在這項工作中,
默認(rèn)設(shè)置為 9。
Learning RepPoints
RepPoints 的學(xué)習(xí)是由目標(biāo)定位損失和目標(biāo)識別損失共同驅(qū)動的。為了計算目標(biāo)定位損失,我們首先用一個轉(zhuǎn)換函數(shù)
將 RepPoints 轉(zhuǎn)換為偽框 (pseudo box)。然后,計算轉(zhuǎn)換后的偽框與 ground truth 邊界框之間的差異。
RPDet
作者設(shè)計了一種不使用 anchor 的對象檢測器,它利用 RepPoints 代替邊界框作為目標(biāo)的基本表示。
目標(biāo)表示的演化過程如下:

RepPoints Detector (RPDet) 由兩個基于可變形卷積的識別階段構(gòu)成,如圖所示。

可變形卷積與 RepPoints 很好地結(jié)合在一起,因?yàn)樗木矸e是在一組不規(guī)則分布的采樣點(diǎn)上計算的,另外,它的分類可以指導(dǎo)訓(xùn)練這些點(diǎn)的定位。
上圖的第一個偏移量通過對角點(diǎn)監(jiān)督學(xué)習(xí)得到,第二個偏移量在前一個偏移量的基礎(chǔ)上通過分類監(jiān)督學(xué)習(xí)得到。
從另一個角度來理解RepPoints:
可形變卷積通過最后的分類分支和回歸分支的監(jiān)督,自適應(yīng)的關(guān)注到合適的特征位置,提取更好的特征,但是我一直沒想明白的是可形變卷積真的能夠關(guān)注到合適的特征位置嗎,可形變卷積的偏移量學(xué)習(xí)是非常自由的,可能會跑到遠(yuǎn)離目標(biāo)的位置,那么這些特征真的是有幫助的嗎,這些問題一直困擾著我,我覺得可形變卷積的中間過程太模糊了,太不直接了,是難以解釋的。而RepPoints通過定位和分類的監(jiān)督信號來直接監(jiān)督偏移量的學(xué)習(xí),這樣偏移量不就有可解釋性了嗎,偏移的位置使得定位和分類更加準(zhǔn)確(即偏移的位置可定位目標(biāo)并且語義信息可識別目標(biāo)),這樣偏移量就不會亂跑了,而且是可解釋的。
從這個角度來想,RepPoints其實(shí)是對可形變卷積進(jìn)一步的改進(jìn),相比可形變卷積有兩個優(yōu)點(diǎn):
1.通過定位和分類的直接監(jiān)督來學(xué)習(xí)可形變卷積的偏移量,使得偏移量具有可解釋性。
2.可以通過采樣點(diǎn)來直接生成偽框 (pseudo box),不需要另外學(xué)習(xí)邊界框,并且分類和定位有聯(lián)系。
好消息!
小白學(xué)視覺知識星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實(shí)戰(zhàn)項目52講 在「小白學(xué)視覺」公眾號后臺回復(fù):Python視覺實(shí)戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實(shí)戰(zhàn)項目,助力快速學(xué)校計算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項目20講 在「小白學(xué)視覺」公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項目20講,即可下載含有20個基于OpenCV實(shí)現(xiàn)20個實(shí)戰(zhàn)項目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

