传统卷积核尺寸固定(如 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)。
- 小核动态卷积(Small Kernel Dynamic Convolution) 采用分组卷积 + 注意力机制 :
使用 3×3 或 5×5 小卷积核提取局部细节,保持计算效率。
通过通道注意力(SE 模块)和空间注意力(SAM 模块)动态调整特征权重,增强对关键区域的响应。
引入可变形卷积思想,使小核能够适应目标形状变化。
- 特征融合与聚合通过两种方式融合大核与小核特征:
并联结构:大核分支与小核分支并行计算,后通过 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
)