pytorch复现_IOU



定义了一个compute_iou函数,用于计算两个矩形框(boxA和boxB)之间的交并比(IOU,Intersection over Union)。IOU是一种常用的度量,用于评估两个矩形框的重叠程度。
在代码中,函数的输入是两个矩形框的坐标,每个矩形框由左上角点和右下角点的坐标表示。函数的计算步骤如下:
1.计算交集区域的左上角点的坐标:x轴方向上取两个矩形框左上角点x坐标的最大值,y轴方向上取两个矩形框左上角点y坐标的最大值。
2.计算交集区域的右下角点的坐标:x轴方向上取两个矩形框右下角点x坐标的最大值,y轴方向上取两个矩形框右下角点y坐标的最大值。
3.计算交集区域的面积,如果x轴和y轴上的长度差值小于零,则交集面积为零;否则,交集面积为两者相乘。
4.分别计算两个矩形框的面积,通过右下角点坐标减去左上角点坐标并相乘。
5.最后,计算IOU,将交集面积除以两个矩形框的总面积减去交集面积。
在给定的示例中,boxA和boxB分别表示两个矩形框的坐标,然后调用compute_iou函数计算它们之间的IOU。结果将存储在变量IOU中。这个示例中,boxA和boxB相对于彼此有一定的重叠,因此IOU应该是一个介于0和1之间的值,用来表示它们的重叠程度。

python 复制代码
import numpy as np
def compute_iou(boxA,boxB):
    # 计算相交区域的坐标
    xA=max(boxA[0],boxB[0])
    yA=max(boxA[1],boxB[1])
    xB=min(boxA[2],boxB[2])
    yB=min(boxA[3],boxB[3])

    # 计算相交区域,如果是负数一定是不相交
    interArea = max(0,xB-xA)*max(0,yB-yA)

    # 计算A和B的面积
    boxAArea=(boxA[3]-boxA[1])*(boxA[2]-boxA[0])
    boxBArea=(boxB[3]-boxB[1])*(boxB[2]-boxB[0])

    # 计算iou
    iou=interArea/(boxAArea+boxBArea-interArea)

    return iou

# Test case 1: Non-overlapping rectangles
boxA1 = [1, 1, 3, 3]
boxB1 = [4, 4, 6, 6]
iou1 = compute_iou(boxA1, boxB1)

# Test case 2: Partially overlapping rectangles
boxA2 = [1, 1, 5, 5]
boxB2 = [3, 3, 7, 7]
iou2 = compute_iou(boxA2, boxB2)

# Test case 3: Fully overlapping rectangles
boxA3 = [2, 2, 6, 6]
boxB3 = [2, 2, 6, 6]
iou3 = compute_iou(boxA3, boxB3)

# Print results
print("Test case 1 IOU:", iou1)
print("Test case 2 IOU:", iou2)
print("Test case 3 IOU:", iou3)

结果:

相关推荐
冬奇Lab1 分钟前
每日一个开源项目(第127篇):PM Skills Marketplace - 把顶级产品方法论塞进 AI Agent
人工智能·开源·资讯
吴佳浩16 分钟前
Hermes vs OpenClaw:基于源码的 Agent Loop 全面分析
人工智能·llm·agent
AI袋鼠帝18 分钟前
腾讯出手了!彻底入局企业级Agent。
人工智能
和平宇宙20 分钟前
AI笔记005. hermes-DeepSeek V4 Pro, 128K上下文引发的探索
前端·人工智能·笔记
56AI22 分钟前
360 智语 AI 企业智能体平台深度评测:从 L4 蜂群架构到政企落地实战
人工智能·架构
IT_陈寒34 分钟前
Redis持久化这个坑,我爬了一整天才出来
前端·人工智能·后端
无风听海34 分钟前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
kimi-22239 分钟前
LangChain 里的 chatmodel.bind_tools 和 ReAct Agent
人工智能
zhangfeng11331 小时前
计算机视觉vc 3D 希尔伯特曲线 基础介绍,人工智能
人工智能·计算机视觉·3d
没事别瞎琢磨1 小时前
十一、审计与 Run Session——每一步操作都被记录
人工智能·node.js