def ssd_anchor_one_layer(img_shape,
feat_shape,
sizes,
ratios,
step,
offset=0.5,
dtype=np.float32):
# 計算每個default center歸一化後的座標,因為是center,所以要加offset
y, x = np.mgrid[0:feat_shape[0], 0:feat_shape[1]]
y = (y.astype(dtype) + offset) * step / img_shape[0]
x = (x.astype(dtype) + offset) * step / img_shape[1]
y = np.expand_dims(y, axis=-1)
x = np.expand_dims(x, axis=-1)
num_anchors = len(sizes) + len(ratios)
h = np.zeros((num_anchors, ), dtype=dtype)
w = np.zeros((num_anchors, ), dtype=dtype)
#第一種預設的default box的情況,也就是正方形,正方形的邊長為sk
h[0] = sizes[0] / img_shape[0]
w[0] = sizes[0] / img_shape[1]
di = 1
#第二種預設的default box情況,也是正方形,只不過正方形的邊長為sqrt(sk * sk+1)
if len(sizes) > 1:
h[1] = math.sqrt(sizes[0] * sizes[1]) / img_shape[0]
w[1] = math.sqrt(sizes[0] * sizes[1]) / img_shape[1]
di += 1
#第三種~第六種default box,矩形邊長比例為2、0.5,3,1/3的情況,對於conv4、和最後兩層沒有3、1/3兩種default box
for i, r in enumerate(ratios):
h[i+di] = sizes[0] / img_shape[0] / math.sqrt(r)
w[i+di] = sizes[0] / img_shape[1] * math.sqrt(r)
return y, x, h, w
深度學習物體檢測(七) SSD
yolo 模型每個網格只 乙個物體,容易造成漏檢 對於物體的尺度相對比較敏感,對於尺度變化較大的物體泛化能力較差。針對 yolo 中的不足,提出的 ssd single shot multibox detector 方法同時兼顧了 map 和實時性的要求。對於輸入影象大小為 300 300 在 vo...
unity學習筆記 物體檢測
1.檢測 一定範圍內的物品,顯示物品圖示是遊戲的常見功能了,一般有三種 方法 第一種是通過觸發器去 檢測 常見用 physics.overlapsphere,target.position 2c searchradius 2c 1 layermask.nametolayer laymaskname ...
《基於深度學習的物體檢測 張士峰》觀後感
首先是複習了faster r cnn的檢測流程,主要分為兩個階段 第一階段 根據預設的anchor 3種不同的scale和size 傳入cnn提取特徵,使用rpn 二分類,分辨前景和背景,過濾了大量的負樣本 背景 對anchor進行分類,得到候選區域proposal。第二階段 對第一階段得到的pro...