YOLO11 改进系列 | 原创 CREP Loss:密集同类目标的邻近 GT 排斥回归,面向框粘连场景

发布时间:2026/9/6 1:58:52
YOLO11 改进系列 | 原创 CREP Loss:密集同类目标的邻近 GT 排斥回归,面向框粘连场景 YOLO11 改进 | 原创 CREP Loss 的邻近同类 GT 排斥与完整训练接入指南一、本文简介二、模块原理详解2.1 CREP 的训练数据流2.2 assigned GT 与邻居 GT2.3 最近邻截断2.4 IoU 排斥惩罚2.5 最终 loss 组合2.6 边界行为三、改进思想与创新点3.1 背景与动机3.2 当前实现的三个关键点3.3 与相近策略的区别3.4 YOLO11 适配设计四、完整代码与训练接入4.1 `ultralytics/utils/experimental_bbox.py`:配置字段与校验4.2 参数映射与 `BBoxExperimentContext`4.3 `experimental_bbox.py`:CREP 核心实现与 dispatcher4.4 `ultralytics/cfg/__init__.py`:类型注册与默认值 materialization4.5 `ultralytics/utils/loss.py`:`BboxLoss` 与 criterion 接入4.6 `v8DetectionLoss`:实例化、TAL 返回值与完整 context五、手把手配置步骤Step 1:确认正式接入文件Step 2:设置 CREP 参数Step 3:按密集程度做参数消融Step 4:保持实验公平六、BCCD 实验结果6.1 实验协议6.2 CREP 与 CIoU 对比七、常见问题7.1 CREP 会把所有 GT 都互相排斥吗?7.2 为什么要使用 assigned GT 的对角线作为距离尺度?7.3 `crep_max_neighbors` 会影响结果和速度吗?7.4 预测框与邻居 GT IoU 为 0 时是否产生惩罚?7.5 没有邻居时会不会让 loss 变成 NaN?7.6 CREP 是否改变 DFL?7.7 CREP 是否适用于 ATSS 或旋转框?八、总结专栏系列:YOLOv11 Loss 改进实战文章标签推荐:YOLO11、目标检测、bbox Loss、CREP、Repulsion Loss、密集目标改进点:CREP(bbox_experiment: crep)对预测框与附近同类别、但未分配的 GT 之间的超阈值重叠进行排斥源码入口:ultralytics/utils/experimental_bbox.py的crep_loss()与ExperimentalBBoxLoss.apply()适用任务:标准DetectionModel的 axis-aligned bbox 检测训练验证状态:已完成 BCCD 单 seed、val-only 100 epoch 候选筛选;不是独立测试结论一、本文简介本文介绍仓库实验性原创组合CREP Loss。CREP 借鉴 Repulsion Loss 和密集目标解耦方向,但不是某篇论文的逐式复现。它在标准 TAL 分配结果之上,针对每个 foreground anchor 检查其 assigned GT 附近的其他同类别 GT;如果当前预测框与这些非 assigned GT 的 IoU 超过阈值,就