コンテンツにスキップ

YOLOv11訓練デプロイガイド

文書情報

本チュートリアルでは、物体検出モデルYOLOv11のトレーニングおよびCSUN RV1126B基板へのデプロイについて説明します。

項目内容
文書名YOLOv11訓練デプロイガイド
会社株式会社日昇テクノロジー
URLhttp://www.dragonwake.com
E-mailinfo@dragonwake.com
作成日2026/06/06
バージョンVer1.0
修正内容新規作成

修正履歴

NOバージョン修正内容修正日
1Ver1.0新規作成2026/06/06

この文書の情報は、文書を改善するため、事前の通知なく変更されることがあります。最新版は弊社ホームページからご参照ください。

(株)日昇テクノロジーの書面による許可のない複製は、いかなる形態においても厳重に禁じられています。

1. YOLOv11概要

YOLO11シリーズは、YOLOファミリーの中でも最先端(SOTA)、軽量、高効率のモデルであり、従来モデルを上回る性能を備えています。YOLOv8を公開したUltralyticsによって作成されており、YOLOシリーズの流れを継承する新しいモデルです。

本手順書では、物体検出アルゴリズムYOLO11の学習、およびCSUN RV1126B基板へのデプロイ手順について説明します。データアノテーション方法については、過去の記事を参照してください。

図1-1 YOLOv11訓練・変換・デプロイ全体フロー。データセットの準備から、訓練、モデル変換、デプロイまでの工程を示します。

図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を展開した後のディレクトリ構成を示します。

図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 ディレクトリへ配置します。

Terminal window
mkdir -p /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/01-data
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/01-data
wget https://www.robots.ox.ac.uk/~vgg/data/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
tar -xf VOCtrainval_06-Nov-2007.tar

図3-1 VOC2007データセットを展開した後のディレクトリ構成を示します。

図3-1 VOC2007データセットを展開した後のディレクトリ構成を示します。

3.2 VOCからYOLO形式への変換

データを準備した後、data/voc_2_yolo.py スクリプトを使用してVOC形式のデータをYOLO形式へ変換します。変換後のデータは、元データと同階層の yolo_datas ディレクトリへ保存されます。

Terminal window
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/02-training/ultralytics_yolo11
rm -rf demo/voc2007/datas/yolo_datas
python data/voc_2_yolo.py

3.3 訓練パラメータの設定

データ変換後、モデル訓練用の data.yamldefault.yamlyolo11.yaml を設定します。

ファイル内容
data.yaml学習データと検証データのパス、クラス数、クラス名を指定します。
default.yamlYOLO11の訓練パラメータを指定します。必要に応じて調整できます。
yolo11.yamlYOLO11のモデル構造を定義するファイルです。モデル訓練時にはクラス数を変更する必要があります。

3.4 モデル訓練

上記の手順が完了したら、train.py を開き、data.yamldefault.yamlyolo11.yaml のパスを設定します。

from ultralytics import YOLO
import 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開発環境で次のコマンドを実行します。

Terminal window
cd /home/csun/linuxshare/work/rv1126b/jp/embedded/images/develop_environment
./run.sh 2204
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/02-training/ultralytics_yolo11
python train.py

図3-2 YOLOv11の訓練開始時に表示されるモデル構造と学習ログを示します。

図3-2 YOLOv11の訓練開始時に表示されるモデル構造と学習ログを示します。

訓練完了時の出力は次のとおりです。

図3-3 YOLOv11の訓練完了時に表示される評価結果を示します。

図3-3 YOLOv11の訓練完了時に表示される評価結果を示します。

注意: 本資料の訓練処理はフロー説明のためのサンプルです。以降のモデル推論とモデル変換では、YOLOv11標準の80クラスモデルを使用します。

生成されたモデルファイルは次のとおりです。

./runs/train/voc2007_yolo11s2/weights/best.pt

図3-4 訓練後に生成されたbest.ptおよびlast.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 として保存します。

実行コマンドは次のとおりです。

Terminal window
python predict.py

図3-5 predict.pyを実行した際の推論ログを示します。

図3-5 predict.pyを実行した際の推論ログを示します。

図3-6 PC側で実行したYOLOv11物体検出の結果画像を示します。

図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 モデルのエクスポートが完了しました。")

実行コマンドは次のとおりです。

Terminal window
python export.py

図3-7 export.pyを実行し、PTモデルをエクスポートした際のログを示します。

図3-7 export.pyを実行し、PTモデルをエクスポートした際のログを示します。

変換後のモデルファイルは同じディレクトリに保存されます。

図3-8 エクスポート後に生成されたONNXモデルファイルの保存場所を示します。

図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. 資料ダウンロード》よりダウンロードして展開します。

Terminal window
cd /data/project/sales/csun/rv1126b/jp/AI/demo/Tutorial/yolov11/03-model_convert
unzip quant_dataset.zip
tar -xJf yolov11_model_convert.tar.xz

図4-1 モデル変換Demoを展開した後のファイル構成を示します。

図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デバイスをコンテナへマウントします。

Terminal window
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 RKNN-Toolkit2 Docker環境へ入った状態を示します。

4.2.3 量子化画像リストの生成

Docker環境内でモデル変換作業ディレクトリへ移動します。

Terminal window
cd /test/yolov11/03-model_convert/yolov11_model_convert

gen_list.py を実行して、量子化画像リストを生成します。

Terminal window
python gen_list.py

図4-3 gen_list.pyを実行して量子化画像リストを生成したログを示します。

図4-3 gen_list.pyを実行して量子化画像リストを生成したログを示します。

生成された量子化画像リストは、pic_path.txt として保存されます。

図4-4 生成されたpic_path.txtの保存場所を示します。

図4-4 生成されたpic_path.txtの保存場所を示します。

4.2.4 ONNXモデルをRKNNモデルへ変換

rknn_convert.py は、デフォルトでint8量子化を行います。主なスクリプト内容は次のとおりです。

import sys
from 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.onnxyolov11s.onnx にリネームして yolov11_model_convert ディレクトリへ配置し、以下のコマンドでモデル変換を実行します。

Terminal window
cp ../../02-training/ultralytics_yolo11/runs/train/voc2007_yolo11s2/weights/best.onnx yolov11s.onnx
python rknn_convert.py

図4-5 rknn_convert.pyによるRKNN変換実行ログを示します。

図4-5 rknn_convert.pyによるRKNN変換実行ログを示します。

変換に成功すると、CSUN RV1126B基板で実行可能なRKNNモデルが生成されます。

図4-6 変換後に生成されたyolov11s_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基板の接続構成を示します。

図5-1 LANケーブルを使用したPC、ルーター、RV1126B基板の接続構成を示します。

シリアルケーブル(Type-C)で接続する場合は次の構成になります。

図5-2 Type-Cシリアルケーブルを使用したPCとRV1126B基板の接続方法を示します。

図5-2 Type-Cシリアルケーブルを使用したPCとRV1126B基板の接続方法を示します。

5.2.2 開発環境の準備

本書を初めて読む場合は、『入門ガイド』を参照し、記載された手順に従ってコンパイル環境を構築してください。

PC側のUbuntuシステムで run.sh を実行し、RV1126Bコンパイル環境に入ります。

Terminal window
cd ~/develop_environment
./run.sh 2204

図5-3 RV1126B Docker開発環境に入った際の起動画面を示します。

図5-3 RV1126B Docker開発環境に入った際の起動画面を示します。

5.3 サンプルプログラムのビルド

ダウンロードしたパッケージをRV1126B Docker開発環境へ移動した後、次のコマンドを実行して展開します。

Terminal window
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/04-AI_deploy
tar -xJf yolov11_detect_C_demo.tar.xz

図5-4 yolov11_detect_C_demoを展開した後のディレクトリを示します。

図5-4 yolov11_detect_C_demoを展開した後のディレクトリを示します。

RV1126B Docker開発環境上でサンプルプログラム展開後のディレクトリに入り、ビルド操作を実行します。

Terminal window
sudo mount -t nfs -o vers=3,proto=tcp,mountproto=tcp,nolock,retrans=5,timeo=5 192.168.11.85:/ /mnt
cd /opt/linuxshare/work/rv1126b/jp/AI/demo/Tutorial/yolov11/04-AI_deploy/yolov11_detect_C_demo/
./build.sh

図5-5 YOLOv11 Cデモをビルドした際の端末出力を示します。

図5-5 YOLOv11 Cデモをビルドした際の端末出力を示します。

ビルド成功後、実行プログラムディレクトリ yolov11_detect_demo_release/ をRV1126B基板の /userdata ディレクトリへコピーします。

Terminal window
cp yolov11_detect_demo_release/ /mnt/userdata/ -rf

5.4 開発ボードでYOLOv11モデルを実行

シリアルデバッグまたはSSHデバッグによりボード側シェルへ入り、サンプルプログラムのデプロイ先へ移動します。

Terminal window
cd /userdata/yolov11_detect_demo_release

サンプルプログラムの実行コマンドは次のとおりです。

Terminal window
chmod 777 yolov11_detect_demo
./yolov11_detect_demo

図5-6 RV1126B基板上でYOLOv11デモを実行したログを示します。

図5-6 RV1126B基板上でYOLOv11デモを実行したログを示します。

アルゴリズム実行時間は約40 msです。

図5-7 基板上でのアルゴリズム実行時間のログを示します。

図5-7 基板上でのアルゴリズム実行時間のログを示します。

実行結果は、RV1126Bコンパイル環境から以下のコマンドで取得できます。

Terminal window
cp /mnt/userdata/yolov11_detect_demo_release/result.jpg .

図5-8 基板側の推論結果画像をPC側へコピーするコマンドを示します。

図5-8 基板側の推論結果画像をPC側へコピーするコマンドを示します。

図5-9 RV1126B基板で生成されたYOLOv11物体検出結果画像を示します。

図5-9 RV1126B基板で生成されたYOLOv11物体検出結果画像を示します。

以上で、YOLOv11物体検出サンプルはボード上で正常に実行されました。