交并比(IOU)的计算方法

这篇具有很好参考价值的文章主要介绍了交并比(IOU)的计算方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        交并比(IOU, Intersetion Over Union),意思就是交集和并集的比值,用来评价两个几何图形的面积重合度,在目标检测算法模型中,通常被用来计算预测框与真实框的误差(损失函数)或者在非极大值抑制(NMS)算法中用于过滤多余重叠的目标,亦或者在计算mAP时用于判断目标是否被预测到。这是一个应用非常广泛的算法,这里详细介绍一下它的算法原理,以及代码的实现方式。

交并比(IOU)的计算方法
图1 交并比示意图

         如图1所示的是两个矩形方框的交并比示意图,中间重合部分就是矩形A和矩形B的交集,那么这两个矩形框的交并比计算公式如下:

其中,A与B的并集又可以通过以下公式计算:

交并比(IOU)的计算方法

定义矩形 A和矩形B的对角坐标分别为、,同时又定义交集矩形的对角坐标为,那么交集矩形对角坐标的计算方法如下:

于是,交集和并集的计算如下:

交并比(IOU)的计算方法

以上公式,是根据两个矩形有交集的情况推导出来的,如果两个矩形没有交集,以上公式如何做出判断呢?如果是这两个矩形不存在交集,那么只要判断即可,即是说,如果两个矩形无交集,那么交并比为0。以下分别以python和C语言代码实现交并比的计算。

python代码实现如下:

def iou(b1,b2):
    xmin1,ymin1,xmax1,ymax1=b1
    xmin2,ymin2,xmax2,ymax2=b2
    w1=xmax1-xmin1
    h1=ymax1-ymin1
    w2=xmax2-xmin2
    h2=ymax2-ymin2
    xmin_inter=max(xmin1,xmin2)
    ymin_inter=max(ymin1,ymin2)
    xmax_inter=min(xmax1,xmax2)
    ymax_inter=min(ymax1,ymax2)
    inter=(xmax_inter-xmin_inter)*(ymax_inter-ymin_inter)
    union=w1*h1+w2*h2-inter
    if inter<=0:
        return 0
    else:
        return inter/union

C语言代码实现如下:文章来源地址https://www.toymoban.com/news/detail-449079.html

struct Box
{
	double xmin;
	double ymin;
	double xmax;
	double ymax;
};

double iou(Box b1, Box b2)
{
	double w1 = b1.xmax - b1.xmin;
	double h1 = b1.ymax - b1.ymin;
	double w2 = b2.xmax - b2.xmin;
	double h2 = b2.ymax - b2.ymin;
	double xmin_inter,ymin_inter,xmax_inter,ymax_inter;
	xmin_inter = (b1.xmin > b2.xmin) ? b1.xmin : b2.xmin;
	ymin_inter = (b1.ymin > b2.ymin) ? b1.ymin : b2.ymin;
	xmax_inter = (b1.xmax < b2.xmax) ? b1.xmax : b2.xmax;
	ymax_inter = (b1.ymax < b2.ymax) ? b1.ymax : b2.ymax;
	double inter=(xmax_inter-xmin_inter)*(ymax_inter-ymin_inter);
	double un=w1*h1+w2*h2-inter;
	if(inter<=0)return 0;
	else return inter/un;
}

到了这里,关于交并比(IOU)的计算方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机提示vcruntime140.dll丢失是什么意思?vcruntime140.dll丢失的解决方法(详细方法)

    计算机丢失vcruntime140.dll是什么意思?经常看到有小伙伴有在网上问这样的问题,电脑上这个vcruntime140.dll文件丢失的问题经常发生吧,那么就很有必要给大家详细的说说这一方面的问题了,下面我们来看看 第一:vcruntime140.dll的修复方法 1 1.首先将电脑开机,进到主页面之后,

    2024年02月04日
    浏览(72)
  • LAMP架构搭建实操(终有弱水替沧海,再无相思寄巫山”大概意思就是,你会遇到很多人,但不会有人像我那么爱你了。)

    LNMP架构是指Linux+Nginx+Mysql+PHP(Perl、Python) 首先准备Linux主机,关闭防火墙和selinux 需要获取相关的源码包 配置字段含义可参考 LAMP架构搭建实操_Evens7xxX的博客-CSDN博客 架构图 与LAMP的区别 LNMP架构中,nginx处理静态页面请求,fastCGI会将动态页面请求转发给php-fpm模块中,再经过

    2024年02月07日
    浏览(33)
  • 目标检测-计算IOU,mAP指标

    IoU,全称Intersection over Union,可翻译为交并比,是两个框交集与并集的比值。计算IoU的公式如下图,可以看到IoU是一个比值,即交并比。 在分子中,我们计算预测框和ground-truth之间的重叠区域;分母是并集区域,是预测框和ground-truth所包含的总区域。重叠区域和并集区域的比

    2024年02月12日
    浏览(34)
  • 两个bbox的IoU计算步骤分析

    IoU:交并比,数值上等于交集面积除以并集面积。 两个bbox的位置关系无外乎以上三种情况:(1)部分相交。(2)不相交。(3)包含。 计算步骤: 计算交集(主要) 相交部分左上角坐标为: 相交部分右下角坐标为: 那么相交部分的面积计算公式就是为: +1操作有人加有人

    2024年01月21日
    浏览(24)
  • Union类型和集合的union()方法-set.union()

    Python中的Union类型是 3.10版本引入的新功能之一。它是一种特殊的类型注释,用于表示一个变量可以包含多种数据类型。一般情况下,一个变量只能包含一种数据类型,但是使用Union类型可以创建一个变量,可以包含多种类型的数据。 Union[int, float]表示age参数可以是int型或flo

    2024年02月09日
    浏览(37)
  • 科研作图-常用的图像分割指标 (Dice, Iou, Hausdorff) 及其计算

    本节内容主要是介绍图像分割中常用指标的定义、公式和代码。常用的指标有Dice、Jaccard、Hausdorff Distance、IOU以及科研作图-Accuracy,F1,Precision,Sensitive中已经介绍的像素准确率等指标。在每个指标介绍时,会使用编写相关代码,以及使用MedPy这个Python库进行代码的调用。 2.1 Dice

    2024年02月10日
    浏览(62)
  • 学会项目成本管理计算,PMP计算题就是送分题

    PMP中的计算主要在 项目成本管理 的 控制成本 部分,服务于 挣值管理 (EVM,Earned Value Management)、 挣值分析 (EVA,Earned Value Analysis)和 偏差分析 。 这些计算都是加减乘除四则运算,关键在于搞清楚基本数据之间的关系,相信本文可以帮助你完全理解。 计算的基本数据 挣

    2024年02月16日
    浏览(36)
  • 【计算机视觉 | 目标检测】术语理解3:Precision、Recall、F1-score、mAP、IoU 和 AP

    在图像目标检测中,常用的评估指标包括以下几项: 精确率(Precision):也称为查准率,表示被分类为正类别的样本中真正为正类别的比例。计算公式为:Precision = TP / (TP + FP),其中TP是真正例(模型正确预测为正类别的样本数),FP是假正例(模型错误预测为正类别的样本数

    2024年02月13日
    浏览(43)
  • 非计算机科班如何丝滑转码?(本人就是有点不丝滑)

    自学 报班 有师傅带 游戏开发?后台研发?爬虫工程师?前端程序员?数据分析师? 或者 仅仅是想做一个【程序员】?? 或者被影视所影响,感觉程序员好酷、好牛逼 所以你要想清楚!!! C语言?C++?C#?Java?Python?H5?JS?甚至是Mysql? 所以你要考虑清楚,当然我还是推荐P

    2024年02月10日
    浏览(46)
  • 计算机视觉 day94 DDH - YOLOv5:基于双IoU感知解耦头改进的YOLOv5,用于对象检测

    YOLOv5头部的分类任务和回归任务的共同分支会对训练过程造成伤害,分类得分与定位精度的相关性较低。我们提出了一种双iou感知解耦头(DDH),并将其应用于YOLOv5。改进后的模型命名为DDH-YOLOv5,在不显著增加FLOPS和参数的情况下,显著提高了模型的定位精度。在PASCAL VOC2007数据

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包