Ultralytics YOLOモデルのDEEPXエクスポート#
専用NPUハードウェアにコンピュータービジョンモデルをデプロイするには、互換性があり最適化されたモデルフォーマットが必要です。Ultralytics YOLOモデルをDEEPXフォーマットにエクスポートすると、DEEPX NPUアクセラレーター上でINT8量子化による効率的な推論が可能になります。このガイドでは、YOLOモデルをDEEPXフォーマットに変換し、DEEPX搭載ハードウェアにデプロイする手順を説明します。
DEEPXとは何ですか?#
DEEPXは、エッジでの電力効率に優れたディープラーニング推論向けに設計されたニューラルプロセッシングユニット(NPU)を専門とするAI半導体企業です。DEEPX NPUは、要求の厳しい組み込みAIおよび産業用AIアプリケーション向けに設計されており、消費電力を最小限に抑えながら高いスループットを実現します。ロボティクス、スマートカメラ、産業オートメーションシステムなど、クラウド接続が不安定または望ましくないデプロイ環境に適したハードウェアです。
DEEPXエクスポートフォーマット#
DEEPXエクスポートでは、DEEPX NPUハードウェアでの実行に最適化された、コンパイル済みの.dxnnモデルバイナリが生成されます。コンパイルパイプラインではdx_comツールキットを使用してINT8量子化とハードウェア固有の最適化を行い、デプロイ可能な自己完結型のモデルディレクトリを生成します。
DEEPXモデルの主な特長#
DEEPXモデルには、エッジデプロイに役立つ次のような利点があります。
- INT8量子化:エクスポート時にモデルをINT8精度に量子化し、モデルサイズを大幅に削減するとともに、NPUのスループットを最大化します。モデル量子化の詳細をご覧ください。
- NPU向け最適化:
.dxnnフォーマットはDEEPX NPUハードウェア向けに特化してコンパイルされ、専用アクセラレーションユニットを活用して高速かつ効率的な推論を実現します。 - 低消費電力:推論をNPUにオフロードすることで、DEEPXモデルは同等のCPUまたはGPU推論よりも大幅に消費電力を抑えます。
- キャリブレーションベースの精度: エクスポートでは、量子化による精度低下を最小限に抑えるため、実際のデータセット画像を使用したEMAベースのキャリブレーションを行います。
- 自己完結型の出力: エクスポートされたモデルディレクトリには、コンパイル済みバイナリ、キャリブレーション設定、メタデータがまとめられており、簡単にデプロイできます。
対応タスク#
DEEPXエクスポートは、Ultralyticsの7つすべてのタスクに対応しています。セマンティックセグメンテーションと深度推定は、これらのヘッドを搭載した唯一のファミリーであるYOLO26でのみ利用できます。
DEEPXへのエクスポート: YOLOモデルの変換#
Ultralytics YOLOモデルをDEEPX形式にエクスポートし、エクスポートしたモデルで推論を実行します。
DEEPXエクスポートはx86-64 Linuxマシンでのみサポートされています。エクスポート手順ではARM64(aarch64)はサポートされていません。ただし、エクスポートされたdxnnモデルはARM64プラットフォームと完全な互換性があり、実行できます。
インストール#
必要なパッケージをインストールするには、次を実行します。
# Install the required package for YOLO
pip install ultralyticsdx_com コンパイラーは、初回のエクスポート時に PyPI から自動的にインストールされます。DX-COM 2.4.1 は、glibc 2.31 以降を搭載した x86-64 Linux 上の Python 3.8~3.14 向けホイールを提供しています。エクスポート依存関係を事前にインストールするには、次の手順を実行します。
pip install "ultralytics[export-deepx]"編集可能なリポジトリインストールの場合は、"ultralytics[export-deepx]" を -e ".[export-base,export-deepx]" に置き換えます。Python 3.14 環境と CI で使用されるスモークエクスポートを再現するには、リポジトリのルートから既存の環境ビルダーを実行します。
ULTRALYTICS_ISOLATED_VENVS="$PWD/.venvs" python .github/scripts/create-export-env.py --env isolated-deepx環境ビルダーには、uv とインストール済みの Ultralytics チェックアウトが必要です。テスト済みの依存関係制約は自動的に適用されます。
使用方法#
DEEPX形式は、エクスポート、予測、検証の各モードに対応しています。推論と検証はDEEPX NPUハードウェア上で実行されます。モデルをエクスポートした後、エクスポート済みモデルを読み込んで推論を実行するか、精度を検証します。
from ultralytics import YOLO
# YOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")
# モデルをDEEPX形式にエクスポートします(quantize=8が自動的に適用されます)
model.export(format="deepx") # creates 'yolo26n_deepx_model/'from ultralytics import YOLO
# エクスポートしたDEEPXモデルを読み込みます
model = YOLO("yolo26n_deepx_model")
# 推論を実行
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# エクスポートしたDEEPXモデルを読み込みます
model = YOLO("yolo26n_deepx_model")
# COCO8データセットで精度を検証します
metrics = model.val(data="coco8.yaml")エクスポート引数#
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
format | str | 'deepx' | エクスポートするモデルのターゲット形式です。DEEPX NPUハードウェアとの互換性を定義します。 |
imgsz | intまたはtuple | 640 | モデル入力に使用する画像サイズです。DEEPXエクスポートでは正方形の入力が必要です。整数(例: 640)または高さと幅が等しいタプルを指定してください。 |
quantize | intまたはstr | 8/自動 | 量子化の精度です。DEEPXエクスポートでは8(INT8)が必須で、指定されていない場合は自動的に有効になります。非推奨のhalf/int8フラグを置き換えるものです。 |
simplify | bool | True | onnxslimを使用して、中間ONNXグラフを簡素化します。 |
opset | int | None | 中間ONNXグラフのONNX opsetバージョンを指定します。設定しない場合は、サポートされている最新バージョンが使用されます。 |
data | str | None | INT8キャリブレーションに使用するデータセットYAMLです。分類の場合は、代わりにデータセットディレクトリまたは組み込みデータセット名を指定します。quantize=8を指定して省略した場合、Ultralyticsがモデルのタスクに応じたデフォルトのキャリブレーションデータセットを選択します。 |
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(例: 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(...)で直接読み込めます。
dxtronによる可視化#
dxtronは、コンパイル済みの.dxnnモデルを検査するためのDEEPXのグラフビジュアライザーです。
DEEPX SDKから.debパッケージをダウンロードし、dpkgでインストールすることで、x86-64 Linuxにdxtronをインストールします:
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の両プラットフォームで利用できます。
ベンチマーク#
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) | 精度(top1) | 精度(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"推奨ワークフロー#
- UltralyticsのTrain Modeを使用してモデルをトレーニングします
model.export(format="deepx")を使用してDEEPX形式にエクスポートしますyolo valを使用して精度を検証し、量子化による損失が最小限であることを確認します- 定性的な検証には
yolo predictを使用して推論します dx_engineランタイムを使用して、エクスポートした_deepx_model/ディレクトリをDEEPX NPUハードウェアにデプロイします
実際の用途#
DEEPX NPUハードウェアにデプロイされたYOLOモデルは、幅広いエッジAIアプリケーションに適しています:
- スマート監視: 低消費電力でクラウドに依存せず、セキュリティシステムや監視システム向けのリアルタイム物体検出を実現します。
- 産業オートメーション: 工場環境におけるデバイス上での品質管理、欠陥検出、プロセス監視を実現します。
- ロボティクス: 自律型ロボットやドローンで、ビジョンベースのナビゲーション、障害物回避、物体認識を実現します。
- スマート農業: 農業におけるコンピュータービジョンを活用して、作物の健康状態の監視、害虫検出、収量推定を行います。
- 小売分析: リアルタイムのエッジ推論により、顧客の動線分析、棚の監視、在庫追跡を実現します。
概要#
このガイドでは、Ultralytics YOLOモデルをDEEPX形式にエクスポートし、DEEPX NPUハードウェアにデプロイする方法を学びました。エクスポートパイプラインでは、INT8キャリブレーションとdx_comコンパイラーを使用して、ハードウェアに最適化された.dxnnバイナリを生成し、dx_engineランタイムがデバイス上での推論を処理します。
Ultralytics YOLOとDEEPXのNPUテクノロジーを組み合わせることで、組み込みデバイスやエッジデバイスで高度なコンピュータービジョンワークロードを実行する効果的なソリューションを提供します。リアルタイムアプリケーション向けに、低消費電力で高いスループットを実現します。
使用方法の詳細については、DEEPX公式ウェブサイトをご覧ください。
また、Ultralytics YOLOの他の統合について詳しく知りたい場合は、統合ガイドページをご覧ください。役立つリソースや情報を多数ご用意しています。
よくある質問#
Pythonの
export()メソッドまたはCLIを使用してモデルをエクスポートできます。エクスポートではINT8量子化が自動的に有効になり、精度低下を最小限に抑えるためにキャリブレーションデータセットが使用されます。dx_comコンパイラーパッケージがまだインストールされていない場合は、自動的にインストールされます。例from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="deepx")DEEPX NPUは、INT8演算を最大限の効率で実行できるように設計されています。
dx_comコンパイラーは、実際のデータセット画像を使用したEMAベースのキャリブレーションにより、エクスポート時にモデルを量子化し、NPUが性能を最大限に発揮できるようにします。DEEPXへのエクスポートではINT8が常に適用されます。別の精度を指定した場合は、警告とともにINT8に上書きされます。DEEPXモデルのエクスポート(コンパイル)には、x86-64 Linuxホストが必要です。エクスポート手順はARM64(aarch64)およびWindowsマシンではサポートされていません。エクスポートした
.dxnnモデルを使用した推論は、dx_engineランタイムがサポートするLinuxプラットフォーム(x86-64およびARM64)で実行できます。エクスポートにより、次のファイルを含むディレクトリ(例:
yolo26n_deepx_model/)が作成されます:yolo26n.dxnn— コンパイル済みNPUバイナリconfig.json— キャリブレーションと前処理の設定metadata.yaml— クラス名や画像サイズなどのモデルメタデータ
はい。Ultralyticsトレーニングモードを使用してトレーニングし、
format="deepx"でエクスポートしたモデルは、サポート対象のレイヤー演算を使用していれば、どれでもDEEPX NPUハードウェアにデプロイできます。エクスポートはUltralyticsの7つすべてのタスク、すなわち検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類、姿勢推定、方向付きバウンディングボックス(OBB)に対応しています。DEEPXエクスポートパイプラインでは、キャリブレーションデータセットの画像に対してEMAキャリブレーションを100ステップ実行するよう、
dx_comコンパイラーを設定します。良好な量子化精度を得るには、通常、数百枚の画像で十分です。大規模なデータセットでコンパイル時間が問題になる場合は、dataに小規模なデータセットを指定してください。DEEPXランタイムは
ultralyticsに同梱されていないため、推論を実行する前に別途インストールする必要があります。x86-64 LinuxマシンおよびARM64 Linuxマシン(例: Raspberry Pi 5)では、DEEPX-AIのGitHubリリースからNPUドライバー(dxrt-driver-dkms)とランタイム(libdxrt)をインストールし、同梱のdx_enginePython wheelをインストールします。手順を追ったコマンドについては、上記のランタイムのインストールセクションを参照してください。