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 モデル変換環境の構築
ONNX モデルを CSUN RV1126B 基板で実行するには、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_convertgen_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 デバッグによりボード側シェルへ入り、サンプルプログラムのデプロイ先へ移動します。
cd /userdata/yolov11_seg_demo_release/サンプルプログラムの実行コマンドは次のとおりです。
chmod 777 yolov11_seg_demo./yolov11_seg_demo yolov11n_seg_rv1126b.rknn crack.jpg実行結果は次の図に示します。

図5-6 開発ボード上でのYOLOv11-segデモ実行結果
アルゴリズム実行時間は約 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 モデルはボード上で正常に実行されました。