我正在使用Tensorflow对象检测API来训练我自己的车辆检测器。当我使用对象检测教程测试我的模型时,我发现在某些情况下,卡车被检测为一辆车和一辆卡车,周围有两个重叠的边框。我只想离开那个检测得分最高的人。
我知道确实消除了重叠的边界框,但对于跨不同类的边界框,它并不这样做。有什么办法可以摆脱重叠的盒子吗?在对象检测API代码中是否有我可以更改的地方来实现这一点?
发布于 2018-04-25 16:46:19
您可以对所有类使用non_max_suppression:
corners = tf.constant(boxes, tf.float32)
boxesList = box_list.BoxList(corners)
boxesList.add_field('scores', tf.constant(scores))
iou_thresh = 0.1
max_output_size = 100
sess = tf.Session()
nms = box_list_ops.non_max_suppression(
boxesList, iou_thresh, max_output_size)
boxes = sess.run(nms.get())发布于 2018-08-25 12:16:11
有两种方法可以消除重叠的边框。
第一,将"min_score_thresh“参数设置为utils.py文件中的"visualize_boxes_and_labels_on_image_array”函数;
第二,在配置文件中设置非最大抑制阈值。
https://stackoverflow.com/questions/49951422
复制相似问题