IoU计算

IoU计算

什么是IoU

(Intersection over Union),测量检测物体准确度的标准,用来衡量真实与预测之间的相关度

image-20220226151904796

IoU公式:
I o U = A r e a O f O v e r l a p / A r e a O f U n i o n IoU = Area Of Overlap / AreaOfUnion IoU=AreaOfOverlap/AreaOfUnion

I o U = 两 个 区 域 重 叠 的 交 集 / 两 个 区 域 重 叠 的 并 集 IoU = 两个区域重叠的交集/两个区域重叠的并集 IoU=/

两个区域指的是真实标注框与预测标注框的面积

举例:

两个区域重叠的交集:比如上图的灰色部分A

两个区域重叠的并集:比如上图的灰色部分A + 黄绿色部分B

def bbox_iou(cor_1, cor_2):
    '''
    cor_1: 第一个区域的坐标 (左上, 右下)
    cor_2: 第二个区域的坐标 (左上, 右下)
    '''
    xA = max(cor_1[0], cor_2[0])
    yA = max(cor_1[1], cor_2[1])
    xB = min(cor_1[2], cor_2[2])
    yB = min(cor_1[3], cor_2[3])
    # 交集面积
    overlap_area = max(0, xB - xA) * max(0, yB - yA)
    # cor_1 和 cor_2的面积
    cor_1_area = (cor_1[2] - cor_1[0]) * (cor_1[3] - cor_1[1])
    cor_2_area = (cor_2[2] - cor_2[0]) * (cor_2[3] - cor_2[1])
    # 计算IOU   并集为两个区域面积之和 - 交集面积
    iou = overlap_area / float(cor_1_area + cor_2_area - overlap_area)

    return iou

if __name__ == "__main__":
    iou = bbox_iou((100,100,200,200),(130,120,230,220))
    print(iou)    # 0.3888888888888889
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kui9702

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值