- RepVGG 推理加速
- 背景与动机:在模型的骨干网络(backbone)优化中,VGG 因结构简单,在显存利用上有优势(单一路径,仅需一倍显存),但被多分支结构的 ResNet 超越。然而,ResNet 的多分支结构存在速度和显存方面的劣势,如分支间需相互等待和数据相加,导致显存翻倍。RepVGG 旨在通过重参数化技术,提升推理速度并节省显存。

- 实现原理
- 卷积和 BN 合并:对一个 batch 的数据进行归一化操作,将 BN 的计算转化为类似卷积的形式,以便与卷积合并。通过特定公式,将归一化后的结果表示为一个 11C 的卷积(wx + b),进而更新卷积核和偏置,实现卷积和 BN 的合并。
- 转 3*3 卷积:将多分支、不同卷积核以及带 BN 的结构全部转换为 3×3 的卷积。以 ResNet 残差链接转换为例,将其转换为 3×3 卷积的形式,最终实现整体结构的统一。
- 正样本分配策略
- 核心思想:依据 GT(Ground Truth)的中心点在特征图上的落点来确定正样本,即该落点附近的 anchor 被认定为正样本。为增加正样本数量,采用 “threeble - kill” 策略9。
- 筛选过程
- 初筛:基于长宽差异,要求 gt 与 anchor 的长宽比例处于 0.25 - 4 之间10。
- 计算 IOU:计算候选框与 GT 之间的 IOU,得到一个 [正样本数量,候选框数量] 的矩阵。例如,当输入 3 个正样本和 13 个候选框时,会得到 [3, 13] 的 IOU 矩阵。之后通过 TOPK 操作,选取 IOU 较大的前几个候选框(通常为 10 个,若不足则取实际数量),得到新的矩阵,如 [3, 10] 矩阵。
- 计算类别预测损失并二次筛选:计算类别预测损失,综合损失排名进行第二次筛选,确保每个 GT 至少有一个对应的候选框。同时,处理可能出现的一个候选框对应多个 GT 的情况,选择损失最小的匹配。
- 预测相关内容
- 预测结果形式:不同版本的 YOLO 在预测框的计算方式上有所不同。V3V4 的预测结果中,bw=pwetw ,bh=pheth ;V5V7 的预测结果为bw=pw(2σ(tw))2 ,bh=ph(2σ(th))2 。这些计算方式与正样本筛选时的 4 倍数字范围存在关联。
- 预测值套 sigmoid 的原因:V3 不使用 sigmoid 时会出现梯度爆炸问题,V5 通过平方将取值范围限制在 0 - 4,这与选正样本时的倍率范围(0.25 - 4)相契合,避免了倍率差异过大的问题。
- AUX 辅助输出:输入图像大小为 1280,经下采样后实际输入为 640。模型设有 4 个输出层,每层 3 个 anchor,带辅助输出后共 8 个输出层。辅助头在选择正样本时依赖主头的预测结果,为提高召回率,选择周围 5 个区域,将偏移量由 0.5 调整为 1。
- 物体检测评估指标
- 基础指标 IOU:IOU 用于衡量 GT 与预测框之间的差异,是后续所有评估指标的基础,其计算方式为交集面积除以并集面积。
- TP、FP、FN 的定义
- TP(True Positive):需同时满足置信度和 IOU 都达到阈值的条件,意味着预测框与 GT 相似且预测为物体的可能性高。
- FP(False Positive):满足置信度阈值但 IOU 不够,或者前两者满足但最终预测的类别与实际不同。
- FN(False Negative):存在 GT,但没有满足条件的预测框,即 GT 未被检测到。
- TN(True Negative):文档中提及在计算相关指标时通常不需要该指标,它表示将背景正确识别为背景的情况。
- PR 曲线与 AP 计算
- PR 曲线绘制:以 7 张测试图像数据为例,在 IOU 默认满足 0.5 的条件下,首先确定哪些预测框是 TP,哪些是 FP。将预测框按照置信度排序,同一 GT 只能匹配一个预测框且选择置信度大的作为 TP。计算不同预测框的 Precision(精度)和 Recall(召回率),公式分别为 Precision = TP / (TP + FP),Recall = TP / (TP + FN) 。将这些值绘制曲线,该曲线展示了模型在精度和召回率之间的权衡关系,通常两者难以同时达到最优 。
- AP 计算
- VOC 中的计算方法(11 点插值法):计算 PR 曲线与坐标轴围成的面积。在召回率为 0, 0.1, ..., 1 这 11 个点处进行插值计算,公式为AP=111∑r∈(0,0.1,...,1)pinterp(r),即计算不同召回率下对应精度的平均值。例如,通过计算得到 AP = 0.2683。
- COCO 中的计算方法:相比 VOC 更为科学,不再仅采用 0.5 这一阈值,而是从 0.5 到 0.95,间隔 0.05,共 10 个阈值。计算这 10 个阈值下的平均 AP(AP@[0.5:0.05:0.95]) 。同时,COCO 还会对不同大小的物体(小物体 area<32² 、中等物体 32²<area<96² 、大物体 area>96² )分别计算 AP,从而更全面地评估模型在不同尺度物体检测上的性能 。