ssd-keras icon indicating copy to clipboard operation
ssd-keras copied to clipboard

博主,训练过程中,是否一个gt对应多个anchor呢?每个anchor匹配到iou最大真实框

Open boom-jumper opened this issue 5 years ago • 7 comments

` best_iou = encoded_boxes[:, :, -1].max(axis=0) best_iou_idx = encoded_boxes[:, :, -1].argmax(axis=0) best_iou_mask = best_iou > 0 best_iou_idx = best_iou_idx[best_iou_mask]

assign_num = len(best_iou_idx)

保留重合程度最大的先验框的应该有的预测结果

encoded_boxes = encoded_boxes[:, best_iou_mask, :] assignment[:, :4][best_iou_mask] = encoded_boxes[best_iou_idx,np.arange(assign_num),:4] `

boom-jumper avatar May 17 '20 07:05 boom-jumper

一个真实框有多个先验框匹配,但是每一个先验框只能和一个重合度最大的真实框匹配

bubbliiiing avatar May 19 '20 02:05 bubbliiiing

谢谢博主解答,这部分选择最佳先验框的代码折磨人,搞明白了

boom-jumper avatar May 19 '20 02:05 boom-jumper

博主你好,对于bondingbox的预测,各个有效层卷积后的输出channel数是num_priors*4,这里的4为什么是[x_offset、y_offset、h和w的调整情况], 而不是[预测框的x1, y1, x2, y2(预测框的左上角和右下角的坐标值)]呢,谢谢!

guxing119 avatar Jul 11 '20 08:07 guxing119

如果是这样的话还要这先验框干嘛呢

bubbliiiing avatar Jul 11 '20 08:07 bubbliiiing

博主你好,感谢你的回答,在代码的ssd_layers.py的最后,先验框产生完之后,为什么还要给prior_boxes增加一个维度,并让它在这个维度上重复(tf.shape(x)[0] => 应该是feature map的宽度吧)次呢

代码: prior_boxes = np.concatenate((prior_boxes, variances), axis=1) prior_boxes_tensor = K.expand_dims(K.variable(prior_boxes), 0) pattern = [tf.shape(x)[0], 1, 1] prior_boxes_tensor = tf.tile(prior_boxes_tensor, pattern)

return prior_boxes_tensor

谢谢!

guxing119 avatar Jul 11 '20 14:07 guxing119

博主你好,上面问题已找到答案,谢谢!

guxing119 avatar Jul 12 '20 09:07 guxing119

bubbliiiing avatar Jul 12 '20 09:07 bubbliiiing