1 概述
本案例由开发者:乐知行科技有限公司提供
1.1 案例介绍
AI Notebook 是华为云在开发者空间里提供的免费在线 JupyterLab 环境,内置 GPU/NPU 算力与主流 AI 框架镜像,开箱即用。
本案例在华为开发者空间提供的 AI Notebook 环境中,使用官方镜像(YOLOV9_for_PyTorch)完成 YOLOv5 目标检测模型的深度训练。通过实际操作,你将学会如何准备数据集、安装依赖、在YOLOv5中添加NPU驱动接口,在 NPU 上高速训练、将 PyTorch 权重导出为 ONNX,并最终转换为昇腾加速卡可用的 om 模型。预计总时长 25~30 分钟。
通过实际操作,让大家深入了解如何利用 AI Notebook 完成深度学习模型训练并部署到昇腾Atlas200i DK上,使用昇腾加速板卡完成目标检测。在这个过程中,大家将学习到,在 AI Notebook 中一键拉起 GPU/NPU 环境,无需本地安装驱动;完成数据集上传、标注校验及 yaml 配置;分别使用 CPU 与 NPU 启动训练,体验 40× 的加速差异;将训练得到的 PyTorch 权重导出为 ONNX,并通过 ATC 工具转换为昇腾 om 模型;把 om 模型集成到RTRC4H智能网联微缩模型车,实现端到端推理验证。
1.2 适用对象
l 企业
l 个人开发者
l 高校学生
1.3 案例时间
本案例总时长预计40分钟。
1.4 案例流程

说明:
① 领取开发者空间的AI notebook,并启动预置镜像 YOLOV9_for_PyTorch;
② 上传并解压工程包,使用 pip 补全 seaborn、tensorboard 等依赖;
③ 在 AI Notebook 中上传数据集与标签,配置 mask_data.yaml;
④ 执行 NPU 训练(≈30 s/epoch),完成后导出 ONNX 并转换为 om 模型;
⑤ 将 om 模型回传功能包,运行演示程序完成车端推理验证。
2 AI notebook实践
2.1 AI notebook简介
面向广大开发者群体,华为开发者空间提供“零成本、零安装、零配置”的一站式 AI 开发体验。
其中AI Notebook 是基于华为云昇腾 910B NPU 的在线 JupyterLab 环境,内置 8 vCPU、32 GiB 内存、24 GB 显存的 NPU 算力,并预装 PyTorch-2.1/CANN-7.0、CUDA 11.8 及常用 AI 框架,开箱即可训练、调试、部署。
进入华为开发者空间工作台界面,点击打开云主机> AI notebook。

2.2 配置AI notebook
本案例中,使用华为云AI Notebook作为云上开发平台,完成代码托管、代码检查、编译构建和部署的功能。
1. 在浏览器中输入华为云网址:https://www.huaweicloud.com/进入华为云首页。
2. 在华为云的首页右上方,点击登录,在弹出的对话框中输入自己的用户名和密码。
3. 在华为云首页,依次选择工作台>我的开发工具>AI notebook,进入AI notebook页面。


4. 选择关联模型YOLOV9_for_pyTorch。
5. 点击立即启动即可。
2.3 部署YOLOV5环境

2.3.1 提前准备工程包

打开终端,在终端中运行以下指令下载功能包
git clone https://gitee.com/lezhixing-chongqing/yolov5-huawei-training.git
2.3.2 功能包解压,补全依赖
1. 解压功能包
2. 在终端执行以下代码下载相关依赖
pip install seaborn -i https://mirrors.ustc.edu.cn/pypi/web/simple
pip install tensorboard -i https://mirrors.ustc.edu.cn/pypi/web/simple
2.3.3 准备数据集以及验证集
首先进入功能包cd /yolov5-huawei-training/yolov5-mask-42-master
进入数据集配置路径yolov5-mask-42-master/YOLO_Mask/score

数据集配置首先进入配置文件路径yolov5-mask-42-master/data/mask_data.yaml
数据集及标签配置如下

2.3.3.1 YOLOV5本身不支持华为的NPU板卡,需要添加YOLOV5的NPU板卡接口
首先进入到YOLOv5 的工具函数yolov5-mask-42-master/utils/torch_utils.py
对这个函数进行替换def select_device(device='', batch_size=None, newline=True):

2.4 开始训练
cpu训练指令(大约20分钟每轮)
python train.py \
--data data/mask_data.yaml \
--weights yolov5s.pt \
--cfg models/yolov5s.yaml \
--epochs 100 \
--batch-size 8 \
--imgsz 640 \
--device cpu \
--workers 8 \
--cache ram

npu训练指令(大约30秒每轮)
python train.py \
--data data/mask_data.yaml \
--weights yolov5s.pt \
--cfg models/yolov5s.yaml \
--epochs 100 \
--batch-size 8 \
--imgsz 640 \
--device npu \
--workers 8 \
--cache ram

相关产出文件



训练完训练完成后得到权重文件需转换为ONNX格式来适配后期昇腾板卡加速模块
python export.py \
--weights runs/train/exp7/weights/best.pt \
--img-size 640 640 \
--device cpu \
--simplify

最后将我们需要的ONNX模型从AI notebook导出
2.5 车端推理与系统集成
本节补充如何把 AI Notebook 产出的 ONNX 模型真正部署到车载 Atlas 200I DK A2(以下简称「RTRC4H」),并完成端到端闭环验证。
2.5.1 RTRC4H硬件拓扑

奥比中光Gemini 335(感知模块)
奥比中光Gemini 335是一款高性能双目3D摄像头,它配备了Type-C和8-Pin多机同步硬件接口,支持DC 5V≥1.5A供电,平均功耗低于2.5W,具备USB 3.0 & USB 2.0的UVC相机接口,并内置IMU,提供灵活的安装方式,包括1/4-20 UNC和M3螺纹安装孔,以适应各种应用场景。
基本规格如下表:
表2-15 摄像头规格
| 名称 | 最小值 |
| 适用场景 | 室内和室外 |
| 相机原理 | 双目视觉 |
| 基线 | 50mm |
| 数据接口 | USB3.0&USB2.0 |
| 多机同步接口 | 8-pin接口 |
| USB接口 | Type-C |
| 相机驱动 | UVC |
Gemini335支持Type-C和8-pin多机同步硬件接口,如下图所示:

摄像头接口图
Atlas 200I DK A2(决策模块)
Atlas 200I DK A2是一款基于昇腾310处理器的AI开发者套件,具备20TOPS INT8的计算能力,支持图像、视频分析和推理,适用于智能监控、机器人和无人机等应用场景。具有丰富的硬件接口,提供一键制卡和便捷的开箱样例,如启动、网络配置、远程访问和运行示例。

Atlas 200I DK A2
蜂鸟底盘(执行模块)
蜂鸟底盘具有小巧、便捷,更加高效、实现强量化和模块化。底盘设计中考虑了智能网联技术的集成,在转向系统上也进行了优化。
蜂鸟底盘优化了第三代的诸多缺点,在蜂鸟地盘上加装单片机、遥控模块和车辆灯光。增加了底盘转向系统。
阿克曼转向:适应车轮在转弯过程中所需的不同半径。
四轮同项:提高车辆的机动性和稳定性。
四轮异向:能够显著提高车辆的灵活性和操控性。

蜂鸟底盘
1. 底盘接口

蜂鸟底盘接口与核心板
2.5.2 ONNX模型上车流程
使用我们提供的功能包中运行ATC模型转换工具把ONNX模型转换为MindSDK和AscendCL使用的OM格式



2.5.3 RTRC4H控制流程

2.5.4 RTRC4H性能实测


| 场景 | 帧率 | 时延 (ms) | mAP@0.5 | 备注 |
| 正常环境 | 30 fps | 28 | 0.92 | 散热片 55 ℃ |
| 强光环境 | 30 fps | 32 | 0.85 | 强光过曝,ISP Gamma 增强 |
| 沙盘 3.6 km/h | 25 fps | 35 | 0.82 | 开启动态 ROI |
6万+

被折叠的 条评论
为什么被折叠?



