在Tensorflow目标检测API中,消除不同类别之间重叠的边界框

3
我正在使用Tensorflow目标检测API来训练自己的车辆检测器。当我使用Object detection tutorial测试我的模型时,我发现有时会将卡车检测为既是汽车又是卡车,并在其周围产生两个重叠的边界框。我只想保留具有最高检测分数的那一个。
我知道Object Detection API确实可以去除重叠的边界框,但对于跨不同类别的边界框并不如此。是否有办法去除重叠的框?是否有任何地方可以更改Object Detection API代码以实现这一点?
2个回答

1
有两种方法可以消除重叠的边界框。
第一种是在文件 visualization_utils.py 的函数“visualize_boxes_and_labels_on_image_array”中将“min_score_thresh”参数设置为更大;
第二种是在配置文件中设置非最大抑制阈值。

0

你可以对所有类别使用非极大值抑制:

  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())

好的,我会尝试做到。谢谢! - Mandy
你从哪里获取了“box_list”的值? - AaronDT
你如何处理在同一图像中有多个相同类的情况? - Seymour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接