目标检测中的几种交并比( IoU )计算方式

2023-05-16

目录

1、原始 IOU 的计算方式

2、GIOU(Generalized IOU)

2、DIoU(Distance-IoU)

3、CIOU(Complete-IoU)


IoU Intersection over Union 中文叫做交并比,用来衡量目标检测过程中 预测框真实框 的重合程度。目前有很多计算 IoU 的方法,这里主要介绍 GIOUDIOUCIOU 这三种方式。

1、原始 IOU 的计算方式

原始的计算方式如下,顾名思义,IOU就是把 预测框真实框 的相交的面积除以相并的面积。

2、GIOU(Generalized IOU)

文章:https://arxiv.org/abs/1902.09630

由于 IoU 是比值的概念,对目标物体的scale是不敏感的。然而检测任务中的 BBox 的回归损失(MSE loss, L1-smooth loss等)优化和IoU优化不是完全等价的,而且 Ln 范数对物体的scale也比较敏感,IoU 无法直接优化没有重叠的部分。

上面公式的意思是:先计算两个框的最小闭包区域面积   (通俗理解:同时包含了预测框和真实框的最小框的面积),再计算出 IoU,再计算闭包区域中不属于两个框的区域占闭包区域的比重,最后用 IoU 减去这个比重得到 GIoU。

与 IoU 相似,GIoU 也是一种距离度量,作为损失函数的话,  ,满足损失函数的基本要求。GIOU 的一些特点如下:

  • GIoU对scale不敏感
  • GIoU是IoU的下界,在两个框无限重合的情况下,IoU=GIoU=1
  • IoU取值[0,1],但GIoU有对称区间,取值范围[-1,1]。在两者重合的时候取最大值1,在两者无交集且无限远的时候取最小值-1,因此GIoU是一个非常好的距离度量指标。
  • 与IoU只关注重叠区域不同,GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度。

2、DIoU(Distance-IoU)

论文:https://arxiv.org/pdf/1911.08287.pd

DIoU 要比 GIou 更加符合目标框回归的机制,将目标与 anchor 之间的 距离、重叠率 以及 尺度 都考虑进去,使得目标框回归变得更加稳定,不会像 IoU 和 GIoU 一样出现训练过程中发散等问题。

基于 IoU 和 GIoU 存在的问题,作者提出了两个问题:

  • 直接最小化anchor框与目标框之间的归一化距离是否可行,以达到更快的收敛速度?
  • 如何使回归在与目标框有重叠甚至包含时更准确、更快?

DIOU 计算公式如下:

其中,   ,  分别代表了预测框和真实框的中心点,且  代表的是计算两个中心点间的欧式距离。  代表的是能够同时包含预测框和真实框的最小闭包区域的对角线距离。如下图:

 

  • 与 GIoU loss 类似,DIoU loss(  )在与目标框不重叠时,仍然可以为边界框提供移动方向。
  • DIoU loss 可以直接最小化两个目标框的距离,因此比 GIoU loss 收敛快得多。
  • 对于包含两个框在水平方向和垂直方向上这种情况,DIoU 损失可以使回归非常快,而 GIoU 损失几乎退化为 IoU 损失。
  • DIoU 还可以替换普通的 IoU 评价策略,应用于 NMS 中,使得 NMS 得到的结果更加合理和有效。

注:通常基于IoU-based的loss可以定义为  ,其中  定义为预测框  和目标框  的惩罚项,DIoU 的惩罚项表示为  ,CIoU 的惩罚项是在 DIoU 的基础上多了个影响因子 

3、CIOU(Complete-IoU

好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。基于问题一,作者提出了DIoU Loss,相对于GIoU Loss收敛速度更快,该Loss考虑了重叠面积和中心点距离,但没有考虑到长宽比;针对问题二,作者提出了CIoU Loss,其收敛的精度更高,以上三个因素都考虑到了。

考虑到bbox回归三要素中的长宽比还没被考虑到计算中,因此,进一步在DIoU的基础上提出了CIoU。其惩罚项如下面公式:

 

其中  是权重函数,  是用来度量长宽比一致性的参数,定义为:

CIoU 的计算公式为:

完整的 CIoU 损失函数定义:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测中的几种交并比( IoU )计算方式 的相关文章

  • 树莓派中python文件开机自启动方法

    1 打开cd etc rc local 2 在exit 0 前输入sudo python3 home pi test py amp 注意 xff1a python3路径取决于你的python路径 xff0c 比如我的是usr bin pyt
  • 宝塔npm警告:npm WARN config init.module Use `--init-module` instead.

    蓝奏云分享部分地区无法访问需手动修改www lanzous com变为 www lanzoux com gt Linux gt 宝塔npm警告 npm WARN config init module Use 96 init module 9
  • pyinstaller打包后找不到.pyc文件,例如:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: ‘C:\\xx\\torch_utils.pyc‘

    使用pyinstaller打包python项目后 xff0c 运行dist里的 exe文件 xff0c 提示如下错误 说找不到utils文件夹里的torch utils pyc 原因分析 xff1a 我查看到项目里面有utils这个文件夹
  • Django中上传图片后,获得图片的网站的访问地址

    在Django中 xff0c 您可以通过使用Django自带的MEDIA URL和MEDIA ROOT设置来访问存储在media目录中的图像 这些设置定义了您的媒体文件的URL和文件系统路径 要访问存储在media images目录中的图像
  • 关于树莓派rc.local开机自启python文件失败的问题

    当我们在使用树莓派的rc local进行开机自启python文件时 xff0c 常常不能成功 xff0c 其中有一个原因 xff0c 特别常见 当我们查询rc local服务运行日志时 xff1a sudo systemctl status
  • 什么是串口通信协议

    ARM体系结构 串口通信 一 什么是串口通信 1 串口通信属于基层基本性的通信规约 xff0c 收发双方事先规定好通信参数 2 它自己本身不会去协商通信参数 xff0c 需要通信前通信双方事先约定好通信参数来进行通信 3 因此 xff0c
  • 利用MQTT协议与阿里云数据交互的python程序

    利用MQTT协议与阿里云数据交互的python程序 设计目的功能要求和关键问题环境配置问题本地程序如何连接云上设备云上的数据交互问题界面设计问题 阿里云相关操作本地程序 设计目的 设计开发一个py应用程序 xff0c 实现对阿里云数据的双向
  • 中文分词:隐马尔可夫-维特比算法(HMM-Viterbi)附源码

    目录 0 先验知识 1 什么是中文分词 2 数据集的构造 3 训练及预测过程简述 4 训练阶段 xff1a 统计隐马尔可夫模型的参数 5 预测阶段 xff1a 应用 Viterbi 算法 6 完整的 Python 实现代码 0 先验知识 有
  • python学习day1

    打印字 print haha 注释符 单行注释符 xxx 多行注释符 xxx xxx 34 34 定义变量 a 61 10 定义数字 b 61 haha ni hao 定义字符串 print a print b 赋值 b 61 a 用户交互
  • 系统学习-----firewalld概述

    动态防火墙后台服务程序 xff1a 提供一个动态管理的防火墙 xff0c 用以支持网络 Zone xff0c 来分配对一个网络链接和界面一定程序的信息 xff0c 它具备对IPv4和Ipv6防火墙设置的支持 它支持以太网桥 xff0c 并有
  • 系统学习----DHCP服务原理

    文章目录 DHCPDHCP优点DHCP相关概念DHCP租约更新DHCP运行过程 DHCP DHCP xff1a 动态主机设置协议 xff0c 是一个局域网协议 xff0c 使用UDP协议工作 主要有两个用途 xff1a 用于局域网或网络服务
  • 区块链技术及应用---区块链技术(一)

    文章目录 第一章 疯狂的比特币及其原理机制1 1 比特币诞生1 2 疯狂的比特币1 2 1 疯狂的价格1 2 2 疯狂的矿机和芯片 1 3 通俗地讲比特币机制1 4比特币交易1 5 比特币挖矿1 5 1 数学难题1 5 2 矿池原理 1 6
  • OpenFlow协议是什么

    为什么学习OpenFlow xff1f 实践SDN的首选主流南向接口协议P4和PISA的前身 OpenFlow起源 Ethane项目是OpenFlow的前身 集中式 主动式 xff0c 基于Flow控制2008年的Open Flow论文最初
  • OpenDaylight(ODL)学习笔记

    什么是OpenDaylight xff1f OpenDaylight是SDN开发及运行的一个平台 OpenDaylight架构特点 基于OSGi的模块化设计多南向协议 OpenFlow xff0c Netconf xff0c OVSDB 模
  • Vue / axios / props 调用后端接口数据并渲染到页面

    情景介绍 给了一个可视化大屏的代码 xff0c 代码上写的是假数据 现在要调用后端接口获取数据 xff0c 并将其渲染到页面上 分析问题 给的代码是一个 vue 组件嵌套一个子组件 xff0c 要把数据渲染到子组件上 要调用后端接口 xff
  • Element-ui关于el-icon无法正常显示的问题(已解决)

    在使用element ui组件库的时候 xff0c 使用自带的图标不显示 xff0c 查了好多篇博客 xff0c 都说是element ui的版本老了 xff0c 在package json中修改版本重新安装就行 xff0c 但是我的情况不
  • el-dialog关闭后表单数据缓存没清空【已解决】

    情景介绍 系统中有 新增 和 修改 两个功能 xff0c 共用一个对话框 要求新增时对话框内容为空 xff0c 修改时内容默认填充旧数据 遇到的问题是 xff0c 点击新增后内容填充了 xff0c 关闭对话框再点击新增或者其他条目的修改 x
  • Vue中父组件向子组件传值,子组件没有接收到

    情景介绍 父组件调用接口获取数据 xff0c 然后通过props传值给子组件 xff0c 子组件拿到数据后渲染到 el table 表格组件中 结果子组件没有将数据渲染到表格中 xff0c 但是控制台打印是获取到数据的 问题分析 先看父组件
  • 数字通信系统的性能及可靠性

    目录 1 数字通信系统的性能 2 数字通信系统的可靠性 1 数字通信系统的性能 数字通信系统的性能由码元速率 信息速率 频带利用率表示 每个码元所携带的信息量I定义如下 xff1a 这里 P 是每个码元的概率 xff0c M 是码元的个数
  • 前端学习资源分享

    学习资源 编程导航 xff08 包含以下所有资源 xff0c 强烈推荐 x1f44d xff09 xff1a https www code nav cn freeCodecamp 在线编程 xff1a https learn freecod

随机推荐