輸入圖片的尺寸對檢測模型的性能影響相當明顯,事實上,多尺度是提升精度最明顯的技巧之一。在基礎網絡部分常常會生成比原圖小數十倍的特征圖,導致小物體的特征描述不容易被檢測網絡捕捉。通過輸入更大、更多尺寸的圖片進行訓練,能夠在一定程度上提高檢測模型對物體大小的魯棒性,僅在測試階段引入多尺度,也可享受大尺寸和多尺寸帶來的增益。
multi-scale training/testing最早見於“Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition”這篇文章,訓練時,預先定義幾個固定的尺度,每個epoch隨機選擇一個尺度進行訓練。測試時,生成幾個不同尺度的feature map,對每個Region Proposal,在不同的feature map上也有不同的尺度,我們選擇最接近某一固定尺寸(即檢測頭部的輸入尺寸)的Region Proposal作為后續的輸入。在“Object Detection Networks on Convolutional Feature Maps”這篇文章中,選擇單一尺度的方式被Maxout(element-wise max,逐元素取最大)取代:隨機選兩個相鄰尺度,經過Pooling后使用Maxout進行合並,如下圖所示。
近期的工作如FPN等已經嘗試在不同尺度的特征圖上進行檢測,但多尺度訓練/測試仍作為一種提升性能的有效技巧被應用在MS COCO等比賽中。