YOLO11改进-Backbone-引入基于星运算(element-wise multiplication)的高效神经网络模型StarNet替换backbone

        在过去十年中,学习范式不断演进,深度网络大量涌现,多基于线性投影与非线性激活融合的模块。自注意力机制在自然语言处理和计算机视觉领域广泛应用,但存在效率不高、注意力复杂度随令牌数量增加而二次增长的问题。近期,通过元素乘法融合不同子空间特征的新学习范式受到关注,即星运算。它在自然语言处理和计算机视觉等多个领域展现出良好性能与效率,但此前对其应用的基础原理缺乏深入探索,多为基于直觉和假设的解释,这为理解和有效利用星运算带来挑战。在此背景下,研究人员提出 StarNet,以验证星运算在高效网络中的有效性 。

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

1.  StarNet介绍 

       星运算能够将输入映射到高维非线性特征空间,类似于核技巧。在单隐藏层神经网络中,星运算可重写为多项求和形式,能扩展出约(2​d​)2个线性独立维度,在不增加计算开销的情况下显著扩大特征维度。通过堆叠多层星运算,可指数级增加隐式维度,使网络能在低维空间计算的同时获得高维特征表示,这一特性使星运算适合用于高效网络设计 。

从提供的图片来看,StarNet模块主要包含以下几个部分:

        StarNet 采用 4 阶段分层架构,使用卷积层进行下采样,通过修改后的演示块(demo block)进行特征提取。为提高效率,将层归一化(Layer Normalization)替换为批归一化(Batch Normalization),并置于深度可分离卷积之后(推理时可融合)。受 MobileNeXt 启发,在每个块的末尾加入深度可分离卷积。通道扩展因子固定为 4,网络宽度在每个阶段翻倍。演示块中的 GELU 激活函数替换为 ReLU6。通过改变块数量和输入嵌入通道数构建不同规模的 StarNet 。

2. YOLOv11与StarNet 的结合           

        用 StarNet 替换 YOLOv11 的 backbone,能凭借其独特的星运算高效映射到高维非线性特征空间,在不增加过多计算量的情况下提升特征提取能力,从而可能增强 YOLOv1对复杂目标的识别精度;同时,StarNet 结构简洁、运行速度快,有望降低模型整体延迟,使检测效率得到显著提升。

3. StarNet代码部分

视频讲解:

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub

YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili

YOLOv11全部代码,现有几十种改进机制。

 4. StarNet引入到YOLOv11中

         

  第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_models路径下,如下图所示。

                     

第二:在task.py中导入

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

第三:在YOLOv11\ultralytics\nn\tasks.py中的模型配置部分下面代码

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

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

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

     第五:运行成功


from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"E:\bilibili\model\YOLOV8_new\ultralytics-main\ultralytics\cfg\models\11\yolo11_starnet_s4.yaml")\
        # .load(r'E:\bilibili\model\YOLOV8_new\ultralytics-main\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'D:\model\yolov11\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=300,
                          imgsz=640,
                          batch=32,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                         # resume='',
                          amp = True
                          )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值