YOLOv10改进系列,YOLOv10损失函数更换为Powerful-IoU(2024年最新IOU),助力高效涨点


在这里插入图片描述

改进前训练结果:
在这里插入图片描述

改进后的结果:

在这里插入图片描述

摘要

边界框回归(BBR)是目标检测中的核心任务之一,BBR损失函数显著影响其性能。然而,观察到现有基于IoU的损失函数存在不合理的惩罚因子,导致回归过程中锚框扩展,并显著减缓收敛速度。为了解决这个问题,深入分析了锚框扩展的原因。针对这个问题,提出了一种新的Powerful-IoU(PIoU)损失函数,该函数结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数。PIoU损失引导锚框沿着高效路径回归,收敛速度比现有基于IoU的损失函数更快。此外,还研究了聚焦机制,并引入了一种非单调注意力层,与PIoU结合形成了新的损失函数PIoU v2。PIoU v2损失增强了对中等质量锚框的聚焦能力。

Powerful-IoU介绍

物体定位是物体检测中的一项关键任务,它严重依赖于边界框回归 (BBR) 损失函数的评估和优化。因此,边界框回归损失函数显著影响物体检测器的性能。大多数 BBR 损失可归类为 𝑙𝑛-norm 和基于 IoU 的损失。如下图所示,不同IoU 损失函数引导的锚框回归过程。彩色框为不同损失函数引导的锚框在回归过程中的分布。很明显,PIoU 损失引导的锚框回归最快,可以最快地逼近目标框。而且,除 PIoU 损失外,所有损失函数引导的锚框都存在面积扩大的问题,而 PIoU 损失引导的锚框不存在此问题。
在这里插入图片描述
现有的基于IoU的损失函数在回归过程中首先增加锚框的尺寸以达到与目标框的重叠,即使锚框的面积已经大于目标框的面积。这种回归方式复杂且缓慢,需要更多轮次才能收敛。此外,它们的惩罚项包含不合理的成分,不能准确反映锚框和目标框之间的差异。它们没有充分考虑目标尺寸,在某些情况下可能会出现退化。为了解决锚框增大等问题,提出了一个具有尺寸自适应性的惩罚因子,引导锚框直接高效地回归。将这个惩罚因子与一个根据锚框质量调整梯度的函数相结合,得到一个新的基于 IoU 的损失,称为 Powerful-IoU (PIoU) 损失。PIoU 损失直接最小化锚框的四个边缘与目标框相应边缘之间的距离。因此在YOLOv10中将原始的损失替换为Powerful-IoU,实现更快

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

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

相关文章

【网络】详解HTTP协议的CGI机制和CGI进程

目录 引言 CGI机制模型 伪代码示例 个人主页:东洛的克莱斯韦克-CSDN博客 引言 CGI机制是HTTP协议提供的偏底层的一套机制,也是非常重要的机制——它让大量的业务进程和HTPP协议解耦。而CGI进程是业务层的,用来处理各种数据,比…

OpenCV结构分析与形状描述符(24)检测两个旋转矩形之间是否相交的一个函数rotatedRectangleIntersection()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 测两个旋转矩形之间是否存在交集。 如果存在交集,则还返回交集区域的顶点。 下面是一些交集配置的例子。斜线图案表示交集区域&#…

孙怡带你深度学习(2)--PyTorch框架认识

文章目录 PyTorch框架认识1. Tensor张量定义与特性创建方式 2. 下载数据集下载测试展现下载内容 3. 创建DataLoader(数据加载器)4. 选择处理器5. 神经网络模型构建模型 6. 训练数据训练集数据测试集数据 7. 提高模型学习率 总结 PyTorch框架认识 PyTorc…

如何在安卓設備上更換IP地址?

IP地址是設備在網路中的唯一標識,通過IP地址,網路能夠識別並與設備進行通信。本文將詳細介紹在安卓設備上更換IP地址的幾種方法。 在安卓設備上更換IP地址的方法 1. 使用Wi-Fi網路更換IP地址 最簡單的方法是通過Wi-Fi網路更換IP地址。步驟如下&#x…

NVIDIA最新AI论文介绍NEST:一种用于语音处理的快速高效自监督模型

语音处理专注于开发能够分析、解释和生成人类语音的系统。这些技术涵盖了多种应用,例如自动语音识别(ASR)、说话人验证、语音转文本翻译以及说话人分离。随着对虚拟助手、转录服务和多语言交流工具的依赖不断增加,高效准确的语音处…

Android的内核

Android的内核是基于Linux的长期支持版本的“Android通用内核(ACK)”。 Android作为一个广泛使用的操作系统,其根基在于内核的设计和功能。下面将深入探讨Android内核的各个方面,从其基本结构到与Linux内核的关系,再到内核的版本管理及在设备…

Vue2电商平台项目 (三) Search模块、面包屑(页面自己跳自己)、排序、分页器!

文章目录 一、Search模块1、Search模块的api2、Vuex保存数据3、组件获取vuex数据并渲染(1)、分析请求数据的数据结构(2)、getters简化数据、渲染页面 4、Search模块根据不同的参数获取数据(1)、 派发actions的操作封装为函数(2)、设置带给服务器的参数(3)、Object.assign整理参…

解决NumbaWarning error的报错

愿武艺晴小朋友一定得每天都开心 SCENIC中,当运行python change.py命令行,把count矩阵转换为loom文件时,发生了如下报错: py:371: NumbaWarning: The TBB threading layer requires TBB version 2021 update 6 or later i.e., TBB_INTERFACE_VERSION >= 1 2060. Found…

如何通过OceanBase的多级弹性扩缩容能力应对业务洪峰

每周四晚上的10点,都有近百万的年轻用户进入泡泡玛特的抽盒机小程序,共同参与到抢抽盲盒新品的活动中。瞬间的并发流量激增对抽盒机小程序的系统构成了巨大的挑战,同时也对其数据库的扩容能力也提出了更高的要求。 但泡泡玛特的工程师们一点…

netstat和ss命令用法

使用 netstat 或 ss 命令来检查网络连接,这是非常好的做法。这两个命令都可以帮助您查看当前系统上的网络连接状态,包括监听的端口和建立的连接。下面是对这两个命令的详细说明和使用方法: 使用 netstat 命令 netstat 是一个网络统计工具&a…

Redhat 7,8,9系(复刻系列) 一键部署Oracle19c rpm

Oracle19c前言 Oracle 19c 是甲骨文公司推出的一款企业级关系数据库管理系统,它带来了许多新的功能和改进,使得数据库管理更加高效、安全和可靠。以下是关于 Oracle 19c 的详细介绍: 主要新特性 多租户架构:支持多租户架构,允许多个独立的数据库实例在同一个物理服务器上…

JDBC API详解一

DriverManager 驱动管理类,作用:1,注册驱动;2,获取数据库连接 1,注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 查看Driver类源码 static{try{DriverManager.registerDriver(newDrive…

java十进制码、六进制码和字符码的转换

一、字符转换为ASCII码: int i(int)1; 二、ASCII码转换为字符: char ch (char)40; 三、十六进制码转换为字符: char charValue (char)\u0040; package week3;public class check_point4_8 {public static void main(String[] args) {S…

谷歌怎么像图里这样多开贴吧号??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

uni-app开发流程(开发、预览、构建和发布过程)

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,支持编写一次代码,生成可以在多个平台(如微信小程序、H5、App等)运行的应用。下面是 uni-app 的开发流程,包括从创建项目到部署的各个阶段。 1. 创建项目 通过 HB…

数据库三范式和ER图详解

数据库设计三范式 第一范式:要求数据表中的字段(列)不可再分(原子性) 第二范式:不存在非关键字段(非主键)对关键字段(主键)的部分依赖 ps: 主要是针对联合主键,非主键不能只依赖联合主键的一部分 联合主键,即多个列组成的主键 第…

Python | Leetcode Python题解之第414题第三大的数

题目: 题解: class Solution:def thirdMax(self, nums: List[int]) -> int:a, b, c None, None, Nonefor num in nums:if a is None or num > a:a, b, c num, a, belif a > num and (b is None or num > b):b, c num, belif b is not No…

代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 题目题目一:647. 回文子串解题思路:暴力解法动态规划 题目二: 516.最长回文子序列解题思路: 动态规划总结动规五部曲基础概念常见问题类型 动态规划…

Web3入门指南:从基础概念到实际应用

Web3,即“去中心化的第三代互联网”,正在逐步改变我们对互联网的传统认知。从最初的静态网页(Web1.0)到互动平台和社交媒体为主的互联网(Web2.0),Web3的目标是让用户重新掌握对数据和数字资产的…

LeetCode[中等] 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 思路 区间排序: 开始位置 ——> 升序排…