【YOLOv8】损失函数

学习视频:

yolov8 | 损失函数 之 5、类别损失_哔哩哔哩_bilibili

yolov8 | 损失函数 之 6、定位损失 CIoU + DFL_哔哩哔哩_bilibili

2.13、yolov8损失函数_哔哩哔哩_bilibili


YOLOv8 的损失函数由类别损失和定位损失构成

类别损失:BCE Loss

定位损失:CIoU Loss + DFL(Distribution Focal Loss)

损失函数计算公式如下:

YOLOv8 损失函数 

注意:YOLOv8 只需要计算正样本的损失值,负样本不参数损失计算 


目录

1.类别损失

1.1 YOLOv5

1.2 YOLOv8:

2.定位损失

2.1 CIoU Loss

2.2 Distribution Focal Loss

2.2.1 前言

2.2.2 为什么使用Distribution Focal Loss?

2.2.3 原理

2.2.4 关于reg_max取值的补充


1.类别损失

 YOLOv8 的类别损失使用的依旧是 BCE Loss ,与  YOLOv5 一致,但类别的 one-hot 标签值的设置有区别,下面会作两者的对比

BCE Loss 的计算公式如下:

BCE Loss

1.1 YOLOv5

\hat{p}_{i}(c) c 类别在 one-hot 向量中的标签值,如果未使用标签平滑技术就是非0即1

p_i(c):正样本预测框的对于 c 类别的预测概率值应用 Sigmoid 函数后的值

对于\hat{p}_{i}(c),p_i(c)的理解可以看下图:

YOLOv5类别损失

1.2 YOLOv8:

下面同样举的例子是未使用标签平滑技术

 YOLOv8类别损失

  \hat{p}_{i}(c):看该正样本预测框匹配到的 gt_box 的真实类别是什么,将其他类别的\hat{p}_{i}(c)置为 0 ,而正确类别的\hat{p}_{i}(c)的计算方法:先计算出该正样本预测框与匹配到的 gt_box align_metric,然后再对得到的 align_metric 作归一化, align_metric 值的计算公式如下:

align_metric计算公式

上式中的 bbox_score 是正样本预测框对于正确类别的预测概率, CIoU 值即该正样本预测框与匹配到的 gt_box 计算得到

align_metric 的归一化方法: YOLOv8 源码中是取出当前 batch 中所有正样本预测框中的最大CIoU  max_CIoU 和最大 align_metric max_align_metric ,对上面得到的原始 align_metric 值先乘以 max_CIoU 再除以 max_align_metric 完成归一化处理

 p_i(c):正样本预测框的对于 c 类别的预测概率值应用 Sigmoid 函数后的值

2.定位损失

2.1 CIoU Loss

CIoU Loss的计算公式如下:

CIoU Loss = 1 - CIoU

2.2 Distribution Focal Loss

论文名称:《Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection》, DFL 只是该论文中的其中一个

论文地址:https://arxiv.org/pdf/2006.04388

2.2.1 前言

在以往的目标检测任务中, bounding box 坐标的网络预测结果服从狄拉克分布,简单理解就是网络针对预测框的坐标值只会输出一个确定的值,预测出的那个值概率为 1 ,其他值的概率为 0 ,因为只输出了这一个结果。而在 YOLOv8 中,首次使用 Distribution Focal Loss 参与其损失函数计算,网络模型针对(l、t、r、b)输出多个值,这多个值服从一般分布和任意分布,每个值都有它们自己对应的概率,不像狄拉克分布只预测出一个值,概率为 1

2.2.2 为什么使用Distribution Focal Loss?

先看下面两张图片。左图中,滑板被海水给模糊掉了,所以导致滑板边界模糊不确定;右图中,第一只大象的身体被严重遮挡了,所以导致大象的边界也不是很清晰

在复杂的场景中,通常会存在边界模糊和不确定的情况。在这种前提情况下,如果目标检测模型使用狄拉克分布,即针对预测框的坐标值只输出一个确定值是非常不灵活和不准确的,没有考虑真实框边界的模糊性和不确定性,因此可以使用 Distribution Focal Loss ,这也是 Distribution Focal Loss 提出的原因

2.2.3 原理

作者提出直接回归一个任意分布,对边界框的坐标进行建模。后面我们按照 YOLOv8 的源码实现展开讲解

YOLOv8 中,针对每一个预测框的(l,t,r,b) 4 个值,网络输出 4 个值对应的长度为reg_max(YOLOv8中默认为16)的向量,下面已 l 举例:

需要注意的是, 4 个值各自的长度为 16 的向量是做了Softmax处理的, 16 个值的和为

损失函数设计

思路:作者发现对于那些非常清晰明确的边界,它们的分布会像上图中的 top、right、bottom 比较尖锐和集中。而对于那些比较模糊不确定的边界,它们的分布会像上图中的 left 比较平,而且有时候会出现双峰的情况。所以作者想要模型来学习像上图中的 top、right、bottom 比较集中的、尖锐的分布


实现:设计损失函数时,尽可能增加真实值左边和右边两个值的概率,使得网络快速的聚焦于这个真实值附近的值,这样就可以把分布给学习成集中的、尖锐的样子,所以设计 DFL 损失函数时只有标签值左右两个值的概率参与计算,其他值的概率不参与计算

DFL损失函数设计

注意:

(1)S_i:标签值左边值应用Softmax后的值,S_{i+1}:标签值右边值应用Softmax后的值

(2)计算DFL Loss损失函数时 left、top、right、bottom 标签值需要将其转换为在 feature map 尺度下的值,并且需要作长度限制,0< ltrb < reg_max (YOLOv8中为 reg_max = 16)

YOLOv8 DFL 损失函数的代码实现在 ultralytics/utils/loss.py Class DFLoss

DFL源码实现 

#DFL Loss计算
class DFLoss(nn.Module):
    """Criterion class for computing DFL losses during training."""
    def __init__(self, reg_max=16) -> None:
        """Initialize the DFL module."""
        super().__init__()
        self.reg_max = reg_max
    def __call__(self, pred_dist, target):
        '''
        Args:
            pred_dist: {Tensor:(6448,16)},存放1612个正样本的 ltrb 4个值对应的16个概率分布值
                6448 = 1612 x 4
                16 :概率分布
            target: {Tensor:(1612,4)},存放1612个正样本对应的真实框的ltrb,其值已缩放到各自的feature map尺度下

        Returns:
            out:{Tensor:(1612,1)},存放每个正样本的DFL损失值
        '''
        
        #对正样本对应的真实框的ltrb作长度限制处理,限制在0-15
        target = target.clamp_(0, self.reg_max - 1 - 0.01)
        
        tl = target.long()#tl:{Tensor:(1612,4)},标签值左边的值
        tr = tl + 1#tr:{Tensor:(1612,4)},标签值右边边的值
        wl = tr - target#wl:{Tensor:(1612,4)},左边值的权重
        wr = 1 - wl#wr:{Tensor:(1612,4)},右边值的权重

        #损失值计算,{Tensor:(1612,4)} -> mean(-1) ->{Tensor:(1612,1)}
        return (
            F.cross_entropy(pred_dist, tl.view(-1), reduction="none").view(tl.shape) * wl
            + F.cross_entropy(pred_dist, tr.view(-1), reduction="none").view(tl.shape) * wr
        ).mean(-1, keepdim=True)

2.2.4 关于reg_max取值的补充

参考笔记:https://zhuanlan.zhihu.com/p/702085780

由于 Softmax 的取值范围为 [0,1] ,所以根据上面提到的计算公式可以发现 l,t,r,b ∈[0,reg_max−1] ,如果 reg_max = 16 ,在特征图上所能预测的最大预测框是 l,t,r,b 都取 15 时,此时预测框的高度和宽度是 w_max = 30,h_max = 30 ,由于特征图相对于原始 image 的下采样倍数 stride ∈ [8,16,32],如果取最大下采样倍数 stride = 32 ,则在原图上所能预测的最大 bbox 高度和宽度为 w_max,h_max = 30 * 32 = 960 ,那么如果图像中的原始目标的宽度或者高度过大,则会出现预测框小于原始目标的情况。下面举个例子理解

目标过大时的YOLOv8的GT框与预测框

图片中有一个目标其 gt_box 的宽度为 1000 ,但我们实际能预测的最大宽度是 w_max = 960 ,这就会导致预测不精准,此时则需要根据具体情况对 reg_max 作调整

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统

随着大语言模型的广泛应用&#xff0c;知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统&#xff0c;支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…

(Arxiv-2025)ImageRAG:用于参考引导图像生成的动态图像检索

ImageRAG&#xff1a;用于参考引导图像生成的动态图像检索 paper是Tel Aviv University发布在Arxiv 2025的工作 paper title:ImageRAG: Dynamic Image Retrieval for Reference-Guided Image Generation Code:链接 图 1&#xff1a;使用参考图像扩展图像生成模型的生成能力。 在…

企业知识管理平台重构数字时代知识体系与智能服务网络

内容概要 现代企业知识管理平台的演进呈现出全生命周期管理与智能服务网络构建的双重特征。通过四库体系&#xff08;知识采集库、加工库、应用库、评估库&#xff09;的协同运作&#xff0c;该系统实现了从知识沉淀、结构化处理到价值释放的完整闭环。其中&#xff0c;知识图…

高级推理的多样化推理与验证

25年2月来自波士顿大学、NotBadMath.AI、谷歌、哥伦比亚大学、MIT、Intuit公司和斯坦福大学的论文“Diverse Inference and Verification for Advanced Reasoning”。 OpenAI o1、o3 和 DeepSeek R1 等推理 LLM 在数学和编码方面取得重大进展&#xff0c;但仍发现 IMO 组合问题…

23.1 WebBrowser控件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 WebBrowser控件类似于IE浏览器的文档界面&#xff08;事实上IE也是使用的这个控件&#xff09;&#xff0c;它提供了显示网页及支持…

Django-Vue 学习-VUE

主组件中有多个Vue组件 是指在Vue.js框架中&#xff0c;主组件是一个父组件&#xff0c;它包含了多个子组件&#xff08;Vue组件&#xff09;。这种组件嵌套的方式可以用于构建复杂的前端应用程序&#xff0c;通过拆分功能和视图&#xff0c;使代码更加模块化、可复用和易于维…

计算机网络安全之一:网络安全概述

1.1 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及&#xff0c;越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是&#xff0c;支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而&#xff0…

AI学习指南DeepSeek篇(6)-DeepSeek论文介绍

1. DeepSeek LLM: Scaling Open-Source Language Models with Longtermism 发布时间: 2024 年 1 月 5 日 主要内容: 基于 Transformer 架构,采用分组查询注意力(GQA)优化推理成本。 支持多步学习率调度器,提升训练效率。 在预训练和对齐(监督微调与 DPO)方面进行了创新…

刺客信条 枭雄 画质设置以及【锁帧60帧】的办法

刺客信条 枭雄 锁帧60帧的办法 画质设置帧率锁60帧办法 画质设置 关爱老电脑和GPU&#xff0c;适当设置一下画质 我们设置画面的时候&#xff0c;可以看游戏右上角的显存占用&#xff0c;进而观察自己这样设置&#xff0c;GPU的显存够不够&#xff1a; 环境质量&#xff1a;超…

适用于复杂背景的YOLOv8改进:基于DCN的特征提取能力提升研究

文章目录 1. YOLOv8的性能瓶颈与改进需求1.1 YOLOv8的优势与局限性1.2 可变形卷积&#xff08;DCN&#xff09;的优势 2. DCN在YOLOv8中的应用2.1 DCN的演变与YOLOv8的结合2.2 将DCN嵌入YOLOv8的结构中2.2.1 DCNv1在YOLOv8中的应用2.2.2 DCNv2与DCNv3的优化 2.3 实验与性能对比…

cesium视频投影

先看效果 使用cesium做视频投影效果&#xff0c;而且还要跟随无人机移动而移动&#xff0c;我现在用定时器更新无人机的坐标来实现效果具体代码如下&#xff1a; 1、CesiumVideo3d.js(某个cesium技术群大佬分享的) // import ECEF from "./CoordinateTranslate"; le…

滚珠花键在使用时需注意什么?

滚珠花键是一种直线运动系统&#xff0c;当花键套利用其中的钢球在经过精密磨削的花键轴上直线运动时&#xff0c;可以传递扭矩。在使用滚珠花键时&#xff0c;需要注意以下几个重要的事项&#xff1a; 1、不要擅自拆卸滚珠花键的各部分&#xff0c;因为这样可能会导致异物进入…

AI助力下的PPT革命:DeepSeek 与Kimi的高效创作实践

清华大学出品《DeepSeek&#xff1a;从入门到精通》分享 在忙碌的职场中&#xff0c;制作一份高质量的PPT往往需要投入大量时间和精力&#xff0c;尤其是在临近截止日期时。今天&#xff0c;我们将探索如何借助 AI 工具 —— DeepSeek 和 Kimi —— 让 PPT 制作变得既快捷又高…

PcVue : 点亮马来西亚砂拉越偏远村庄

导读 背景简介 新项目的需求 实施亮点 成果 背景简介 2021年&#xff0c;砂拉越能源公司&#xff08;Sarawak Energy Berhad&#xff09;启动了一项意义非凡的项目-借助太阳能、微型水力发电机等可再生能源&#xff0c;为砂拉越州偏远村庄送去光明与动力。然而&#xff0c…

图论 之 迪斯科特拉算法求解最短路径

文章目录 题目743.网络延迟时间3341.到达最后一个房间的最少时间I 求解最短路径的问题&#xff0c;分为使用BFS和使用迪斯科特拉算法&#xff0c;这两种算法求解的范围是有区别的 BFS适合求解&#xff0c;边的权值都是1的图中的最短路径的问题 图论 之 BFS迪斯科特拉算法适合求…

在mfc中使用自定义三维向量类和计算多个三维向量的平均值

先添加一个普通类, Vector3.h, // Vector3.h: interface for the Vector3 class. // //#if !defined(AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_) #define AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_#if _MSC_VER > 1000 #p…

DM执行计划

DM执行计划 1. 引言 理解执行计划对于优化查询性能、诊断慢查询问题至关重要。本文将从基础概念入手&#xff0c;逐步深入探讨执行计划的各个组成部分&#xff0c;并通过设计用例来验证所学知识。 2. SQL 执行计划基础 SQL 执行计划是数据库引擎在执行 SQL 语句时生成的一个…

【鸿蒙开发】第四十三章 Notification Kit(用户通知服务)

目录​​​​​​​ 1 简介 1.1 使用场景 1.2 能力范围 1.3 业务流程 1.4 通知样式 1.5 约束限制 1.6 与相关Kit的关系 2 请求通知授权 2.1 接口说明 2.2 开发步骤 3 管理通知角标 3.1 接口说明 3.2 开发步骤 4 管理通知渠道 4.1 通知渠道类型说明 4.2 接口说明…

SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问

一、前言 SSL协议介于TCP/IP协议栈的第四层&#xff08;传输层&#xff09;和第七层&#xff08;应用层&#xff09;之间&#xff0c;为基于TCP的应用层协议&#xff08;如HTTP&#xff09;提供安全连接。它通过在客户端和服务器之间建立一个加密的通道&#xff0c;确保数据在传…

【数学】数论干货(疑似密码学基础)

文章目录 前言一. 整除、算术基本定理、同余、同余类、剩余系的基本定义1.整除2.算数基本定理3.同余4.同余类&#xff08;也叫剩余类&#xff09;5.剩余系 二. 费马小定理的内容及其证明1.费马小定理基本内容2.费马小定理的证明&#xff08;interesting 版&#xff09; 三. 欧拉…