保姆级教程:在SS928开发板上跑通Yolov5s模型(从虚拟机配置到板端运行)

张开发
2026/4/12 18:32:50 15 分钟阅读

分享文章

保姆级教程:在SS928开发板上跑通Yolov5s模型(从虚拟机配置到板端运行)
零基础实战SS928开发板部署YOLOv5s全流程避坑指南第一次接触嵌入式AI开发时我盯着SS928开发板和YOLOv5文档发呆了整整两小时——虚拟机连不上板卡、模型转换报错、交叉编译环境崩溃这些坑几乎让项目流产。现在回想起来90%的问题都源于基础环境配置的细节疏忽。本文将用真实踩坑经验带你从零完成以下全流程开发环境搭建Ubuntu虚拟机配置与SS928专用工具链部署模型转换实战YOLOv5s模型从PyTorch到昇腾NPU格式的完整转换过程板端部署技巧文件传输、权限管理、运行监控等关键操作可视化调试在无GUI的OpenEuler系统上查看检测结果1. 开发环境精准配置1.1 虚拟机环境搭建推荐使用Ubuntu 20.04 LTS版本实测与SS928工具链兼容性最佳注意以下关键配置# 安装基础工具包必须执行 sudo apt update sudo apt install -y \ build-essential \ git \ cmake \ libssl-dev \ libffi-dev \ python3-dev常见问题排查若虚拟机无法识别USB设备检查VMware Workstation的USB控制器设置需启用USB3.0兼容性共享文件夹权限问题建议将开发包直接拖入虚拟机桌面而非使用共享文件夹1.2 CANN工具链安装昇腾AI处理器的核心组件安装时特别注意版本匹配组件版本要求验证命令CANN Toolkit≥5.0.RC1ls /usr/local/Ascend/ascend-toolkit/latestATC工具配套版本atc --version安装步骤精简版# 解压开发包注意空格转义 unzip SS928\ V100R001C02SPC022\(Update\).zip # 运行安装脚本需root权限 chmod x Ascend*.run sudo ./Ascend*.run --install重要提示安装完成后必须执行环境变量配置source /usr/local/Ascend/ascend-toolkit/set_env.sh1.3 交叉编译环境部署SS928采用ARM架构需配置x86到aarch64的交叉编译器# 解压工具链 tar -xzvf aarch64-mix210-linux.tgz -C /opt # 永久生效环境变量追加到~/.bashrc echo export PATH/opt/aarch64-mix210-linux/bin:$PATH ~/.bashrc验证安装成功aarch64-mix210-linux-gcc -v # 应输出类似 gcc version 7.3.0 的版本信息2. YOLOv5s模型转换实战2.1 模型准备与优化建议使用官方v6.2版本模型兼容性最佳wget https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5s.pt转换为ONNX格式时的关键参数import torch model torch.hub.load(ultralytics/yolov5, yolov5s) model.export(formatonnx, dynamicFalse, simplifyTrue, opset_version12)2.2 ATC模型转换详解创建aipp_op.cfg配置文件直接影响NPU推理性能aipp_op { input_format : RGB888_U8 src_image_size_w : 640 src_image_size_h : 640 mean_chn_0 : 123.675 mean_chn_1 : 116.28 mean_chn_2 : 103.53 var_reci_chn_0 : 0.0171247538316637 var_reci_chn_1 : 0.0175070028011204 var_reci_chn_2 : 0.0174291938997821 }转换命令示例atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_ss928 \ --soc_versionOPTG \ --insert_op_confaipp_op.cfg \ --input_shapeimages:1,3,640,640典型错误处理E90016: Invalid shape检查input_shape是否与ONNX模型匹配E90011: Operator not supported可能需要修改模型结构或使用自定义算子3. 板端部署全流程3.1 文件传输与权限管理推荐使用rsync替代scp支持断点续传# Ubuntu端执行 rsync -avzP --rshssh -p 22 \ output/ \ root192.168.7.2:/root/yolov5_demo板端必须执行的权限设置chmod x /root/yolov5_demo/rundemo.sh chmod 666 /dev/shm/*3.2 运行监控与调试实时查看NPU利用率# 板端执行 npu-smi info性能优化技巧调整rundemo.sh中的线程绑定taskset -c 0-3 ./yolov5_demo使用AI_PROFILER收集性能数据export AI_PROFILER_OUTPUT/root/profiler_data ./yolov5_demo4. 结果可视化方案在无GUI环境下可通过以下方式查看检测结果SSHX11转发需板端安装xauthssh -X root192.168.7.2 display output.jpgWEB服务方案推荐# 板端运行简易HTTP服务 python3 -m http.server 8000 --directory /root/output在PC浏览器访问http://192.168.7.2:8000即可下载结果图像实际部署时发现SS928的NPU对YOLOv5s的推理速度能达到42FPS640x640输入但内存带宽可能成为瓶颈。建议批量处理时控制并发数避免频繁的内存分配释放。

更多文章