目标检测之IoU

IoU(交并比)是目标检测中一个常用的概念,通常用来衡量候选框(candidate)与真实标记框(ground truth)之间的交叠程度。

定义两个集合A和B,两者的IoU为两者的交与两者的并的比值,即: I o U = A ∩ B A ∪ B IoU=\frac{A \cap B}{A \cup B} IoU=ABAB

在这里插入图片描述

例如图中有两个有重叠部分的矩形:一个是蓝色矩形A,另一个是绿色矩形B,交叠部分用橙色表示。则矩形A和B的 IoU 为橙色面积与三色面积总和的比值。

那么这个IoU实际用途是什么呢?我们知道,在Pascal VOC这些数据集中,都标定好了物体在图像中位置,这些标定物体位置的矩形框成为ground truth(GT)。示例如下:

在这里插入图片描述

我们现在要自己产生一些候选框,这些候选框应该尽可能的与GT重叠,以保证其位置和大小的识别准确性,这种情况下,候选框和GT的 IoU 接近1;如果候选框和GT重叠部分很少,或者交叠部分远小于两者的面积总和,那么 IoU 的值趋近于0。

candidate(黄色)与GT(蓝色)大致存在以下三种关系:

在这里插入图片描述

(1)对于左图,candidate和GT的 IoU 趋近于1,可以认为是效果比较好的候选框;

(2)对于中图,candidate和GT的重叠部分较少,因此 IoU 比较小,效果不好;

(3)对于右图,虽然candidate和GT的重叠部分为整个黄色框,但是两者的面积(GT面积)总和更大,因此 IoU 也比较小,效果一般。

最后放一段计算 IoU 的代码:

def compute_iou(boxA, boxB):
    #box四个参数:左上角横坐标、纵坐标,右下角横坐标、纵坐标
    int_w = max(min(boxA[2], boxB[2]) - max(boxA[0], boxB[0]), 0)
    int_h = max(min(boxA[3], boxB[3]) - max(boxA[1], boxB[1]), 0)

    inter = int_h * int_w
    union = (boxA[3] - boxA[1]) * (boxA[2] - boxA[0]) + (boxB[3] - boxB[1]) * (boxB[2] - boxB[0]) - inter

    iou = inter / union
    return iou
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值