news 2026/5/16 21:01:45

基于辽宁科技大学的论文复现——从零开始SPMamba-yolo全流程部署文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于辽宁科技大学的论文复现——从零开始SPMamba-yolo全流程部署文档

一、原论文信息

论文标题:SPMamba-YOLO: An underwater object detection network based on multi-scale feature enhancement and global context modeling

发表日期:2026年02月

发表单位:辽宁科技大学电子与信息工程学院

原文链接:https://arxiv.org/pdf/2602.22674v1.pdf

二、部署环境配置

1、Ubuntu环境搭建(22.04)

1.1、PC端部署前置条件

安装WSL ubuntu或者有自己的主机是ubuntu系统

想通过WSL安装ubuntu可以查看教程:Windows 安装 WSL2 并运行 Ubuntu 22.04 指南

1.2、安装CUDA、CUDNN和Anaconda环境

工作中需要用到基于Ubuntu22.04系统yolov8的GPU环境

安装教程:

Ubuntu22.04搭建基于GPU的Yolov8环境

三、安装mamba-yolo框架

1、创建环境并指定Python 3.12

conda create -n mambayolo python=3.12 -y conda activate mambayolo

2、安装CUDA版本的PyTorch

pip3 install torch==2.3.0+cu121 torchvision==0.18.0+cu121 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121

3、安装selective_scan wheel

selective_scan wheel下载链接:

https://pan.baidu.com/s/1IxKyAqqFB1fsdme0V0HCbg?pwd=6666提取码: 6666

链接来源:全网最详细教程(提供selective_scan安装包),Ubuntu上一次性跑通Mamba-YOLO!

pip install selective_scan-0.0.2-cp312-cp312-linux_x86_64.whl

4、安装其他依赖

pip install seaborn thop timm einops

5、克隆并安装Mamba-YOLO

git clone https://github .com/HZAI-ZJNU/Mamba-YOLO.git cd Mamba-YOLO pip install -v -e .

6、创建数据集

.\Mamba-YOLO\目录下创建文件夹datasets

数据集结构如下:

├── datasets │ ├── images │ │ ├── test │ │ ├── train │ │ └── val │ ├── labels │ │ ├── test │ │ ├── train │ │ ├── val

7、创建数据集配置文件 ——data.yaml

.\Mamba-YOLO\datasets\目录下创建data.yaml文件

data.yaml

train: images/train val: images/val test: images/test # number of classes nc: 4 # class names names: [ 'holothurian','echinus','scallop','starflish']

8、创建模型训练脚本——train.py

.\Mamba-YOLO\目录下创建train.py脚本

train.py

from ultralytics import YOLO import argparse import os ROOT = os.path.abspath('.') # ROOT = '' print(ROOT) def parse_opt(): parser = argparse.ArgumentParser() parser.add_argument('--data', type=str, default=os.path.normpath(os.path.join(ROOT, 'datasets/data.yaml')), help='dataset.yaml path') parser.add_argument( '--config', type=str, default=os.path.normpath(os.path.join(ROOT, 'ultralytics/cfg/models/mamba-yolo/Mamba-YOLO-T.yaml')), help='model path(s)') parser.add_argument('--batch_size', type=int, default=1, help='batch size') parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=640, help='inference size (pixels)') parser.add_argument('--task', default='train', help='train, val, test, speed or study') parser.add_argument('--device', default='0', # 0,1,2,3,4,5,6,7 help='cuda device, i.e. 0 or 0,1,2,3 or cpu') # parser.add_argument('--device', default='0', # help='cuda device, i.e. 0 or 0,1,2,3 or cpu') parser.add_argument('--workers', type=int, default=1, help='max dataloader workers (per RANK in DDP mode)') parser.add_argument('--epochs', type=int, default=100) parser.add_argument('--optimizer', default='SGD', help='SGD, Adam, AdamW') parser.add_argument('--amp', action='store_true', help='open amp') parser.add_argument('--project', default=os.path.normpath( os.path.join(ROOT, 'runs/train1')), help='save to project/name') parser.add_argument('--name', default='mambayolo-hituav', help='save to project/name') parser.add_argument('--half', action='store_true', help='use FP16 half-precision inference') parser.add_argument('--dnn', action='store_true', help='use OpenCV DNN for ONNX inference') opt = parser.parse_args() return opt if __name__ == '__main__': print(ROOT) opt = parse_opt() task = opt.task print(opt.data) args = { "data": opt.data, "epochs": opt.epochs, "workers": opt.workers, "batch": opt.batch_size, "optimizer": opt.optimizer, "device": opt.device, "amp": opt.amp, "project": opt.project, "name": opt.name, } # 遍历打印字典args for key, value in args.items(): print(key, value) model_conf = opt.config task_type = { "train": YOLO(model_conf).train(**args), "val": YOLO(model_conf).val(**args), # "test": YOLO(model_conf).test(**args), "test": YOLO(model_conf).val(**args), } task_type.get(task)

9、运行脚本训练模型

python train.py

10、其他资料

参考链接:

https://blog.csdn.net/Jason_Mar1/article/details/146255942

GitHub的mamba-yolo开源资料:

GitHub - HZAI-ZJNU/Mamba-YOLO: the official pytorch implementation of “Mamba-YOLO:SSMs-based for Object Detection” · GitHub

四、将SPPELAN融合进YOLOV8

1、参考文档

爆改YOLOv8 | 利用YOLOv9最新的SPPELAN模块改进SPPF

这里mamba-yolo框架本身有SPPELAN模块,所以只需要替换原本的SPPF模块就行。

2、修改配置文件 —— Mamba-YOLO-T.yaml

.\Mamba-YOLO\ultralytics\cfg\models\mamba-yolo\目录下

- [-1, 1, SPPF, [1024, 5]]修改为:

- [-1, 1, SPPELAN, [1024, 256]]

五、将PSA融合进YOLOV8

1、参考文档

YOLOv8改进-添加YOLOv10的PSA注意力机制

这里mamba-yolo框架本身有PSA模块,所以只需要直接添加PSA模块就行。

2、修改配置文件 —— Mamba-YOLO-T.yaml

.\Mamba-YOLO\ultralytics\cfg\models\mamba-yolo\目录下

增加PSA模块到SPPELAN模块的下一行:

- [-1, 1, SPPELAN, [1024, 256]] - [-1, 1, PSA, [1024]]

修改Mamba-YOLO-T.yamlhead部分:

# Mamba-YOLO PAFPN head: - [-1, 1, nn.Upsample, [None, 2, 'nearest']] - [[-1, 5], 1, Concat, [1]] # cat backbone P4 - [-1, 3, XSSBlock, [512]] # 11 - [-1, 1, nn.Upsample, [None, 2, 'nearest']] - [[-1, 3], 1, Concat, [1]] # cat backbone P3 - [-1, 3, XSSBlock, [256]] # 14 (P3/8-small) - [-1, 1, Conv, [256, 3, 2]] - [[-1, 12], 1, Concat, [1]] # cat head P4 - [-1, 3, XSSBlock, [512]] # 17 (P4/16-medium) - [-1, 1, Conv, [512, 3, 2]] - [[-1, 8], 1, Concat, [1]] # cat head P5 - [-1, 3, XSSBlock, [1024]] # 20 (P5/32-large) - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)

六、总结

通过整合网络上的完整教程和资源,SPMamba-yolo的部署流程已全部完成。从环境配置到模型训练与推理,每一步均经过验证并成功跑通。该过程涉及依赖安装、数据准备、参数调整及性能测试,最终实现了预期的检测效果。

部署过程中遇到的关键问题已逐一解决,确保系统稳定运行。完整的流程验证了SPMamba-yolo在实际应用中的可行性,为后续优化和扩展奠定了基础。

训练效果图展示:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 21:01:14

如何快速掌握工业通信调试工具:Wu.CommTool完全指南

如何快速掌握工业通信调试工具:Wu.CommTool完全指南 【免费下载链接】Wu.CommTool 基于C#、WPF、Prism、MaterialDesign、HandyControl开发的通讯调试工具。支持Modbus Rtu调试、Mqtt调试、TCP调试、串口调试、UDP调试 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/5/16 20:57:09

解析社交内容数据背后的价值——以达人内容分析为例

在当下信息爆炸的时代,内容创作者的表现力和粉丝增长路径,正在成为品牌营销、产品推广和市场研究的重要参考指标。随着短视频和直播平台的兴起,用户行为数据和内容创作数据被越来越多地用于辅助商业决策。在这一背景下,如何有效获…

作者头像 李华
网站建设 2026/5/16 20:57:04

kubeadm搭建K8S集群完整实战指南

从零到一:kubeadm 搭建 Kubernetes 集群完整实战指南(1.23.17 版本)导读:Kubernetes 作为容器编排领域的事实标准,已成为运维工程师的必备技能。本文以生产环境推荐的 1.23.17 版本(最后一个默认支持 Docke…

作者头像 李华
网站建设 2026/5/16 20:56:07

Topit:macOS窗口置顶的终极免费解决方案,让开发效率飙升300%

Topit:macOS窗口置顶的终极免费解决方案,让开发效率飙升300% 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否在macOS开发中频繁切…

作者头像 李华
网站建设 2026/5/16 20:51:48

基础实战:实现简单的图像轮廓检测(入门级)

基础实战:实现简单的图像轮廓检测(入门级)📚 本章学习目标:深入理解实现简单的图像轮廓检测(入门级)的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与最佳实践…

作者头像 李华