YOLOv11-seg改进 | C3k2_DRB膨胀重参数大核卷积替换C3k2全流程指南
- 一、本文简介
- 二、模块原理详解
- 2.1 层级结构总览
- 2.2 DilatedReparamBlock 的训练期结构
- 2.3 推理期重参数化
- 2.4 C3k2_DRB 的前向逻辑
- 2.5 与原始 C3k2 的差异
- 三、改进思想与创新点
- 3.1 背景与动机
- 3.2 创新点一:训练期多分支膨胀卷积扩大感受野
- 3.3 创新点二:推理期可重参数化合并
- 3.4 创新点三:只替换 Bottleneck 的关键空间卷积
- 3.5 创新点四:c3k=True 时进一步堆叠 DRB
- 3.6 对比分析
- 四、完整代码
- 4.1 DilatedReparamBlock 依赖导入
- 4.2 DilatedReparamBlock 完整实现
- 4.3 C3k2_DRB 包装代码
- 五、手把手配置步骤
- 5.1 检查 `extra_modules/__init__.py`
- 5.2 检查 `tasks.py` 注册
- 5.3 训练示例
- 5.4 实测模型信息
- 六、YAML 配置文件
- 6.1 全网络替换版:完整验证 DRB 增强效果
- 6.2 仅 Backbone 替换版:增强主干上下文建模
- 6.3 深层增强版:集中强化 P4/P5 上下文
- 七、常见问题
- 7.1 报错 `NameError: name 'C3k2_DRB' is not defined` 怎么办?
- 7.2 这个模块需要额外依赖吗?
- 7.3 `C3k2_DRB` 和 `C3k2_UniRepLKNetBlock` 有什么区别?
- 7.4 YAML 参数怎么理解?
- 八、总结
专栏系列:YOLOv11 注意力 / 精度改进实战
改进点:将 YOLOv11-seg 中的C3k2替换为基于 CVPR 2024 UniRepLKNet《A Universal Perception Large-Kernel ConvNet for Audio, Video, Point Cloud, Time-Series and Image Recognition》的C3k2_DRB,在 Bottleneck 的关键卷积位置引入DilatedReparamBlock,通过训练期多分支膨胀卷积增强大感受野,并支持推理期重参数化合并,适合复杂边界、中大目标和需要上下文感知的实例分割任务。
一、本文简介
CVPR 2024 UniRepLKNet 提出了DilatedReparamBlock,核心思想是在训练阶段使用大核深度卷积和多组膨胀小核分支共同建模多尺度上下文,在部署阶段可将这些分支等价合并为单个大核卷积。当前仓库并不是直接替换整套 UniRepLKNet 主干,而是将其中的DilatedReparamBlock接入 YOLOv11 的C3k2框架,形成C3k2_DRB,属于基于 UniRepLKNet 的仓库改进实现。
YOLOv11-seg 默认C3