
一、原论文信息论文标题: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.041.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.12conda create -n mambayolo python3.12 -y conda activate mambayolo2、安装CUDA版本的PyTorchpip3 install torch2.3.0cu121 torchvision0.18.0cu121 torchaudio2.3.0 --index-url https://download.pytorch.org/whl/cu1213、安装selective_scan wheelselective_scan wheel下载链接:https://pan.baidu.com/s/1IxKyAqqFB1fsdme0V0HCbg?pwd6666提取码: 6666链接来源全网最详细教程(提供selective_scan安装包)Ubuntu上一次性跑通Mamba-YOLO!pip install selective_scan-0.0.2-cp312-cp312-linux_x86_64.whl4、安装其他依赖pip install seaborn thop timm einops5、克隆并安装Mamba-YOLOgit 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 │ │ ├── val7、创建数据集配置文件 ——data.yaml在.\Mamba-YOLO\datasets\目录下创建data.yaml文件data.yamltrain: 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.pyfrom ultralytics import YOLO import argparse import os ROOT os.path.abspath(.) # ROOT print(ROOT) def parse_opt(): parser argparse.ArgumentParser() parser.add_argument(--data, typestr, defaultos.path.normpath(os.path.join(ROOT, datasets/data.yaml)), helpdataset.yaml path) parser.add_argument( --config, typestr, defaultos.path.normpath(os.path.join(ROOT, ultralytics/cfg/models/mamba-yolo/Mamba-YOLO-T.yaml)), helpmodel path(s)) parser.add_argument(--batch_size, typeint, default1, helpbatch size) parser.add_argument(--imgsz, --img, --img-size, typeint, default640, helpinference size (pixels)) parser.add_argument(--task, defaulttrain, helptrain, val, test, speed or study) parser.add_argument(--device, default0, # 0,1,2,3,4,5,6,7 helpcuda device, i.e. 0 or 0,1,2,3 or cpu) # parser.add_argument(--device, default0, # helpcuda device, i.e. 0 or 0,1,2,3 or cpu) parser.add_argument(--workers, typeint, default1, helpmax dataloader workers (per RANK in DDP mode)) parser.add_argument(--epochs, typeint, default100) parser.add_argument(--optimizer, defaultSGD, helpSGD, Adam, AdamW) parser.add_argument(--amp, actionstore_true, helpopen amp) parser.add_argument(--project, defaultos.path.normpath( os.path.join(ROOT, runs/train1)), helpsave to project/name) parser.add_argument(--name, defaultmambayolo-hituav, helpsave to project/name) parser.add_argument(--half, actionstore_true, helpuse FP16 half-precision inference) parser.add_argument(--dnn, actionstore_true, helpuse 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.py10、其他资料参考链接https://blog.csdn.net/Jason_Mar1/article/details/146255942GitHub的mamba-yolo开源资料GitHub - HZAI-ZJNU/Mamba-YOLO: the official pytorch implementation of “Mamba-YOLOSSMs-based for Object Detection” · GitHub四、将SPPELAN融合进YOLOV81、参考文档爆改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融合进YOLOV81、参考文档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.yaml的head部分# 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在实际应用中的可行性为后续优化和扩展奠定了基础。训练效果图展示