在图像去模糊领域,卷积神经网络(CNNs)因卷积操作的局部性和空间不变性,难以捕捉全局信息和空间变化特性;Transformer 虽能通过自注意力机制建模长距离依赖,但计算复杂度随分辨率呈二次增长,不适用于高分辨率图像。状态空间模型(SSMs)在自然语言处理中展现出线性复杂度建模长序列的能力,但其直接应用于视觉任务时存在两大挑战:
空间结构破坏:需将二维图像展平为一维序列,导致局部空间信息丢失。
多方向扫描的高计算成本:现有方法采用多方向扫描(如 VMamba 的双向扫描)以捕捉空间信息,但计算成本显著增加(如 VMamba 计算量为 Mamba 的 4 倍)。
上面是原模型,下面是改进模型
1. 高效视觉状态空间模块 EVSS介绍
-
几何变换层(GeoT):根据模块索引自适应选择几何变换方式翻转为水平和垂直方向同时翻转,转置为交换特征图的宽高维度。
-
选择性扫描模块(基于 S6 机制)
- 输入处理:对变换后的特征G进行 1×1 卷积,拆分为两个分支X1和X2:
- X1路径:经 3×3 深度卷积(DConv)、激活函数(GeLU)后展平为一维序列,输入 S6 机制进行长距离依赖建模。
- X2路径:直接通过激活函数(GeLU)生成门控信号。
- 特征融合:S6 输出经归一化(LayerNorm)和重塑后,与X2逐元素相乘,再通过 1×1 卷积生成模块输出特征。
- 输入处理:对变换后的特征G进行 1×1 卷积,拆分为两个分支X1和X2:
-
高效判别频域前馈网络(EDFFN):在模块末端对特征进行频域筛选,通过离散傅里叶变换(DFT)自适应保留关键频率成分,避免传统频域操作的高计算成本,提升特征表达能力。
2. YOLOv12与高效视觉状态空间模块 EVSS的结合
EVSS 模块与 YOLOv12 结合可在目标检测中实现模糊图像清晰化与特征增强,利用 EVSS 的高效非局部信息捕捉能力提升输入图像质量,减少模糊对检测精度的影响;同时依托 YOLOv12 的轻量化架构与实时推理速度,兼顾图像预处理效率与检测性能,适用于工业质检、无人机巡检等复杂光照或动态模糊场景。
3. 高效视觉状态空间模块 EVSS代码部分
YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili
更多代码:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub
4. 将高效视觉状态空间模块 EVSS引入到YOLOv12中
第一: 先新建一个v12_changemodel,将下面的核心代码复制到下面这个路径当中,如下图如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。
第二:在task.py中导入包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV12.YAMY文件中
第五:运行代码
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv12.yamy文件搭建模型并加载预训练权重训练模型model = YOLO(r"E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\cfg\models\12\yolo12_EVSSM.yaml")\.load(r'E:\Part_time_job_orders\YOLO_NEW\YOLOv12\yolo12n.pt') # build from YAML and transfer weightsresults = 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)