深度學習 七十二 ssd物體檢測

2021-08-16 04:25:41 字數 1242 閱讀 4224

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...