Ultralytics YOLOモデルのHailoエクスポート#
Hailo AIアクセラレーターは、Raspberry Pi AI KitやAI HAT+などのエッジデバイス上で、コンパイル済みのHailo Executable Format (HEF)モデルを実行します。Ultralyticsは、Hailo Dataflow Compiler (DFC)を使用して、YOLOの検出、セグメンテーション、セマンティックセグメンテーション、深度推定、分類、姿勢推定、およびOBBモデルを直接HEFにエクスポートします。
Hailoのデプロイメントは、カメラ、ロボット、産業用システム、ゲートウェイ、その他すべてのフレームをクラウドに送信せずにローカルで物体検出を行う必要があるデバイスなど、エッジでのコンピュータビジョン向けに設計されています。コンパイルされたHEFには、選択したアクセラレータに必要な量子化済みネットワーク、ハードウェア割り当て、スケジューリング、およびオプションのHailoRTポストプロセッシングが含まれています。
なぜUltralytics YOLOをHailoにデプロイするのか?#
Ultralytics YOLOとHailoニューラルプロセッシングユニット(NPU)を組み合わせることで、モデルのトレーニングから低消費電力のエッジAI推論までの実用的なパスが提供されます。一般的なユースケースは以下の通りです:
- スマートカメラおよびビデオ解析: セキュリティ、小売、交通、占有率アプリケーション向けに、カメラ付近でリアルタイムの物体検出を実行します。
- ロボット工学および自律システム: 継続的なクラウド接続に依存することなく、人、車両、パッケージ、ツール、または障害物を検出します。
- 産業用コンピュータビジョン: 検査、カウント、安全監視、品質管理のためにカスタムYOLOモデルをデプロイします。
- Raspberry Pi AIプロジェクト: AI KitまたはAI HAT+を使用して、Raspberry Piシステムに高速化されたビジョン推論を追加します。
- エッジゲートウェイおよびAI PC: 帯域幅とクラウド計算要件を削減しながら、複数のビデオまたはセンサーのストリームをローカルで処理します。
ローカル推論は、画像がデプロイメントデバイス内に留まるため、プライバシーと応答時間を改善できます。実際のスループット、レイテンシ、電力消費は、YOLOモデルのサイズ、入力解像度、Hailoアーキテクチャ、ホストシステム、およびアプリケーションパイプラインに依存します。
Hailoエクスポートの仕組み#
format="hailo"の背後にある完全なエクスポートワークフローはUltralyticsが所有しています:
YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compileエクスポーターはこれらの段階を自動的に実行します:
- コンパイラ互換の設定を持つ静的なONNXグラフをエクスポートします。
- モデルアーキテクチャのヘッド出力を選択します。
- 正規化、活性化、およびポストプロセッシングのディレクティブを生成します。
- 代表的なキャリブレーションストリームを構築し、モデルをINT8に量子化します。
- 選択したHailoアクセラレータ用に最適化されたグラフをコンパイルします。
- UltralyticsメタデータとともにHEFを保存し、中間的なONNXファイルを削除します。
YOLOv8およびYOLO11検出モデルは、コンパイルされたパイプラインでHailoRT YOLO NMSを使用します。YOLO26検出モデルは、NMSフリーの1対1出力を使用するため、エクスポーターは異なる出力と量子化パスを自動的に選択します。YOLOv8/YOLO11のセグメンテーション、姿勢推定、およびOBBは、推論時にUltralyticsがデコードする生のヘッドテンソルをコンパイルし、YOLOv8/YOLO11/YOLO26の分類はチップ上でsoftmaxを実行するため、HEFはクラス確率を直接返します。YOLO26セマンティックセグメンテーションの場合、エクスポーターはアクセラレーターに従います。Hailo-8/8L (DFC v3.x)はホストでのアップサンプリングと削減用の分類子ロジットを返し、Hailo-10/15 (DFC v5.x)はチップ上でマルチクラスArgMaxヘッドをコンパイルし、コンパクトなクラスマップを返します。シングルクラスヘッドは、ArgMaxの代わりに閾値を必要とするため、すべてのターゲットでホストロジットパスを使用します。YOLO26深度モデルは、a16で高密度ロジットconvをコンパイルし、ホスト上でメートル法深度マップを再構築します(ヘッドに続くクランプ/expおよび学習済み対数アフィンキャリブレーション)。これにより、量子化器は生のロジットで最も広い範囲を維持します。ユーザーは、ONNXのエンドノードを見つけたり、Hailoモデルスクリプト(.alls)を作成したり、NMS JSONを手動で作成したりする必要はありません。
インストール#
Ultralyticsをインストールし、Hailo Developer Zoneからターゲットハードウェア用のDFCホイールをダウンロードしてください(無料の登録が必要です):
pip install ultralytics
pip install /path/to/hailo_dataflow_compiler-*.whlHailoコンパイルにはLinux x86_64が必要です。サポートされているワークステーションでモデルをコンパイルし、出力ディレクトリをターゲットデバイスにコピーしてください。推論にはDFCは不要です。
Hailo-8およびHailo-8LはDFC v3.xを使用します。Hailo-10およびHailo-15はDFC v5.xを使用します。ターゲットアクセラレータに一致するコンパイラジェネレーションをインストールしてください。
Ultralytics Platformは管理されたHailoエクスポートを提供するため、ローカルのHailoアカウントやDFCのインストールは不要です。
Hailo HEFモデルのエクスポート#
format="hailo"を使用し、nameでターゲットアクセラレーターを選択します:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
output = model.export(format="hailo", name="hailo8l")
print(output) # yolo11n_hailo_model/等価なCLIコマンドは以下の通りです:
yolo export model=yolo11n.pt format=hailo name=hailo8lHailoのエクスポートはINT8専用です。dataが提供されていない場合、Ultralyticsはタスク固有のキャリブレーションデータセットを自動的にダウンロードします。カスタムモデルの場合は、代表的なトレーニングまたは検証画像を使用します:
UltralyticsはDFC最適化レベル2を強制し、実際のキャリブレーションデータセットサイズを使用するようにファインチューニングを設定します。Hailoでは、少なくとも1,024枚の多様な画像を推奨しています。組み込みの軽量データセットはレベル2でコンパイルされますが、本番環境のドメインを代表していない可能性があります。本番環境のHEFエクスポートには、data="path/to/dataset.yaml"を使用して代表的なデータセットを渡します。
model.export(format="hailo", name="hailo8l", data="path/to/dataset.yaml")コンパイルには固定の入力形状を使用します。デバイスで使用される解像度にimgszを設定します:
model.export(format="hailo", name="hailo8l", imgsz=640)サポートされているモデルとハードウェア#
Hailoエコシステムは幅広いコンピュータービジョンのワークロードをカバーしていますが、Ultralyticsのformat="hailo"エクスポーターは現在、標準的なYOLOの検出、セグメンテーション、セマンティックセグメンテーション、深度推定、分類、姿勢推定、およびOBBのヘッドを検証します。タスクテーブルには利用可能なエクスポーターパスが記載されており、ハードウェア検証については以下に個別にリストされています。
| Ultralyticsタスク | 直接的なHailoエクスポート | サポートされているモデルファミリー | 注意点 |
|---|---|---|---|
| 物体検出 | ✅ | YOLOv8, YOLO11, YOLO26 | カスタムモデルを含む標準のUltralytics Detectヘッド |
| インスタンスセグメンテーション | ✅ | YOLOv8、YOLO11 | 推論時にUltralyticsによってデコードされる生のヘッドテンソル。YOLO26-segは現在サポートされていません |
| セマンティックセグメンテーション | ✅ | YOLO26 | Hailo-8/8Lおよびシングルクラスヘッドはロジットを返します。Hailo-10/15はマルチクラスマップを作成します |
| 深度推定 | ✅ | YOLO26 | a16でコンパイルされた高密度ロジット。推論時にUltralyticsがメートル法深度マップを再構築します |
| 画像分類 | ✅ | YOLOv8, YOLO11, YOLO26 | チップ上でソフトマックスを実行。HEFは直接クラス確率を返します |
| 姿勢推定 | ✅ | YOLOv8、YOLO11 | 推論時にUltralyticsによってデコードされる生のヘッドテンソル。YOLO26-poseは現在サポートされていません |
| 指向性物体検出 | ✅ | YOLOv8、YOLO11 | 推論時にUltralyticsによってデコードされる生のヘッドテンソル。YOLO26-OBBは現在サポートされていません |
YOLOv10、YOLO-World、YOLOE、RT-DETRなどの特殊な検出ファミリーも❌サポートされていません。Ultralyticsは、検証されていないHEFを生成する代わりに、コンパイル前にこれらのタスクとモデルファミリーを拒否します。
| モデルファミリー | Hailo-8 / Hailo-8L | Hailo-10 / Hailo-15 | 出力 |
|---|---|---|---|
| YOLOv8 / YOLO11の検出 | ✅ | ✅ | HailoRT YOLO NMS付きHEF |
| YOLO26の検出 | ✅ | ✅ | サポートされているランタイム向けのNMS不要の検出ヘッド出力 |
| YOLOv8-seg / YOLO11-seg | ✅ | ✅ | 推論時にUltralyticsによってデコードされる生のセグメンテーションテンソル |
| YOLOv8-pose / YOLO11-pose | Hailo-8Lで検証済み | 未検証 | 推論時にUltralyticsによってデコードされる生のポーズテンソル |
| YOLOv8-obb / YOLO11-obb | Hailo-8Lで検証済み | 未検証 | 推論時にUltralyticsによってデコードされる生のOBBテンソル |
| YOLOv8-cls / YOLO11-cls / YOLO26-cls | Hailo-8Lで検証済み | 未検証 | チップ上でのソフトマックス。HEFはクラス確率を返します |
| YOLO26-sem | Hailo-8Lで検証済み | 未検証 | ロジット、またはHailo-10/15上の作成されたマルチクラスマップ |
| YOLO26-depth | Hailo-8Lで検証済み | 未検証 | 密なロジット。Ultralyticsによってデコードされるメトリック深度マップ |
ポーズ、OBD、分類、YOLO26セマンティックセグメンテーション、およびYOLO26深度推定(Hailo-8/8Lパス)は、HailoRT 4.23およびDFC 3.33を搭載したHailo-8Lで検証されています。エクスポーターは他のリストされたターゲットも受け入れますが、それらの新しいタスクパスについては、本番環境での使用前に対応するコンパイラおよびデバイスでの検証が必要です。
次のname値のいずれかを選択します:
name | ターゲットアクセラレータ |
|---|---|
hailo8 | Hailo-8 |
hailo8l | Hailo-8L |
hailo10h | Hailo-10H |
hailo15h | Hailo-15H |
hailo15l | Hailo-15L |
hailo8lがデフォルトです。選択したターゲットに一致するDFC生成をインストールします。
HailoハードウェアおよびSDKジェネレーション#
Hailoアクセラレータファミリは、異なるコンパイラ世代を使用します。生成されたHEFはターゲットハードウェアと一致する必要があるため、エクスポートを実行するマシンではなく、推論を実行するデバイス用にnameを選択してください。
| ハードウェアファミリー | DFCジェネレーション | 一般的なデプロイメントの例 |
|---|---|---|
| Hailo-8 / Hailo-8L | DFC v3.x | アクセラレータモジュール、Raspberry Pi AI Kit/HAT+ |
| Hailo-10H | DFC v5.x | 新しいエッジAIおよびRaspberry Piデプロイメント |
| Hailo-15H / Hailo-15L | DFC v5.x | スマートカメラおよび組み込みビジョンアプリケーション |
コンパイラはLinux x86_64で実行され、結果として得られるHEFはHailoRTを介してHailoデバイスで実行されます。この分離により、ワークステーションまたはUltralytics Platformでコンパイルし、小さなランタイムアーティファクトをARMまたはx86エッジホストにデプロイできます。
互換性に関する注意点#
Hailoコンパイルはハードウェア固有であり、固定の入力形状を使用します。これらの制約を考慮してください:
- 選択した
nameは、デプロイメントアクセラレーターと一致している必要があります。 - キャリブレーション画像は、本番環境で予想される照明、視点、物体、背景を代表するものである必要があります。
- 1つの
imgszでコンパイルされたHEFは、実行時に動的にサイズ変更可能にはなりません。 - Ultralyticsがモデルメタデータからポストプロセッシング設定を生成するため、カスタムクラス数はサポートされています。
- 標準のUltralytics
Detectヘッドを持つ検出モデル、YOLOv8/YOLO11のセグメンテーション、姿勢推定、およびOBBモデル、YOLOv8/YOLO11/YOLO26の分類モデル、ならびにYOLO26のセマンティックセグメンテーションおよび深度推定モデルがサポートされています。YOLO26のインスタンスセグメンテーション、姿勢推定、および指向性バウンディングボックスは、YOLO-World、YOLOE、YOLOv10、およびRT-DETRのエクスポートとともに、現在はサポートされていません。 - Hailo-8/8LおよびHailo-10/15のアーティファクトは、異なるDFCジェネレーションによってコンパイルされるため、互換性はありません。
キャリブレーションとINT8量子化#
Hailo HEFエクスポートは、YOLOネットワークをアクセラレータ上に効率的にマップするためにINT8量子化を使用します。キャリブレーションデータセットは活性化の範囲を推定するものであり、モデルの再トレーニングやコンパイル中のラベルを必要としません。
dataが省略されている場合、Ultralyticsは、検出用のCOCO128、セマンティックセグメンテーション用のcityscapes8、深度推定用のdepth8など、タスク固有の軽量キャリブレーションデータセットを使用します。高密度深度ヘッドは、特にキャリブレーションドメインに敏感です。関連のない検出画像で深度モデルをキャリブレーションすると、予測されたマップが平坦化され、より大きなドメイン内セットによって忠実度が向上します。カスタムのコンピュータービジョンモデルの場合は、コンパイラが実際のデプロイメントドメインからの代表的な画像を認識できるように、dataをそのデータセットYAMLに向けることができます:
model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")fractionは、キャリブレーションに使用されるデータセットの部分を選択します。画像が多いほど効果があるのは、デプロイメントドメインを代表している場合のみです。ドメイン外の画像は、量子化された精度を低下させ、最適化時間を増やす可能性があります。INT8 HEFの精度が元のPyTorchモデルと比較して低下する場合は、モデルやランタイムの設定を変更する前に、まずキャリブレーションデータを改善してください。
モデルファミリー別の精度期待値#
Hailo-8L上でドメイン内キャリブレーション(COCO128、画像128枚)を行い測定した場合、INT8 HEFエクスポートは同一の評価プロトコル下でPyTorchのmAP50の以下の割合を維持します:
| モデル | mAP50維持率 | 注意点 |
|---|---|---|
| YOLOv8n | ~100% | オンチップNMSを備えたDFLヘッド |
| YOLO11n | ~96% | バックボーン内のAttentionブロックはINT8の影響を受けやすい |
| YOLO26n | ~93% | エンドツーエンドのヘッドとAttention(信頼度に関する注意書きを参照) |
保持率は、両方のモデルを同じ信頼度閾値で比較します。YOLOv8およびYOLO11のHEFは、エクスポート時のconf(デフォルト0.25)をオンチップNMSに焼き込むため、デフォルトの低い閾値でPyTorchのベースラインに対して検証すると、精度-再現率曲線のより大きな部分が統合され、量子化のギャップが過大評価されます。
検出に加え、セグメンテーション、ポーズ、OBB、分類の各エクスポーターパスを同一のHailo-8L(DFC 3.33、HailoRT 4.23)で検証しました。各INT8 HEFは、ドメイン内キャリブレーションを使用して、同じ検証分割におけるPyTorchチェックポイントと比較されました。
| タスク | メトリクス(検証分割) | YOLOv8n | YOLO11n |
|---|---|---|---|
| インスタンスセグメンテーション | mask mAP50保持率(COCO128-seg) | 98.0% | 93.6% |
| Pose(姿勢推定) | box mAP50保持率(COCO8-pose) | 98.1% | 90.8% |
| 回転バウンディングボックス | mAP50保持率(DOTA128) | ~100% | 96.9% |
| 分類 | top-1保持率(ImageNet val) | 92.6% | 95.4% |
セグメンテーション、姿勢推定、およびOBBは各タスクのデフォルトのドメイン内セット(COCO128-seg、COCO8-pose、DOTA128)でキャリブレーションされ、分類はImageNet100でキャリブレーションされました。これらのデフォルトから2つの注意点があります。COCO8-poseはわずか8枚の画像しかないため、姿勢推定は参考値として扱い、本番環境ではより大きなdata=を渡してください。また、DOTA8は両方のモデルでmAP50が100%近くで飽和するため、OBBはDOTA128で読み取られます。分類は、YOLO11がYOLOv8よりも多くを保持する唯一のタスクでもあります。その他については、YOLO11のアテンションバックボーンの方がINT8に対してより敏感です。
デバイス測定から、以下の3つの実践的なルールが導かれます:
- 常にドメイン内でキャリブレーションを行うこと。 ドメイン外の画像でファインチューニングを行うことは、ファインチューニングを完全に無効にすることと同義です。1,238枚のドメイン外画像でキャリブレーションされたYOLO26nは、ファインチューニングなしでコンパイルされたものと同じ精度(85.7%)しか維持できません。小規模でもドメイン内のセットの方が、大規模なドメイン外のセットよりも優れています。
- YOLO26のデプロイメントでは、
confを約0.05下げてください。 量子化によりYOLO26のスコアは平均して約0.05低下するため、PyTorchで調整された閾値ではHEF上の有効な検出がドロップします。デバイス上でconf=0.20を使用すると、conf=0.25でのPyTorchの検出数と一致し、少しさらに下げる(conf=0.15周辺)ことで、低信頼度の検出が増えるという代償を払いつつ、残りのmAP50ギャップのほぼすべてが回復します。また、量子化は検出の約20%の順序を再ランク付けします(どの閾値でも元に戻せない永続的な順序付け効果ですが、その再シャッフルは、より低い閾値でのmAP50の回復を阻害しません)。 - アテンションペナルティは、Hailo-8/8L (DFC 3.33)における構造的なものです。 アテンションブロックは、コンパイラが提供するすべてのモードでINT8アクティベーション入力を維持する
matmul操作にコンパイルされます。16ビット出力モードはこのグラフの割り当てに失敗し、周辺レイヤーの精度を上げても、matmulがとにかくその入力をINT8に再量子化するため役に立ちません(16ビットで深度方向および出力の畳み込みを保護しても、テストではmAPは変わりませんでした)。精度が優先され、モデルが相互交換可能な場合、現時点ではYOLO11の方がYOLO26よりもここでうまく量子化されます。新しいHailo世代(DFC 5.x)は、より多くの混合精度オプションを公開しており、異なる場合があります。
エクスポートされたアーティファクト#
エクスポートにより、デプロイ可能なHEFとUltralyticsメタデータを含むディレクトリが作成されます:
yolo11n_hailo_model/
├── yolo11n.hef
├── metadata.yaml
└── nms_config.json*.hefは、HailoRTによってロードされるコンパイル済みモデルです。metadata.yamlは、モデル名、タスク、入力サイズ、ストライド、およびHailoターゲット情報を保持します。nms_config.jsonは、YOLOv8およびYOLO11検出モデル用に生成されたHailoRT NMS設定を記録します。YOLO26の検出および非検出タスク(セグメンテーション、セマンティック、深度、分類、姿勢推定、OBB)は、このファイルを使用しません。
中間的なONNXグラフはコンパイル後に削除されます。
Hailoハードウェアで推論を実行する#
ターゲットデバイスにHailoRTをインストールします。Raspberry Pi AI KitおよびAI HAT+のユーザーは、Raspberry Pi AI software guideに従うことができます:
sudo apt install hailo-all
hailortcli fw-control identifymetadata.yamlがHEFの隣に残るように、完全なエクスポートディレクトリをデバイスにコピーします。UltralyticsはHailoRTを使用して、エクスポートされたディレクトリ上で直接predictとvalを実行します:
from ultralytics import YOLO
model = YOLO("yolo11n_hailo_model")
results = model.predict("path/to/image.jpg")検出モデルの場合、バックエンドはYOLOv8およびYOLO11のHailoRT NMS出力を変換し、YOLO26の1対1出力を自動的にデコードします。生のセグメンテーション、姿勢推定、およびOBBテンソルをデコードし、オンチップの分類確率を返し、Hailo-8/8Lおよびすべてのシングルクラスヘッドでのホスト削減またはマルチクラスHailo-10/15ヘッド用のオンチップArgMaxを介してセマンティッククラスマップを生成します。TAPPAS、GStreamer、およびRaspberry Piのpicamera2.devices.Hailoヘルパーは、アプリケーション固有のパイプラインで引き続き利用できます。
GStreamerデプロイメントの場合は、HEFをhailonetに渡します:
gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \
hailonet hef-path=yolo11n_hailo_model/yolo11n.hef ! \
hailofilter function-name=yolov8 ! hailooverlay ! autovideosinkHailoデプロイメントオプション#
HEFは、複数のHailoランタイムインターフェース間で共通のデプロイ可能なモデルアーティファクトです。アプリケーションに適したインターフェースを選択してください:
| ランタイムオプション | 最適な用途 |
|---|---|
| HailoRT PythonまたはC/C++ API | カスタムアプリケーションおよび推論の直接制御 |
Raspberry Pi picamera2.devices.Hailo | Raspberry Piでのカメラモジュールプロジェクト |
| GStreamerおよびHailoアプリケーション | リアルタイムビデオストリームおよびマルチステージパイプライン |
hailortcli | デバイスチェック、HEF検査、およびベンチマーク |
アプリケーションがUltralyticsのクラス名、入力サイズ、ストライド、またはその他のモデル情報を必要とする場合は、metadata.yamlをHEFと一緒に保持してください。HEF自体は、カメラキャプチャ、視覚化、トラッキング、アラート、またはストレージのためのアプリケーションレベルのロジックに取って代わるものではありません。
HailoデバイスとHEFの検証#
カメラやビデオパイプラインを統合する前に、ランタイムとアクセラレータを個別に検証してください:
hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hefデバイスのみのパフォーマンス測定では、Hailoの推論をビデオデコード、画像リサイズ、描画、およびアプリケーションI/Oから分離します。エンドツーエンドのレイテンシやフレームレートを推定する場合は、アプリケーション全体を個別に測定してください。
他のYOLOエクスポートフォーマットとHailoの比較#
モデルを実行するハードウェアに基づいてエクスポートフォーマットを選択してください:
| デプロイターゲット | Ultralyticsエクスポートフォーマット |
|---|---|
| Hailo NPU | Hailo HEF(format="hailo") |
| NVIDIA GPU | TensorRT |
| Intel CPU、GPU、またはNPU | OpenVINO |
| Appleハードウェア | CoreML |
| Qualcomm Snapdragon NPU | QNN |
| Rockchip NPU | RKNN |
| Raspberry Pi AI Camera | Sony IMX500 |
| ポータブルなクロスランタイム使用 | ONNX |
最終的なデバイスにHailoアクセラレータが搭載されている場合は、HEFが正しい選択肢です。ONNXはポータブルな中間フォーマットとして依然として有用ですが、HailoRTは元のONNXモデルではなく、DFCによって生成されたハードウェア固有のHEFを実行します。
Hailoコンピュータービジョンのパフォーマンス最適化#
モデルとパイプラインの選択は、多くの場合、コンパイラフラグよりも重要です:
- 小さなYOLOモデルから始め、精度が必要な場合にのみモデルサイズを大きくしてください。
- アプリケーションにとって重要なオブジェクトを維持する、最も低い固定の
imgszを選択します。 - 可能であれば、実際のカメラと環境からのキャリブレーション画像を使用してください。
- 推論のたびにHEFを再オープンするのではなく、フレーム間でHailoネットワークをアクティブに保ってください。
- デバイスの推論時間を、前処理、ビデオデコード、後処理、可視化、およびネットワークI/Oから分離してください。
- 持続的なビデオワークロードには、GStreamerのようなストリーミングパイプラインを使用してください。
- 本番環境で使用される正確なアクセラレータとHailoRTバージョンで、エクスポートされたHEFを検証してください。
エクスポートの引数#
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
name | str | hailo8l | ターゲットHailoアクセラレータアーキテクチャ |
imgsz | int、list | 640 | 固定モデル入力サイズ |
data | str | None | キャリブレーションデータセットのYAML。分類の場合は、データセットディレクトリまたは組み込みのデータセット名を指定します。省略した場合、Ultralyticsはタスク固有のキャリブレーションデータセットを選択します。 |
fraction | float | 1.0 | 使用するキャリブレーション画像の割合 |
quantize | int | 8 | HailoエクスポートはINT8量子化を使用します |
simplify | bool | True | 中間ONNXグラフの簡略化 |
conf | float | 0.25 | YOLOv8/YOLO11 HailoRT NMS信頼度閾値 |
iou | float | 0.7 | YOLOv8/YOLO11 HailoRT NMS IoU閾値 |
検出のエクスポートでは、YOLOv8およびYOLO11はHailoRT NMSを受信し、YOLO26はそのNMSフリーの1対1出力を維持します。セグメンテーション、姿勢推定、およびOBBは生のヘッドテンソルを使用し、分類はオンチップの確率を返し、セマンティックセグメンテーションはHailo-8/8Lおよびすべてのシングルクラスヘッドでは生のロジットを返し、マルチクラスHailo-10/15ヘッドでは焼き付けられたクラスマップを返します。深度推定は生の深度ロジットを返し、Ultralyticsは推論時にそれをメートル法深度マップにデコードします。end2endを渡さないでください。明示的な上書きは拒否されます。動的形状、1より大きいバッチ、埋め込みUltralytics NMS、FP16、およびFP32もサポートされていません。
Hailoエクスポートのトラブルシューティング#
Hailo Dataflow Compilerインポートエラー#
hailo_sdk_clientが行方不明であるというエラーがエクスポートで報告された場合は、Ultralyticsと同じPython環境にターゲットハードウェア世代用のDFCホイールをインストールします。Hailo-8/8LおよびHailo-10/15には異なるコンパイラ世代が必要です。
サポートされていないオペレーティングシステムまたはアーキテクチャ#
HEFのコンパイルはLinux x86_64でサポートされています。ローカルコンピューターがmacOS、Windows、Raspberry Pi、またはその他のARMシステムである場合は、Ultralytics Platformを通じてエクスポートするか、互換性のあるワークステーションを使用してください。
エクスポートに時間がかかる#
DFCの最適化は最も負荷の高いステージです。コンパイル時間は、モデルサイズ、入力解像度、およびキャリブレーションデータによって増加します。サポートされているGPUは最適化を高速化できますが、CPUのみのコンパイルは大幅に遅くなる可能性があります。
量子化モデルの精度低下#
本番環境の入力に似ており、重要なオブジェクト、スケール、照明条件、および背景を含むキャリブレーション画像を使用します。デプロイメントの前に、同じ検証セットで元のPyTorchモデルとエクスポートされたHEFを比較してください。適切なキャリブレーションを行っても、ファミリ依存の中程度のギャップが残ります。測定されたベースラインについては、Accuracy Expectations by Model Familyを参照してください。
HEFがデバイスで読み込まれない#
nameが物理的なHailoアーキテクチャと一致していること、およびデバイスドライバ、ファームウェア、およびHailoRTパッケージが相互に互換性があることを確認します。hailortcli parse-hefで成果物を検査し、hailortcli fw-control identifyでアクセラレータを検証します。
出力の解析が正しくないように見える#
Ultralyticsが一致するYOLOv8、YOLO11、またはYOLO26の後処理パスを選択できるように、metadata.yamlをHEFのそばに置いてください。カスタムのHailoRTアプリケーションも同様に、後処理をエクスポートされたモデルファミリに一致させる必要があります。
要約#
UltralyticsのHailoエクスポート機能は、学習済みのYOLOモデルからデプロイ可能なHEFへの直接的なパスを提供します。
- YOLOv8、YOLO11、またはYOLO26の検出または分類モデル、YOLOv8/YOLO11のセグメンテーション、ポーズ、またはOBDモデル、あるいはYOLO26のセマンティックセグメンテーションまたは深度推定モデルをロードします。
format="hailo"でエクスポートし、ターゲットアーキテクチャを選択します。- 対応するDFCを使用してローカルでキャリブレーションおよびコンパイルするか、Ultralytics Platformの管理エクスポートを使用します。
- HEFと
metadata.yamlをHailo搭載のエッジデバイスにコピーします。 - HailoRT、Raspberry Pi Picamera2、またはGStreamerビデオパイプラインを使用して推論を実行します。
その他のコンピュータービジョンデプロイメントターゲットについては、Export mode、Benchmark mode、およびintegrations guideを参照してください。関連するハードウェアガイドには、ONNX、OpenVINO、TensorRT、NCNN、RKNN、Sony IMX500、およびQualcomm QNNが含まれます。
よくある質問 (FAQ)#
いいえ。サポートされているLinux x86_64システムでDFCを実行し、生成されたHEFをRaspberry Piにデプロイしてください。
サポートされているGPUがあれば、DFCの最適化時間を大幅に短縮できます。CPUコンパイルも可能ですが、大幅に時間がかかる場合があります。
直接エクスポートでは、標準のYOLOv8、YOLO11、またはYOLO26検出ヘッドを持つ検出モデル、YOLOv8/YOLO11セグメンテーション、ポーズ、OBDモデル、およびYOLOv8/YOLO11/YOLO26分類モデルがサポートされます。これには、それらの標準アーキテクチャから構築されたカスタムトレーニング済みモデルが含まれます。YOLO26セマンティックセグメンテーションおよび深度推定モデルもサポートされています。YOLO26インスタンスセグメンテーション、ポーズ、OBD、ならびにYOLOv10、YOLO-World、YOLOE、RT-DETRは、検証されていないHEFを生成する代わりに拒否されます。
はい。同じ
format="hailo"コマンドにカスタムの.ptウェイトを使用し、代表的な INT8 キャリブレーションのために学習データセット YAML をdata経由で渡してください。クラス名とクラス数はモデルのメタデータから読み取られます。いいえ。DFCは固定の入力形状をHEFにコンパイルします。デプロイメントパイプラインで使用される解像度と一致するように、エクスポート中に
imgszを選択してください。YOLO26はNMSフリーの1対1検出ヘッドを使用しています。Ultralyticsは、YOLOv8およびYOLO11で使用されるHailoRT YOLOv8スタイルのNMSを付加する代わりに、それらの出力テンソルを直接コンパイルします。
Hailo Dataflow Compilerは、Linux x86_64ビルドマシン上でモデルを変換および量子化して、ハードウェア固有のHEFにします。HailoRTはそのHEFをターゲットデバイスに読み込んで実行します。
コンパイル済みのHEFをHailoランタイムにデプロイしてください。ONNXはエクスポート中に使用される中間表現であり、コンパイル成功後に削除されます。
Hailo Developer Zoneから、お使いのハードウェア世代用のコンパイラホイールをダウンロードしてください。コンパイラはHEFを作成するためにのみ必要であり、HailoRTはターゲットアクセラレータ上でそれを実行します。