YOLOv8 训练部署指南
文档信息
本教程说明目标检测模型 YOLOv8 的训练方法,以及将模型部署到 CSUN RV1126B 开发板的操作流程。
| 项目 | 内容 |
|---|---|
| 文档名称 | YOLOv8 训练部署指南 |
| 公司 | 株式会社日昇テクノロジー |
| URL | http://www.dragonwake.com |
| info@dragonwake.com | |
| 创建日期 | 2026/06/05 |
| 版本 | Ver1.0 |
| 修订内容 | 新建 |
1. YOLOv8 概要
YOLOv8 是 Ultralytics 于 2023 年 1 月 10 日开源发布的下一代 YOLO 主要版本,在 YOLOv5 的基础上进行了更新。目前,YOLOv8 支持图像分类、目标检测、实例分割等任务。由于 YOLOv5 已经具备良好的应用基础,YOLOv8 在正式开源前就受到了大量用户关注。其主要网络结构如下图所示。

图1-1 YOLOv8 网络结构
本教程将说明 YOLOv8 目标检测模型的训练方法,以及将模型部署到 CSUN RV1126B 开发板上的完整流程。数据标注方法请参考已公开的其他教程。

图1-2 YOLOv8 训练、转换与部署整体流程
2. 资料下载
本手册所需的资料和源码可通过以下链接下载。
解压后的目录结构如下。
02-training 训练用源码03-model_convert AI 模型转换用源码04-AI_deploy AI 模型部署用源码
图2-1 YOLOv8 资料包目录结构
3. YOLOv8 目标检测算法训练
3.1 下载训练源码
使用 Git 在 PC 端克隆远程仓库。根据网络环境不同,下载可能需要一定时间。本教程使用针对 RV1126B 调整过算子的 YOLOv8 仓库。
在 RV1126B Docker 开发环境中执行以下命令。
cd ~/linuxshare/work/rv1126b/jp/embedded/images/develop_environment./run.sh 2204
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov8/02-traininggit clone https://github.com/airockchip/ultralytics_YOLOv8.git
图3-1 YOLOv8 训练源码克隆示例
执行完成后,可得到如下文件。

图3-2 Ultralytics YOLOv8 源码目录
3.2 模型训练
本节说明 YOLOv8 目标检测模型的训练流程。这里为了确认训练流程,使用 Ultralytics 标准提供的小型数据集配置文件 coco8.yaml,并训练 YOLOv8m 模型。
coco8.yaml 是用于动作确认的小型数据集配置文件,并不适合用于获得实际项目所需的检测精度。如果用于产品或实际应用,请根据检测目标准备自己的图片数据和标注数据,并创建专用的 data.yaml 后进行训练。
3.2.1 进入训练目录
首先,在 RV1126B Docker 开发环境中进入 YOLOv8 训练目录。
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov8/02-training/ultralytics_YOLOv8使用以下命令确认 coco8.yaml 是否存在。
ls ultralytics/cfg/datasets/coco8.yaml
图3-3 coco8.yaml 文件确认结果
coco8.yaml 是用于快速确认 YOLOv8 训练流程的示例数据集配置文件。
3.2.2 训练 YOLOv8m 模型
当前环境中可能没有注册 yolo 命令,因此这里使用 Python 脚本执行训练。创建 train_coco8_yolov8m.py,内容如下。
cat > train_coco8_yolov8m.py <<'PY'from ultralytics import YOLO
if __name__ == "__main__": model = YOLO("yolov8m.pt")
model.train( data="ultralytics/cfg/datasets/coco8.yaml", imgsz=640, epochs=10, batch=4, workers=4, device=0, project="runs/train", name="coco8_yolov8m", )PY执行脚本开始训练。
python train_coco8_yolov8m.py训练开始时的终端输出示例如下。

图3-4 YOLOv8m 模型开始训练时的终端输出
训练完成时的终端输出示例如下。

图3-5 YOLOv8m 模型训练完成时的终端输出
上述脚本通过 YOLO("yolov8m.pt") 加载 YOLOv8m 预训练模型。如果当前目录中不存在 yolov8m.pt,Ultralytics 会在首次执行时自动下载该模型。
这里使用的 yolov8m.pt 是训练开始前的预训练模型;训练执行后生成的 best.pt 和 last.pt 是本次训练结果保存的模型文件。
模型文件会保存到 ./runs/train/coco8_yolov8m。训练精度结果可通过 ./runs/train/coco8_yolov8m/results.csv 查看。

图3-6 YOLOv8m 训练后的 weights 目录
主要输出文件如下。
best.pt : 在验证数据上获得最佳评价结果的模型last.pt : 最后一轮 epoch 结束时的模型通常,用于推理或 ONNX 转换时,优先使用验证结果最好的 best.pt。如果需要从中断处继续训练,则使用 last.pt。
3.3 将 PT 模型转换为 ONNX 模型
将训练得到的 best.pt 转换为 ONNX 格式。使用以下命令创建 Python 脚本 export_yolov8m_onnx.py。
cat > export_yolov8m_onnx.py <<'PY'from ultralytics import YOLO
if __name__ == "__main__": model = YOLO("./runs/train/coco8_yolov8m/weights/best.pt")
model.export( format="onnx", imgsz=640, opset=12, half=False, simplify=False, dynamic=False, )PY执行以下命令进行 ONNX 转换。
python export_yolov8m_onnx.py
图3-7 YOLOv8m 模型 ONNX 转换结果
转换成功后,会在 runs/train/coco8_yolov8m/weights 目录下生成 best.onnx。如果需要作为 RKNN 转换输入使用,请将其重命名为 yolov8m.onnx。

图3-8 生成的 best.onnx 文件
4. RKNN-Toolkit 模型转换
4.1 构建 RKNN-Toolkit 模型转换环境
ONNX 模型需要转换为 RKNN 模型后,才能在 CSUN RV1126B 开发板上运行。因此,需要先搭建 RKNN-Toolkit 模型转换环境。TensorFlow、TensorFlow Lite、Caffe、Darknet 等模型也可以通过类似流程转换,本教程以 ONNX 模型为例进行说明。
模型转换环境的搭建方法请参考《AI 模型转换环境构建指南》。
4.2 将 ONNX 模型转换为 RKNN 模型
EASY-EAI Nano-TB 支持 .rknn 后缀模型的评估与运行。TensorFlow、TensorFlow Lite、Caffe、Darknet、ONNX、PyTorch 等常见训练模型,都可以通过 RKNN-Toolkit2 转换为 RKNN 模型。其他框架训练得到的模型,也可以先转换为 ONNX 格式,再转换为 RKNN 模型。
详细转换步骤请参考《RKNN 模型转换教程示例》。
4.2.1 解压模型转换 Demo
模型转换 Demo 包含在《2. 资料下载》中获取的资料包内。执行以下命令解压。
cd /data/project/sales/csun/rv1126b/jp/AI/demo/Tutorial/yolov8/03-model_convertunzip quant_dataset.ziptar -xJf yolov8_model_convert.tar.xz
图4-1 YOLOv8 模型转换 Demo 解压结果
4.2.2 进入模型转换工具 Docker 环境
使用以下命令将工作目录挂载到 Docker 镜像中。/data/project/sales/csun/rv1126b/jp/AI/demo/Tutorial 作为工作目录,并映射到容器内的 /test。同时,通过 /dev/bus/usb:/dev/bus/usb 将 USB 设备挂载到容器中。
docker run -t -i --privileged \ -v /dev/bus/usb:/dev/bus/usb \ -v /data/project/sales/csun/rv1126b/jp/AI/demo/Tutorial:/test \ rknn-toolkit2:2.3.2-cp38 /bin/bash
图4-2 RKNN-Toolkit2 Docker 环境启动结果
4.2.3 生成量化图片列表
在 Docker 环境中进入模型转换工作目录。
cd /test/yolov8/03-model_convert/yolov8_model_convert执行 gen_list.py,生成量化图片列表。
python gen_list.py
图4-3 量化图片列表生成命令执行结果
生成的量化图片列表会保存为 pic_path.txt。

图4-4 生成的 pic_path.txt 文件
4.2.4 将 ONNX 模型转换为 RKNN 模型
rknn_convert.py 默认执行 INT8 量化。主要脚本内容如下。
import sysfrom rknn.api import RKNN
ONNX_MODEL = 'yolov8m.onnx'DATASET = './pic_path.txt'RKNN_MODEL = './yolov8m_rv1126b.rknn'QUANTIZE_ON = True
if __name__ == '__main__': rknn = RKNN(verbose=False)
print('--> Config model') rknn.config( mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]], target_platform='rv1126b' ) print('done')
print('--> Loading model') ret = rknn.load_onnx(model=ONNX_MODEL) if ret != 0: print('Load model failed!') exit(ret) print('done')
print('--> Building model') ret = rknn.build(do_quantization=QUANTIZE_ON, dataset=DATASET) if ret != 0: print('Build model failed!') exit(ret) print('done')
print('--> Export rknn model') ret = rknn.export_rknn(RKNN_MODEL) if ret != 0: print('Export rknn model failed!') exit(ret) print('done')
rknn.release()将训练得到的 yolov8m.onnx 放到 yolov8_model_convert 目录下,然后执行以下命令进行模型转换。
python rknn_convert.py
图4-5 YOLOv8m RKNN 模型转换终端输出
转换成功后,会生成可在 CSUN RV1126B 开发板上运行的 RKNN 模型。

图4-6 生成的 YOLOv8m RKNN 模型文件
5. YOLOv8 模型部署
5.1 模型部署示例说明
本节说明如何将 YOLOv8 模型部署到 RV1126B 开发板。本教程使用的模型是用于动作确认的简单训练样例模型,因此不保证实际项目中的模型精度。
5.2 准备工作
5.2.1 硬件准备
准备 RV1126B 开发板、Type-C 数据线和网线,并使用 MobaXterm 等工具通过 SSH 登录 RV1126B 开发板。详细连接步骤请参考《入门指南》。
通过网线连接的结构示例如下。

图5-1 RV1126B 开发板 LAN 连接结构
通过 Type-C 线进行串口连接的结构示例如下。

图5-2 RV1126B 开发板 Type-C 串口连接结构
5.2.2 开发环境准备
首次阅读本手册时,请参考《入门指南》,并按照其中说明完成编译环境搭建。
在 PC 端 Ubuntu 系统中执行 run.sh,进入 RV1126B 编译环境。步骤如下。
cd ~/develop_environment./run.sh 2204
图5-3 RV1126B Docker 开发环境启动结果
5.3 构建示例程序
将下载的资料包移动到 RV1126B Docker 开发环境后,执行以下命令解压。
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov8/04-AI_deploytar -xJf yolov8_detect_C_demo.tar.xz解压后的目录示例如下。

图5-4 YOLOv8 C Demo 解压后的目录
在 RV1126B Docker 开发环境中进入示例程序目录并执行编译。具体命令如下。
sudo mount -t nfs -o vers=3,proto=tcp,mountproto=tcp,nolock,retrans=5,timeo=5 192.168.11.85:/ /mntcd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov8/04-AI_deploy/yolov8_detect_C_demo/./build.sh
图5-5 YOLOv8 C Demo 编译结果
编译成功后,将执行程序目录 yolov8_detect_demo_release/ 复制到 RV1126B 开发板的 /userdata 目录。
cp yolov8_detect_demo_release/ /mnt/userdata/ -rf5.4 在开发板上运行 YOLOv8 模型
通过串口调试或 SSH 调试进入开发板 shell,然后进入示例程序部署目录。
cd /userdata/yolov8_detect_demo_release
图5-6 开发板端 YOLOv8 Demo 执行目录
示例程序的执行命令如下。
chmod 777 yolov8_detect_demo./yolov8_detect_demo yolov8m_rv1126b.rknn test.jpg执行结果示例如下。算法运行时间约为 106 ms。

图5-7 RV1126B 上 YOLOv8 Demo 执行结果
推理结果图片可以在 RV1126B 编译环境中通过以下命令获取。
cp /mnt/userdata/yolov8_detect_demo_release/result.jpg .
图5-8 YOLOv8 推理结果图片复制命令
检测结果图片示例如下。

图5-9 YOLOv8 目标检测结果图片
至此,YOLOv8 目标检测示例已在 CSUN RV1126B 开发板上正常运行。