YOLOv11-seg 训练部署指南
文档信息
本教程说明实例分割模型 YOLOv11-seg 的训练方法,以及部署到 CSUN RV1126B 开发板的步骤。
| 项目 | 内容 |
|---|---|
| 文档名 | YOLOv11-seg 训练部署指南 |
| 公司 | 株式会社日昇テクノロジー |
| URL | http://www.dragonwake.com |
| info@dragonwake.com | |
| 创建日期 | 2026/06/08 |
| 版本 | Ver1.0 |
| 修改内容 | 新建 |
修改履历
| NO | 版本 | 修改内容 | 修改日期 |
|---|---|---|---|
| 1 | Ver1.0 | 新建 | 2026/06/08 |
本文档的信息可能会因文档改进而在不事先通知的情况下变更。最新版请参考公司主页 https://www.dragonwake.com。
未经株式会社日昇テクノロジー书面许可,严禁以任何形式复制本文档。
1. YOLOv11-seg 概要
YOLOv11-seg 是 YOLO(You Only Look Once)系列的新成员,面向实时实例分割任务设计。它在保持 YOLO 系列高速推理特点的同时,通过网络结构和分割头实现像素级目标检测与分割,适用于自动驾驶、医学图像、工业检测等对精度和速度都有要求的场景。
本手册说明实例分割算法 YOLOv11-seg 的训练流程,以及部署到 CSUN RV1126B 开发板的步骤。关于数据标注方法,请参考既有相关文章。

图1-1 YOLOv11-seg 训练、转换与部署整体流程
2. 资料下载
本手册所需资料和源代码可从下面链接下载。
解压后的目录结构如下。
|-- 02-training 训练用源码|-- 03-model_convert AI 模型转换用源码|-- 04-AI_deploy AI 模型部署用源码
图2-1 下载资料解压后的目录结构
3. YOLOv11-seg 模型训练
YOLOv11-seg 的训练源码中,导出部分相对于 Ultralytics 官方 GitHub 版本做了部分修改。因此,建议使用本资料指定的训练源码。
3.1 数据集准备
开始 YOLOv11-seg 训练前,需要准备 crack(裂缝数据集)等训练数据。该数据集也包含在训练工程压缩包中。目录结构如下图所示。

图3-1 crack-seg 数据集目录结构
crack-seg 的标签数据格式如下图所示。每行第一个值为类别 ID,后续值为轮廓 polygon 坐标。

图3-2 YOLO 分割标签格式(类别与轮廓坐标)
如果需要将 JSON 格式标注数据转换为 label 格式,可以使用 ./data/json_2_yolo.py 脚本。
3.2 训练参数配置
数据转换完成后,需要设置模型训练用的 data.yaml、default.yaml、yolo11.yaml。
data.yaml: 指定训练数据、验证数据路径、类别数和类别名称。default.yaml: 指定 YOLO11 的训练参数,可根据需要调整。yolo11.yaml: 定义 YOLO11 的模型结构,训练时需要修改类别数。
3.3 模型训练
完成上述步骤后,打开 train.py,设置 data.yaml、default.yaml、yolo11.yaml 的路径。
from pathlib import Pathimport osfrom ultralytics import YOLOimport ultralytics.data.utils as data_utils
# OMP 関連エラー(例: "OMP: Hint This means...")が発生する場合に使用します。os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
# Ultralytics のデータセット基準ディレクトリを相対パスに設定します。# これにより、data.yaml の path: ../demo/crack-seg が# ./datasets/../demo/crack-seg として解釈され、最終的に ./demo/crack-seg を参照します。data_utils.DATASETS_DIR = Path("datasets")
if __name__ == '__main__': # 学習設定ファイル、データセット設定ファイル、モデル構造ファイルを指定します。 # 本スクリプトは ultralytics_yolo11 のプロジェクトルートで実行してください。 cfg = "./demo/crack-seg/default.yaml" data = "./demo/crack-seg/data.yaml" # weight = "./demo/weights/yolo11n-seg.pt" # .pt または yolo11-seg.yaml を指定できます。 weight = "./demo/crack-seg/yolo11-seg.yaml"
print("YOLO11-seg セグメンテーションモデルの学習を開始します。") print(f"学習設定ファイル: {cfg}") print(f"データセット設定ファイル: {data}") print(f"モデルファイル: {weight}")
model = YOLO(weight)
results = model.train( data=data, cfg=cfg )
print("YOLO11-seg セグメンテーションモデルの学習が完了しました。")在 RV1126B Docker 开发环境中执行以下命令开始训练。
cd /home/csun/linuxshare/work/rv1126b/jp/embedded/images/develop_environment./run.sh 2204cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11-seg/02-training/ultralytics_yolo11python train.py
图3-3 YOLOv11-seg 训练开始时的终端输出
训练完成后的评估结果如下。

图3-4 YOLOv11-seg 训练完成时的评估结果
生成的模型文件如下。
./crack/train2/weights/best.pt
图3-5 训练后生成的 best.pt / last.pt 文件
3.4 PC 端模型推理
训练完成后,训练过程和验证集效果最好的模型会保存到 default.yaml 中设置的 project 目录。执行 predict-seg.py 可以初步确认模型效果。predict-seg.py 中会设置模型路径、输入图片、推理设备和图像尺寸,并执行图像预处理、模型推理和结果绘制。
请根据实际情况确认模型文件路径。
from ultralytics import YOLO
# 学習済みセグメンテーションモデルと推論画像を指定します。# 本スクリプトは ultralytics_yolo11 のプロジェクトルートで実行してください。model_path = "./crack/train2/weights/best.pt"image_path = "./demo/crack-seg/test/images/3848.rf.eebe99038cd40502695607594e000258.jpg"
print("YOLO11-seg モデルの推論を開始します。")print(f"入力モデル: {model_path}")print(f"入力画像: {image_path}")
model = YOLO(model_path) # 学習済みモデルを読み込みます。
# モデル推論を実行します。results = model(image_path)
for result in results: boxes = result.boxes # 検出ボックスの出力です。 masks = result.masks # セグメンテーションマスクの出力です。 keypoints = result.keypoints # 姿勢推定キーポイントの出力です。 probs = result.probs # 画像分類の確率出力です。 obb = result.obb # 回転ボックスの出力です。 result.show() # 画面に表示します。 result.save(filename="result.jpg") # 推論結果を保存します。
print("YOLO11-seg モデルの推論が完了しました。")执行命令如下。
python predict-seg.py执行结果如下图所示。

图3-6 PC 端推理执行日志

图3-7 PC 端 YOLOv11-seg 推理结果图像
3.5 PT 模型转换为 ONNX
在 PC 端执行 export.py,将 PT 模型导出为 ONNX 或 RKNN 转换用格式。代码示例中指定 format = 'rknn'。
from ultralytics import YOLO
if __name__ == '__main__': # エクスポート形式を指定します。 # 選択可能な形式例: 'torchscript', 'onnx', 'openvino', 'engine', 'coreml', # 'saved_model', 'pb', 'tflite', 'edgetpu', 'tfjs', 'paddle', 'ncnn', 'rknn' format = 'rknn'
# 学習済みモデルを指定します。 # 本スクリプトは ultralytics_yolo11 のプロジェクトルートで実行してください。 weight = "./crack/train2/weights/best.pt" # .pt または yolo11-seg.yaml を指定できます。
print("YOLO11-seg モデルのエクスポートを開始します。") print(f"入力モデル: {weight}") print(f"エクスポート形式: {format}")
model = YOLO(weight) results = model.export(format=format)
print("YOLO11-seg モデルのエクスポートが完了しました。")执行命令如下。
python export.py执行结果如下图所示。

图3-8 将 PT 模型导出为 RKNN 转换用格式的终端输出
转换后的模型文件会保存在同一目录下。

图3-9 导出后生成的 best.onnx 文件
4. RKNN-Toolkit 模型转换
4.1 RKNN-Toolkit 模型转换环境构建
要在 CSUN RV1126B 开发板上运行 ONNX 模型,需要先转换为 RKNN 模型。因此,需要提前构建 RKNN-Toolkit 模型转换工具环境。TensorFlow、TensorFlow Lite、Caffe、Darknet 等模型也可以用类似流程转换,本教程以 ONNX 模型为例进行说明。
模型转换环境的构建方法请参考《AI 模型转换环境构建指南》。
4.2 ONNX 模型转换为 RKNN 模型
本文支持 .rknn 扩展名模型的评估与执行。TensorFlow、TensorFlow Lite、Caffe、Darknet、ONNX、PyTorch 等常见训练模型,可使用提供的 RKNN-Toolkit2 转换为 RKNN 模型。其他框架训练的模型也可以先转换为 ONNX,再转换为 RKNN。
详细转换方法请参考《RKNN 模型转换教程示例》。
4.2.1 模型转换包解压
模型转换 Demo 从“2. 资料下载”下载并解压。
cd /data/project/sales/csun/rv1126b/jp/AI/demo/Tutorial/yolov11-seg/03-model_convertunzip quant_dataset.ziptar -xJf yolov11_seg_model_convert.tar.xz
图4-1 模型转换包解压后的目录结构
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/yolov11-seg/03-model_convert/yolov11_seg_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 = 'best.onnx'ONNX_MODEL = 'yolov11s.onnx'DATASET = './pic_path.txt'RKNN_MODEL = './yolov11s_rv1126b.rknn'# RKNN_MODEL = './dog_rope.rknn'QUANTIZE_ON = True
if __name__ == '__main__':
# Create RKNN object rknn = RKNN(verbose=False)
# Pre-process config print('--> Config model') rknn.config(mean_values=[[0, 0, 0]], std_values=[ [255, 255, 255]], target_platform='rv1126b') print('done')
# Load model print('--> Loading model') ret = rknn.load_onnx(model=ONNX_MODEL) if ret != 0: print('Load model failed!') exit(ret) print('done')
# Build model print('--> Building model') ret = rknn.build(do_quantization=QUANTIZE_ON, dataset=DATASET) if ret != 0: print('Build model failed!') exit(ret) print('done')
# Export rknn model print('--> Export rknn model') ret = rknn.export_rknn(RKNN_MODEL) if ret != 0: print('Export rknn model failed!') exit(ret) print('done')
# Release rknn.release()将 best.onnx 放到模型转换目录,并执行以下命令进行模型转换。
cp ../../02-training/ultralytics_yolo11/crack/train2/weights/best.onnx ./python rknn_convert.py
图4-5 ONNX 模型转换为 RKNN 模型的日志
转换成功后,会生成可在 CSUN RV1126B 开发板上运行的 RKNN 模型。

图4-6 转换后生成的 RKNN 模型文件
5. YOLOv11-seg 模型部署
5.1 模型部署示例说明
本节说明将 YOLOv11-seg 模型部署到 RV1126B 开发板的步骤。本文使用的模型是仅经过简单训练的示例模型,不保证模型精度。
5.2 准备工作
5.2.1 硬件准备
准备 RV1126B 开发板、Type-C 数据线、LAN 网线,并通过 MobaXterm 使用 SSH 登录 RV1126B 开发板。详细步骤请参考入门指南。
通过 LAN 网线连接。

图5-1 通过 LAN 网线连接的网络结构
通过 Type-C 串口线连接。

图5-2 通过 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/yolov11-seg/04-AI_deploytar -xJf yolov11_seg_C_demo.tar.xz解压后的结果如下图所示。

图5-4 AI 部署示例程序解压结果
在 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/yolov11-seg/04-AI_deploy/yolov11_seg_C_demo/./build.sh
图5-5 YOLOv11-seg 示例程序编译结果
编译成功后,将执行程序目录 yolov11_seg_demo_release/ 复制到 RV1126B 开发板的 /userdata 目录。
cp yolov11_seg_demo_release/ /mnt/userdata/ -rf5.4 在开发板上运行 YOLOv11-seg 模型
通过串口调试或 SSH 调试进入板端 shell,并进入示例程序部署目录。
cd /userdata/yolov11_seg_demo_release/示例程序执行命令如下。
chmod 777 yolov11_seg_demo./yolov11_seg_demo yolov11n_seg_rv1126b.rknn crack.jpg执行结果如下图所示。

图5-6 开发板上的 YOLOv11-seg demo 执行结果
算法执行时间约为 117 ms。

图5-7 开发板上的算法执行时间
执行后,可以在 RV1126B 编译环境中通过以下命令获取测试图像。
cp /mnt/userdata/yolov11_seg_demo_release/result.jpg .cp /mnt/userdata/yolov11_seg_demo_release/mask_bgr.jpg .
图5-8 将推理结果图像复制到 PC 端的命令

图5-9 板端生成的分割掩码图像

图5-10 板端生成的裂缝分割结果图像
至此,YOLOv11-seg 模型已在开发板上正常运行。