Ultralytics YOLO27:
Get Started

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 SoCは、タブレット、スマートテレビ、IoTシステム、エッジAIアプリケーションなどのデバイスで最先端のパフォーマンスを実現します。Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas、Banana Piなどの企業は、Rockchip SoCを搭載したさまざまな製品を提供しており、多様な市場での普及と影響力をさらに広げています。

RKNN Toolkit#

RKNN Toolkitは、Rockchipが提供するツールとライブラリのセットで、同社のハードウェアプラットフォームへのディープラーニングモデルのデプロイを容易にします。RKNN(Rockchip Neural Network)は、これらのツールで使用される独自の形式です。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

# YOLO26モデルを読み込みます(サポートされている任意のタスクモデルに置き換えてください)
model = YOLO("yolo26n-obb.pt")

# モデルをRKNN形式にエクスポートします
model.export(format="rknn", name="rk3588")  # creates 'yolo26n-obb_rknn_model'

# キャリブレーションデータを使ってINT8量子化RKNNモデルをエクスポートします(検出モデルのみ)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml")  # creates 'yolo26n_rknn_model'
推論
from ultralytics import YOLO

# エクスポート済みRKNNモデルを読み込みます
model = YOLO("./yolo26n-obb_rknn_model")

# 推論を実行
results = model("https://ultralytics.com/images/boats.jpg")
検証
from ultralytics import YOLO

# エクスポート済みRKNNモデルを読み込みます
model = YOLO("./yolo26n-obb_rknn_model")

# DOTA8データセットで精度を検証します
metrics = model.val(data="dota8.yaml")

エクスポート引数#

引数種類デフォルト説明
formatstr'rknn'エクスポートするモデルのターゲット形式です。Rockchipのデプロイ環境との互換性を定義します。
imgszintまたはtuple640モデル入力の画像サイズです。正方形画像の場合は整数、特定のサイズの場合はタプル(height, width)を指定できます。
batchint1エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートモデルが同時に処理する画像の最大数を指定します。
namestr'rk3588'Rockchipのターゲットを指定します。rk3588、rk3576、rk3566、rk3568、rk3562、rk2118、rv1126bはFP16(quantize=16または未設定)とINT8(quantize=8)に対応しています。rv1103、rv1106、rv1103b、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はデフォルトの検出キャリブレーションデータセット(coco8.yaml)を選択します。
fractionfloat、int、または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_modelは、YOLO(...)で直接読み込めます。

注

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

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

実際の用途#

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

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

ベンチマーク#

以下のYOLO26ベンチマークは、Rockchip RK3588を搭載したRadxa Rock 5BでUltralyticsチームが実行し、rknnモデル形式の速度と精度を測定したものです。

性能
モデル形式適合率ステータスサイズ(MB)mAP50-95(B)推論時間(ms/im)
YOLO26nrknnFP16✅7.20.47758.5
YOLO26nrknnINT8✅4.10.46341.2
YOLO26srknnFP16✅21.00.56993.8
YOLO26srknnINT8✅12.00.55461.9
YOLO26mrknnFP16✅43.00.608226.3
YOLO26mrknnINT8✅22.00.603122.0
YOLO26lrknnFP16✅53.00.628264.7
YOLO26lrknnINT8✅28.00.617145.3
YOLO26xrknnFP16✅113.00.664655.4
YOLO26xrknnINT8✅58.00.649287.4

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

注

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

概要#

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

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

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

また、Ultralytics YOLO26の他の統合方法について詳しく知りたい場合は、統合ガイドページをご覧ください。役立つリソースや情報を多数ご紹介しています。

よくある質問#

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

    例
    from ultralytics import YOLO
    
    # YOLOモデルを読み込みます
    model = YOLO("yolo26n.pt")
    
    # 特定のRockchipプラットフォーム向けにRKNN形式へエクスポートします
    model.export(format="rknn", name="rk3588")
  • RKNNモデルは、Rockchipのニューラル処理ユニット(NPUs)によるハードウェアアクセラレーション機能を活用できるように特別に設計されています。この最適化により、同じハードウェアで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は幅広い形式へのエクスポートに対応しているため、さまざまなハードウェアアクセラレータとの互換性を確保できます。

  • 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ベースのエッジデバイスでのリアルタイムアプリケーションに最適です。

コメント