Ultralytics YOLOモデルのためのDeepXエクスポート
特殊なNPUハードウェア上でコンピュータビジョンモデルをデプロイするには、互換性があり最適化されたモデルフォーマットが必要です。Ultralytics YOLO モデルをDeepXフォーマットにエクスポートすることで、DeepX NPUアクセラレータ上で効率的なINT8量子化推論が可能になります。本ガイドでは、YOLOモデルをDeepXフォーマットに変換し、DeepX搭載ハードウェアにデプロイする手順を説明します。
DeepXとは?
DeepX は、エッジでの省電力なディープラーニング推論向けに設計されたニューラルプロセッシングユニット(NPU)を専門とするAI半導体企業です。DeepX NPUは、要求の厳しい組み込みおよび産業用AIアプリケーション向けに設計されており、最小限の消費電力で高いスループットを実現します。同社のハードウェアは、クラウド接続が不安定または望ましくない、ロボティクス、スマートカメラ、産業オートメーションシステムなどのデプロイメントシナリオに適しています。
DeepXエクスポートフォーマット
DeepXエクスポートでは、コンパイル済みの.dxnn モデルバイナリが生成され、DeepX NPUハードウェアでの実行に最適化されます。コンパイルパイプラインは、dx_com ツールキットを使用してINT8量子化とハードウェア固有の最適化を行い、デプロイ可能な自己完結型のモデルディレクトリを生成します。
DeepXモデルの主な特徴
DeepXモデルは、エッジデプロイメントにおいていくつかの利点を提供します:
- INT8量子化: エクスポート時にモデルはINT8精度に量子化され、モデルサイズが大幅に削減され、NPUのスループットが最大化されます。モデル量子化.
- NPU最適化:
.dxnnフォーマットはDeepX NPUハードウェア専用にコンパイルされており、専用のアクセラレーションユニットを活用して高速かつ効率的な推論を実現します。 - 低消費電力: 推論をNPUにオフロードすることで、DeepXモデルは同等のCPUやGPUによる推論よりも大幅に低い消費電力を実現します。
- キャリブレーションベースの精度: エクスポートでは、実際のデータセット画像を用いたEMAベースのキャリブレーションを使用し、量子化中の精度低下を最小限に抑えます。
- 自己完結型の出力: エクスポートされたモデルディレクトリには、コンパイル済みバイナリ、キャリブレーション設定、および直接デプロイするためのメタデータが同梱されています。
サポートされているタスク
すべての標準的なUltralyticsタスクが、YOLO26、YOLO11、YOLOv8モデルファミリーにおいてDeepXエクスポートをサポートしています。
DeepXへのエクスポート:YOLOモデルの変換
Ultralytics YOLOモデルをDeepXフォーマットにエクスポートし、エクスポートされたモデルで推論を実行します。
DeepXエクスポートは、x86-64 Linuxマシンでのみサポートされています。ARM64 (aarch64) はエクスポートステップではサポートされていません。
インストール
必要なパッケージをインストールするには、以下を実行してください:
# Install the required package for YOLO
pip install ultralytics dx_com コンパイラパッケージは、最初のエクスポート時にDeepX SDKリポジトリから自動的にインストールされます。インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイド をご確認ください。YOLOに必要なパッケージをインストールする際に問題が発生した場合は、一般的な問題ガイド を参照して解決策やヒントを確認してください。
使用方法
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to DeepX format (int8=True is enforced automatically)
model.export(format="deepx") # creates 'yolo26n_deepx_model/'エクスポート引数
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
format | str | 'deepx' | エクスポートされたモデルのターゲットフォーマット。DeepX NPUハードウェアとの互換性を定義します。 |
imgsz | int または tuple | 640 | モデル入力の希望画像サイズ。DeepXエクスポートには正方形の入力が必要です。整数(例:640)または高さと幅が等しいタプルを渡してください。 |
int8 | bool | True | INT8量子化を有効にします。DeepXエクスポートには必須であり、指定しない場合は自動的にTrue に設定されます。 |
data | str | 'coco128.yaml' | INT8キャリブレーションに使用されるデータセット設定ファイル。キャリブレーション画像のソースを指定します。 |
device | str | None | エクスポート用のデバイスを指定します:GPU (device=0) またはCPU (device=cpu). |
optimize | bool | False | 推論レイテンシを短縮する高度なコンパイラ最適化を有効にしますが、コンパイル時間は長くなります。 |
DeepXエクスポートは必ずx86-64 Linux ホスト上で実行してください。dx_com コンパイラはARM64をサポートしていません。
エクスポートプロセスの詳細については、Ultralyticsエクスポートに関するドキュメントページ.
出力構造
エクスポートが成功すると、以下の構成を持つモデルディレクトリが作成されます:
yolo26n_deepx_model/
├── yolo26n.dxnn # Compiled DeepX model binary (NPU executable)
├── config.json # Calibration and preprocessing configuration
└── metadata.yaml # Model metadata (classes, image size, task, etc.) .dxnn ファイルは、dx_engine ランタイムがNPU上で直接読み込むコンパイル済みモデルバイナリです。metadata.yaml には、クラス名、画像サイズ、その他Ultralytics推論パイプラインで使用される情報が含まれています。
エクスポートされたYOLO DeepXモデルのデプロイ
Ultralytics YOLOモデルをDeepXフォーマットへのエクスポートが完了したら、次のステップはこれらのモデルをDeepX NPUハードウェアにデプロイすることです。
ランタイムのインストール
推論にはDeepX NPUドライバ、libdxrt ランタイム、およびdx_engine Pythonパッケージが必要です。
DeepXランタイムは、x86-64 LinuxマシンおよびARM64 Debian Trixieマシン(Raspberry Pi 5)でのみサポートされています。
# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.0/dxrt-driver-dkms_2.4.0-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.0-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb
# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh
# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whlランタイムが正しくインストールされているか、dxrt-cli --version で確認してください。以下のような出力が表示されるはずです:
DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6使用方法
from ultralytics import YOLO
# Load the exported DeepX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
# Process results
for r in results:
print(f"Detected {len(r.boxes)} objects")
r.show()dxtronによる可視化
dxtron は、コンパイル済み.dxnn モデルを検査するためのDeepXのグラフ可視化ツールです。
x86-64 Linux上にdxtron をインストールするには、DeepX SDKから.deb パッケージをダウンロードし、dpkg:
wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.debを使用してインストールします。その後、エクスポートしたモデルを開きます:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron はx86-64 Linux でのみ利用可能です。ARM64/aarch64および非Linuxプラットフォームはサポートされていません。
ベンチマーク
UltralyticsチームはYOLO26モデルをベンチマークし、PyTorchとDeepX間の速度と精度を比較しました。
| モデル | フォーマット | ステータス | サイズ (MB) | metrics/mAP50-95(B) | 推論時間 (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DeepX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DeepX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DeepX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DeepX | ✅ | 7.3 | 0.783 | 56.4 |
| モデル | フォーマット | ステータス | サイズ (MB) | acc (top1) | acc (top5) | 推論時間 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DeepX | ✅ | 5.9 | 0.333 | 0.686 | 2.7 |
上記のベンチマークの検証には、検出にはcoco128、セグメンテーションにはcoco128-seg、姿勢推定にはcoco8-pose、分類にはimagenet100、OBBモデルにはdota128を使用しました。推論時間には前処理および後処理は含まれていません。
Raspberry Pi 5に接続されたDX-M1 NPUから最高の推論スループットを得るには、ブート設定ファイルを開き、PCIe Gen 3サポートを有効にしてください。
sudo nano /boot/firmware/config.txtファイルの末尾に以下の行を追加します:
dtparam=pciex1
dtparam=pciex1_gen=3保存して終了し(Ctrl+X、次にY、次にEnter)、その後再起動します:
sudo reboot推奨ワークフロー
- Train Ultralyticsを使用してモデルを学習モード
- Export DeepXフォーマットへエクスポート
model.export(format="deepx") - 検証 による精度の
yolo valで、量子化による精度低下が最小限であることを確認 - Predict を使用して
yolo predictで定性評価 - デプロイ エクスポートした
_deepx_model/ディレクトリを、dx_engineランタイムを使用してDeepX NPUハードウェアへ
実際のアプリケーション
DeepX NPUハードウェアにデプロイされたYOLOモデルは、幅広いエッジAIアプリケーションに適しています:
- スマート監視: 低消費電力でクラウド依存のないセキュリティおよび監視システム向けのリアルタイム物体検出。
- 産業オートメーション: 工場環境におけるオンデバイスでの品質管理、欠陥検出、プロセス監視。
- ロボティクス: 自律型ロボットやドローンにおけるビジョンベースのナビゲーション、障害物回避、物体認識。
- スマート農業: 農業用コンピュータビジョン.
- を用いた作物の健康状態監視、害虫検出、収量予測。リテール分析
: リアルタイムのエッジ推論による顧客の動線分析、棚の監視、在庫追跡。
まとめdx_com本ガイドでは、Ultralytics YOLOモデルをDeepXフォーマットへエクスポートし、DeepX NPUハードウェアにデプロイする方法を学習しました。エクスポートパイプラインはINT8キャリブレーションと.dxnn コンパイラを使用してハードウェア最適化されたdx_engine バイナリを生成し、
ランタイムがデバイス上での推論を実行します。Ultralytics YOLOUltralyticsとDeepXのNPUテクノロジーの組み合わせは、高度なコンピュータビジョンワークロードを組み込みデバイスやエッジデバイス上で実行するための効果的なソリューションを提供し、リアルタイムアプリケーション向けに低消費電力かつ高スループットを実現します。
使用方法の詳細については、DeepX公式サイト.
をご覧ください。また、他のUltralytics YOLOインテグレーションについて詳しく知りたい場合は、当社のインテグレーションガイドページにアクセスしてください。役立つリソースや洞察が多数掲載されています。
FAQ
Ultralytics YOLOモデルをDeepXフォーマットへエクスポートするにはどうすればよいですか?
Pythonのexport()メソッド、またはCLIを使用してモデルをエクスポートできます。エクスポートでは自動的にINT8量子化が有効になり、キャリブレーションデータセットを使用して精度低下を最小限に抑えます。dx_comコンパイラパッケージは、未インストールの場合は自動的にインストールされます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")なぜDeepXのエクスポートにはINT8量子化が必要なのですか?
DeepX NPUは、INT8計算を最大限の効率で実行するように設計されています。dx_comコンパイラは、エクスポート中に実際のデータセット画像を用いたEMAベースのキャリブレーションを使用してモデルを量子化し、NPUがその性能を最大限に発揮できるようにします。DeepXエクスポートでは常にINT8が強制されます。もしint8=Falseを渡した場合、それは警告とともに上書きされます。
DeepXエクスポートでサポートされているプラットフォームは何ですか?
DeepXモデルのエクスポート(コンパイル)には、x86-64 Linuxホストが必要です。エクスポート手順はARM64 (aarch64) およびWindowsマシンではサポートされていません。エクスポートされた.dxnnモデルを使用した推論は、dx_engineランタイムがサポートするあらゆるLinuxプラットフォーム (x86-64およびARM64) で実行可能です。
DeepXエクスポートの出力は何ですか?
エクスポートを実行すると、以下の内容を含むディレクトリ (例: yolo26n_deepx_model/) が作成されます。
yolo26n.dxnn— コンパイル済みNPUバイナリconfig.json— キャリブレーションおよび前処理設定metadata.yaml— クラス名や画像サイズを含むモデルメタデータ
DeepXハードウェア上で独自にトレーニングしたモデルをデプロイできますか?
はい。Ultralytics Train Modeを使用してトレーニングされ、format="deepx"でエクスポートされたモデルは、サポートされているレイヤー操作を使用している限り、DeepX NPUハードウェアにデプロイできます。エクスポートは、検出、セグメンテーション、姿勢推定、指向性バウンディングボックス (OBB)、および分類タスクをサポートしています。
DeepXエクスポートには何枚のキャリブレーション画像を使用すべきですか?
DeepXエクスポートパイプラインは、EMAキャリブレーション手法を用いてキャリブレーションデータセット内のすべての画像 (fractionフィルタリング後) を使用します。通常、数百枚の画像があれば十分な量子化精度が得られます。コンパイル時間が大規模なデータセットで問題になる場合は、dataをより小さなデータセットに向けるか、fractionを1.0未満に設定してください。
推論用のDeepXランタイムをインストールするにはどうすればよいですか?
DeepXランタイムはultralyticsに同梱されていないため、推論を実行する前に別途インストールする必要があります。x86-64 LinuxマシンおよびARM64 Debian Trixieマシン (Raspberry Pi 5) では、DEEPX-AI GitHubリリースからNPUドライバ (dxrt-driver-dkms) とランタイム (libdxrt) をインストールし、次に同梱のdx_engine Pythonホイールをインストールしてください。手順ごとのコマンドについては、上記のランタイムのインストールセクションを参照してください。