YOLOv11訓練デプロイガイド
文書情報
本チュートリアルでは、物体検出モデルYOLOv11のトレーニングおよびCSUN RV1126B基板へのデプロイについて説明します。
| 項目 | 内容 |
|---|---|
| 文書名 | YOLOv11訓練デプロイガイド |
| 会社 | 株式会社日昇テクノロジー |
| URL | http://www.dragonwake.com |
| info@dragonwake.com | |
| 作成日 | 2026/06/06 |
| バージョン | Ver1.0 |
| 修正内容 | 新規作成 |
修正履歴
| NO | バージョン | 修正内容 | 修正日 |
|---|---|---|---|
| 1 | Ver1.0 | 新規作成 | 2026/06/06 |
この文書の情報は、文書を改善するため、事前の通知なく変更されることがあります。最新版は弊社ホームページからご参照ください。
(株)日昇テクノロジーの書面による許可のない複製は、いかなる形態においても厳重に禁じられています。
1. YOLOv11概要
YOLO11シリーズは、YOLOファミリーの中でも最先端(SOTA)、軽量、高効率のモデルであり、従来モデルを上回る性能を備えています。YOLOv8を公開したUltralyticsによって作成されており、YOLOシリーズの流れを継承する新しいモデルです。
本手順書では、物体検出アルゴリズムYOLO11の学習、およびCSUN RV1126B基板へのデプロイ手順について説明します。データアノテーション方法については、過去の記事を参照してください。

図1-1 YOLOv11訓練・変換・デプロイ全体フロー。データセットの準備から、訓練、モデル変換、デプロイまでの工程を示します。
2. 資料ダウンロード
本マニュアルに必要な資料およびソースコードは、次のリンクからダウンロードしてください。
https://dl.dragonwake.com/download/rv1126b/AI/demo/yolov11/AIDemo_yolov11_All.zip
解凍後の主な構成は次のとおりです。
|-- 01-data データセット|-- 02-training トレーニング用のソース|-- 03-model_convert AIモデル変換用のソース|-- 04-AI_deploy AIモデルデプロイ用のソース
図2-1 AIDemo_yolov11_All.zipを展開した後のディレクトリ構成を示します。
3. YOLOv11物体検出アルゴリズムの学習
YOLOv11の学習ソースコードは、エクスポート部分がUltralytics社のGitHub版から一部変更されています。そのため、本資料で指定する学習ソースコードの利用を推奨します。
3.1 データセットの準備
YOLO11の学習を開始する前に、VOC2007などの学習用データを準備します。
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html
VOC2007データを訓練セットとテストセットの2つのディレクトリへ分割します。以下では、原始データを 01-data ディレクトリへ配置します。
mkdir -p /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/01-datacd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/01-datawget https://www.robots.ox.ac.uk/~vgg/data/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tartar -xf VOCtrainval_06-Nov-2007.tar
図3-1 VOC2007データセットを展開した後のディレクトリ構成を示します。
3.2 VOCからYOLO形式への変換
データを準備した後、data/voc_2_yolo.py スクリプトを使用してVOC形式のデータをYOLO形式へ変換します。変換後のデータは、元データと同階層の yolo_datas ディレクトリへ保存されます。
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/02-training/ultralytics_yolo11rm -rf demo/voc2007/datas/yolo_dataspython data/voc_2_yolo.py3.3 訓練パラメータの設定
データ変換後、モデル訓練用の data.yaml、default.yaml、yolo11.yaml を設定します。
| ファイル | 内容 |
|---|---|
data.yaml | 学習データと検証データのパス、クラス数、クラス名を指定します。 |
default.yaml | YOLO11の訓練パラメータを指定します。必要に応じて調整できます。 |
yolo11.yaml | YOLO11のモデル構造を定義するファイルです。モデル訓練時にはクラス数を変更する必要があります。 |
3.4 モデル訓練
上記の手順が完了したら、train.py を開き、data.yaml、default.yaml、yolo11.yaml のパスを設定します。
from ultralytics import YOLOimport os
# OMP 関連エラー(例: "OMP: Hint This means...")が発生する場合に使用します。os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
if __name__ == '__main__': # 学習設定ファイル、データセット設定ファイル、モデル構造ファイルを指定します。 # 本スクリプトは ultralytics_yolo11 のプロジェクトルートで実行してください。 cfg = "./demo/voc2007/cfg/default.yaml" data = "./demo/voc2007/cfg/data.yaml" weight = "./demo/voc2007/cfg/yolo11.yaml" # .pt または yolo11.yaml を指定できます。
print("YOLO11 物体検出モデルの学習を開始します。") print(f"学習設定ファイル: {cfg}") print(f"データセット設定ファイル: {data}") print(f"モデルファイル: {weight}")
model = YOLO(weight) results = model.train( data=data, cfg=cfg )
print("YOLO11 物体検出モデルの学習が完了しました。")訓練を開始するには、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/02-training/ultralytics_yolo11python train.py
図3-2 YOLOv11の訓練開始時に表示されるモデル構造と学習ログを示します。
訓練完了時の出力は次のとおりです。

図3-3 YOLOv11の訓練完了時に表示される評価結果を示します。
注意: 本資料の訓練処理はフロー説明のためのサンプルです。以降のモデル推論とモデル変換では、YOLOv11標準の80クラスモデルを使用します。
生成されたモデルファイルは次のとおりです。
./runs/train/voc2007_yolo11s2/weights/best.pt
図3-4 訓練後に生成されたbest.ptおよびlast.ptの出力ディレクトリを示します。
3.5 PC側でのモデル推論
学習が完了すると、default.yaml で設定した project ディレクトリに学習過程と、検証セットで最も良い結果を得たモデルが保存されます。predict.py を実行すると、モデルの効果を初期確認できます。
predict.py では、モデルパス、入力画像、推論デバイス、画像サイズを設定し、画像前処理、モデル推論、結果描画を行います。実際のモデルファイルパスを確認してから実行してください。
if __name__ == '__main__': random.seed(0) device_ = "cpu" imgsz = (640, 640)
# 学習済みモデルと推論画像を指定します。 # 本スクリプトは ultralytics_yolo11 のプロジェクトルートで実行してください。 model_path = "./runs/train/voc2007_yolo11s2/weights/best.pt" img_path = "./demo/images/bus.jpg" is_dir = os.path.isdir(img_path)
print("YOLO11 モデルの推論を開始します。") print(f"使用デバイス: {device_}") print(f"入力モデル: {model_path}") print(f"入力画像パス: {img_path}")
device = select_device(device_) model = YOLO(model_path)
# モデル推論を実行し、結果画像を入力画像と同じディレクトリへ保存します。 # 単一画像を指定した場合は result.jpg として保存します。実行コマンドは次のとおりです。
python predict.py
図3-5 predict.pyを実行した際の推論ログを示します。

図3-6 PC側で実行したYOLOv11物体検出の結果画像を示します。
3.6 PTモデルからONNXへの変換
PC側で export.py を実行し、PTモデルをONNXまたはRKNN変換用フォーマットへエクスポートします。コード例では format = 'rknn' を指定しています。
from ultralytics import YOLO
if __name__ == '__main__': # エクスポート形式を指定します。 # 本プロジェクトの YOLO11 では、RKNN 変換用に rknn 形式を指定します。 # 選択可能な形式例: 'torchscript', 'onnx', 'openvino', 'engine', 'coreml', # 'saved_model', 'pb', 'tflite', 'edgetpu', 'tfjs', 'paddle', 'ncnn', 'rknn' format = 'rknn'
# 学習済みモデルを指定します。 # default.yaml の project が voc2007 の場合、通常は以下のパスに best.pt が保存されます。 # 必要に応じて、実際の学習結果ディレクトリに合わせて変更してください。 weight = "./runs/train/voc2007_yolo11s2/weights/best.pt" # .pt または yolo11.yaml を指定できます。
print("YOLO11 モデルのエクスポートを開始します。") print(f"入力モデル: {weight}") print(f"エクスポート形式: {format}")
model = YOLO(weight) results = model.export(format=format)
print("YOLO11 モデルのエクスポートが完了しました。")実行コマンドは次のとおりです。
python export.py
図3-7 export.pyを実行し、PTモデルをエクスポートした際のログを示します。
変換後のモデルファイルは同じディレクトリに保存されます。

図3-8 エクスポート後に生成された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/03-model_convertunzip quant_dataset.ziptar -xJf yolov11_model_convert.tar.xz
図4-1 モデル変換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/yolov11/03-model_convert/yolov11_model_convertgen_list.py を実行して、量子化画像リストを生成します。
python gen_list.py
図4-3 gen_list.pyを実行して量子化画像リストを生成したログを示します。
生成された量子化画像リストは、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__': # RKNN オブジェクトを作成します。 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()best.onnx を yolov11s.onnx にリネームして yolov11_model_convert ディレクトリへ配置し、以下のコマンドでモデル変換を実行します。
cp ../../02-training/ultralytics_yolo11/runs/train/voc2007_yolo11s2/weights/best.onnx yolov11s.onnxpython rknn_convert.py
図4-5 rknn_convert.pyによるRKNN変換実行ログを示します。
変換に成功すると、CSUN RV1126B基板で実行可能なRKNNモデルが生成されます。

図4-6 変換後に生成されたyolov11s_rv1126b.rknnファイルを示します。
5. YOLOv11モデルデプロイ
5.1 モデルデプロイ例の説明
本節では、YOLOv11モデルをRV1126B基板へデプロイする手順について説明します。本資料の訓練モデルは簡単なサンプル用モデルであり、モデル精度は保証しません。
5.2 準備作業
5.2.1 ハードウェア準備
RV1126B基板、Type-Cデータケーブル、LANケーブルを用意し、MobaXtermでSSHによりRV1126B基板へログインします。詳しくは入門ガイドを参照してください。
LANケーブルで接続する場合は次の構成になります。

図5-1 LANケーブルを使用したPC、ルーター、RV1126B基板の接続構成を示します。
シリアルケーブル(Type-C)で接続する場合は次の構成になります。

図5-2 Type-Cシリアルケーブルを使用したPCとRV1126B基板の接続方法を示します。
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/04-AI_deploytar -xJf yolov11_detect_C_demo.tar.xz
図5-4 yolov11_detect_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/yolov11/04-AI_deploy/yolov11_detect_C_demo/./build.sh
図5-5 YOLOv11 Cデモをビルドした際の端末出力を示します。
ビルド成功後、実行プログラムディレクトリ yolov11_detect_demo_release/ をRV1126B基板の /userdata ディレクトリへコピーします。
cp yolov11_detect_demo_release/ /mnt/userdata/ -rf5.4 開発ボードでYOLOv11モデルを実行
シリアルデバッグまたはSSHデバッグによりボード側シェルへ入り、サンプルプログラムのデプロイ先へ移動します。
cd /userdata/yolov11_detect_demo_releaseサンプルプログラムの実行コマンドは次のとおりです。
chmod 777 yolov11_detect_demo./yolov11_detect_demo
図5-6 RV1126B基板上でYOLOv11デモを実行したログを示します。
アルゴリズム実行時間は約40 msです。

図5-7 基板上でのアルゴリズム実行時間のログを示します。
実行結果は、RV1126Bコンパイル環境から以下のコマンドで取得できます。
cp /mnt/userdata/yolov11_detect_demo_release/result.jpg .
図5-8 基板側の推論結果画像をPC側へコピーするコマンドを示します。

図5-9 RV1126B基板で生成されたYOLOv11物体検出結果画像を示します。
以上で、YOLOv11物体検出サンプルはボード上で正常に実行されました。