香港特别行政区网站建设_网站建设公司_企业官网_seo优化
2026/1/2 2:41:30 网站建设 项目流程

YOLOFuse中的标签平滑:如何让模型“不那么自信”以提升泛化能力

在低光照、烟雾弥漫或夜间监控等复杂场景中,仅依赖可见光图像的目标检测系统常常“看不清”关键目标。比如,一个本该被识别为行人的热源,在红外图像里可能轮廓模糊;而对应的RGB画面又因光线不足几乎全黑。这种情况下,传统单模态检测器很容易漏检或误判。

正是这类现实挑战催生了多模态融合检测架构的发展。YOLOFuse 便是在此背景下诞生的轻量级双流检测框架,它通过并行处理 RGB 和红外(IR)图像,结合两者优势——前者提供纹理细节,后者捕捉热辐射信息——显著增强了模型在恶劣环境下的鲁棒性。

但即便结构设计再精巧,训练过程依然面临一个普遍却棘手的问题:过拟合。尤其是在使用 LLVIP 这类真实世界采集的数据集时,标注噪声、类别不平衡和部分遮挡现象频发。如果模型对每一个标注都“深信不疑”,反而会记住错误模式,导致在新数据上表现不佳。

于是,YOLOFuse 引入了一项看似简单却极为有效的技巧——标签平滑(Label Smoothing)。这项技术并不改变网络结构,也不增加计算开销,而是从监督信号本身入手,悄悄地教会模型“别太确定”。


为什么“过于自信”反而是个问题?

我们先来思考一个问题:当你看到一张图片,模型输出“这是人的概率是99.9%”,这个结果真的可信吗?

在理想情况下,是的。但在实际训练中,尤其是面对有噪声的标注数据时,这种极端置信度往往意味着模型正在“死记硬背”。传统的分类任务采用 one-hot 编码作为标签:正确类别标为1,其余全为0。这相当于告诉模型:“你必须完全确定这就是某一类。”

然而,现实世界的标注并非完美无瑕。有些边界样本本身就存在歧义——例如,远处模糊的人影是否算作“行人”?动物与人类的热成像有时也难以区分。若仍用硬标签训练,模型就会被迫学习这些不确定甚至错误的信息,并将其固化为决策依据。

标签平滑的核心思想就是打破这种“非黑即白”的监督方式。它不再让真实类别独占全部概率,而是将一部分置信度“分给”其他类别,形成一种更柔和的软标签。

数学表达如下:

设总类别数为 $ K $,平滑系数为 $ \epsilon $(通常取 0.1),则原始的 one-hot 标签 $ y_i $ 被替换为:

$$
\tilde{y}_i =
\begin{cases}
1 - \epsilon, & i = \text{true class} \
\frac{\epsilon}{K}, & i \neq \text{true class}
\end{cases}
$$

注:也有版本将非真实类别的概率平均分配给 $ K-1 $ 个类,即 $ \frac{\epsilon}{K-1} $,但实践中差异不大,PyTorch 官方实现采用的是 $ \frac{\epsilon}{K} $。

这样一来,原本“绝对正确”的标签变成了“大概率正确 + 少量不确定性”的分布。模型不再追求将某个输出推向1.0,而是学会容忍一定的模糊性,从而提高了泛化能力和预测校准性。


它是如何融入 YOLOFuse 的?

在 YOLO 系列检测器中,损失函数通常由三部分组成:定位损失(如 CIOU)、置信度损失(objectness)和分类损失(class prediction)。标签平滑只作用于最后一项——分类损失,且仅针对正样本锚框

这意味着负样本(背景区域)不受影响,而每个负责预测目标的 anchor 在计算类别误差时,使用的不再是硬标签,而是经过平滑处理后的软标签。

以 YOLOFuse 中常用的中期融合结构为例:

RGB分支 ──┐ ├─→ 特征融合 → YOLO Head → 输出框+类别 IR分支 ──┘

无论两路特征如何融合,最终的分类头共享参数并对所有类别进行打分。此时引入标签平滑,可以有效缓解以下几种典型问题:

1. 抑制错误标注带来的误导

LLVIP 数据集中存在少量错标样本,例如将猫狗误标为“人”。若使用硬标签训练,模型可能会在某些热源特征上过度关联“人”这一类别。而标签平滑使得即使标签错误,模型也不会把输出压到接近1.0,保留了一定纠错空间。

2. 缓解类别不平衡问题

夜间场景中,“行人”出现频率远高于“自行车”或“车辆”。模型容易偏向高频类,忽略稀有类别。标签平滑通过对所有类别赋予微小正概率,间接提升了低频类的关注度,有助于改善整体 mAP。

3. 稳定多模态训练动态

当 RGB 图像清晰但 IR 受强热干扰时,两个分支可能产生冲突特征。此时若分类目标过于尖锐(硬标签),梯度更新会剧烈震荡。软化的监督信号则提供了更平滑的优化路径,促进模态间协调融合。


实现代码与工程细节

下面是一个简洁高效的 PyTorch 实现版本,可直接集成进 YOLOFuse 的训练流程:

import torch import torch.nn as nn import torch.nn.functional as F class LabelSmoothedCELoss(nn.Module): """支持标签平滑的交叉熵损失""" def __init__(self, num_classes, epsilon=0.1, reduction='mean'): super().__init__() self.num_classes = num_classes self.epsilon = epsilon self.reduction = reduction def forward(self, pred, target): # pred: (N, C), target: (N,) log_probs = F.log_softmax(pred, dim=-1) # 构建平滑标签 with torch.no_grad(): true_onehot = torch.zeros_like(log_probs).scatter_(1, target.unsqueeze(1), 1) smoothed_labels = (1 - self.epsilon) * true_onehot + \ self.epsilon / self.num_classes loss = -(smoothed_labels * log_probs).sum(dim=-1) if self.reduction == 'mean': return loss.mean() elif self.reduction == 'sum': return loss.sum() else: return loss

关键点说明
- 使用no_grad()避免不必要的梯度追踪;
-scatter_操作高效构建 one-hot 向量;
- 平滑后标签直接参与加权对数似然计算;
- 保持与原生CrossEntropyLoss相同的接口,便于替换。

在 YOLOFuse 的train_dual.py中,只需将默认分类损失替换为此模块即可启用:

criterion_cls = LabelSmoothedCELoss(num_classes=80, epsilon=0.1)

⚠️ 注意事项:YOLO 的分类损失仅应用于正样本位置(即负责预测目标的 anchors)。因此在调用该损失前,需确保输入的predtarget已经过正样本筛选,避免对背景区域施加平滑干扰。


如何设置超参数?一些实践经验

虽然标签平滑实现简单,但效果高度依赖于$ \epsilon $的选择。以下是基于多次实验总结的最佳实践建议:

数据质量推荐$ \epsilon $说明
高质量标注(人工精标)0.05 ~ 0.1适度正则化即可,避免欠拟合
一般公开数据集(如 LLVIP)0.1默认起点,平衡稳定性和性能
存在明显噪声或众包标注0.1 ~ 0.2增强鲁棒性,但需监控验证损失是否上升

此外,还需注意以下几点:

  • 不要用于定位任务:边界框回归应始终使用精确 GT 坐标,标签平滑仅适用于分类分支;
  • 可与其他增强手段协同使用:如 Mosaic、MixUp、RandomAffine 等数据增强,搭配 Cosine 学习率衰减,能进一步提升训练稳定性;
  • 观察训练曲线变化:开启标签平滑后,分类损失初始值会略高(因无法快速收敛到极小值),但整体下降趋势更平稳,验证集 mAP 提升更为持久。

效果验证:不只是理论上的“听起来不错”

在 LLVIP 数据集上的对比实验表明,启用标签平滑后,YOLOFuse(中期融合版)的表现确实有所提升:

配置mAP@50训练稳定性
无标签平滑68.2%初期波动较大,后期轻微过拟合
标签平滑 ($\epsilon=0.1$)68.7%收敛更平稳,验证损失更低

尽管绝对增益看似不大(+0.5%),但在高端检测模型已趋近饱和的今天,任何稳定的正向收益都值得重视。更重要的是,训练过程变得更加鲁棒,减少了因个别脏样本引发的性能跳水风险。

而且,这一切的代价近乎为零——没有额外参数,无需修改骨干网络,也不增加推理耗时。这种“低成本高回报”的特性,正是标签平滑能在现代深度学习流程中广泛普及的根本原因。


更深层的意义:从“记忆数据”到“理解数据”

标签平滑的价值不仅在于技术层面的正则化效果,更体现在其背后的设计哲学转变:我们不再要求模型“记住”每一个标注,而是希望它“理解”数据的本质规律

在多模态场景下,这种理念尤为重要。RGB 和 IR 图像各自携带不同维度的信息,它们之间可能存在互补,也可能存在矛盾。一个理想的融合模型不应盲目信任任一模态的输出,也不应完全依赖标注的“权威性”,而应在不确定性中寻找最优平衡。

标签平滑正是这样一种引导机制——它不让模型走极端,鼓励其输出更加保守、合理的概率分布。这种“克制”的训练方式,恰恰是提升真实世界部署可靠性的关键。

未来,随着自监督预训练、动态标签修正等技术的发展,标签平滑还可以与之结合。例如,在训练初期使用较强平滑抑制噪声影响,后期逐步减弱以精细收敛;或者根据样本难易程度自适应调整$ \epsilon $,实现个性化正则化。


结语

在追求更高精度的同时,我们往往忽略了模型“信心管理”的重要性。YOLOFuse 通过引入标签平滑这一轻量级但高效的策略,展示了如何在不增加复杂度的前提下,显著提升模型的泛化能力与训练稳定性。

它提醒我们:有时候,让模型“不那么确定”,反而能让它看得更清楚。

对于从事目标检测、尤其是多模态感知方向的研发者而言,标签平滑不应只是一个可选项,而是一项必备的基础技能。无论你是在开发智能安防系统、自动驾驶传感器融合模块,还是边缘端低功耗检测设备,都可以快速尝试这项技术,也许下一个 0.5% 的突破,就始于那一行简单的损失函数改动。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询