李沐《动手学深度学习》锚框部分计算交并比(IoU)函数笔记

这篇博客详细记录了学习沐神《动手学深度学习》中锚框的交并比(IoU)计算过程。博主通过手写笔记的形式,解释了如何计算两个边界框的交集和并集面积,进而求得IoU矩阵,对于理解和应用目标检测中的锚框匹配至关重要。
摘要由CSDN通过智能技术生成

本文主要是学习沐神《动手学深度学习》锚框部分计算交并比(IoU)这一部分函数的手写笔记,主要给自己看,字丑见谅。

交并比(IoU)

1.得到锚框和真实框面积
def box_iou(boxes1, boxes2):
    """计算两个锚框或边界框列表中成对的交并比"""
    box_area = lambda boxes: ((boxes[:, 2] - boxes[:, 0]) *
                              (boxes[:, 3] - boxes[:, 1]))
    # boxes1,boxes2,areas1,areas2的形状:
    # boxes1:(boxes1的数量,4),
    # boxes2:(boxes2的数量,4),
    # areas1:(boxes1的数量,),
    # areas2:(boxes2的数量,)
    areas1 = box_area(boxes1)
    areas2 = box_area(boxes2)
   

得到锚框与真实边框面积

2.获得交集左上和右下坐标
# inter_upperlefts,inter_lowerrights,inters的形状:
    # (boxes1的数量,boxes2的数量,2)
    inter_upperlefts = torch.max(boxes1[:, None, :2], boxes2[:, :2])
    inter_lowerrights = torch.min(boxes1[:, None, 2:], boxes2[:, 2:])
    inters = (inter_lowerrights - inter_upperlefts).clamp(min=0)

获得交集左上和右下坐标

3.计算交集并集面积

交集,并集指的是锚框和真实框之间

  # inter_areas 和 union_areas的形状:(boxes1的数量,boxes2的数量)
    inter_areas = inters[:, :, 0] * inters[:, :, 1]
    union_areas = areas1[:, None] + areas2 - inter_areas

计算交集并集面积1
计算交集并集面积2

4.返回IOU矩阵
 return inter_areas / union_areas

返回IOU矩阵

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值