【深度学习基础知识】IOU、GIOU、DIOU、CIOU

这里简单记录下IOU及其衍生公式。

为了拉通IOU及其衍生版的公式对比,以及方便记忆,这里用一个统一的图示来表示出所有的参数在这里插入图片描述

  • 【A】目标框的区域
  • 【B】预测框的区域
  • 【C】A与B的交集
  • 【D】A与B的并集 = A+B-C
  • 【E】A与B的最小外接矩形框
  • 【F】最小外接框内非重叠的区域 = E - D,
  • 【d】A中心到B中心的欧式距离
  • 【L】E的对角线距离

将IOU的衍生公式要当做损失函数时,其损失函数为 IOU loss = 1 − IOU \text{IOU loss}=1-\text{IOU} IOU loss=1IOU


IOU

  • 公式:
    IOU = C D \text{IOU} = \frac{C}{D} IOU=DC
  • 优点
    • 优化了原有的L1 loss,L2 loss和Smooth L1 loss,这三个loss都是基于独立的点来进行计算的。
    • 直观的反映预测检测框与真实检测框的检测效果。判断Predbox 和GTbox的距离最直接的指标。
  • 缺点
    • 如果两个框没有相交,C=0,不能反映A与B的距离。此时损失函数不可导,没有梯度回传,loss无法优化两个框不想交的情况。
    • IoU无法精确的反映两者的重合度大小。如下图所示,三种情况IoU都相等,但看得出来他们的重合度是不一样的,左边的图回归的效果最好,右边的最差。

GIOU

  • 提出
    在CVPR2019中,论文Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression 的提出了GIoU的思想。
  • 公式
    GIOU = C D − F E \text{GIOU} = \frac{C}{D}-\frac{F}{E} GIOU=DCEFIOU越大的同时,非重叠区域占比越小,此时两个框越贴合。
  • 优点
    • 加入了非重叠区域的影响,改善了IOU的计算过程
    • 在A和B不相交时,可以进行学习训练
  • 缺点
    • 当目标框A 和 检测框 B 完全互相包含时,F=0,即GIOU退化为IOU。此时无法区分A与B的相对位置,无法进行有效的学习
      在这里插入图片描述

DIOU

  • 提出于 Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
  • 公式
    GIOU = C D − d L \text{GIOU} = \frac{C}{D}-\frac{d}{L} GIOU=DCLd用对角距离把检测框和预测框的中心点距离进行归一化。在IOU值相同时,两个框的中心点归一化距离越小,代表预测框和目标框的更贴合。
    IOU越大的同时,中心点归一化距离越近,此时两个框越贴合。
  • 优点
    • DIOU Loss可以直接最小化两个目标框的距离,比GIOU收敛的更快。
    • 对于GIOU的缺点,即目标框包裹预测框的这种情况,DIOU Loss可以使回归非常快,而GIOU Loss几乎退化为IOU Loss。
      在这里插入图片描述
  • 缺点
    • 框的长宽比指标没有考虑
    • 如图9所示,当IOU值和两个框的中心点距离一样时,即检测框中心点在以目标框中心点为圆心半径相同的圆弧上时,DIOU没办法区分。

CIOU

  • 公式: CIOU = C D − d F − α v v = 4 π 2 ( a r c t a n ( w g t h g t ) − a r c t a n ( w p r e d h p r e d ) ) \text{CIOU} = \frac{C}{D}-\frac{d}{F}-\alpha v \\ v=\frac{4}{\pi^2}(arctan(\frac{w^{gt}}{h^{gt}})-arctan(\frac{w^{pred}}{h^{pred}})) CIOU=DCFdαvv=π24(arctan(hgtwgt)arctan(hpredwpred))
  • 解释:加入了长宽比相似性的指标, α \alpha α 是权重系数,在论文里有相关计算, 是两个框长宽比指标的相似性计算。
    通俗意思是在IOU值和中心点距离值相同时,两个框的长宽比指标越相似,说明预测框与目标框的对比效果越好。
  • 优点:添加了长宽比的惩罚项,使得评估更加准确。
  • 缺点:CIOU Loss涉及到反三角函数,在计算的过程中会消耗一定的算力,整体训练时间会慢一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker安装Milvus

docker安装Milvus 拉去CPU版本的milvus镜像 $ sudo docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00 docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00 mkdir -p milvus/conf cd milvus/conf ls wget https://raw.githubusercontent.com/milvus-io/milvus/v0.1…

springboot项目yml文件中${}的使用

作用 项目启动时可以灵活的通过修改环境变量来替换配置中的值,如果没有传该环境变量时,就是用默认值; 格式:${自定义参数名:默认值} 代码举例,已开启应用的端口号为例: server: port: ${SERVER_PORT:9…

PC1000A双通道高精度线性恒流LED控制芯片,只需极少极少外围元件

概述 PCD1000A 是一款线性恒流 IC,输出电流可调,恒流精度高,应用方案简单,成本和阻容降压相当,具有过温保护功能,更安全,更可靠。 特点 输出电流可调 5mA-60mA, 恒 流精度可以达…

【Python爬虫】网络爬虫:信息获取与合规应用

这里写目录标题 前言网络爬虫的工作原理网络爬虫的应用领域网络爬虫的技术挑战网络爬虫的伦理问题结语福利 前言 网络爬虫,又称网络爬虫、网络蜘蛛、网络机器人等,是一种按照一定的规则自动地获取万维网信息的程序或者脚本。它可以根据一定的策略自动地浏…

OpenLayers基础教程——使用WebGL加载海量数据(1)

1、前言 最近遇到一个问题:如何在OpenLayers中高效加载海量的场强点?由于项目中的一些要求,不能使用聚合的方法加载。一番搜索之后发现:OpenLayers中有一个WebGLPoints类,使用该类可以轻松应对几十万的数据量&#xf…

【链表】Leetcode 25. K 个一组翻转链表【困难】

K 个一组翻转链表 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改…

【python_往企业微信群中发送文件】

python_往企业微信群中发送文件 这个是用企业微信群机器人的功能,没有用到后台应用。群机器人 #-*- coding:utf-8-* import requests#类型:voice,file file_type"file" file_path"D:\desktop\不过.jpg" webhookkey"xxxx"#…

Mysql与MyBatis

1 Sql语句 增删改查 1.1 建表 -- cmd展示数据库 show databases ; -- cmd登录数据库 mysql localhost -u root -p-- auto_increment 自动增长,每添加一个表项id自动增1 -- char定长字符串 0-255,不足十个字符按十个字符算, varchar变长字符串…

【机器学习】基于蝴蝶算法优化的BP神经网络分类预测(BOA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】蝴蝶优化算法(BOA)原理及实现 2.设计与实现 数据集: 数据集样本总数2000 多输入多输出:样本特征24&#xff0c…

绝地求生:今天来聊聊PUBG外挂

最近关于外挂和封禁的贴子一下子多了起来,也看到了很多不一样的说法和观点,也有一些常识性的问题被反复提及。作为一个刚刚及格的计算机专业同学,闲游盒尝试用大白话的方式,和大家分享下就以下问题我的观点: 1. 外挂是…

五、初识Django

初识Django 1.安装django2.创建项目2.1第一种方式:在终端2.2第二种方式:Pycharm 3.创建app4.快速上手4.1再写一个页面4.2templates模板4.3静态文件4.3.1static目录4.3.2引用静态文件 5.模板语法案例:伪联通新闻中心6.请求和相应案例&#xff…

ExoPlayer架构详解与源码分析(11)——DataSource

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

linux之Haproxy

介绍 haproxy是一种开源的TCP和HTTP负载均衡代理服务器软件。客户端通过Haproxy代理服务器获得站点页面,而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器 下载Haproxy yum install haproxy -y 开启服务 systemctl start haproxy 配…

系统分析师(软考)知识点整理——进程管理

操作系统 概念 操作系统是控制和管理计算机软硬件资源,以尽可能合理、有效的方法组织多个用户共享多种资源的程序集合 作用 通过资源管理提高计算机系统的效率改善人际界面面向用户提供友好的工作环境 特征 并发性共享性虚拟性不确定性 进程管理 概念 进程…

【办公类-22-15】周计划系列(5-6)“周计划-06 周计划打印pdf(docx删除内容转PDF)“ (2024年调整版本)

作品展示 背景需求: 前期用docx(删除第一页反思部分内容)转PDF转png(第一页)的方式获得上传网页用的图片。 【办公类-22-14】周计划系列(5-5)“周计划-05 上传周计划png(docx转PDF…

【MLLM+轻量多模态模型】24.02.Bunny-v1.0-2B-zh: 轻量级多模态语言模型 (效果一般)

24.02 北京人工智能研究院(BAAI)提出以数据为中心的轻量级多模态模型 arxiv论文:2402.Efficient Multimodal Learning from Data-centric Perspective 代码:https://github.com/BAAI-DCAI/Bunny 在线运行:https://wis…

前端调用接口地址跨越问题,nginx配置处理

在nginx配置里面添加add_header如下: add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Origin http://localhost:8080 always; add_header Access-Control-Allow-Methods GET, POST, PUT, D…

[Java、Android面试]_09_Synchronized、volatile、Lock并发

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注收…

自上而下的角色扮演游戏资产包幻想梦境

Fantasy Dreamland 是一個完整的資源包,包含開始製作自上而下的像素藝術遊戲所需的一切! 幻想夢境瓷磚套裝: - 超過 13,000 塊瓷磚! - 超過 500 個動畫圖塊! - 鐵匠! - 城堡! - 洞穴! - 聖誕節! (裝飾) - 城市! - 沙漠! - 沙漠房屋! - 夢想/天空! - …

【解决】使用Jekyll框架进入网页终端返回找不到.min.js或者类似Rollup模块化构建js失败问题

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、问题表现二、问题解决(一)检查输出目录(二)启动Rollup构建 三、…