天天看點

目标檢測:fasterRCNN的receptive field的了解

作者:Alan Huang

連結:https://www.zhihu.com/question/61772315/answer/191421994

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

在物體檢測中, 除了物體本身的appearance之外, context對檢測品質會有不少影響。 特别是當物體本身appearance資訊不足的時候(遮擋,尺度過小等等),context會成為檢測判别當中非常重要的線索。 通常來講, context應該要和物體的尺寸相比對: 如果過小則context資訊不足以提供置信度支援; 若過大(特别是當你提供的context和檢測物體本身并沒有很強的coherence時),會引入過多的額外噪聲對訓練和預測造成幹擾。

receptive-field 即網絡輸出的一個點所涵蓋的輸入區域,可以認為是object + context的連續區域。Context大小往往跟檢測的物體類型和應用場景有關。以其他答主提到的人臉和車輛為例:

人臉檢測場景中, 通常會出現頭肩,甚至是整個人體的資訊。 人臉跟頭肩和人體具有非常大的相關性,此時如果增大receptive-field, 把頭肩甚至是整個人體都包含進去, 往往會比單單包含人臉輸入的檢測器要好。 這也是為何許多人臉檢測器訓練的輸入往往是整個上半身圖, 而不是單單一張臉。 [1612.04402] Finding Tiny Faces 這篇固定receptive field(300px)也是合理的:對于小的人臉(<30px), 這個輸入大小已經包含了大部分的人體, 能夠提供足夠多的context; 對于大的人臉(80-200px),輸入分辨率足夠高,有了足夠的細節資訊,可以隻從人臉區域就能有比較高的置信度判斷是不是人臉。

車輛檢測中, 整個車的bounding box已經囊括了車本身,是以context一般不需要太大,empirically 物體本身的2-3倍大小輸入就足夠了。 過大的receptive-field還會造成定位不準以及低recall, 這也是直接在KITTI上怼faster r-cnn效果并不理想的原因。

最後, 如果想把物體檢測的性能做好, 除了了解現在最新的CNN系列方法之外, 去回顧一下傳統的檢測方法也是必要的, 因為很多物體檢測問題本身的一些domain knowledge 被強大的CNN掩蓋掉了..... 例如 如何解決intra-class variance(subtype clustering? ), 如何處理object scale variance (image pyramid ? multi-scale models ?) , 如何做input sampling(hard negative mining? ) 等等等等

不過這可能也是因為人臉這個目标比較特殊,人臉畢竟隻占人體的一小部分,而人體是非常強的context資訊。換成别的目标,比如說一輛車、一個行人可能也不需要幾十倍大的receptive field。

繼續閱讀