1. 前言

前面介绍训练时通过设置 plots=True参数, 在训练后不仅有数值指标,还能有可视化的结果,方便:

  • 快速定位数据集问题(labels.jpgtrain_batch*.jpg
  • 分析模型性能(results.pngconfusion_matrix.png
  • 直观查看预测效果(val_batch*_pred.jpg

生成的文件如下:

kerry@wuchenruideMacBook-Pro train % ls
args.yaml            confusion_matrix_normalized.png    train_batch0.jpg        train_batch2.jpg
BoxF1_curve.png            confusion_matrix.png        train_batch1.jpg        val_batch0_labels.jpg
BoxP_curve.png            labels.jpg            train_batch180.jpg        val_batch0_pred.jpg
BoxPR_curve.png            results.csv            train_batch181.jpg        weights
BoxR_curve.png            results.png            train_batch182.jpg
文件名作用是否关键
args.yaml记录本次训练的所有参数(数据集路径、模型结构、训练轮数、batch size 等),用于复现训练。✅ 非常重要
results.png汇总训练和验证过程的损失曲线(box_loss、cls_loss、dfl_loss)和指标曲线(mAP、Precision、Recall)。✅ 非常重要
results.csvresults.png 同源的数值版,每一行是一个 epoch 的指标和损失。方便用 Excel 或 Pandas 分析。✅ 重要
weights/存放训练得到的模型权重:best.pt(验证集表现最佳)、last.pt(最后一个 epoch)。✅ 必须保留
confusion_matrix.png混淆矩阵,显示每个类别的预测情况(正确、误检、漏检)。✅ 分类任务非常重要
confusion_matrix_normalized.png归一化后的混淆矩阵,更直观地看类别间混淆比例。✅ 分类任务非常重要
labels.jpg数据集中所有标注框的分布可视化(位置、大小、长宽比)。用于检查数据集标注质量。✅ 数据集分析重要
BoxP_curve.pngBox Precision 曲线:定位框预测的准确率随 IoU 阈值变化的趋势。🔍 辅助分析
BoxR_curve.pngBox Recall 曲线:定位框召回率随 IoU 阈值变化的趋势。🔍 辅助分析
BoxF1_curve.pngBox F1 Score 曲线:Precision 和 Recall 的综合指标随 IoU 阈值变化的趋势。🔍 辅助分析
BoxPR_curve.pngBox Precision-Recall 曲线:显示不同置信度下 Precision 与 Recall 的关系。🔍 辅助分析
train_batch0.jpg / train_batch1.jpg / train_batch2.jpg训练集样本的可视化(带标注框),用于检查数据增强和标注是否正常。🔍 可选
train_batch180.jpg / train_batch181.jpg / train_batch182.jpg后期训练批次的可视化(可能是最后几个 batch),方便观察增强效果和样本多样性。🔍 可选
val_batch0_labels.jpg验证集样本的标注框可视化(真实标签)。🔍 可选
val_batch0_pred.jpg验证集样本的预测框可视化(模型输出)。🔍 可选

2. 核心文件介绍

2.1. results.png

作用
记录训练过程的损失曲线和评估指标曲线,是判断模型收敛情况的核心图表。

内容
通常包含以下曲线(每条曲线都是按 epoch 绘制的):

  • train/box_loss:训练集边界框回归损失,衡量预测框与真实框的差异。
  • train/cls_loss:训练集分类损失,衡量预测类别与真实类别的差异。
  • train/dfl_loss:分布焦点损失(YOLOv8 特有,用于精细化回归边界框)。
  • val/box_lossval/cls_lossval/dfl_loss:验证集上的同类损失。
  • metrics/precision:精确率,预测为正的样本中有多少是真的正。
  • metrics/recall:召回率,真实正样本中有多少被正确预测。
  • metrics/mAP50:IoU=0.5 时的 mAP。
  • metrics/mAP50-95:IoU=0.5~0.95 平均的 mAP。

例子解读
假设你的 results.png 曲线是:

  • 前 10 个 epoch,训练损失下降很快,验证损失也下降。
  • 20 个 epoch 后,验证损失开始上升,训练损失继续下降 → 可能过拟合
  • mAP50 从 0.3 提升到 0.75,说明模型检测效果提升明显。

2.2. confusion_matrix.png

作用
展示多分类检测任务中,各类别的预测准确性和混淆情况。

内容

  • 横轴:预测的类别
  • 纵轴:真实的类别
  • 格子颜色/数值:该真实类别被预测为某类别的次数(归一化为比例)。

例子解读
假设你检测三类:catdogperson

  • 混淆矩阵显示真实 dog 有 20% 被预测成 cat → 说明模型对猫狗区分不够好,可能需要更多区分性数据。
  • 如果某类对角线上的数值明显低于其他类,说明该类召回率较低。

2.3. labels.jpg

作用
分析训练集标签的分布情况。

内容
通常包含两部分:

  • 左图:每个类别的标注框数量柱状图。
  • 右图:所有标注框的宽高分布(归一化到 [0,1],表示相对于图片尺寸的比例)。

例子解读

  • 左图:如果某类别的数量只有其他类别的 1/10,说明类别不均衡,可能需要数据增补或加权训练。
  • 右图:如果大部分框的宽高很小(如 <0.05),说明物体很小,可能需要调整模型输入尺寸或使用更适合小目标的结构。

2.4. val_batch0_pred.jpg

作用
展示模型在验证集某个 batch 上的预测结果。

内容

  • 每张图片会显示预测框、类别标签、置信度分数。
  • 框颜色区分不同类别。

例子解读

  • 如果预测框位置偏差大,说明回归效果差。
  • 如果置信度普遍很低(如 0.3~0.5),可能说明模型还未收敛或训练数据不足。
  • 如果某些物体完全漏检,说明召回率有问题。

2.5. train_batch0.jpg

作用
展示训练集某个 batch 的原始图片和标注框,可用于检查数据增强和标签是否正确。

内容

  • 框颜色区分不同类别。
  • 框旁会标出类别名。

例子解读

  • 如果标注框与物体不匹配,说明数据集标注有问题。
  • 如果数据增强导致图片过度变形、物体被裁掉,可能需要调整数据增强策略。

2.6. opt.yaml

作用
保存训练配置参数(模型路径、数据集路径、超参数等),方便复现训练。

例子内容

model: yolov8n.pt
data: data.yaml
epochs: 50
batch: 16
imgsz: 640
plots: True

可以用它来快速复现:

yolo train opt.yaml

2.7. hyp.yaml

作用
保存训练时使用的超参数(学习率、数据增强比例等)。

例子内容

lr0: 0.01
momentum: 0.937
weight_decay: 0.0005
hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
degrees: 0.0
translate: 0.1
scale: 0.5

2.8. train.log

作用
记录训练过程中的日志(每个 epoch 的损失和指标),方便在没有图片的情况下分析训练过程。

例子内容

Epoch   GPU_mem   box_loss   cls_loss   dfl_loss  P       R       mAP50   mAP50-95
1/50    2.34G     0.050      0.020      0.015     0.65    0.70    0.72    0.65
...

3. 训练效果-指标

上述文件中,核心关注 results.png,是对各类指标的总览。

3.1. 损失类参数(Loss)

3.1.1. train/box_loss

定义

  • 衡量预测框与真实框的空间位置差异。
  • YOLOv8 默认使用 CIoU(Complete IoU)GIoU(Generalized IoU) 损失。相比普通 IoU,它会考虑:

    • 框的重叠面积
    • 框中心点的距离
    • 框宽高比例匹配程度

与相似参数对比

  • train/dfl_loss 也与定位有关,但它是用离散分布来回归坐标,更精细;box_loss 是整体位置误差。
  • box_loss 下降速度通常比 dfl_loss慢,因为位置调整需要更多迭代。

异常现象

  • 训练集下降,验证集不下降:可能过拟合,模型记住了训练集位置,但泛化差。
  • 下降很慢:可能是数据集标注不准,或者物体尺度差异大。

数据集调整建议

  • 检查标注质量(框是否紧贴物体边缘)。
  • 对小物体,可以增加输入分辨率(如从 640 提到 960)。
  • 对大物体,可以减少图片缩放比例,避免框失真。

3.1.2. train/cls_loss

定义

  • 衡量预测类别与真实类别的差异。
  • YOLOv8 使用 BCE LossFocal Loss(后者更适合类别不均衡)。

与相似参数对比

  • PrecisionRecall 也反映分类效果,但它们是基于检测结果的最终指标;cls_loss 是训练过程中的损失。
  • cls_loss 高可能导致 Precision、Recall 都低。

异常现象

  • 训练集低,验证集高:模型过拟合分类特征。
  • 下降很慢:类别差异不明显,特征提取困难。

数据集调整建议

  • 增加类别样本数量,尤其是样本少的类别。
  • 使用数据增强(颜色、亮度变化)增加类别特征多样性。
  • 对容易混淆的类别(如猫 vs 狗),增加区分性特征(不同背景、不同姿态)。

3.1.3. train/dfl_loss

定义

  • DFL(Distribution Focal Loss) 用于精细化预测框坐标。
  • 不是直接预测坐标,而是预测一个概率分布,然后取期望值作为坐标。

与相似参数对比

  • box_loss 一起决定定位精度,但 dfl_loss 在小物体检测中作用更明显。
  • 如果 box_loss 已很低但 dfl_loss 仍高,说明框位置粗略正确但精度不足。

异常现象

  • 下降缓慢:可能是图像分辨率太低,小物体特征不足。
  • 训练集低,验证集高:泛化差,小物体定位不稳定。

数据集调整建议

  • 增加小物体样本比例。
  • 提高输入分辨率。
  • 减少数据增强中的裁剪比例,避免小物体被截掉。

3.2. 验证集损失(val/...)

这些参数的作用主要是对比训练集损失,判断模型泛化能力。

7.2.4. val/box_loss

  • train/box_loss 对比:

    • 差距小 → 泛化好。
    • 差距大 → 过拟合或验证集分布与训练集差异大。
  • 调整建议

    • 保证训练集和验证集分布一致(相同拍摄条件、分辨率)。
    • 增加数据集多样性(不同背景、光照)。

3.2.5. val/cls_loss

  • train/cls_loss 对比:

    • 差距大 → 说明模型分类在新数据上表现差。
  • 调整建议

    • 增加验证集中样本少的类别在训练集的比例。
    • 检查类别标签是否一致(避免标签错位)。

3.2.6. val/dfl_loss

  • train/dfl_loss 对比:

    • 差距大 → 小物体定位在验证集上表现差。
  • 调整建议

    • 增加小物体在训练集中的比例。
    • 调整锚框(Anchor)或输入分辨率。

3.3. 评估指标(metrics/...)

3.3.7. metrics/precision

定义

$$ Precision = \frac{TP}{TP + FP} $$

  • 高 Precision → 模型误检少。

与 Recall 对比

  • Precision 高但 Recall 低 → 模型很保守,只预测非常确定的目标。
  • Precision 低但 Recall 高 → 模型大胆预测,误检多。

异常现象

  • Precision 高但 Recall 低 → 数据集正负样本差异大,模型容易漏检。
  • Precision 低但 Recall 高 → 背景复杂,模型容易把背景当成目标。

数据集调整建议

  • Precision 高 Recall 低 → 增加难例(模糊、遮挡)的正样本。
  • Precision 低 Recall 高 → 增加背景样本,让模型学会区分目标与背景。

3.3.8. metrics/recall

定义

$$ Recall = \frac{TP}{TP + FN} $$

  • 高 Recall → 模型漏检少。

与 Precision 对比

  • 高 Recall + 低 Precision → 误检多。
  • 高 Precision + 高 Recall → 模型理想状态。

异常现象

  • Recall 低 → 小物体漏检、长尾类别漏检。
  • Recall 高 Precision 低 → 预测阈值太低。

数据集调整建议

  • Recall 低 → 增加漏检类别样本数量。
  • Recall 高 Precision 低 → 提高推理置信度阈值,或减少背景干扰样本。

3.3.9. metrics/mAP50

  • IoU=0.5 时的平均精度,容错高。
  • 高 mAP50 但低 mAP50-95 → 框位置粗略正确,但精度不足。

调整建议

  • 提高分辨率,改善定位精度。
  • 优化 dfl_loss,增加小物体样本。

3.3.10. metrics/mAP50-95

  • 更严格的定位指标。
  • 高 mAP50-95 → 模型定位非常精确。
  • 低 mAP50-95 → 框位置偏差大。

调整建议

  • 提高分辨率。
  • 减少数据增强中大幅度的平移、缩放。

3.4. 综合分析方法

当你看到 results.png 时,可以按以下流程分析:

  1. 损失曲线:训练集与验证集差距大 → 检查过拟合。
  2. Precision & Recall

    • 高 Precision + 低 Recall → 增加难例正样本。
    • 低 Precision + 高 Recall → 增加背景样本。
  3. mAP50 vs mAP50-95

    • 高 mAP50 低 mAP50-95 → 定位精度不足,优化分辨率和小物体数据。

4. dfl_loss/box_loss

dfl_lossbox_loss 都跟预测框有关,它们到底有什么区别?为什么 YOLO 要同时用两个损失?

4.1. 核心区别

损失类型作用位置预测方式主要目标精度层级
box_loss框整体定位直接预测中心点坐标 + 宽高(回归值)让预测框与真实框的 整体位置 尽量重合粗定位
dfl_loss框坐标细化预测每个坐标的离散概率分布让预测框的 边界坐标 精确到像素级精定位
  • box_loss:整体位置对齐,粗定位。
  • dfl_loss:边界坐标精细化,精定位。
  • 两者配合:先粗后精,保证快速收敛和最终精度。
  • 优化方向

    • 提高分辨率 → 改善 dfl_loss。
    • 改善标注质量 → 同时改善两者。
    • 合理数据增强 → 避免位置漂移影响 box_loss。

4.2. 计算方式上的差异

4.2.1 box_loss

  • 计算对象:预测框的四个坐标(中心点 x,y,宽 w,高 h)。
  • 计算方法:使用 IoU-based loss(如 CIoU、GIoU、DIoU):

    • 考虑框的重叠面积
    • 考虑中心点距离
    • 考虑宽高比例
  • 特点

    • 粗粒度:一次性对整个框位置进行评估。
    • 容忍小的坐标误差,只要整体 IoU 高就可以。

4.2.2 dfl_loss(Distribution Focal Loss)

  • 计算对象:预测框的每个边界坐标(左、右、上、下)。
  • 计算方法

    1. 将每个坐标离散化成多个位置(例如 0 ~ 640 像素,分成 N 个格子)。
    2. 模型对每个位置输出一个概率分布(哪个位置最可能是边界)。
    3. 取概率分布的加权平均作为最终坐标。
    4. Focal LossCross Entropy 来让概率分布集中在真实位置附近。
  • 特点

    • 精粒度:像素级精确定位。
    • 对小物体特别有用,因为小物体的坐标误差对 IoU 影响很大。

4.3. 为什么用两个损失?

  1. box_loss:保证整体框位置是对的,快速收敛到合理位置。
  2. dfl_loss:在位置大致正确的基础上,进一步微调到更精确的坐标。

💡 类比:

  • box_loss 就像你用地图导航到某个小区门口(大致位置对了)。
  • dfl_loss 就像你在小区里精确找到具体的楼栋和门牌号(精确定位)。

4.4. 对训练曲线的影响

  • 训练初期:

    • box_loss 下降快,因为先学会粗定位。
    • dfl_loss 下降慢,因为精定位需要框已经接近目标。
  • 训练中后期:

    • box_loss 下降趋缓,dfl_loss 开始明显下降。
    • mAP50 主要受 box_loss 影响,mAP50-95 主要受 dfl_loss 影响。

4.5. 举例说明

假设你检测一个猫的脸:

  • 只有 box_loss:框能圈到猫的脸,但可能稍微偏大或偏小,边缘不够贴合。
  • 加上 dfl_loss:框不仅圈到猫的脸,而且四个边精确贴到耳朵和下巴的位置,IoU 更高。
   粗定位(box_loss)                精定位(dfl_loss)
┌──────────────────────┐       ┌──────────────────────┐
│        ┌──────────┐  │       │        ┌──────────┐  │
│        │          │  │       │        │  精确框  │  │
│        │   猫脸   │  │       │        └──────────┘  │
│        │          │  │       │                      │
│        └──────────┘  │       │                      │
│                      │       │                      │
└──────────────────────┘       └──────────────────────┘
解释
  • 左图(box_loss)
    框的位置大致正确,圈住了猫的脸,但边缘与真实物体不完全贴合。

    • 这种情况下 IoU 可能已经不低(比如 0.7),但还有优化空间。
    • 主要通过 IoU-based loss(如 CIoU、GIoU)调整整体位置。
  • 右图(dfl_loss)
    在左图的基础上,边界坐标进一步微调,精确贴合物体边缘。

    • IoU 从 0.7 提升到 0.85+。
    • 通过预测每个坐标的概率分布,像素级优化边界。

4.6. 怎么调整数据集?

4.6.1 dfl_loss 高、box_loss 低

  • 现象:框位置粗略正确,但边界不精确。
  • 原因:

    • 数据集分辨率低,小物体边界模糊。
    • 标注框不够精确(边界没贴物体)。
  • 调整方法:

    • 提高输入分辨率(如 640 → 960)。
    • 检查标注质量,确保框边贴近物体边缘。
    • 增加小物体样本比例。

4.6.2 box_loss 高、dfl_loss 低

  • 现象:框边界很精确,但整体位置不对(可能框偏移)。
  • 原因:

    • 数据增强过度(平移、裁剪导致位置漂移)。
    • 训练集分布与验证集差异大(背景变化大)。
  • 调整方法:

    • 减少过度平移、裁剪的数据增强。
    • 保证训练集和验证集的背景、拍摄角度一致。

4.6.3 两者都高

  • 原因:

    • 数据集标注差(位置和边界都不准)。
    • 数据集噪声大(背景复杂、遮挡多)。
  • 调整方法:

    • 重新标注或清洗数据。
    • 增加干净的样本。
    • 先用较少增强训练收敛,再加增强微调。

5.IoU

IoU(Intersection over Union),是目标检测领域的一个核心概念,几乎所有 YOLO 系列模型的定位指标、损失函数、评估标准都离不开它。很多人第一次接触时只是知道它是个“重叠比例”,但其实它有很多细节、变种,以及在训练和评估中的不同作用。

5.1. IoU 的定义

IoU = 预测框真实框 的重叠程度。
数学定义:

$$ IoU = \frac{\text{重叠区域面积}}{\text{并集区域面积}} $$

  • 重叠区域面积(Intersection):预测框和真实框交集的面积。
  • 并集区域面积(Union):预测框面积 + 真实框面积 − 重叠区域面积。
直观理解
假设:
  • 预测框:圈到一只猫的头部
  • 真实框:圈到猫的头部
  • 两个框完全重合 → IoU = 1.0
  • 两个框完全不重叠 → IoU = 0.0
  • 部分重叠 → IoU 在 0 ~ 1 之间

5.2. 计算过程示例

假设:

  • 预测框面积 = 40
  • 真实框面积 = 50
  • 重叠面积 = 30

并集面积 = 40 + 50 − 30 = 60

$$ IoU = \frac{30}{60} = 0.5 $$

→ 说明预测框和真实框的重叠程度是 50%


5.3. IoU 在目标检测中的作用

  1. 评估指标

    • mAP(平均精度)计算时会用到 IoU 作为匹配条件。
    • 例如:mAP@0.5 表示 IoU ≥ 0.5 就算预测正确;mAP@0.5:0.95 会计算多个 IoU 阈值的平均。
  2. 训练损失

    • YOLO 的 box_loss 基于 IoU 变种(GIoU、DIoU、CIoU)来优化预测框的位置和大小。
  3. 非极大值抑制(NMS)

    • 在推理时,IoU 用来判断两个框是否是同一个目标,如果 IoU 高于某个阈值,就会删除重复框。

5.4. 几个常见变种

因为普通 IoU 在某些情况下不够敏感,所以衍生了很多改进版本:

变种公式变化改进点适用场景
GIoU(Generalized IoU)IoU − 空间惩罚项考虑预测框和真实框的最小包围框面积框不重叠时也能优化
DIoU(Distance IoU)IoU − 中心点距离惩罚项考虑框中心点之间的距离提高定位速度
CIoU(Complete IoU)IoU − 距离惩罚 − 长宽比惩罚同时优化位置、尺度、长宽比YOLOv5/YOLOv8 默认
EIoU(Efficient IoU)IoU − 宽高差惩罚更快收敛大目标检测

为什么要用 CIoU 而不是普通 IoU?

普通 IoU 在预测框和真实框没有重叠时,梯度为 0,模型无法学习。而 CIoU 会在这种情况下仍提供优化信号(通过中心点距离和长宽比差异),让框逐渐靠近目标。


5.5. 在 YOLO 中的具体应用

  1. 训练阶段

    • train/box_loss 基于 CIoU(或 GIoU)计算,优化框的位置。
    • IoU 越高,说明框位置越接近真实框,损失越低。
  2. 验证阶段

    • mAP50:IoU ≥ 0.5 就算预测正确。
    • mAP50-95:在 IoU 阈值 0.5 ~ 0.95 之间的平均结果,更严格。
  3. 推理阶段

    • NMS 使用 IoU 阈值(如 0.6)来去除重复预测框。

5.6. 数据集优化与 IoU 的关系

IoU 异常表现可能原因数据集优化方法
IoU 长期低标注框不准;分辨率低;小物体特征不足检查标注质量;提高分辨率;增加小物体样本
IoU 高但 mAP50-95 低框位置对但边界不精确优化 dfl_loss;精确标注边界;提高分辨率
IoU 波动大数据集分布差异大;数据增强过度保证训练/验证集分布一致;减少过度平移裁剪

5.7. 直观图解

真实框:████████
预测框:  ████████
重叠部分:  ████
IoU = 重叠面积 / 并集面积
  • IoU 越接近 1 → 定位越精准
  • IoU 越接近 0 → 定位越差

6. IoU变种对比

6.1. 图形总览

下面的示意图中:

  • 🟩 绿色框 = 真实框 (Ground Truth)
  • 🟥 红色框 = 预测框 (Predicted Box)
  • 🟦 蓝色区域 = IoU 重叠部分
  • 🔲 黑色虚线框 = 两个框的最小包围框 (GIoU 用到)
  • 📏 中心点虚线 = 两个框中心距离 (DIoU / CIoU 用到)

场景 1:两个框部分重叠

IoU:    只计算蓝色重叠区域 / 并集
GIoU:   IoU - (最小包围框面积 - 并集面积) / 最小包围框面积
DIoU:   IoU - (中心点距离 / 最小包围框对角线长度)
CIoU:   DIoU - 长宽比差异惩罚
      ┌───────────────┐
      │     🟩真实框   │
      │   ┌───────┐   │
      │   │🟥预测框│   │
      │   └───────┘   │
      └───────────────┘
  • IoU:只关心重叠部分比例
  • GIoU:即使重叠不多,也考虑两框的最小包围框面积,让优化方向更明确
  • DIoU:考虑中心点距离,框会更快移到正确位置
  • CIoU:同时优化位置、尺度和长宽比

场景 2:两个框完全不重叠

IoU:    = 0(无法提供梯度,模型难以优化)
GIoU:   < 0(根据最小包围框面积惩罚)
DIoU:   惩罚中心点距离
CIoU:   惩罚距离 + 长宽比差异
🟩真实框           🟥预测框
┌───────┐         ┌───────┐
│       │         │       │
└───────┘         └───────┘
  • IoU:梯度为 0 → 无法学习
  • GIoU:通过最小包围框面积差让框逐渐靠近
  • DIoU:通过中心点距离让框快速移动到目标附近
  • CIoU:还会修正长宽比,让框形状更接近目标

场景 3:位置接近但长宽比差异大

IoU:    重叠区域可能还可以,但形状差异大
GIoU:   类似 IoU,额外考虑空白区域
DIoU:   中心点已对齐,惩罚减少
CIoU:   强烈惩罚长宽比差异
┌─────────────┐
│   🟩真实框   │
│ ┌─────────┐ │
│ │  🟥预测框 │ │
│ └─────────┘ │
└─────────────┘
  • IoU:不关心长宽比,只看重叠比例
  • CIoU:在这个场景下会继续优化框形状,直到和真实框匹配

6.2. 对比总结表

场景IoUGIoUDIoUCIoU
部分重叠只看重叠比例额外考虑空白区域考虑中心点距离考虑距离+长宽比
不重叠梯度为 0惩罚空白区域惩罚中心点距离距离+长宽比双惩罚
长宽比差不关心形状不关心形状不关心形状优化形状匹配

6.3. 为什么 YOLO 默认用 CIoU

  1. IoU 在不重叠时无法提供优化信号 → 模型学不动
  2. GIoU 能在不重叠时优化,但不考虑距离和形状 → 收敛慢
  3. DIoU 加了距离项 → 框更快到位
  4. CIoU 同时优化位置、距离、长宽比 → 定位更精确,收敛更快

KerryWu
679 声望171 粉丝

保持饥饿


引用和评论

0 条评论