我正在使用Tensorflow对象检测API来训练自己的车辆检测器。当我使用Object detection tutorial测试模型时,我发现在某些情况下卡车被检测为汽车和卡车,卡车周围有两个重叠的边界框。我只想把检测分数最高的那个留给我。
我知道对象检测API确实摆脱了重叠的边界框,但对于跨不同类的边界框却没有这样做。有办法摆脱重叠的盒子吗?我可以更改对象检测API代码中的任何位置来实现这一目标吗?
最佳答案
您可以在所有类上使用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())
关于python - 消除Tensorflow Object Detection API中不同类之间的重叠边界框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49951422/