image_size
SSD中沒有全連接層, 可適應各種大小的圖片。指定圖片大小的目的是爲了方便成batch訓練。
num_classes
待檢測的物體類別數量, 一般還需要加上背景類。
no_annotation_label
沒用
feat_layers
特徵層。使用哪幾層來預測bbox
feat_shapes
特徵層的shape
anchor_size_bounds
每個特性層上的anchor大小都不一樣, 越靠近輸入的層其anchor越小。
確定第一個與最後一個feature層的anchor大小以後, 處於中間的層的anchor大小則通過線性插值計算而來。例如,假如anchor_size_bounds = [0.2, 0.7]
, 有6個feature layer,則每個layer對應的default anchor大小爲:[0.2, 0.3, 0.4, 0.5, 0.6, 0.7]
.
anchor_sizes
這個不是超參數。
它是論文中s ′ k =s k s k+1 − − − − − √ 裏的s k ,s k+1
除了21與315, 其餘的都是通過anchor_size_bounds
計算出來的。
anchor_offset
用於計算anchor中心點的偏移。論文中(i+0.5|f k | ,i+0.5|f j | ) 的0.5 。
anchor_steps
由網絡結構和feat_layers決定。例如,在conv4_3
上移動一個像素相當於在原圖上移動8個像素。
normalizations
正則化參數。大於0則將對應的feature map L2norm一下, 然後在其上預測bbox。所以這個20也沒啥特殊涵義。 ssd_common.py
if normalization > 0:
net = custom_layers.l2_normalization(net, scaling=True)
- 1
- 2
prior_scaling
(應該是用於調節x,y 迴歸與w,h 迴歸在loss中佔的比例。
ssd_common.py
feat_cy = (feat_cy - yref) / href / prior_scaling[0]
feat_cx = (feat_cx - xref) / wref / prior_scaling[1]
feat_h = tf.log(feat_h / href) / prior_scaling[2]
feat_w = tf.log(feat_w / wref) / prior_scaling[3]