YOLO12 改进、魔改|跨视图交互模块CVIM,解决跨视图信息交互效率低、参数冗余问题,减少小目标与遮挡目标的漏检率

        在立体图像超分辨率任务中,需利用左右视图的互补信息提升重建质量,但传统方法存在两大问题:一是跨视图特征交互存在冗余,对性能提升贡献有限却大幅增加计算量;二是难以与视图内特征提取模块高效整合,导致整体网络参数多、效率低。为优化跨视图信息共享机制、降低计算复杂度,CVIM 在 CVHSSR(Cross-View Hierarchy Network)基础上改进而来,适配轻量化网络需求。     

1.CVIM原理

        CVIM 基于缩放点积注意力(Scaled Dot-Product Attention)机制实现跨视图信息交互。首先,从左右视图的部分视图内特征中分别生成查询(Q)、键(K)和值(V)矩阵;接着,通过计算查询与键的相似度得到注意力权重,再用该权重对值矩阵进行加权,获取另一视图的互补信息;最后,将跨视图融合后的特征与原视图特征结合,并通过可训练的通道尺度系数稳定训练,实现高效的跨视图特征互补。

CVIM 的结构主要包含三个核心部分:

         特征转换层:通过 1×1 点卷积(PConv)和 3×3 深度卷积(DWConv),将输入的左右视图部分特征分别转换为 Q、K、V 矩阵,完成特征维度调整与信息初步筛选。

         注意力计算层:执行缩放点积注意力操作,公式为 Attention(Q,K,V)=softmax(QKT/C​)V(其中 C 为特征通道数),实现左右视图信息的双向交互,生成跨视图融合特征。

         特征融合层:采用残差连接的方式,将跨视图融合特征与原视图的部分特征相加,并通过可训练的尺度系数(γL​、γR​)控制跨视图特征的贡献度,最终输出整合后的特征。

2.CVIM习作思路

  • 在目标检测任务中:CVIM 能有效利用多视图(如双目相机的左右视图)的互补信息提升检测精度与鲁棒性。其基于注意力机制的跨视图交互,可精准捕捉不同视图中目标的位置关联与细节差异,例如在遮挡场景下,能通过另一视图的完整目标特征补充被遮挡区域信息,减少漏检;同时,CVIM 通过通道分离策略仅对部分特征进行跨视图交互,在保证信息互补的同时降低计算复杂度,适配检测任务对实时性的要求,尤其适合边缘设备部署的检测场景。

  • 在目标分割任务中:CVIM 可增强多视图特征的一致性与细节表征能力。一方面,它能通过跨视图注意力挖掘不同视图中分割目标的结构关联,例如在语义分割中,可利用左右视图中同一物体的纹理、边缘信息互补,优化模糊区域(如物体边界、细小结构)的分割精度;另一方面,CVIM 无需额外增加复杂模块,可直接嵌入现有分割网络的特征提取流程,在提升分割性能的同时避免网络参数大幅增长,兼顾分割精度与推理效率。

   3. YOLO与CVIM的结合     

         将 CVIM 融入 YOLO 模型,替换Concat层,提升 YOLO 的目标检测能力:一是原简单的拼接会因遮挡、光照变化导致的特征缺失,减少小目标与遮挡目标的漏检率;二是 CVIM 轻量化的结构设计不会显著增加 YOLO 的计算负担,可在保证实时检测速度的前提下,提升检测精度与场景适应性。

4.CVIM代码部分

YOLO11|YOLO12|改进| 跨视图交互模块CVIM,解决跨视图信息交互效率低、参数冗余问题,减少小目标与遮挡目标的漏检率_哔哩哔哩_bilibili

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

 代码获取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub

5. CVIM引入到YOLOv12中


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

    

第二:在task.py中导入

 ​​​                ​​​​​​​    

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

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

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

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

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

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
import torch
if __name__=="__main__":



    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO("/home/tgf/tgf/yolo/model/YOLO12_All/ultralytics/cfg/models/12/yolo12_CVIM.yaml")\
        # .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data="/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/datasets/VOC_my.yaml",
                          epochs=300,
                          imgsz=640,
                          batch=4,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                          # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值