当前位置: 首页 > article >正文

YOLO11改进-模块-引入星型运算Star Blocks

        当前网络设计中,“星型运算”(逐元素乘法)的应用原理未被充分探究,潜力有待挖掘。为解决此问题,我们引入 Star Blocks,其内部由 DW - Conv、BN、ReLU 等模块经星型运算连接,各模块有特定参数。同时揭示星型运算可将输入映射到高维非线性特征空间且无需拓宽网络。最终 StarNet 在紧凑结构和高效预算下实现了高性能与低延迟,有效提升了网络性能。本文考虑到YOLO目标检测的C3k2模块在特征融合的时候,高维非线性特征缺失,本文将Star Blocks与C3K2相结合,提出C3k2_StarsBlock模块。

左边是原模型,右边是改进模型

1. 星型运算Star Blocks结构介绍    

        1. 卷积层(Conv):模块中包含卷积层,用于提取特征。不同阶段(stage)的卷积层有不同的参数。例如,图中提到卷积层(Conv)的核大小(ks)为 3,步长(stride)为 2。

        2. 深度可分离卷积(DW - Conv):模块中还包含深度可分离卷积层,用于进一步处理特征。深度可分离卷积层的核大小(ks)为 7,步长(stride)为 1。

        3. 批量归一化(BN)和激活函数(ReLU):在模块中,深度可分离卷积层前后可能会有批量归一化和激活函数操作,用于归一化数据和引入非线性。

        4. 星型运算(element - wise mul.,即星型乘法):这是 Star Blocks 模块的关键操作。星型运算将不同层的特征进行逐元素乘法,从而在不增加网络宽度的情况下,将输入映射到高维非线性特征空间。

2. YOLOv11与星型运算Star Blocks的结合

        1. YOLO目标检测的C3k2模块在特征融合的时候,存在高维非线性特征缺失,本文将Star Blocks与C3K2相结合,提出C3k2_StarsBlock模块。

3. 星型运算Star Blocks代码部分

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve

 4. 将星型运算Star Blocks引入到YOLOv11中

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

第二:在task.py中导入C3k2_StarsBlock包

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

    ​​​​​​ 

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

     第五:运行成功


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

if __name__=="__main__":

    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"D:\model\yolov11\ultralytics\cfg\models\11\yolo11_starnet.yaml")\
        .load(r'D:\model\yolov11\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=64,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                         # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                         #  amp = True
                          )

http://www.kler.cn/a/452888.html

相关文章:

  • Python PyMupdf 去除PDF文档中Watermark标识水印
  • 【C++】19___set / multiset 容器
  • IntelliJ IDEA Docker集成
  • DDoS防护中的流量清洗与智能调度
  • YOLOv9-0.1部分代码阅读笔记-lion.py
  • 互联网视频云平台EasyDSS无人机推流直播技术如何助力野生动植物保护工作?
  • 在vscode中的ESP-IDF插件中使用Arduino框架作为组件
  • 鸿蒙-什么是Ability Kit
  • 人才画像系统如何支撑企业的人才战略落地
  • 【React 基础及高级用法】
  • Docker安装Neo4j
  • SQL进阶技巧:如何求解最大矩形面积问题? | LeetCode 84- 柱状图中最大的矩形
  • 【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
  • 浅谈TARA在汽车网络安全中的关键角色
  • adb 安装教程
  • nginx-rewrite(多种实现方法)
  • 从一次线上故障聊聊接口自动化测试
  • QT创建一个模板槽和信号刷新UI
  • 《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
  • python file seek tell
  • 【2025最新计算机毕业设计】新型吃住玩一体化旅游管理系统【提供源码+答辩PPT+文档+项目部署】
  • 金仓数据库安装-Kingbase v9-centos
  • STM32串口无法正常中断
  • Spring Boot 中 WebClient 的实践详解
  • Go C编程 第6课 无人机 --- 计算旋转角
  • More Effective C++ 条款 1:仔细区别 pointer 和 reference