YOLO Vision 2026:

Rockchip RKNNモデルのUltralytics YOLO26エクスポート#

組み込みデバイス、特に Rockchip プロセッサを搭載したデバイス上でコンピュータビジョンのモデルをデプロイする場合、互換性のあるモデルフォーマットを用意することが不可欠です。Ultralytics YOLO26 モデルを RKNN フォーマットにエクスポートすることで、最適化されたパフォーマンスと Rockchip ハードウェアとの互換性が保証されます。このガイドでは、浮動小数点および INT8 量子化されたエクスポートを含め、YOLO26 モデルを RKNN フォーマットに変換する手順を説明し、Rockchip プラットフォーム上での効率的なデプロイを可能にします。

Rockchip RKNN export for NPU deployment

注意

このガイドは、Rockchip RK3588 をベースにした Radxa Rock 5B および Rockchip RK3566 をベースにした Radxa Zero 3W でテストされています。RK3576、RK3568、RK3562、RK2118、RV1126B、RV1103、RV1106、RV1103B、RV1106B など、rknn-toolkit2 をサポートする他の Rockchip ベースのデバイスでも動作することが想定されています。RV1103 や RV1106 などの INT8 専用のターゲットでは、quantize=8 が必要です。

Rockchipとは#

汎用的で電力効率に優れたソリューションの提供で知られる Rockchip は、幅広い民生用電子機器、産業用アプリケーション、AI テクノロジーを駆動する高度な System-on-Chip (SoC) を設計しています。ARM ベースのアーキテクチャ、内蔵の Neural Processing Units (NPUs)、および高解像度マルチメディアサポートにより、Rockchip の SoC はタブレット、スマート TV、IoT システム、edge AI applications などのデバイスで最先端のパフォーマンスを実現します。Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas、Banana Pi などの企業が Rockchip SoC をベースにしたさまざまな製品を提供しており、多様な市場における影響力とリーチをさらに広げています。

RKNN Toolkit#

RKNN Toolkit は、ハードウェアプラットフォーム上でのディープラーニングモデルのデプロイを容易にするために Rockchip が提供する一連のツールとライブラリです。RKNN (Rockchip Neural Network) は、これらのツールで使用される独自のフォーマットです。RKNN モデルは、Rockchip の NPU (Neural Processing Unit) が提供するハードウェアアクセラレーションを最大限に活用するように設計されており、RK3588、RK3566、RV1103、RV1106、およびその他の Rockchip 搭載システムなどのデバイスで AI タスクの高性能を実現します。

RKNNモデルの主な特長#

RKNNモデルは、Rockchipプラットフォームへのデプロイにおいていくつかの利点を提供します。

  • NPU向け最適化: RKNNモデルはRockchipのNPUで動作するように特化して最適化されており、最大限のパフォーマンスと効率を保証します。
  • 低レイテンシ: RKNN形式は推論レイテンシを最小限に抑えるため、エッジデバイスでのリアルタイムアプリケーションに不可欠です。
  • プラットフォーム固有のカスタマイズ: RKNNモデルは特定のRockchipプラットフォームに合わせて調整可能であり、ハードウェアリソースをより有効に活用できます。
  • 電力効率: 専用のNPUハードウェアを活用することで、RKNNモデルはCPUやGPUベースの処理よりも消費電力を抑え、ポータブルデバイスのバッテリー寿命を延ばします。

RockchipハードウェアへのOSフラッシュ#

Rockchipベースのデバイスを入手した後の最初のステップは、ハードウェアが動作環境で起動できるようにOSをフラッシュすることです。本ガイドでは、テストに使用したRadxa Rock 5BとRadxa Zero 3Wの2つのデバイスの入門ガイドを紹介します。

サポートされているタスク#

RKNNエクスポートは、7つのUltralyticsタスクすべてをサポートしています。セマンティックセグメンテーションと深度推定は、それらのヘッドを搭載している唯一のファミリーであるYOLO26でのみ利用可能です。

タスクYOLOv8YOLO11YOLO26
検出 (Detect)
Segment
Semantic
Depth
Classify
ポーズ
OBB

RKNNへのエクスポート: YOLO26モデルの変換#

Ultralytics YOLO26モデルをRKNN形式にエクスポートし、エクスポートされたモデルで推論を実行します。

注意

Rockchipベースのデバイス (ARM64) でのエクスポートはサポートされていないため、モデルをRKNNにエクスポートするには必ずX86ベースのLinux PCを使用してください。

インストール#

必要なパッケージをインストールするには、以下を実行してください。

インストール
# Install the required package for YOLO26
pip install ultralytics

インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO26に必要なパッケージのインストール中に問題が発生した場合は、一般的な問題ガイドを参照して解決策とヒントを確認してください。

使用方法#

RKNN フォーマットは、ExportPredict、および Validate モードをサポートしています。推論と検証は Rockchip NPU ハードウェア上で実行されます。モデルをエクスポートした後、エクスポートされたモデルをロードして推論を実行するか、精度を検証します。デフォルトでは、RKNN エクスポートは FP16 対応の Rockchip ターゲットに対して浮動小数点ビルドパス (quantize=16) を使用します。キャリブレーションデータを使用して INT8 量子化された RKNN モデルをビルドするには、quantize=8 を使用します。RKNN エクスポートには個別の FP32 モードはありません。FP16 のデフォルトでは FP32 は要求されません。

エクスポート
from ultralytics import YOLO

# Load a YOLO26 model (replace with any supported task model)
model = YOLO("yolo26n-obb.pt")

# Export the model to RKNN format
model.export(format="rknn", name="rk3588")  # creates '/yolo26n-obb_rknn_model'

# Export an INT8-quantized RKNN model with calibration data
model.export(format="rknn", name="rk3588", quantize=8, data="dota8.yaml")
予測
from ultralytics import YOLO

# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")

# Run inference
results = model("https://ultralytics.com/images/boats.jpg")
検証
from ultralytics import YOLO

# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")

# Validate accuracy on the DOTA8 dataset
metrics = model.val(data="dota8.yaml")

エクスポートの引数#

引数タイプデフォルト説明
formatstr'rknn'エクスポートされたモデルのターゲット形式であり、Rockchipデプロイ環境との互換性を定義します。
imgszint または tuple640モデル入力の希望する画像サイズ。正方形の画像の場合は整数、特定の寸法の指定にはタプル (height, width) を使用できます。
batchint1エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートされたモデルが同時に処理する画像の最大数を指定します。
namestr'rk3588'Rockchip ターゲットを指定します。rk3588rk3576rk3566rk3568rk3562rk2118、および rv1126b は FP16 (quantize=16 または未設定) と INT8 (quantize=8) をサポートします。rv1103rv1106rv1103b、および rv1106b は INT8 専用 (quantize=8 または未設定) です。
quantizeint または strNone量子化精度: 未設定または 16 は FP16 対応ターゲットに対して FP16 をビルドします。未設定の場合は INT8 専用ターゲットに対して自動的に INT8 を有効にします。8 は INT8 をビルドします。RKNN エクスポートには個別の FP32 モードはありません。非推奨となった half/int8 フラグを置き換えます。
simplifyboolTrueonnxslim を使用して、中間ONNXグラフを簡素化します。
opsetintNone中間ONNXグラフのONNX opsetバージョンを指定します。設定されていない場合はデフォルトで19が使用され、19を超える値は19に引き下げられます。
datastrNoneINT8キャリブレーションに使用されるデータセットYAML。分類の場合は、データセットディレクトリまたは組み込みのデータセット名を指定します。quantize=8を指定して省略した場合、Ultralyticsはモデルタスクのデフォルトのキャリブレーションデータセットを選択します。
fractionfloat1.0INT8量子化に使用するキャリブレーション画像の割合。
devicestrNoneエクスポートするデバイスを指定します: GPU (device=0)、CPU (device=cpu)。
ヒント

RKNNへのエクスポート時には、必ずx86 Linuxマシンを使用してください。

エクスポートプロセスの詳細については、Ultralytics documentation page on exporting をご覧ください。

エクスポートされたYOLO26 RKNNモデルのデプロイ#

Ultralytics YOLO26モデルをRKNN形式に正常にエクスポートしたら、次はRockchipベースのデバイスにこれらのモデルをデプロイします。

インストール#

必要なパッケージをインストールするには、以下を実行してください。

インストール
# Install the required package for YOLO26
pip install ultralytics

インストール後、上記の Usage セクションに示されているとおりに Rockchip デバイス上で推論と検証を実行します。エクスポートされた _rknn_modelYOLO(...) で直接ロードされます。

注意

RKNN ランタイムバージョンが RKNN Toolkit バージョンと一致しないことを示すログメッセージが表示され、推論が失敗する場合は、/usr/lib/librknnrt.so を公式の librknnrt.so file に置き換えてください。

RKNN export screenshot

実際のアプリケーション#

YOLO26 RKNNモデルを搭載したRockchipデバイスは、さまざまなアプリケーションで使用できます。

  • スマート監視: 低消費電力でセキュリティ監視のための効率的なオブジェクト検出システムをデプロイします。
  • 産業オートメーション: 組み込みデバイス上で品質管理と欠陥検出を直接実行します。
  • リテール分析: クラウドに依存せず、リアルタイムで顧客の行動や在庫管理を追跡します。
  • Smart Agriculture: computer vision in agriculture を使用して、作物の健康状態を監視し、害虫を検出します。
  • 自律型ロボット: リソースが限られたプラットフォーム上で、ビジョンベースのナビゲーションと障害物検出を可能にします。

ベンチマーク#

以下の YOLO26 ベンチマークは、Ultralytics チームによって、Rockchip RK3588 をベースにした Radxa Rock 5B 上で rknn モデルフォーマットを使用して速度と精度を測定して実行されました。

性能
モデル形式ステータスサイズ (MB)mAP50-95(B)推論時間 (ms/im)
YOLO26nrknn7.10.47965.7
YOLO26srknn20.90.57199.2
YOLO26mrknn42.50.610235.3
YOLO26lrknn52.10.630280.5
YOLO26xrknn112.20.666669.1

ultralytics 8.4.23 でベンチマークテストを実施

注意

上記のベンチマークの検証はCOCO128データセットを使用して行われました。推論時間には前処理/後処理は含まれていません。

要約#

本ガイドでは、Ultralytics YOLO26モデルをRKNN形式にエクスポートし、Rockchipプラットフォーム上でのデプロイを強化する方法を学びました。また、RKNN Toolkitと、エッジAIアプリケーションにRKNNモデルを使用する具体的な利点についても紹介しました。

Ultralytics YOLO26 と Rockchip の NPU テクノロジーの組み合わせにより、組み込みデバイス上で高度なコンピュータビジョンタスクを実行するための効率的なソリューションが提供されます。このアプローチにより、最小限の消費電力と高いパフォーマンスで、リアルタイムの object detection およびその他のビジョン AI アプリケーションが可能になります。

使用方法の詳細については、RKNN official documentation をご覧ください。

また、他の Ultralytics YOLO26 統合について詳しく知りたい場合は、integration guide page をご覧ください。役立つリソースや情報が豊富に揃っています。

よくある質問 (FAQ)#

  • Ultralytics Python パッケージの export() メソッドを使用するか、コマンドラインインターフェイス (CLI) を介して、Ultralytics YOLO モデルを RKNN フォーマットに簡単にエクスポートできます。Rockchip などの ARM64 デバイスはこの操作をサポートしていないため、エクスポートプロセスには x86 ベースの Linux PC を使用していることを確認してください。rk3588rk3566 などの name 引数を使用して、ターゲットの Rockchip プラットフォームを指定できます。このプロセスにより、Neural Processing Unit (NPU) を利用して高速化された推論を行い、Rockchip デバイスへのデプロイの準備が整った最適化された RKNN モデルが生成されます。

    from ultralytics import YOLO
    
    # Load your YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export to RKNN format for a specific Rockchip platform
    model.export(format="rknn", name="rk3588")
  • RKNNモデルは、RockchipのNPU(Neural Processing Unit)のハードウェアアクセラレーション機能を活用するために特別に設計されています。この最適化により、ONNXやLiteRTのような汎用モデルフォーマットを同じハードウェアで実行する場合と比較して、推論速度が大幅に向上し、レイテンシが短縮されます。RKNNモデルを使用することでデバイスのリソースをより効率的に利用できるため、消費電力が抑えられ、全体的なパフォーマンスが向上します。これはエッジデバイスでのリアルタイムアプリケーションにおいて特に重要です。UltralyticsのYOLOモデルをRKNNに変換することで、RK3588やRK3566などを搭載したRockchip SoCデバイス上で最適なパフォーマンスを実現できます。

  • RKNN モデルは、Rockchip プラットフォームとその統合 NPU 向けに特別に最適化されています。ソフトウェアエミュレーションを使用して他のプラットフォームで RKNN モデルを実行することは技術的に可能ですが、Rockchip デバイスが提供するハードウェアアクセラレーションの恩恵を受けることはできません。他のプラットフォームで最適なパフォーマンスを得るには、NVIDIA GPU 用の TensorRT や Google の Coral デバイス用の Edge TPU など、それらのプラットフォーム向けに特別に設計されたフォーマットに Ultralytics YOLO モデルをエクスポートすることをお勧めします。Ultralytics はさまざまなフォーマットへのエクスポートをサポートしており、多様なハードウェアアクセラレータとの互換性を確保しています。

  • RKNN フォーマットへの Ultralytics YOLO のエクスポートは、RK3588、RK3576、RK3566、RK3568、RK3562、RK2118、RV1126B など、浮動小数点 RKNN ビルドをサポートする Rockchip プラットフォームをサポートしています。また、RV1103、RV1106、RV1103B、RV1106B などの INT8 専用ターゲットに必要な、quantize=8 を使用した INT8 量子化された RKNN エクスポートもサポートしています。これらのプラットフォームは、Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas、Banana Pi などのメーカーのデバイスによく見られ、シングルボードコンピュータから産業用システムまで、さまざまな Rockchip 搭載デバイスに最適化された RKNN モデルをデプロイできます。

  • RKNN モデルは、Rockchip の NPU 向けに最適化されているため、一般的に Rockchip デバイス上では ONNX や LiteRT などの他のフォーマットよりも優れたパフォーマンスを発揮します。たとえば、Radxa Rock 5B (RK3588) でのベンチマークでは、RKNN フォーマットの YOLO26n が 65.7 ms/image の推論時間を達成し、他のフォーマットよりも大幅に高速であることが示されています。benchmarks section で示されているように、このパフォーマンスの優位性は、さまざまな YOLO26 モデルサイズで一貫しています。専用の NPU ハードウェアを活用することで、RKNN モデルはレイテンシを最小限に抑え、スループットを最大化するため、Rockchip ベースのエッジデバイスでのリアルタイムアプリケーションに最適です。

コメント