研零学习笔记

前言

博客的目录很有用,可以快速检索想要看的学习笔记,也可以直接把目录当缩写字典用。

希望论文部分能做成可以直接扔到组会周报上用的东西。

一、关键概念与缩写

1. IoU(Intersection over Union)

交并比,它衡量两个边框(或区域)重叠得有多好——也就是预测框与真实框的重合程度,是许多目标检测模型的核心指标之一

IoU = 交集面积 ÷ 并集面积

具体到算法实现计算:

设预测框为\((x_1^{(p)},y_1^{(p)},x_2^{(p)},y_2^{(p)})\),真实框为\((x_1^{(g)},y_1^{(g)},x_2^{(g)},y_2^{(g)})\)

则交集坐标:

\[\begin{aligned} (x_1^{(I)},y_1^{(I)},x_2^{(I)},y_2^{(I)}) = (&\max(x_1^{(p)},x_1^{(g)}), \\ &\max(y_1^{(p)},y_1^{(g)}),\\ &\min(x_2^{(p)},x_2^{(g)}),\\ &\min(y_2^{(p)},y_2^{(g)})) \end{aligned} \]

交集和并集面积:

\[A_I=\max(0,x_2^{(I)}-x_1^{(I)})\times \max(0,y_2^{(I)}-y_1^{(I)}) \]

\[A_U=A_p+A_g-A_I \]

交并比IoU即为:

\[IoU=\frac{A_I}{A_U} \]

有些模型会使用IoU的改进版本,例如GIoU解决了当两个框不相交时IoU = 0,梯度无法提供有用方向的问题。GIoU在IoU基础上增加了“惩罚框未重叠的距离”,公式为:

\[GIoU = IoU - \frac{| C-(A\cup B) |}{| C |} \]

其中\(C\)是包含预测框和真值框的最小外接矩形。

2. GT(Ground Truth)

3. O2O(One to One)& O2M(One to Many)

4. AP(Average Precision)

在目标检测任务中常用的评价指标是,用于衡量模型在不同阈值下的检测性能。AP 指标通常结合 精度(Precision)召回率(Recall) 来计算:

\[\text{Precision} = \frac{TP}{TP + FP} \]

表示模型预测为正的样本中,有多少是真正的正样本。

\[\text{Recall} = \frac{TP}{TP + FN} \]

表示所有真实正样本中,有多少被模型正确预测。

AP 是 Precision-Recall 曲线下的面积(AUC),反映模型在不同置信度阈值下的整体性能:

\[AP = \int_0^1 P(r) \, dr \]

其中 \(P(r)\) 表示在召回率 \(r\) 时的精度。AP 衡量模型在不同置信度阈值下精度和召回率的整体表现,值越大表示模型性能越好。

AP包含一些变体:

  1. \(AP_{50}\)\(AP_{75}\) 引入了IoU阈值

    • \(AP_{50}\):IoU ≥ 0.5 时算作 True Positive(TP),表示在较宽松匹配条件下的平均精度。
    • \(AP_{75}\):IoU ≥ 0.75 时算作 TP,表示在严格匹配条件下的平均精度。
  2. \(AP_{S}, AP_{M}, AP_{L}\)
    这些指标用于衡量模型在不同目标尺寸上的性能:

    • \(AP_{S}\)(Small):小目标的 AP,COCO 定义面积 < \(32^2\) 像素
    • \(AP_{M}\)(Medium):中等目标的 AP,面积在 \(32^2 \le \text{area} < 96^2\)
    • \(AP_{L}\)(Large):大目标的 AP,面积 ≥ \(96^2\)

    这种划分可以分析模型在不同尺度目标上的检测能力,通常小目标最难检测。

  3. 在 COCO 评测中,常用 mAP 指标,即 AP@[0.5:0.95],在 IoU 从 0.5 到 0.95(步长 0.05)之间取平均,全面衡量模型性能。

二、论文

1. DETR(DEtection TRansformer)

论文:End-to-End Object Detection with Transformers

学习笔记搬了一些这篇博客的。

DETR 通过引入 Transformer ,将目标检测任务视为集合预测问题,首次实现了端到端的目标检测(整个检测流程从输入图像到最终预测框的生成,完全由一个可微的神经网络自动完成,不需要任何手工启发式步骤),无需NMS后处理和anchor设计(相较于 YOLO ),显著简化了模型训练和部署流程。论文的核心贡献包括设计了基于二分图匹配的目标函数,确保输出的独特性,并通过 Transformer 的 encoder-decoder 架构实现了高效的目标检测。

image

如上图所示, DETR 框架的大致流程为:

  1. CNN 提取特征(其中 Backbone 可采用 ResNet50 或 ResNet101 ,相应的模型分别称为 DETR 和 DETR-R101 ;
  2. 特征拉直,送到 encoder-decoder 中,encoder 进一步学习全局信息,为接下来的 decoder 最后出预测框做铺垫;
  3. decoder 生成框的输出,当你有了图像特征之后,还会有一个 object query (限定了共有多少输出框,本方法中输出框限定为 \(N\) 个, \(N\) 需要远大于目标数量,文中取 \(N=100\) ),通过 query 和特征在 decoder 里进行自注意力操作,得到输出的框;
  4. loss 计算,通过二分图匹配,计算 100个 预测的框和 2 个 GT 框的 matching loss ,决定100个预测框哪两个是独一无二对应到红黄色的 GT 框,匹配的框去算目标检测的 loss 。

上述的是 DETR 训练的步骤,而在 DETR 的推理过程中,步骤1、2、3一致,步骤4不需要,直接在最后的输出上用一个阈值卡一个输出的置信度,置信度比较大保留。

DETR 的主要特色在于步骤4,它将目标检测视为一个 “集合预测” 问题,通过二分图匹配得到一个可训练的 Loss 。具体而言:

  1. \(\hat{y}=\{\hat{y}_i\}_{i=1}^N\) 为模型输出的 \(N\) 个预测(每个预测均包含类别概率分布与归一化边框,即 \(\hat{y}_i=(\hat{p}_i,\hat{b}_i)\) ,其中 \(\hat{b}_i\in[0,1]^4\) );

  2. \(y=\{y_j\}\) 为该图的GT集合,为了方便O2O匹配,将GT集用特殊类(∅)填充至长度 \(N\) ,预测匹配到特殊类即表示该预测被废弃不用,不出现在最终预测输出内;

  3. 构建代价矩阵,对每一对 \((y_i,\hat{y}_j)\) 计算配对代价 \(\mathcal{L}_{\text{match}}(y_i,\hat{y}_j)\)

  4. 现在我们的目标是寻找一个配对方案使得总体配对代价最小,即

    \[\hat{\sigma} = \arg\min_{\sigma\in S_N} \sum_{i=1}^{N} \mathcal{L}_{\text{match}}(y_i, \hat{y}_{\sigma(i)}) \]

    显然这是一个一对一指派问题,可以用匈牙利算法求解,时间复杂度\(O(n^3)\)(匈牙利求解指派问题可以看这篇博客)。

    上面的式子中

    \[\mathcal{L}_{\text{match}}(y_i,\hat{y}_j) = -\mathbf{1}_{\{c_i\neq \varnothing\}}\,\hat{p}_j(c_i) + \mathbf{1}_{\{c_i\neq \varnothing\}}\,\mathcal{L}_{\text{box}}(b_i,\hat{b}_j) \\ \mathcal{L}_{\text{box}}(b,\hat{b}) =\lambda_{\text{iou}}\cdot L_{\text{GIoU}}(b,\hat{b})+ \lambda_{L1}\cdot \|b-\hat b\|_1 \]

    即一个匹配造成的代价包括分类代价和框代价\(\mathcal{L}_{\text{box}}(b,\hat{b})\)(显然这和一个预测的组成是对应的),其中框代价又使用了 GIoU 和 L1 的线性组合。

  5. 得到最优匹配 \(\hat\sigma\) 后,我们就可以计算用于反向传播的损失了(论文称为 Hungarian loss):

    \[\mathcal{L}_{\text{Hungarian}}(y,\hat{y}) = \sum_{i=1}^N \Big[ -\log \hat{p}_{\hat\sigma(i)}(c_i)+ \mathbf{1}_{\{c_i\neq\varnothing\}}\,\mathcal{L}_{\text{box}}(b_i,\hat{b}_{\hat\sigma(i)}) \Big] \]

image

论文训练得到的模型在COCO数据集上效果较好,但是在小目标检测上仍面临挑战。

2. DEIM(DETR with Improved Matching for Fast Convergence)

论文:DEIM: DETR with Improved Matching for Fast Convergence

DETR 存在两个主要问题:

  1. O2O 匹配机制为每个目标仅分配一个正样本,极大地限制了正样本数量;
  2. DETR 采用少量(\(N=100\))随机初始化的查询。这些查询与目标缺乏空间对齐,导致训练中出现大量低质量匹配,即匹配框与目标的交并比 IoU 较低但置信度分数较高的情况。

这两个问题导致 DETR 仍存在监督稀疏、收敛速度缓慢的缺陷。

DEIM 提出了一套训练框架,通过尝试解决上述两个问题显著加快了 DETR 系列在实时检测任务上的收敛速度并提升最终精度。

  1. 针对问题一,DEIM 提出了 Dense O2O 策略,该策略保留了 O2O 的一对一匹配结构,但通过一些简单的手段增加了每张图像的目标数,实现了更密集的监督。例如如下图所示, DEIM 方法将原始图像复制为四个象限,并将它们组合成一张合成图像,同时保持原始图像尺寸。这将目标数从1增加到4,实现了与O2M相当的监督水平,同时保持了匹配结构不变,且无需增加复杂性和计算开销。

    image

    具体到实验中,DEIM 采用了两种数据增强手段,分别是如上图所示的图像拼接方法(Mosaic)和把两张图以某比例叠加的方法(Mixup),两种方法均有效增加了正样本数量。

  2. 针对问题二,DEIM 提出了一种新的损失:匹配感知损失(Matchability-Aware Loss, MAL)。

    DETR 使用的损失计算方法是面向 IoU 的 VariFocal Loss (VFL),在 DETR 中,它可表示为:

    \[\text{VFL}(p, q, y) = \begin{cases} - q ( q \log(p) + (1 - q) \log(1 - p) ), & q > 0 \\ - \alpha p^\gamma \log(1 - p), & q = 0 \end{cases} \]

    其中, \(q\) 表示预测边界框与其目标框之间的 IoU 。对于前景样本(\(q>0\)),目标标签设为 \(q\) ;对于背景样本(\(q=0\)),目标标签为0。

    然而, VFL 在优化低质量匹配时存在两个关键局限性:

    1. 低质量匹配: VFL 主要关注高质量匹配(高 IoU )。对于低质量匹配(低 IoU ),损失仍然较小,模型无法优化低质量边界框的预测(如下图所示);
    2. 负样本: VFL 将无重叠的匹配视为负样本,这减少了正样本数量,限制了有效训练。

    image

    为解决这些问题,DEIM 提出了 MAL ,这种损失将匹配质量直接纳入损失函数,使其对低质量匹配更敏感。 MAL 的公式为:

    \[\text{MAL}(p, q, y) = \begin{cases} -q^\gamma \log(p) - (1 - q^\gamma)\log(1 - p), & y = 1 \\ -p^\gamma \log(1 - p), & y = 0 \end{cases} \]

    与 VFL 相比, MAL 将 IoU 权重项从 \(q\) 调整到 \(q^\gamma\),这样在低 IoU 的样本上 MAL 相比 VFL 会给出更大的梯度,加快训练效率;而在高 IoU 区域,MAL 与 VFL 表现相似,不影响高质量匹配的性能。

    image

posted @ 2025-10-26 19:32  DarthVictor  阅读(8)  评论(0)    收藏  举报
莫挨老子!