SNIP论文学习
論文:An Analysis of Scale Invariance in Object Detection – SNIP
 論文鏈接:https://arxiv.org/abs/1711.08189
 代碼鏈接:http://bit.ly/2yXVg4c
?? 論文分析COCO數據集,認為目前目標檢測算法的難點在于數據集中object的尺寸分布較大,尤其對于小目標的檢測效果也有待提高,因此提出Scale Normalization for Image Pyramids (SNIP)算法。
SNIP是CVPR2018 oral,并獲得了COCO2017 challenge的Best Student Entry。
small object占總的object比例太小,遠不如ImageNet的數據分布來得合理。COCO數據集中,大部分的object面積只有圖像面積的1%以下,這說明在COCO數據集中小目標占比要比ImageNet數據集大。另外,從Figure1中的COCO曲線可以看出,第90%的倍數(0.472)差不多是第10%的倍數(0.106)的20倍!這說明在COCO數據集中的object尺寸變化范圍非常大。
ImageNet預訓練的模型在遷移到樣本大小差異較大的COCO中時很可能產生一定的domain-shift偏差。因此作者產生這樣的motivation:
??? 1.現在檢測網絡為了提高對小目標的效果,都采用upsample的方法,這個真的是必要的嗎?我能不能直接用低分辨率的圖像不做upsample來訓練網絡(需要調小strides)?
 ??? 2.能不能通過挑選樣本的方式來增加網絡效果的,比如我upsample調整了大小以后,只用64x64~256x256的ground truth來訓練?用所有的gt來訓練真的更好嗎?
?現在有很多針對小目標的措施和改良:
?? 1.? 使用dilated/strous或者deformable這類特殊的卷積來提高檢測器對分辨率的敏感度
 ?? 2. 最常用的,upsample來rezie網絡輸入圖像的大小
 ?? 3. 使用FPN這種把淺層特征和深層特征融合的,或者最后在預測的時候,使用淺層特征和深層特征一起預測;也有比較直接地在淺層和深層的feature map上直接各自獨立做預測的;這個也就是我們常說的尺度問題(scales)
 作者通過一系列的探究性實驗證明了upsample對小目標物體的檢測是有一定效果的。
三種網絡:
- CNN-B使用高分辨率圖像訓練,分類經過降采樣和upsample的圖片
- CNN-S使用低分辨率圖像訓練,分類經過降采樣的圖片
- CNN-B-FT使用高分辨率圖像訓練,然后在低分辨率圖像上fine-tune,分類經過降采樣和upsample的圖片?
?CNN網絡沒有尺度不變形,沒有把scale這個隱藏變量學習到的機制,只能通過大量參數來強行記憶不同scale的物體。而下面部分談到的方法也很可能只是治標不治本,關鍵還是怎么把scale這個隱藏變量抽離出來,甚至可以直接學習;或者直接賦予網絡學習scale的能力。
?
1.每個pipe-line的RPN只負責一個scale range的proposal生成。
2.對于大size的feature map,對應的RPN只負責預測被放大的小物體;對于小size的feature map,對應的RPN只負責預測被縮小的大物體;這樣的設計保證了每個CNN分支在判別proposal是否為前景時,只需針對最易分類的中等range的proposal進行訓練
劃分了三個尺度,對應三種不同分辨率的圖像。每個分辨率i下的RoI都有其指定范圍,如果gt的box大小在這個范圍內,就被標記做valid,否則就被標記為invalid。
experiment:
1. 作者使用的是Deformable RFCN detector而不是常見的一般卷積,當然受制于實驗自身,需要作出一定的改變
 2. 作者使用的網絡結構是Dual path networks(DPN)和ResNet-101,由于需要內存很大,為了適應GPU內存,作者對圖像進行了采樣,具體方法是選取一個1000x1000的包含最多目標的區域作為子圖像,然后重復該步驟直到所有目標都被選取
 3. 作者為了提升RPN的效果,嘗試了使用7個尺度,連接conv4和conv5的輸出
 結果:
思考:
SNIP相當于開了三個pipe-line,其中包括了三個并行的feature extraction,速度簡直不要太慢,顯存占用簡直不要太大,一般的顯卡根本帶不動。
accuracy很高,但speed太慢,model太大,沒有實用性。
SNIP在沒有改進之前,是一個華麗而不實用的算法。所幸SNIPER對其進行了改進
參考blog:
https://blog.csdn.net/u014380165/article/details/80793334
https://blog.csdn.net/qq_21949357/article/details/80031891
https://blog.csdn.net/jningwei/article/details/80332984
總結
 
                            
                        - 上一篇: 简单易懂缓启动电路
- 下一篇: Oracle创建用户与授予表空间与权限
