MSRA在目標檢測方向Beyond Regular Grid的方向上越走越遠,又一篇大做推出,相比前做DCN v1在COCO上直接漲了超過5個點,簡直不要太瘋狂。文章的主要內容可大體概括以下:網絡
做者給出了三種可視化方法進行模型的分析,目的是從中發現DCN v1存在的問題,這幾個方法雖然不是原創,但不得不說用得很是好,值得學習。性能
如原文Figure 1,有朋友反映不太能get到這個圖的點,這裏簡單分析一下。這個圖是對conv5 stage的最後一層卷積運用上面三種方法分析的結果,第一列是個燒餅(小目標),第二列是人(大目標),第三列是背景,綠點是目標的中心,上面幾種方法就是基於節點以這幾個綠點爲中心作卷積時的狀況進行的(這句話真是繞)。能夠看到,(a)的第一行,regular卷積的感覺野是regular的網格,感覺野內的權重中心高,四周低。而dconv和mdconv的感覺野理論上是全圖,dconv比regular conv權重更集中於目標自己,而mdconv又比dconv更牛逼。其餘兩行要表達的東西其實相似。做者基於此概括出的結論參考原文,基本也就是這意思。學習
爲了更好地建模幾何形變,固然要堆疊更多的dconv,前做中只在conv5階段用了3層dconv,性能就飽和了,但那是在PASCAL上的結果,COCO比PASCAL要複雜得多(固然訓練數據量多也是緣由之一),因此做者把conv3-conv5三個階段12層conv都換成了dconv,妥妥的漲點。不過這不是主要的創新。spa
爲了防止卷積變形時focus到無關位置,做者在dconv中加了一個調製項,
\[y(p) = \sum_{k=1}^{K} w_k \cdot x(p+p_k+\Delta p_k)\cdot \Delta m_k\]
符號就很少解釋了,最後一項就是可學習的調製項,當採樣點focus到無關位置時,這一項置0就能夠挽回大局。調製項與前面的offset項用一樣的方法得到,就是接一個旁支,以前輸出2K個channel,如今輸出3K個channel就是了。注意,看起來調製項和卷積核的參數w貌似是一回事,能夠合寫成一項,其實這是徹底不一樣的,w是模型自己的參數,調製項是從輸入特徵中計算出來的,能夠根據輸入的不一樣自適應地去完成本身的使命。
另外也將dpool改進成了mdpool,也是乘了一個調製項,同樣的道理,在此再也不贅述。orm
對於這一點我我的的疑惑是比較大的,這種trick可以work我感到驚訝和佩服。操做的方法就是模型蒸餾那一套,這個東西最近挺火的,最近還有一篇投稿到CVPR2019作pose的也用了這東西去作模型的壓縮,效果也比較驚豔,不過這裏是用來作特徵的模仿,不是壓縮。要解決的問題其實仍是要篩除無關的上下文信息,做者認爲加入調製項還不夠,咱們知道,R-CNN的作法不考慮ROI以外的內容,也就不會引入無關的context,因此直接模仿R-CNN提的特徵就行了。具體作法參見原文Figure3,獲得ROI以後,在原圖中摳出這個ROI,resize到224x224,再送到一個RCNN中進行分類,這個RCNN只分類,不迴歸。而後,主網絡fc2的特徵去模仿RCNN fc2的特徵,實際上就是二者算一個餘弦類似度,1減去類似度做爲loss便可,見原文公式(3)。這個東西確實是work了,不過我的有個重大疑問,或許也是能夠改進的點,歡迎各位看官一塊兒討論:blog
主網絡fc2的特徵要用來分類,也要用來回歸bbox,而RCNN的fc2特徵只用來分類,讓主網絡的fc2特徵去模仿RCNN,是否是會丟失定位信息?也就是說,Mimic Loss會不會跟bbox迴歸Loss產生某種意義上的衝突?能不能試試拆分一下fc2特徵,把用於分類和用於迴歸的特徵分開,只模仿用於分類的部分?固然,這個想法不成熟,有待商榷,不過感受直接Mimic真的有一丟丟粗暴。
就這樣吧,還要抓緊讀JiFeng老師剛發的另外一篇paper。=_=get