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)

结果:

相关推荐
大模型真好玩1 分钟前
低代码Agent开发框架使用指南(一)—主流开发框架对比介绍
人工智能·低代码·agent
tzc_fly13 分钟前
AI作为操作系统已经不能阻挡了,尽管它还没来
人工智能·chatgpt
eqwaak019 分钟前
数据预处理与可视化流水线:Pandas Profiling + Altair 实战指南
开发语言·python·信息可视化·数据挖掘·数据分析·pandas
PKNLP24 分钟前
深度学习之神经网络1(Neural Network)
人工智能·深度学习·神经网络
心态特好1 小时前
详解WebSocket及其妙用
java·python·websocket·网络协议
文火冰糖的硅基工坊1 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用推理端点及语义搜索演示
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
AI新兵2 小时前
深度学习基础:从原理到实践——第一章感知机(中)
人工智能·深度学习
liliangcsdn2 小时前
从LLM角度学习和了解MoE架构
人工智能·学习·transformer
ARM+FPGA+AI工业主板定制专家2 小时前
基于ZYNQ FPGA+AI+ARM 的卷积神经网络加速器设计
人工智能·fpga开发·cnn·无人机·rk3588