Ultralytics YOLO27:

Axelera AIのエクスポートとデプロイ#

UltralyticsはAxelera AIと連携し、エッジAIデバイスで高性能かつエネルギー効率に優れた推論を実現します。Ultralytics YOLOモデルをVoyager SDKを使用してMetis® AIPUに直接エクスポートしてデプロイできます。

YOLO向けAxelera AIエッジデプロイエコシステム

Axelera AIは、独自のデータフローアーキテクチャとインメモリーコンピューティングを活用し、低消費電力で最大856 TOPSを実現する、エッジ向けのコンピュータービジョン専用ハードウェアアクセラレーションを提供します。

適切なハードウェアの選択#

Axelera AIは、さまざまなデプロイ制約に適合する複数のフォームファクターを提供しています。以下の図を参考に、Ultralytics YOLOのデプロイに最適なハードウェアを特定できます。

ハードウェア製品ラインアップ#

Axeleraのハードウェア製品ラインアップは、Ultralytics YOLO26および従来バージョンを、高いワット当たりFPS効率で実行できるよう最適化されています。

アクセラレータカード#

これらのカードを使用すると、既存のホストデバイスにAIアクセラレーションを追加でき、既存環境への導入が容易になります。

製品フォームファクターコンピューティング性能(INT8)対象アプリケーション
Metis PCIe x4PCIe Gen3 x16Metis AIPU 4基856 TOPS高密度のビデオ分析、スマートシティ
Metis PCIe x1PCIe Gen3 x1Metis AIPU 1基214 TOPS産業用PC、小売業の待ち行列管理
Metis M.2M.2 2280 M-KeyMetis AIPU 1基214 TOPSドローン、ロボティクス、ポータブル医療機器
Metis M.2 MAXM.2 2280Metis AIPU 1基214 TOPS高度な熱管理が必要な環境

統合システム#

ターンキーソリューションとして、Axeleraはメーカーと連携し、Metis AIPU向けに事前検証済みのシステムを提供しています。

  • Metis Compute Board:Metis AIPUとRockchip RK3588 ARM CPUを組み合わせたスタンドアロンのエッジデバイスです。
  • ワークステーション:Dell(Precision 3460XE)およびLenovo(ThinkStation P360 Ultra)のエンタープライズ向けタワー型ワークステーションです。
  • 産業用PC:AdvantechおよびAetinaの、製造自動化向けに設計された堅牢なシステムです。

対応タスク#

深度推定はサポートされていません。深度ヘッドが出力する演算子を、Metis AIPUコンパイラーが低レベル表現に変換できないためです。YOLO26のインスタンスセグメンテーションも、Ultralyticsのexportではサポートされていませんが、以下の説明に従ってVoyager SDK経由でデプロイできます。YOLO26のセマンティックセグメンテーションはサポートされています。

タスクYOLOv8YOLO11YOLO26
検出✅✅✅
セグメンテーション✅✅❌
セマンティック❌❌✅
深度❌❌❌
分類✅✅✅
姿勢推定✅✅✅
OBB✅✅✅
注

YOLO26のインスタンスセグメンテーションは、Ultralyticsのexportコマンドではまだサポートされていません。yolo26-segが必要な場合は、ユーザー空間での回避策を提供するdeploy.pyを使用し、Voyager SDK経由でデプロイできます。ネイティブコンパイラーでのサポートは、今後のリリースで追加される予定です。

インストール#

プラットフォーム要件

Axelera形式へのエクスポートには、以下が必要です。

  • オペレーティングシステム:Linuxのみ(Ubuntu 22.04/24.04を推奨)
  • ハードウェア:Axelera AIアクセラレータ(Metisデバイス)
  • Python:バージョン3.10、3.11、3.12、3.13
  • PyTorch:torch>=2.8,<2.13
  • Voyager SDK:1.8.0。エクスポート時にはこのバージョンの開発キットがインストールされ、推論時にはこのバージョンのランタイムがインストールされます。
  • Metisカーネルドライバー:metis-dkms 1.6.2以降。pipとは別にインストールします。
  • システム依存関係:sudo apt install libgl1(OpenCVに必要ですが、pip経由ではインストールされません)

Ultralyticsのインストール#

pip install ultralytics

詳しい手順については、Ultralyticsのインストールガイドを参照してください。問題が発生した場合は、よくある問題のガイドをご覧ください。

Axeleraドライバーのインストール#

  1. Axeleraリポジトリーキーを追加します。

    sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg"
  2. リポジトリーをaptに追加します。

    使用するOSに合った以下のスニペットを選択してください。

    # Ubuntu 22.04
    sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"
    # Ubuntu 24.04
    sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list"
  3. ドライバーをインストールしてロードします。SDK 1.8にはmetis-dkms 1.6.2以降が必要なため、ここでは最新バージョンをインストールします。

    sudo apt update
    sudo apt install -y metis-dkms
    sudo modprobe metis
カーネルドライバーをSDKと同期させてください

カーネルドライバーはPython SDKパッケージとは別にインストールされるため、SDKをアップグレードした後は、ドライバーもそのSDKの最小要件(SDK 1.8では1.6.2)まで更新する必要があります。インストール時にはこの要件の確認が行われないため、最小要件を下回るドライバーではデバイスを使用できません。axdeviceは必要なバージョンを報告し、デバイスを開けずに終了します。

[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0

手順3:Metisカーネルドライバーのインストールも参照してください。Ubuntuで以前のSDKをすでに使用している場合は、ドライバーを更新してカーネルモジュールを再ロードしてください(再起動は不要です)。

sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metis

続いてaxdeviceを再実行し、デバイスが検出されることを確認します。

初回実行時にSDKが自動でダウンロードされます

Axeleraモデルを使用するyolo export format=axeleraまたはyolo predictを初めて実行すると、Axelera SDKパッケージが自動でダウンロードされ、インストールされます。接続速度によっては数分かかる場合があり、ダウンロード中は進行状況が表示されません。事前に手動でインストールするには、以下を実行します。

pip install axelera-devkit==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
SDKのアップグレードにより、既存のエクスポート済みモデルが無効になります

SDK 1.8では、コンパイル済みの.axmモデル形式のバージョンが引き上げられるため、以前のSDKで生成された_axelera_modelディレクトリは、読み込み時に拒否されます。アップグレード後、各モデルを再エクスポートしてください。

Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.

YOLOモデルのAxelera形式へのエクスポート#

Axelera形式は、エクスポート、予測、検証の各モードをサポートしています。推論と検証はAxelera Metis AIPUハードウェア上で実行されます。モデルをエクスポートした後、エクスポート済みモデルを読み込んで推論を実行するか、精度を検証してください。

エクスポート
from ultralytics import YOLO

# YOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")

# モデルをAxelera形式にエクスポートします
model.export(format="axelera")  # creates 'yolo26n_axelera_model'
推論
from ultralytics import YOLO

# エクスポート済みのAxeleraモデルを読み込みます
model = YOLO("yolo26n_axelera_model")

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

# エクスポート済みのAxeleraモデルを読み込みます
model = YOLO("yolo26n_axelera_model")

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

エクスポート引数#

引数種類デフォルト説明
formatstr'axelera'Axelera Metis AIPUハードウェア向けのターゲット形式です。
imgszintまたはtuple640モデル入力の画像サイズです。
batch*int1エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートモデルが同時に処理する画像の最大数を指定します。
quantizeintまたはstr8/自動量子化精度です。Axelera AIPUでは8(INT8)が必須で、自動的に有効になります。非推奨のhalf/int8フラグを置き換えるものです。INT8量子化を参照してください。
datastrNoneキャリブレーションデータセットのYAMLファイルです。分類タスクでは、代わりにデータセットディレクトリまたは組み込みデータセット名を指定します。省略した場合、Ultralyticsがタスクに応じたキャリブレーションデータセットを選択します。
fractionfloat、int、またはlist1.0キャリブレーション用サブセットを、割合、画像数、または[train, val, test]の割合/画像数で指定します。2要素のリストではtestは全件を使用し、0はスキップします(100~400枚を推奨)。
devicestrNoneエクスポートデバイス:GPU(device=0)またはCPU(device=cpu)。

* batch>1による推論にはVoyager SDK 1.8.0以降が必要です。モデルは単一画像用にコンパイルされます。

すべてのエクスポートオプションについては、エクスポートモードのドキュメントを参照してください。

出力構造#

yolo26n_axelera_model/
├── yolo26n.axm                  # Axelera model file
├── compiler_config_final.toml  # Compiler configuration used for the build
└── metadata.yaml               # Model metadata (classes, image size, etc.)

Axelera AI ベンチマーク#

Metis AIPUは、エネルギー消費を抑えながらスループットを最大化します。

モデルMetis PCIe FPS(フレーム/秒)Metis M.2 FPS(フレーム/秒)
YOLOv8n847771
YOLO11n746574
YOLO26n648.6484.9

ベンチマークはAxelera AIのデータに基づいています。実際のFPSは、モデルサイズ、バッチ処理、入力解像度によって異なります。

これらは、720pの動画ファイルに対してVoyager SDKのストリーミングパイプラインを使用し、モデルZooで測定したホストスループットの値です。単一のpredict呼び出しでは画像あたりのレイテンシが報告されますが、これは別の指標です。

実際の用途#

Axeleraハードウェア上のUltralytics YOLOにより、高度なエッジコンピューティングソリューションを実現できます。

  1. UltralyticsのTrain Modeを使用してモデルをトレーニングします
  2. model.export(format="axelera")を使用してAxelera形式にエクスポートします
  3. yolo valを使用して精度を検証し、量子化による損失が最小限であることを確認します
  4. 定性的な検証にはyolo predictを使用して推論します
  5. PyTorchに依存しない高性能なエンドツーエンドパイプラインにデプロイします。axelera-rtを使用した構成可能なPythonパイプラインについては、Voyager SDKでのYOLOの例をご覧ください

デバイスのヘルスチェック#

Axeleraデバイスが正常に動作していることを確認します。

# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevice

詳細な診断については、AxDeviceのドキュメントをご覧ください。

最大パフォーマンス#

モデルは単一画像向けにコンパイルされます。複数の画像をPredictに渡すと、Axeleraスケジューラー(Voyager SDK 1.8以降)を通じて処理されるため、batch>1は正しく実行されます。ただし、単一デバイスでエンドツーエンドの測定を行った場合、batch=1より高速にはなりません。

yolo predict model=yolo26n_axelera_model source=path/to/images batch=8

最大スループットが求められる本番環境では、Axelera Voyager SDKにより、次の機能を利用できます。

  • 複数のフレームを同時に処理するストリーミング推論パイプライン
  • 複数のコアにまたがるモデルのコンパイル
  • 高解像度カメラ向けのタイル分割推論

FPSベンチマークについてはモデルZooをご覧ください。本番環境でのサポートについてはAxeleraにお問い合わせください。

既知の問題#

既知の制限事項
  • M.2の電力制限:電源の制約により、M.2アクセラレーターでは大規模または特大規模のモデルで実行時エラーが発生する場合があります。

サポートについては、Axeleraコミュニティをご覧ください。

よくある質問#

  • Voyager SDKは、YOLOv8、YOLO11、YOLO26モデルのエクスポートをサポートしています。モデルごとに利用できるタスクについては、サポート対象タスクをご覧ください。

  • はい。Ultralytics Train Modeを使用してトレーニングしたモデルは、サポート対象のレイヤーと演算を使用していれば、Axelera形式にエクスポートできます。

  • AxeleraのVoyager SDKは、混合精度AIPUアーキテクチャ向けにモデルを自動的に量子化します。ほとんどの物体検出タスクでは、パフォーマンス向上(FPSの増加、消費電力の低減)が、mAPへのわずかな影響を大きく上回ります。量子化にかかる時間は、モデルサイズに応じて数秒から数時間です。エクスポート後にyolo valを実行して、精度を確認してください。

  • 画像は100~400枚を推奨します。400枚を超えても追加の効果はなく、量子化にかかる時間が長くなります。100枚、200枚、400枚で試し、最適なバランスを見つけてください。

  • SDK、ドライバー、コンパイラーツールは、Axelera Developer Portalから入手できます。

コメント