YOLO11 改进 | 原创 BCG-IoU Loss 的边界相关回归配置与完整接入指南
- 一、本文简介
- 二、BCG 模块原理详解
- 2.1 数据流
- 2.2 边界残差与平移—尺度分解
- 2.3 正定相关二次惩罚
- 三、改进思想与创新点
- 3.1 背景与动机
- 3.2 三个核心设计
- 3.3 与相关回归策略的边界
- 3.4 YOLO11 适配范围
- 四、完整代码与训练接入
- 4.1 `experimental_bbox.py`:完整 BCG 配置、上下文和 Loss
- 4.2 `cfg/__init__.py`:允许 CLI 与 Python 训练参数
- 4.3 `loss.py`:`BboxLoss` 接收上下文并调用 BCG
- 4.4 `loss.py`:在 `v8DetectionLoss` 创建 selector 与真实上下文
- 4.5 训练配置
- 五、手把手配置步骤
- Step 1:放置实验实现
- Step 2:检查任务范围
- Step 3:固定变量后训练
- 六、BCCD 实验对比
- 6.1 固定协议
- 6.2 BCG 与 CIoU
- 6.3 分类别结果
- AP50
- AP50-95
- 七、常见问题
- 7.1 `bcg_correlation` 为什么不能等于 1 或 -1?
- 7.2 BCG 是否需要 DFL?
- 7.3 BCG 是否增加推理成本?
- 7.4 为什么 BCG recall 上升但 mAP 下降?
- 八、总结
专栏系列:YOLOv11 Loss 改进实战
文章标签推荐:YOLO11、目标检测、bbox Loss、CIoU、边界回归、尺度建模
改进点:BCG(bbox_experiment: bcg)将四边残差拆为水平/垂直平移与尺度项,再加入正定相关二次惩罚
源码入口:ultralytics/utils/experimental_bbox.py的bcg_loss()与apply()
适用任务:标准DetectionModel的 axis-aligned bbox 检测训练
验证状态:BCCD val 单 seed 筛选,不是独立测试结论
一、本文简介
本文介绍仓库实验性原创组合BCG-IoU Loss。BCG 不是某篇论文的逐式复现:它保留 CIoU 的基础几何约束,并从预测框与 GT 的左右、上下四边残差中构建水平/垂直两个方向的平移变量和尺度变量;随后以两个2×2正定相关二次型作为额外惩罚。
标准 CIoU 已覆盖重叠、中心距离和长宽比,但不会显式把“左右边共同移动”与“左右边向外或向内扩张”拆为可控变量。BCG 的设计假设是:边界误差可以在每个坐标轴