首页 > 其他分享 >目标检测中的损失函数及其改进方案

目标检测中的损失函数及其改进方案

时间:2024-11-18 12:45:51浏览次数:3  
标签:Loss 函数 检测 IoU 样本 损失 目标 改进 类别

目标检测中的损失函数是模型训练的核心部分,它衡量了模型预测与真实标注之间的差异,并通过优化损失函数来指导模型参数的更新。损失函数通常由多个部分组成,包含了不同层面的误差,具体包括 位置损失分类损失置信度损失,这些损失合起来决定了模型在目标检测任务中的性能。

目标检测中的损失函数主要包括三个部分:

1. 位置损失(Localization Loss): 位置损失衡量的是模型预测的边界框(bounding box)与真实边界框之间的差异。通常使用的是 平滑L1损失(Smooth L1 loss)L2损失(Mean Squared Error)

     平滑L1损失: 平滑L1损失是一种在边界框回归任务中广泛使用的损失函数。它在误差较小时使 用L2损失,而在误差较大时则使用L1损失。这样可以减小异常大的预测框对训练的影响。

公式:

其中,x 是预测框与真实框之间的误差。 

2. 分类损失(Classification Loss): 分类损失衡量的是模型对每个框的分类结果与真实标签之间的差异。对于每个预测框,模型需要预测其是否包含目标对象以及属于哪个类别。

   交叉熵损失(Cross-Entropy Loss): 目标检测中常用的分类损失是 交叉熵损失,它用于多类分类任务,衡量预测的类别概率分布与真实类别标签之间的差异。

公式:

其中,p_i 是模型预测的类别概率,y_i 是真实类别标签(通常为one-hot编码)。对每个检测框计算分类损失,然后将所有框的损失累加。 

     Focal Loss: 在处理类不平衡时(例如目标检测中的前景与背景比例极不均衡), Focal Loss 可以有效减轻对易分类样本的关注,聚焦于难以分类的样本。Focal Loss 是在交叉熵损失基础上进行修改的。

公式:

其中,p_t 是模型对当前类别的预测概率,α_t 是对类别加权的因子,γ 是调整难易样本的超参数。 

3. 置信度损失(Confidence Loss): 置信度损失衡量的是模型对预测框的置信度(即是否包含目标物体)与真实标签之间的差异。在目标检测中,通常采用 二元交叉熵损失 来评估一个框是否包含目标。

       置信度预测(Objectness): 对于每个检测框,YOLO、SSD等模型会预测一个 objectness 分数,表示该框是否包含目标。该损失函数对目标和背景进行分类,通常使用 二元交叉熵损失

公式:

其中,y_i 是目标类别标签(0或1),p_i 是框包含目标的概率。 

综合损失函数

在目标检测模型中,最终的损失函数通常是多种损失的加权和:

L=λ1​⋅Localization Loss+λ2​⋅Classification Loss+λ3​⋅Confidence Loss

其中:

   Localization Loss:位置损失,用于评估预测框与真实框之间的距离。

   Classification Loss:分类损失,用于评估目标类别的预测。

   Confidence Loss:置信度损失,用于评估预测框是否包含目标。

   λ1, λ2, λ3: 这些超参数是损失函数各部分的权重,通常需要根据具体任务进行调节。

目标检测中的损失函数是模型性能的关键因素之一,优化和改进损失函数可以更好地解决检测任务中的挑战,比如类别不平衡、正负样本不平衡、小目标检测困难等问题。以下是目标检测中损失函数改进的思路与方案

1. 类别不平衡问题的改进方案

问题:前景(目标)和背景样本比例严重失衡,导致模型更倾向于背景分类。

改进思路与方案:

   Focal Loss:

    Focal Loss 通过降低易分类样本的权重,增强模型对难分类样本的关注。

       

   αt​:控制正负样本的平衡。

  γ:聚焦因子,降低对易分类样本的损失权重。

  应用:RetinaNet使用Focal Loss解决正负样本比例极端失衡问题。

  类别平衡权重

  根据每类样本的出现频率分配不同的权重,频率低的类别分配更高的权重。

  

  fc​:类别 c 的样本频率。 

2. 回归损失的改进方案

问题:位置回归损失(如L2损失)对异常值敏感,且无法适应不同尺度的目标。

改进思路与方案

 IoU-based Loss

  用IoU作为位置损失,直接衡量预测框和真实框的重叠程度。

IoU Loss=1−IoU

 GIoU Loss(Generalized IoU Loss)

   考虑到预测框和真实框没有重叠时,IoU为零,GIoU加入了外接矩形的面积来衡量距离。

  C:预测框与真实框的最小外接矩形面积。

  U:预测框和真实框的并集面积。

 DIoU Loss(Distance IoU Loss)

   在GIoU的基础上,考虑预测框中心与真实框中心的欧氏距离,进一步优化对框位置的约束。

   ρ(b,bg):预测框与真实框中心点的欧氏距离。 

   c:外接矩形对角线长度。

CIoU Loss(Complete IoU Loss)

在DIoU的基础上,加入对长宽比的优化,进一步提高收敛速度和检测精度。

v:长宽比的一致性度量

目标检测中的损失函数是模型性能的关键因素之一,优化和改进损失函数可以更好地解决检测任务中的挑战,比如类别不平衡、正负样本不平衡、小目标检测困难等问题。以下是目标检测中损失函数改进的思路与方案:


1. 类别不平衡问题的改进方案

问题:前景(目标)和背景样本比例严重失衡,导致模型更倾向于背景分类。

改进思路与方案
  • Focal Loss
    Focal Loss 通过降低易分类样本的权重,增强模型对难分类样本的关注。

    FL(pt)=−αt(1−pt)γlog⁡(pt)\text{FL}(p_t) = - \alpha_t (1 - p_t)^\gamma \log(p_t)FL(pt​)=−αt​(1−pt​)γlog(pt​)
    • αt\alpha_tαt​:控制正负样本的平衡。
    • γ\gammaγ:聚焦因子,降低对易分类样本的损失权重。

    应用:RetinaNet使用Focal Loss解决正负样本比例极端失衡问题。

  • 类别平衡权重
    根据每类样本的出现频率分配不同的权重,频率低的类别分配更高的权重。

    wc=1fcw_c = \frac{1}{\sqrt{f_c}}wc​=fc​​1​
    • fcf_cfc​:类别 ccc 的样本频率。

2. 回归损失的改进方案

问题:位置回归损失(如L2损失)对异常值敏感,且无法适应不同尺度的目标。

改进思路与方案
  • IoU-based Loss
    用IoU作为位置损失,直接衡量预测框和真实框的重叠程度。

    IoU Loss=1−IoU\text{IoU Loss} = 1 - \text{IoU}IoU Loss=1−IoU
  • GIoU Loss(Generalized IoU Loss)
    考虑到预测框和真实框没有重叠时,IoU为零,GIoU加入了外接矩形的面积来衡量距离。

    GIoU Loss=1−(IoU−C−UC)\text{GIoU Loss} = 1 - \left(\text{IoU} - \frac{C - U}{C}\right)GIoU Loss=1−(IoU−CC−U​)
    • CCC:预测框与真实框的最小外接矩形面积。
    • UUU:预测框和真实框的并集面积。
  • DIoU Loss(Distance IoU Loss)
    在GIoU的基础上,考虑预测框中心与真实框中心的欧氏距离,进一步优化对框位置的约束。

    DIoU Loss=1−IoU+ρ2(b,bg)c2\text{DIoU Loss} = 1 - \text{IoU} + \frac{\rho^2(b, b^g)}{c^2}DIoU Loss=1−IoU+c2ρ2(b,bg)​
    • ρ(b,bg)\rho(b, b^g)ρ(b,bg):预测框与真实框中心点的欧氏距离。
    • ccc:外接矩形对角线长度。
  • CIoU Loss(Complete IoU Loss)
    在DIoU的基础上,加入对长宽比的优化,进一步提高收敛速度和检测精度。

    CIoU Loss=DIoU Loss+α⋅v\text{CIoU Loss} = \text{DIoU Loss} + \alpha \cdot vCIoU Loss=DIoU Loss+α⋅v
    • vvv:长宽比的一致性度量。

3. 小目标检测的改进方案

问题:小目标的特征难以提取,回归误差占比更大。

改进思路与方案

  Scale-aware Loss

  根据目标的尺度动态调整损失权重,小目标赋予更大的权重。

  

bg:真实框的面积。

Normalized Loss

使用归一化的方法(如GIoU、DIoU等)代替绝对坐标的回归损失,以减少不同尺度目标之间的误差差异。

4. 正负样本不平衡的改进方案

 问题:正负样本数量极不平衡,负样本对损失的贡献过大。

改进思路与方案

  Hard Negative Mining

  仅选择部分难以分类的负样本参与损失计算,例如SSD只选取置信度最低的负样本。

 

Online Hard Example Mining (OHEM)

在训练时动态选择错误率最高的正负样本,优化难以分类的实例。

Adaptive Sampling

动态调整正负样本的比例,根据模型性能调整负样本的选择标准。

5. 边界框方向的改进

问题:目标方向变化(如旋转目标)导致水平框回归误差较大。

改进思路与方案

Rotated IoU Loss

对旋转框(Rotated BBox)进行IoU计算,使得损失函数适应旋转目标检测任务。

公式:

角度回归损失

为旋转框增加角度损失,使用周期性的余弦函数处理角度误差。

θp​:预测框角度。

θg​:真实框角度。

6. 权重平衡的改进 

问题:损失函数的各部分权重需要调优,否则某部分可能主导训练过程。

改进思路与方案

    动态权重调整: 在训练过程中动态调整位置损失、分类损失和置信度损失的权重。

   λi​:损失函数 i 的权重。

   Li: 损失函数 i 的值。

自动加权(Auto-Weighting)

   使用学习的权重因子,例如增加可训练参数来动态调整各部分损失的重要性。

7. 其他改进思路

   Label Smoothing: 防止模型对某一类别过于自信,缓解过拟合。将标签从 y=1改为 y=1−ϵ,其中 ϵ是平滑因子。

 Uncertainty Loss

 考虑模型预测的置信度,对不确定性较高的预测赋予更低权重。

总结 

针对目标检测中常见问题,损失函数的改进主要集中在以下方面:

  解决类别不平衡问题(Focal Loss、类别平衡权重)。

  提高位置回归精度(IoU系列损失)。

  关注小目标和难分类样本(Scale-aware Loss、OHEM)。

  适应旋转目标检测任务(Rotated IoU Loss、角度回归损失)。

  动态调整权重平衡(动态权重、自动加权)。

 具体选择哪种改进方案,需要结合数据集特点、检测目标以及模型性能指标来决定。

 

 

 

标签:Loss,函数,检测,IoU,样本,损失,目标,改进,类别
From: https://blog.csdn.net/m0_45276337/article/details/143808405

相关文章

  • 过检测,TP,去虚拟化Vmware虚拟机安装教程【含全套资源压缩包实测CF可行】某鱼平台付费资
    虚拟化技术作为现代IT环境中的一项重要技术,已经被广泛应用于服务器、开发、测试以及日常的工作环境中。VMware是一种广泛使用的虚拟化平台,它可以在不同的硬件上创建虚拟机,帮助用户实现资源的高效利用与隔离。在本教程中,我们将带您一步步安装VMware虚拟机,并详细介绍如何过......
  • C++ 编程基础(8)模版 | 8.2、函数模版
    文章目录一、函数模版1、声明与定义2、模版参数3、模板的实例化3.1、隐式实例化3.2、显示实例化4、模版的特化5、注意事项6、总结前言:C++函数模板是一种强大的特性,它允许程序员编写与类型无关的代码。通过使用模板,函数或类可以处理不同的数据类型,而无需重复编写......
  • 机器学习笔记——损失函数、代价函数和KL散度
    本笔记介绍机器学习中常见的损失函数和代价函数,各函数的使用场景。损失函数一、回归问题中的损失函数1.均方误差(MeanSquaredError,MSE)定义:描述:MSE衡量的是预测值和真实值之间的平方误差的平均值。对较大的误差会进行更大的惩罚,因此它对异常值(outliers)非常敏感......
  • 【人脸伪造检测】Self-Supervised Video Forensics by Audio-Visual Anomaly Detectio
    一、研究动机[!note]原理:经过处理后的视频在视觉和音频信号之间通常会有不一致的现象,提出一种基于异常检测算法实现视频伪造取证。挑战:不同于简单的检测不同步的例子,因为由于视频采集往往会有“延迟”现象,出现帧偏移现象创新点:提出在视听特征中实现异常检测,该特征包含了视听......
  • 异常值检测:SOS算法(Stochastic Outlier Selection Algorithm)MATLAB代码
    SOS算法(StochasticOutlierSelectionAlgorithm)是由JeroenJanssens提出的一种无监督异常检测算法。该算法通过计算数据点之间的关联度(affinity)来识别异常点。核心思想是,如果一个点与其他所有点的关联度都很低,那么它被视为异常点。以下是该算法的详细公式和步骤:其MATLAB代码......
  • 【开窗函数】三个SQL题
             本文主要练习一下lag开窗函数的使用!!!一、第一题 建表语句:createtablem1(dtstring,namestring,deptstring,scoreint);insertintom1values('202101','张三','销售',90),('202101','李四......
  • 论文7—《基于改进YOLOv5s的自然环境下猕猴桃花朵检测方法》文献阅读分析报告
    论文报告:基于改进YOLOv5s的自然环境下猕猴桃花朵检测方法基于改进YOLOv5s的自然环境下猕猴桃花朵检测方法摘要国内外研究现状1.授粉技术研究2.目标检测算法研究3.猕猴桃花朵检测研究研究目的研究问题使用的研究方法试验研究结果文献结论创新点和对现有研究的贡献创......
  • STM32微控制器GPIO库函数
    STM32微控制器GPIO库函数目录概述GPIO库函数基础HAL库与标准外设库GPIO库函数分类GPIO数学基础电阻分压公式输入电流计算输出驱动能力功率计算RC时间常数GPIO应用实例LED控制按钮输入与中断串行通信PWM信号生成常见问题与解决方法GPIO引脚无法正确读取输入状......
  • Microsoft Visual Studio VS dumpbin使用查看.obj、.lib、.dll、.exe文件头、段函数
    前言全局说明dumpbin是VS自带的MicrosoftCOFF二进制文件转换器,它显示有关通用对象文件格式(COFF)二进制文件的信息。可以使用dumpbin检查COFF对象文件、标准COFF对象库、可执行文件和动态链接库等。被查看的文件名后缀可以为:.obj、.lib、.dll、.exe一、说明正确情况下,安......
  • 【伪造检测】Noise Based Deepfake Detection via Multi-Head Relative-Interaction
    一、研究动机[!note]动机:目前基于噪声的检测是利用PhotoResponseNon-Uniformity(PRNU)实现的,这是一种由于相机感光传感器而造成的缺陷噪声,主要用图像的源识别,在伪造检测的任务中并没有很好的表现。因此在文中提出了一种基于伪造噪声痕迹的检测算法。实现原理:通过提取伪造视......