Ultralytics YOLO27:

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

組み込みデバイス、特に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テクノロジーを支える高度なシステムオンチップ(SoCs)を設計しています。ARMベースのアーキテクチャ、内蔵ニューラルプロセッシングユニット(NPUs)、高解像度マルチメディアのサポートにより、Rockchip SoCsはタブレット、スマートTV、IoTシステム、エッジAIアプリケーションなどのデバイスで最先端のパフォーマンスを実現します。Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas、Banana Piなどの企業は、Rockchip SoCsをベースとするさまざまな製品を提供しており、多様な市場での普及と影響力をさらに高めています。

RKNN Toolkit#

RKNN Toolkitは、Rockchipが提供するツールとライブラリのセットであり、自社のハードウェアプラットフォームへのディープラーニングモデルのデプロイを容易にします。RKNN、つまりRockchipニューラルネットワークは、これらのツールで使用される独自形式です。RKNNモデルは、RockchipのNPU(ニューラルプロセッシングユニット)が提供するハードウェアアクセラレーションを最大限に活用するよう設計されており、RK3588、RK3566、RV1103、RV1106などのRockchip搭載システムでAIタスクの高いパフォーマンスを実現します。

RKNNモデルの主な機能#

RKNNモデルをRockchipプラットフォームにデプロイすると、次のような利点があります。

  • NPU向けに最適化: RKNNモデルはRockchipのNPU上で実行するために特別に最適化されており、最大限のパフォーマンスと効率を確保します。
  • 低レイテンシ: RKNN形式は推論レイテンシを最小限に抑えます。これはエッジデバイス上のリアルタイムアプリケーションにとって重要です。
  • プラットフォーム固有のカスタマイズ: RKNNモデルは特定のRockchipプラットフォーム向けに調整できるため、ハードウェアリソースをより有効に活用できます。
  • 電力効率: 専用NPUハードウェアを活用することで、RKNNモデルはCPUやGPUベースの処理よりも消費電力を抑え、ポータブルデバイスのバッテリー駆動時間を延長します。

RockchipハードウェアにOSをフラッシュする#

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

サポートされるタスク#

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

タスクYOLOv8YOLO11YOLO26
検出
セグメンテーション
セマンティック
深度
分類
ポーズ
OBB

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

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

注記

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

インストール#

必要なパッケージをインストールするには、次を実行します。

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

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

使用方法#

注記

FP16エクスポートはすべてのタスクでサポートされています。INT8エクスポートは現在検出モデルのみでサポートされており、今後のアップデートでさらに多くのタスクがサポートされる予定です。そのため、RV1103やRV1106などのINT8専用ターゲットでは検出モデルのみがエクスポートされます。

RKNN形式は、エクスポート予測検証モードをサポートします。推論と検証は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 (detection models only)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml")  # creates 'yolo26n_rknn_model'
推論
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ターゲットを指定します。rk3588rk3576rk3566rk3568rk3562rk2118rv1126bはFP16(quantize=16または未設定)とINT8(quantize=8)をサポートします。rv1103rv1106rv1103brv1106bは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はデフォルトの検出キャリブレーションデータセット(coco8.yaml)を選択します。
fractionfloatint、またはlist1.0キャリブレーションサブセットを、比率、画像枚数、または [train, val, test] の比率/枚数として指定します。2項目のリストでは、test はすべて使用され、0 はスキップされます。
devicestrNoneエクスポートに使用するデバイスを指定します: GPU(device=0)、CPU(device=cpu)。
ヒント

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

エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントページをご覧ください。

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

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

インストール#

必要なパッケージをインストールするには、次を実行します。

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

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

注記

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

RKNNエクスポートのスクリーンショット

実世界での用途#

YOLO26 RKNNモデルを搭載したRockchipデバイスは、さまざまな用途に使用できます。

  • スマート監視: 低消費電力でセキュリティ監視向けの効率的な物体検出システムをデプロイします。
  • 産業オートメーション: 組み込みデバイス上で品質管理と欠陥検出を直接実装します。
  • 小売分析: クラウドに依存せず、顧客行動と在庫管理をリアルタイムで追跡します。
  • スマート農業: 農業におけるコンピュータービジョンを使用して、作物の健全性を監視し、害虫を検出します。
  • 自律ロボティクス: リソースに制約のあるプラットフォーム上で、ビジョンベースのナビゲーションと障害物検出を実現します。

ベンチマーク#

以下のYOLO26ベンチマークは、Ultralyticsチームが、Rockchip RK3588をベースとするRadxa Rock 5B上で、速度と精度を測定するrknnモデル形式を使用して実施しました。

性能
モデル形式Precisionステータスサイズ (MB)mAP50-95(B)推論時間(ms/画像)
YOLO26nrknnFP167.20.47758.5
YOLO26nrknnINT84.10.46341.2
YOLO26srknnFP1621.00.56993.8
YOLO26srknnINT812.00.55461.9
YOLO26mrknnFP1643.00.608226.3
YOLO26mrknnINT822.00.603122.0
YOLO26lrknnFP1653.00.628264.7
YOLO26lrknnINT828.00.617145.3
YOLO26xrknnFP16113.00.664655.4
YOLO26xrknnINT858.00.649287.4

ultralytics 8.4.60でベンチマークを実施

注記

上記のベンチマークの検証はCOCO128データセットを使用して実施されました。推論時間には前処理および後処理は含まれません。

まとめ#

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

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

使用方法の詳細については、RKNN公式ドキュメントをご覧ください。

また、その他のUltralytics YOLO26インテグレーションについて詳しく知りたい場合は、インテグレーションガイドページをご覧ください。役立つリソースや知見が多数掲載されています。

FAQ#

  • Ultralytics Pythonパッケージのexport()メソッドを使用するか、コマンドラインインターフェース(CLI)経由で、Ultralytics YOLOモデルをRKNN形式に簡単にエクスポートできます。RockchipなどのARM64デバイスではこの操作がサポートされていないため、エクスポート処理にはx86ベースのLinux PCを使用してください。name引数を使用して、rk3588rk3566などのRockchipターゲットプラットフォームを指定できます。この処理により、Rockchipデバイスへのデプロイに対応した最適化済みRKNNモデルが生成され、そのニューラルプロセッシングユニット(NPU)を活用して推論を高速化できます。

    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のニューラルプロセッシングユニット(NPUs)のハードウェアアクセラレーション機能を活用するために特別に設計されています。この最適化により、同じハードウェア上でONNXやLiteRTなどの汎用モデル形式を実行する場合と比べて、推論速度が大幅に向上し、レイテンシが低減します。RKNNモデルを使用するとデバイスのリソースをより効率的に利用できるため、消費電力が低下し、全体的なパフォーマンスが向上します。これは、エッジデバイス上のリアルタイムアプリケーションで特に重要です。Ultralytics YOLOモデルをRKNNに変換することで、RK3588、RK3566などのRockchip SoCsを搭載したデバイス上で最適なパフォーマンスを実現できます。

  • RKNNモデルは、Rockchipプラットフォームと内蔵NPU向けに特別に最適化されています。ソフトウェアエミュレーションを使用すれば技術的には他のプラットフォーム上でもRKNNモデルを実行できますが、Rockchipデバイスが提供するハードウェアアクセラレーションの利点は得られません。他のプラットフォームで最適なパフォーマンスを得るには、Ultralytics YOLOモデルを各プラットフォーム向けに設計された形式、たとえばNVIDIA GPU向けのTensorRTや、Google Coralデバイス向けのEdge TPUにエクスポートすることを推奨します。Ultralyticsは幅広い形式へのエクスポートをサポートしており、さまざまなハードウェアアクセラレーターとの互換性を確保できます。

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

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

コメント