YOLO12 改进|融入 大 - 小卷积LS Convolution 捕获全局上下文与小核分支提取局部细节,提升目标检测中的多尺度

传统卷积核尺寸固定(如 3×3、5×5),在目标检测任务中面临两难:小卷积核(如 YOLOv5/YOLOv8 中的 3×3):计算高效但感受野有限,对大目标或密集场景建模能力不足。大卷积核(如 11×11、13×13):能捕获全局上下文,但参数量爆炸(如 13×13 卷积参数量是 3×3 的 20 倍以上),易过拟合且计算低效。LS Convolution(Large-Small Convolution) 应运而生,旨在平衡全局感知与局部细节,并通过结构创新降低大核计算成本

上面是原模型,下面是改进模型

1. 大 - 小卷积LS Convolution 介绍

LS Convolution 的核心结构包含三个组件:

1. 大核稀疏卷积(Large Kernel Sparse Convolution) 采用深度可分离卷积 + 空洞卷积组合:

使用大尺寸深度卷积(如 7×7、9×9)提取空间特征,参数量仅为标准卷积的 1/channel 数。

引入空洞率(dilation)进一步扩大感受野,避免参数激增(如 dilation=2 时,7×7 卷积等效感受野为 13×13)。

  1. 小核动态卷积(Small Kernel Dynamic Convolution) 采用分组卷积 + 注意力机制

使用 3×3 或 5×5 小卷积核提取局部细节,保持计算效率。

通过通道注意力(SE 模块)空间注意力(SAM 模块)动态调整特征权重,增强对关键区域的响应。

引入可变形卷积思想,使小核能够适应目标形状变化。

  1. 特征融合与聚合通过两种方式融合大核与小核特征:

并联结构:大核分支与小核分支并行计算,后通过 concat 或加权求和合并。

级联结构:先用大核提取全局上下文,再用小核对其细化,形成 "粗粒度→细粒度" 层级特征。

2. YOLOv12与 大 - 小卷积LS Convolution 的结合

LS 卷积与 YOLO12 结合时,大核分支可捕捉图像全局语义信息(如目标与场景关系),小核分支聚焦目标局部细节(如纹理、边缘),通过动态权重融合增强多尺度特征表达,提升复杂场景下小目标、重叠目标的检测精度;同时借助深度可分离卷积等轻量化设计,在保持 YOLO12 实时推理速度的前提下,平衡计算量与检测性能

3. 大 - 小卷积LS Convolution代码部分

YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili

更多代码: YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub

4. 大 - 小卷积LS Convolution引入到YOLOv12中

第一: 先新建一个v12_changemodel,将下面的核心代码复制到下面这个路径当中,如下图如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。

​​​​​​

第二:在task.py中导入

​​​

第三:在task.py中的模型配置部分下面代码

​​​​​​​ ​​​​​​​​​​​​​​

第四:将模型配置文件复制到YOLOV12.YAMY文件中

​​​​​​​​​​​​​​

​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​第五:运行代码

python 复制代码
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv12.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\cfg\models\12\yolo12_LSConv.yaml")\
        .load(r'E:\Part_time_job_orders\YOLO_NEW\YOLOv12\yolo12n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'E:\Part_time_job_orders\YOLO\YOLOv12\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=300,
                          imgsz=640,
                          batch=64,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                         # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )
相关推荐
千宇宙航3 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
图像处理·计算机视觉·fpga开发·图像腐蚀
思绪漂移3 小时前
工业缺陷检测的计算机视觉方法总结
人工智能·计算机视觉·缺陷检测
HongDoNi4 小时前
opencv--day01--opencv基础知识及基础操作
人工智能·opencv·计算机视觉
呆头鹅AI工作室7 小时前
[2025CVPR-图象分类方向]SPARC:用于视觉语言模型中零样本多标签识别的分数提示和自适应融合
图像处理·人工智能·python·深度学习·神经网络·计算机视觉·语言模型
xw33734095647 小时前
OpenCV 图像变换全解析:从镜像翻转到仿射变换的实践指南
人工智能·python·opencv·计算机视觉·pycharm
Ronin-Lotus9 小时前
深度学习篇---图像数据采集
人工智能·opencv·计算机视觉
yivifu9 小时前
使用OpenCV做个图片校正工具
python·opencv·计算机视觉
sanzk11 小时前
yolo--qt可视化开发
yolo
停走的风14 小时前
Yolo底层原理学习(V1~V3)(第一篇)
人工智能·深度学习·神经网络·学习·yolo
洛华36315 小时前
初识opencv04——图像预处理3
人工智能·python·opencv·计算机视觉