摆脱Tensorflow Object Detection API中不同类的重叠边界框

时间:2018-04-21 01:07:01

标签: python tensorflow object-detection bounding-box object-detection-api

我正在使用Tensorflow Object Detection API来训练我自己的车辆探测器。当我使用Object detection tutorial测试我的模型时,我发现有一种情况是卡车被检测为汽车和卡车,周围有两个重叠的边界框。我只想留下检测得分最高的那个。

我知道对象检测API确实摆脱了重叠的边界框,但对于不同类的边界框,它不会这样做。有没有办法摆脱重叠的盒子?对象检测API代码中是否有任何地方可以更改以实现此目的?

2 个答案:

答案 0 :(得分:1)

有两种方法可以消除重叠的边界框。

首先,在文件visualization_utils.py中的“ visualize_boxes_and_labels_on_image_array”函数中将“ min_score_thresh”参数设置得较大;

2,在配置文件中设置非最大抑制阈值

答案 1 :(得分:0)

您可以对所有类使用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())