【问题标题】:How to calculate IOU for multiple bounding boxes in one img?如何计算一个img中多个边界框的IOU?
【发布时间】:2020-09-06 11:57:44
【问题描述】:

假设有一个物体检测任务。 img里有很多车。我需要做的是画框来检测这些汽车。 其他人正在做同样的任务。 我的结果是[car1,car2,car5,car6],有人的结果是[car1,car3,car5,car5,car7]。(carx是这个img中#x cat的坐标)
我们俩都只检测到 img 中的部分汽车。
现在我想找到一种方法来评估我们的结果之间的相似性。
如果我们俩都只找到一辆车,那就容易了,

def cal_iou(coordinate_x, coordinate_y):
    polygon_x = geometry.Polygon(coordinate_x)
    polygon_y = geometry.Polygon(coordinate_y)
    intersection = polygon_x.intersection(polygon_y).area
    total_area = polygon_x.area + polygon_y.area - intersection
    if total_area > 0.0:
        return float(intersection / total_area)
    return 0.0

我可以计算两个 boxex 之间的 IoU。 如果我们的结果中有多个盒子怎么办? 我不知道其他结果中的哪个框应该与car1进行比较? 我认为的另一种方法是在我的结果中获取所有区域,并与其他结果进行比较。但是我还没有找到一个好的方法来做到这一点。 请给我一些建议

【问题讨论】:

    标签: python opencv computer-vision object-detection


    【解决方案1】:

    box1 到 box2 之间的 IoU 与 box2 到 box1 相同。 我大部分时间做的是计算所有的 IoU 并选择最高的。可以删除属于该 IoU 的 2 个框,并可以重复该过程。直到所有框都链接或最高IoU低于阈值

    【讨论】:

      【解决方案2】:

      用一个盒子计算所有盒子 然后,选择最好的盒子 这是最近的盒子

      【讨论】:

      • 感谢 c k 的回答。通常,对于此类简短的回复,人们倾向于对问题使用评论。
      猜你喜欢
      • 2020-03-18
      • 2020-01-06
      • 2022-10-18
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多