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)

结果:

相关推荐
ZGi.ai1 分钟前
LangChain做了什么?企业场景中它和专用AI平台的定位区别
人工智能·开源框架·企业ai·- langchain·- ai应用开发
努力努力再努力wz2 分钟前
【Linux网络系列】深入理解 I/O 多路复用:从 select 痛点到 poll 高并发服务器落地,基于 Poll、智能指针与非阻塞 I/O与线程池手写一个高性能 HTTP 服务器!(附源码)
java·linux·运维·服务器·c语言·c++·python
努力努力再努力wz5 分钟前
【Linux网络系列】万字硬核解析网络层核心:IP协议到IP 分片重组、NAT技术及 RIP/OSPF 动态路由全景
java·linux·运维·服务器·数据结构·c++·python
tjc199010056 分钟前
golang如何使用t.Cleanup清理测试_golang t.Cleanup测试清理使用策略
jvm·数据库·python
SteveLaiTVT10 分钟前
从 Curl 开始:不用 SDK,通过 DeepSeek API 手写 Agent Runtime
人工智能
小糖学代码12 分钟前
LLM系列:2.pytorch入门:3.基本优化思想与最小二乘法
人工智能·python·算法·机器学习·ai·数据挖掘·最小二乘法
J_bean14 分钟前
大语言模型 API Token 消耗深度剖析
人工智能·ai·llm·大语言模型·token
醉卧考场君莫笑15 分钟前
规则与传统NLP之任务范式
人工智能·自然语言处理
214396518 分钟前
如何提升SQL数据更新的安全性_使用行级锁与悲观锁机制
jvm·数据库·python
叶子丶苏19 分钟前
第二节_机器学习基本知识点
人工智能·python·机器学习·数据科学