读书笔记:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

2023-11-09

摘要

在目标识别过程中,IOU是最流行的一个评价基准,在进行边框优化的过程中,IOU一般是取最大值,对一个标准进行优化的目标函数是其标准本身,在2D回归的过程中,IOU展示了他直接能作为一个损失函数,然而,IOU展现了他的缺点,在没有重叠的边框的时候不好使用,在这篇论文中指出了IOU的缺点,通过介绍一个通用的版本作为一个新的损失函数和新的度量方式,通过使用GIOU,在Pascal VOC及MS COCO数据集上有了较大的提升。

介绍

边框回归是一个很重要的一个部分在2D/3D计算机视觉中,目标检测,目标追踪都依赖边框回归,该领域趋于通过利用较好的backbone或者更好的策略来提取局部特征的深度学习网络来提升其性能,然而,有一点被人们所忽略的是可以用基于IoU的评价计算机制替换常规的L1,L2损失函数。

IOU作为Jaccard index而闻名,它广泛应用于任意两个图的相似度对比,IOU编码这个目标是比较宽度,高度,位置等,基于正则化机制来关注二者的区域。IoU具有尺寸不变性,基于此机制可以进行目标检测,分割及追踪等。

  然而,在2D/3D空间上定义两个边界框参数表示的常规损失如Ln等使其值最小与通过优化来提高IoU的值,二者之间的并没有太大的关联,比如我们采用l1与l2相同的情况下,regression效果明显不同,但是IOU的数值确有明显的不同,最能反映回归的效果

为此,这篇论文提出来提出了IoU可以进行反向传播,并用于目标函数的优化,同时将IOU扩展到了非重叠的情况

相关的工作

本文提出用IOU来指导回归任务的学习,主要是因为用IOU作为一个直接的指标比用其他的函数效果都要好,而此时相关的损失函数为

但是用IOU直接作为损失函数有着明显的缺点

假如两个框没有相交时,IOU=0,不能反映两个框的重合度,为了解决这个问题,本文提出了一个新的方法,叫做GIOU,具体的方法文中是这样描述的

就是先计算两个闭包区域最小面积,然后在计算IOU,GIOU=IOU减去闭包区域中不属于两个框的区域占闭包区域的比重的值。GIOU有如下特点

  • 与IOU相似,GIoU也是一种距离度量,作为损失函数的话, 

  • 和IOU相似,GIoU对scale不敏感

  • GIoU是IOU的下界,在两个框无线重合的情况下,IoU=GIoU

  • IoU取值[0,1],但GIoU有对称区间,取值范围[-1,1]。在两者重合的时候取最大值1,在两者无交集且无限远的时候取最小值-1,因此GIoU是一个非常好的距离度量指标。

  • 与IoU只关注重叠区域不同,GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度。

GIOU as Loss for Bounding box Regression

IOU与GIOU在2D图像检测中计算方法非常简单,具体的计算方法文中是这样描述的

1.分别计算预测框和标记框的大小

2.计算相交区域的面积

3.计算最小闭包区域面积

4.计算IOU与GIOU

5.

实验

从实验结果我们可以看出在YOLO  v3下涨点明显,但是在Faster R-CNN和Mask R-CNN并不明显,原因是因为faster rcnn和mask rcnn的anchor很密,GIoU没有什么明显的优势。

 

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

读书笔记:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression 的相关文章

  • win32 socket编程 示例(功能简单,完善)

    最近在做的一个项目要用到网络通信方面的内容 于是自学了下win32socket 原来自己学过计算机网络 只了解网络各层的原理 但没有真正的编程来实现这些原理 哎 不过现在还来得及 下面是自己的一个示例 虽然简单 但了解了它 就知道了最基本的
  • Idea 学生认证

    Idea 学生认证 具体步骤 认证地址 操作如图 具体步骤 认证地址 https www jetbrains com community education students 操作如图 学生邮箱会收到来信 认证完成
  • linux常用命令笔记(二)

    2020 03 18 一 echo 1 原文输出 双引号可加可不加 echo hello world echo hello world 2 输出变量的值 echo 变量名 echo PATH 输出环境变量PATH的值 注意 linux环境变
  • 每一代内存的读写速度大概是多少?

    每一代内存的读写速度大概是多少 原文 https zhidao baidu com question 1797460631148535467 html 内存 有核心频率 I O频率 等效频率 最后由等效频率而算出带宽 带宽就等于内存的速度
  • vite+react+ts+eslint+prettier构建react开发项目

    目录 一 构建项目 二 安装eslint和prettier的依赖 三 修改 eslintrc cjs 创建 prettierrc cjs 1 eslintrc cjs文件配置 2 prettierrc cjs文件配置 三 将错误显示在页面上
  • 蓝桥杯嵌入式CT117E-M4学习笔记08-串口通信实验

    文章目录 前言 一 实验原理 二 配置步骤 三 串口发送 1 直接使用HAL USART Transmit发送 2 使用重定向prtinf函数发送 四 串口接收 总结 前言 本节我们学习开发板的串口通信 一 实验原理 1 串口通信原理 详见
  • 浏览器的渲染机制、提升页面性能、错误监控上报

    js运行机制 微任务队列 事件循环 单线程 错误监控 CSRF防范 css盒模型 Dom事件 原型链
  • 接口测试工具-apipost

    apiost Postman Swagger Mock 功能特色 实现多人实时协作 接口自动化测试 选择接口 组成流程 执行流程 基于接口创建在线文档可分享 官网 Apipost API 文档 调试 Mock 测试一体化协作平台 API列表
  • 02.07_两个链表相交

    给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点 如果两个链表没有交点 返回 null 解法一 如果两个链表有相交 那么从后面看一定是相同的 所以只需要把长的移动到和短的链表一样的长度开始遍历即可
  • 低成本副业:开发小程序商城攻略

    随着互联网的普及和电子商务的兴起 越来越多的人选择做点副业 其中开发小程序商城是一个不错的选择 相比传统的实体店 小程序商城的成本更低 而且门槛更低 可以让更多的人参与到副业中来 那么 如何开发自己的小程序商城呢 下面为大家介绍步骤和技巧
  • STM32中遇到的问题--关于串口的一些常见问题

    在单片机的开发过程中 最常用的外设就是串口了 是用来进行bug纠错 log输出的常用工具 也是用来与外部通讯的常见协议之一 但是在使用串口的过程中难免会遇到一些问题 下面就我在工作遇到的一些问题做了一些记录 与大家分享 其实也是为了自己在以
  • [云原生专题-39]:K8S - 核心概念 - 存储抽象- pod配置文件的挂载ConfigMap

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122856681 目录 前言 第1章
  • 安卓逆向入门指南:应用分析与反编译

    安卓逆向入门指南 应用分析与反编译 概述 简要介绍安卓逆向工程的基本概念和背景 解释逆向工程的目的和重要性 以及在安全审计和应用研究中的应用 应用分析 安卓应用文件结构的解析 介绍APK文件的结构 包括AndroidManifest xml
  • c#中new 后面大括号

    C new一个对象的时候 后面的参数不是用小括号吗 下面的大括号是怎么回事 不是数据为什么会用大括号 BarcodeWriter barcodeWriter new BarcodeWriter Format ZXing BarcodeFor
  • jmap、jstat、jinfo、jstack命令详解

    jmap jmap histo pid gt log txt 此命令可以用来查看内存信息 实例个数以及占用内存大小 num 序号 instances 实例数量 bytes 占用空间大小 class name 类名称 C is a char
  • Windows中.exe程序的启动过程和C/C++运行时库<转载>

    很是受益 Windows中 exe程序的启动过程和C C 运行时库 lt 转载 gt Windows系统中 exe后缀的文件一般可以双击运行 编程时 编译出来的最终结果一般也表现为一个exe程序和其他的为程序执行提供支持的dll 我们双击一
  • Unity3d-简单AR游戏

    Unity3d 简单AR游戏 一 图片识别与建模 Vufria模块的导入 首先是安装Vuforia 模块 2017版本后的可以直接使用Unity Hub安装 安装完成后可以直接在软件中使用 然后在菜单目录的GameObject gt Vuf
  • 利用docx4j word转pdf

    依赖

随机推荐

  • 不能导入当前目录下的py模块,不能导入自己写的包

    遇到一个很奇怪的问题 在jupyter里面 明明这个包就在当前目录下就是不能倒入 后来 发现os getcwd 返回的也不是当前文件所在目录 真是奇哉怪也 然后我在终端cd进去我要运行代码的目录 然后在 jupoyter notebook
  • 【计算机考研】从二本到浙大

    报名志愿 浙大 计算机科学与技术学院 软件工程专业 初试成绩 分数不高 大佬轻喷 以下学习方法仅供参考 小tip 放在前头 1 不要照搬别人的学习方案 马克思主义要中国化 学习也要个人化 学习是很私人的事情 一定要找到最适合自己的学习作息和
  • 关于IDEA中tomcat启动控制台乱码(server Tomcat Localhost Log Tomcat Catalina Log乱码)问题

    之前在网上查了好多 但好多都是乱改一通 没有实际效果 经过自己的几次试验后 终于找到了原因 希望可以帮助大家解决问题 少走些弯路 具体解释如下 在这之前说下 tomcat安装目录中 conf文件夹中的logging properties文件
  • linux vim配置

    vimrc config vim 配置 没有vimrc就之间创建新的 vi vimrc set nu 设置显示行号 set tabstop 4 shiftwidth 4 softtabstop 4 tab 等于四个空格 set expand
  • org.dom4j.DocumentException: null Nested exception: null解决

    org dom4j DocumentException null Nested exception null at org dom4j io SAXReader read SAXReader java 484 at org dom4j io
  • 【SpringCloud实战开发总结】

    Vue开发总结 1 Vue 开启Watch监听 2 on blur 3 disabled 4 InputNumber标签中的 max和 min 5 Select标签用于模糊查询 6 强制渲染的三种方法 7 增加下拉框宽度 8 vue前端校验
  • DHT11温湿度传感器编程详解

    一 DHT11介绍 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 采用专用的数字模块采集技术和温湿度传感技术 无需复杂的电路处理 传感器包括一个电阻式感湿元件和一个NTC测温元件 并与一个高性能8位单片机相连接
  • D3D初学入门一(配置开发环境及绘制D3D窗口)

    最近一直接触的都是C 的东东 好久没写C 代码了 怕手生忘记了 打算写写C 的代码 写什么好呢 想来想去 以前的工作学过接触了些OpenGL 那我就学习一下D3D吧 原以为D3D的中文入门资料会很多的 结果找了半天也没找到合适的 哎 随便将
  • struts2+hibernate+spring配置详解

    struts2 hibernate spring配置详解 struts2 hibernate spring配置详解 哎 当初一个人做好难 现在终于弄好了 希望自学这个的能少走些弯路 以下是自己配置的案例 注意 要想明白的比较好 请下载这个配
  • java字符串是否相等的三种判断方法

    1 比较的是否是同一对象 eg String str1 abc str2 abc if str1 str2 结果为true 因为在java中字符串的值是不可改变的 相同的字符串在内存中只会存 一份 所以a和b指向的是同一个对象 eg Str
  • 14.Netty框架的C#实战使用

    文章目录 博客概述 场景与实现 C 服务器端实现 C 客户端的写法 博客概述 我是java线的工程师 但是技术栈有点全栈的意思 在某次项目中需要用到c 的socket通讯 查询之后惊喜的发现c 也有netty框架 dotnetty gith
  • window10下libpng编译

    系列文章目录 文章目录 系列文章目录 前言 一 问题原因 二 使用步骤 1 引入zlib库 2 configure 3 Grnerate 前言 libpng编译出错 Selecting Windows SDK version 10 0 19
  • Basic Level 1081 检查密码 (15分)

    题目 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能 该网站要求用户设置的密码必须由不少于6个字符组成 并且只能有英文字母 数字和小数点 还必须既有字母也有数字 输入格式 输入第一行给出一个正整数 N 100 随后 N 行
  • Hyper-V虚拟机网络设置

    Hyper V是基于64位系统 在Windows10自带的虚拟化工具 1 Hyper V的启动和管理 控制面板 gt 程序 gt 打开或关闭Windows功能中启用Hyper V 第一次设置后需要重启电脑 2 打开Hyper V管理器 3
  • C语言数据结构循环双链表

    include
  • SpringCloud OpenFeign 请求重试

    前言 真实的微服务业务场景中 可能出现跨服务调用失败的情况 最常见的就是被调用的服务正在发布 由于微服务之间通常有依赖关系 发布有一定的先后顺序 对于一个微服务应用常见的发布策略有两种 先停掉集群中一半的实例 然后重新启动这些应用 完成之后
  • IMX6学习记录(19)-移植Cjson

    上面是我的微信和QQ群 欢迎新朋友的加入 1 地址 地址 https github com DaveGamble cJSON 2 简单应用 解压到Ubuntu下 直接在Ubuntu下使用 gcc test c cJSON c o test
  • fisco-bcos区块链webase浏览器无法加载验证码,报错无法登陆

    fisco bcos区块链webase浏览器无法加载验证码 报错无法登陆 浏览器里验证码加载不出来 图中显示的是webase nodemanager模块出错 检查log文件 发现nodemanager模块下确实报错 但再细查后发现实际上问题
  • OPENCV MAT mat.inl中release(),clone(),copyto()等函数一直莫名异常

    问题 OPENCV MAT mat inl中release clone copyto 等函数一直莫名异常 今天三维点云转二维图的时候 一直出现莫名奇妙的问题 最后发现是越界的问题 需要注意 1 cv mat cv Mat zeros Siz
  • 读书笔记:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

    摘要 在目标识别过程中 IOU是最流行的一个评价基准 在进行边框优化的过程中 IOU一般是取最大值 对一个标准进行优化的目标函数是其标准本身 在2D回归的过程中 IOU展示了他直接能作为一个损失函数 然而 IOU展现了他的缺点 在没有重叠的