Link to this sectionUltralytics YOLOモデルのDEEPXエクスポート#
専用のNPUハードウェア上でコンピュータビジョンのモデルをデプロイするには、互換性があり最適化されたモデル形式が必要です。Ultralytics YOLOモデルをDEEPX形式にエクスポートすることで、DEEPX NPUアクセラレータ上で効率的なINT8量子化推論が可能になります。このガイドでは、YOLOモデルをDEEPX形式に変換し、DEEPX搭載ハードウェア上でデプロイする手順を説明します。
Link to this sectionDEEPXとは?#
DEEPXは、エッジでの電力効率に優れたディープラーニング推論向けに設計されたNPU(Neural Processing Unit)を専門とするAI半導体企業です。DEEPXのNPUは、厳しい組み込みおよび産業用AIアプリケーション向けにエンジニアリングされており、最小限の消費電力で高いスループットを実現します。同社のハードウェアは、ロボティクス、スマートカメラ、産業オートメーションシステムなど、クラウド接続が不安定または望ましくないデプロイ環境に適しています。
Link to this sectionDEEPXエクスポート形式#
DEEPXエクスポートでは、DEEPX NPUハードウェアでの実行用に最適化されたコンパイル済みの.dxnnモデルバイナリが生成されます。コンパイルパイプラインはdx_comツールキットを使用してINT8量子化とハードウェア固有の最適化を行い、デプロイ可能な自己完結型のモデルディレクトリを生成します。
Link to this sectionDEEPXモデルの主な機能#
DEEPXモデルは、エッジデプロイメントにおいていくつかの利点を提供します:
- INT8量子化: モデルはエクスポート時にINT8精度に量子化され、モデルサイズが大幅に縮小し、NPUのスループットが最大化されます。モデル量子化の詳細をご覧ください。
- NPU最適化:
.dxnn形式はDEEPX NPUハードウェア向けに特別にコンパイルされており、専用のアクセラレーションユニットを活用して高速かつ効率的な推論を実現します。 - 低消費電力: 推論をNPUにオフロードすることで、DEEPXモデルは同等のCPUやGPUによる推論よりも大幅に消費電力を抑えることができます。
- キャリブレーションベースの精度: このエクスポートでは、実際のデータセット画像を用いたEMAベースのキャリブレーションを行い、量子化中の精度低下を最小限に抑えます。
- 自己完結型の出力: エクスポートされたモデルディレクトリには、コンパイル済みバイナリ、キャリブレーション設定、およびメタデータがまとめられており、容易にデプロイできます。
Link to this sectionサポートされているタスク#
すべての標準的なUltralyticsタスクは、YOLO26、YOLO11、およびYOLOv8のモデルファミリー全体でDEEPXエクスポートに対応しています。
| タスク | サポート対象 |
|---|---|
| オブジェクト検出 | ✅ |
| インスタンスセグメンテーション | ✅ |
| セマンティックセグメンテーション | ✅ |
| 姿勢推定 | ✅ |
| OBB検出 | ✅ |
| 分類 | ✅ |
Link to this sectionDEEPXへのエクスポート:YOLOモデルの変換#
Ultralytics YOLOモデルをDEEPX形式にエクスポートし、エクスポートされたモデルを使用して推論を実行します。
DEEPXエクスポートはx86-64 Linuxマシンでのみサポートされています。ARM64 (aarch64) はエクスポートの手順ではサポートされていません。ただし、エクスポートされたdxnnモデルは、ARM64プラットフォームと完全に互換性があり、実行可能です。
Link to this sectionインストール#
必要なパッケージをインストールするには、以下を実行します:
# Install the required package for YOLO
pip install ultralyticsdx_comコンパイラパッケージは、最初のエクスポート時にDEEPX SDKリポジトリから自動的にインストールされます。インストールプロセスに関する詳細な手順やベストプラクティスについては、Ultralyticsインストールガイドを参照してください。YOLOに必要なパッケージのインストール中に問題が発生した場合は、解決策やヒントについて共通の問題ガイドを参照してください。
Link to this section使用方法#
DEEPX形式は、エクスポート、予測、および検証モードをサポートしています。推論と検証はDEEPX NPUハードウェア上で実行されます。モデルをエクスポートし、エクスポートされたモデルをロードして推論を実行するか、精度を検証してください。
from ultralytics import YOLO
# Load a 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/'from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionエクスポート引数#
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
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ドキュメントページをご覧ください。
Link to this section出力構造#
エクスポートが成功すると、以下の構成を持つモデルディレクトリが作成されます:
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.)The .dxnn file is the compiled model binary that the dx_engine runtime loads directly on the NPU. The metadata.yaml contains class names, image size, and other information used by the Ultralytics inference pipeline.
Link to this sectionエクスポートされたYOLO DEEPXモデルのデプロイ#
Ultralytics YOLOモデルをDEEPX形式に正常にエクスポートしたら、次のステップはこれらのモデルをDEEPX NPUハードウェアにデプロイすることです。
Link to this sectionランタイムインストール#
推論には、DEEPX NPUドライバ、libdxrtランタイム、およびdx_engine Pythonパッケージが必要です。
DEEPXランタイムは、x86-64 LinuxとARM64(例: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.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-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-*.whldxrt-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ランタイムがインストールされたら、上記の使用方法セクションに示されている通りにDEEPXデバイス上で推論と検証を実行します。エクスポートされた_deepx_modelは、YOLO(...)で直接ロードされます。
Link to this sectiondxtronによる可視化#
dxtronは、コンパイルされた.dxnnモデルを調査するためのDEEPXのグラフ可視化ツールです。
Install dxtron on x86-64 Linux by downloading the .deb package from the DEEPX SDK and installing it via 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およびaarch64プラットフォームの両方で利用可能です。
Link to this sectionベンチマーク#
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 rebootPCIeの世代を確認します。PCIe Gen3では8GT/sの速度が期待されます。
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Link to this section推奨ワークフロー#
- Ultralytics Train Mode を使用してモデルを 学習(Train) します
model.export(format="deepx")を使用して DEEPX 形式に エクスポート(Export) しますyolo valで精度を 検証(Validate) し、量子化による損失が最小限であることを確認しますyolo predictを使用して定性的な検証のための 予測(Predict) を行います- エクスポートされた
_deepx_model/ディレクトリを、dx_engineランタイムを使用して DEEPX NPU ハードウェアに デプロイ(Deploy) します
Link to this section現実世界での応用#
DEEPX NPU ハードウェアにデプロイされた YOLO モデルは、幅広い エッジAI アプリケーションに適しています:
- スマート監視: 低消費電力でクラウド依存なしに、セキュリティおよび監視システム向けのリアルタイム 物体検出 を実現します。
- 産業オートメーション: 工場環境におけるデバイス上の品質管理、欠陥検出、工程監視。
- ロボティクス: 自律型ロボットやドローンにおける視覚ベースのナビゲーション、障害物回避、物体認識。
- スマート農業: 農業におけるコンピュータビジョン を使用した作物の健全性監視、害虫検出、収穫量推定。
- リテール分析: リアルタイムのエッジ推論による顧客フロー分析、棚の監視、在庫追跡。
Link to this sectionまとめ#
このガイドでは、Ultralytics YOLO モデルを DEEPX 形式にエクスポートし、DEEPX NPU ハードウェアにデプロイする方法を学びました。エクスポートパイプラインは INT8 キャリブレーションと dx_com コンパイラを使用してハードウェア最適化された .dxnn バイナリを生成し、 dx_engine ランタイムがデバイス上での推論を処理します。
Ultralytics YOLO と DEEPX の NPU 技術を組み合わせることで、組み込みデバイスやエッジデバイスで高度な コンピュータビジョン ワークロードを実行するための効果的なソリューションが提供され、リアルタイムアプリケーションにおいて低消費電力で高いスループットを実現します。
使用方法の詳細については、DEEPX 公式ウェブサイト をご覧ください。
また、他の Ultralytics YOLO 統合について詳しく知りたい場合は、統合ガイドページ をご覧ください。そこには役立つリソースや洞察がたくさんあります。
Link to this sectionFAQ#
Link to this sectionUltralytics YOLO モデルを DEEPX 形式にエクスポートするにはどうすればよいですか?#
Python の export() メソッドまたは CLI を使用してモデルをエクスポートできます。エクスポートにより INT8 量子化が自動的に有効になり、キャリブレーションデータセットを使用して精度低下を最小限に抑えます。 dx_com コンパイラパッケージは、存在しない場合は自動的にインストールされます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this sectionなぜ DEEPX エクスポートには INT8 量子化が必要なのですか?#
DEEPX NPU は INT8 計算を最大限の効率で実行するように設計されています。 dx_com コンパイラは、実際のデータセット画像を用いた EMA ベースのキャリブレーションを使用してエクスポート時にモデルを量子化し、NPU がその性能を最大限に発揮できるようにします。DEEPX エクスポートでは常に INT8 が強制されます。 int8=False を渡しても、警告とともに上書きされます。
Link to this sectionDEEPX エクスポートでサポートされているプラットフォームは何ですか?#
DEEPX モデルのエクスポート(コンパイル)には x86-64 Linux ホストが必要です。エクスポートステップは ARM64 (aarch64) および Windows マシンではサポートされていません。エクスポートされた .dxnn モデルを使用した推論は、 dx_engine ランタイムがサポートする任意の Linux プラットフォーム (x86-64 および ARM64) で実行できます。
Link to this sectionDEEPX エクスポートの出力は何ですか?#
エクスポートにより、以下を含むディレクトリ (例: yolo26n_deepx_model/) が作成されます:
yolo26n.dxnn— コンパイルされた NPU バイナリconfig.json— キャリブレーションおよび前処理設定metadata.yaml— クラス名や画像サイズを含むモデルメタデータ
Link to this sectionDEEPX ハードウェアにカスタム学習済みモデルをデプロイできますか?#
はい。 Ultralytics Train Mode を使用して学習し、 format="deepx" でエクスポートされたモデルは、サポートされているレイヤー操作を使用している限り、DEEPX NPU ハードウェアにデプロイできます。エクスポートは、検出、セグメンテーション、姿勢推定、回転バウンディングボックス (OBB)、および分類タスクをサポートしています。
Link to this sectionDEEPX エクスポートには何枚のキャリブレーション画像を使用すべきですか?#
DEEPX エクスポートパイプラインは、EMA キャリブレーションメソッドを使用して、キャリブレーションデータセット内のすべての画像( fraction によるフィルタリング後)を使用します。通常、数百枚の画像があれば良好な量子化精度が得られます。大規模なデータセットでコンパイル時間が気になる場合は、 data をより小さなデータセットに向けるか、 fraction を 1.0 未満に設定してください。
Link to this section推論のために DEEPX ランタイムをインストールするにはどうすればよいですか?#
DEEPX ランタイムは ultralytics にバンドルされていないため、推論を実行する前に別途インストールする必要があります。x86-64 Linux マシンおよび ARM64 Linux マシン(例: Raspberry Pi 5)では、DEEPX-AI GitHub リリースから NPU ドライバー (dxrt-driver-dkms) とランタイム (libdxrt) をインストールし、その後、バンドルされている dx_engine Python ホイールをインストールしてください。手順ごとのコマンドについては、上記の ランタイムのインストール セクションを参照してください。