SSD的default box計算方式:
以feature map上每個點的中點為中心(offset=0.5),生成一些列同心的prior box(然后中心點的坐標會乘以step,相當于從feature map位置映射回原圖位置)
-
正方形prior box最小邊長為
image
,最大邊長為:
image -
每在prototxt設置一個aspect ratio,會生成2個長方形,長寬為:
image
和
image
image
而每個feature map對應prior box的min_size和max_size由以下公式決定,公式中m是使用feature map的數量(SSD 300中m=6):
image
第一層feature map對應的min_size=S1,max_size=S2;第二層min_size=S2,max_size=S3;其他類推。在原文中,Smin=0.2,Smax=0.9
具體計算方式在SSD的訓練腳本ssd_pascal.py中如下:

2018-07-24 15-41-43屏幕截圖.png
具體計算可以由以下說明:

image

image
簡單來講,對于第一層feature給定了min_sizes和max_size,剩余五層之間的間隔為step。step其實指定的是到feature對應到原圖的一種計算中間數。min_ratio和max_ratio是原圖的尺寸比例,可以理想地理解為,(對于300x300的SSD)最小的default box面積為0.2x300x300,最大為0.9x300x300。

image
因此,對于檢測較小像素比例的物體時,可以改變min_ratio和max_ratio的大小來對網絡進行調整,比如調整為0.1到0.5,那么這樣的網絡適用于所有檢測的物體的面積都不大于整副圖的一半兒。當然,如果能調整對應的每層的feature map的大小效果更好。





