Hailo HEF モデル変換ガイド
ONNX モデル、キャリブレーションデータ、および Hailo-8 または Hailo-10H 向けのターゲット固有 Hailo HEF を準備します。
このガイドでは、CV モデルを Hailo Executable File (.hef) に変換し、
reComputer R Series (CM5 + Hailo-8) または
reComputer R Series (CM5 + Hailo-10H) 向けに用意する開発ワークフローを説明します。
.hefはターゲット固有です。Hailo-8 用の HEF を Hailo-10H に、または Hailo-10H 用の HEF を Hailo-8 にデプロイしないでください。ターゲットごとにビルド、検証、ラベル付け、パブリッシュを別々の成果物として行ってください。
事前準備
モデル変換とランタイム推論は異なります。
- HailoRT はデバイス上で既存の HEF を実行します。ONNX の変換は行いません。
- Hailo Dataflow Compiler (DFC) は、解析、最適化、 量子化、HEF コンパイルを実行します。
- DFC は、Hailo が提供するサポート対象の開発ホスト環境で実行し、 Raspberry Pi のデプロイメントデバイス上では実行しないでください。
変換前に以下を準備してください。
- 固定形状の ONNX モデルと、明示的な入力レイアウト/カラー順序。
- 本番データと一致する、代表的なキャリブレーション画像セット。
- 後処理要件: クラスリスト、アンカー、閾値、NMS モード、 キーポイントレイアウト、マスクデコード、およびホスト側の操作。
- 対象ハードウェアターゲットをサポートする DFC および Model Zoo リリース。
Hailo の現在の Model Zoo master ブランチは、Hailo-10/15 デバイスを対象としています。
Hailo-8 または Hailo-8L の場合は、互換性のある Model Zoo v2.x リリースを、対応する
DFC リリースと共に使用してください。Hailo-8 モデルのコンパイルに master を使用しないでください。
1. 公式開発環境のインストール
Hailo Developer Zone から Hailo Software Suite または Dataflow Compiler をインストールし、 そのインストールに付属する Python 環境をアクティベートします。 DFC は Raspberry Pi デプロイメントデバイスにはインストールされません。
公式の Model Zoo をクローンし、使用する DFC およびターゲットと互換性のあるリリースを選択します。 タグのプレースホルダーは、インストールした Hailo Software Suite に記載されているリリースに置き換えてください。
Hailo-10H
git clone https://github.com/hailo-ai/hailo_model_zoo.git
cd hailo_model_zoo
git checkout <compatible-hailo10h-release>
pip install -e .Hailo-8
git clone https://github.com/hailo-ai/hailo_model_zoo.git
cd hailo_model_zoo
git checkout <compatible-v2.x-release>
pip install -e .CLI が利用可能であることを確認します。
hailomz --version
hailomz info <model_name>2. 公式 Model Zoo ネットワークのコンパイル
Hailo Model Zoo が既に提供しているネットワークの場合、compile は必要な解析と最適化のステージを実行し、
HEF を生成します。
# Hailo-8: run this from a compatible Model Zoo v2.x environment
hailomz compile <model_name> --hw-arch hailo8
# Hailo-10H: run this from a compatible Hailo-10H environment
hailomz compile <model_name> --hw-arch hailo10h各ステージを個別に検査する必要がある場合は、公式 CLI で以下も提供されています。
hailomz parse <model_name> --hw-arch <hailo8-or-hailo10h>
hailomz optimize <model_name> --hw-arch <hailo8-or-hailo10h>
hailomz compile <model_name> --hw-arch <hailo8-or-hailo10h>ネットワーク名、キャリブレーションデータセット、前処理、後処理、 モデルスクリプトは、そのネットワークの Model Zoo YAML および ALLS ファイルから取得されます。生成された HEF を 受け入れる前に、それらを確認してください。
3. 実例: YOLO11n の変換
Hailo は公式に yolov11n の Model Zoo 設定を提供しています。v2.19.0 設定は
Hailo-8/Hailo-8L をサポートし、現在の Hailo-10H Model Zoo 設定は
Hailo-10H をサポートします。ターゲットに合った環境とブランチを使用してください。
Hailo の事前学習済み YOLO11n のコンパイル
Model Zoo は参照されているチェックポイントをダウンロードし、メンテナンスされている YAML、パーサーノード、モデルスクリプト、キャリブレーションフロー、NMS 設定を適用します。
YAML, parser nodes, model script, calibration flow, and NMS configuration:
# In a Hailo-8-compatible Model Zoo v2.x environment
hailomz info yolov11n
hailomz compile yolov11n --hw-arch hailo8# In a Hailo-10H-compatible Model Zoo environment
hailomz info yolov11n
hailomz compile yolov11n --hw-arch hailo10h独自に学習させた YOLO11n のコンパイル
まず、Ultralytics の学習チェックポイントを固定 640 ピクセルの ONNX モデルにエクスポートします。 この手順は学習環境で実行してください。DFC 環境では、Python 要件が互換性がある場合を除き、 実行しないでください。
unless their Python requirements are compatible.
pip install ultralytics
yolo export model=/path/to/best.pt format=onnx imgsz=640Validate the exported ONNX before quantization:
yolo predict model=/path/to/best.onnx source=/path/to/test.jpgターゲットとクラス数を設定し、Hailo の YOLO11n ネットワーク設定を使用してコンパイルします。
class count for your trained dataset and compile using Hailo's YOLO11n network configuration:
# Use hailo8 in a compatible v2.x environment, or hailo10h in its matching environment.
TARGET_ARCH=hailo10h
NUM_CLASSES=3
hailomz compile \
--ckpt /path/to/best.onnx \
--calib-path /path/to/calibration/images \
--yaml hailo_model_zoo/cfg/networks/yolov11n.yaml \
--classes "$NUM_CLASSES" \
--hw-arch "$TARGET_ARCH"入力解像度、検出ヘッド、レイヤー名、出力レイアウトなど)、標準の YOLO11n の YAML および ALLS ファイルは適用できなくなる可能性があります。コマンドを強制的に完了させるのではなく、 それらのファイルを更新して検証してください。
最後に、HEF をターゲットデバイスにコピーし、実行できることを確認します。
Finally, copy the HEF to the target device and verify that it executes:
scp /path/to/yolov11n.hef seeed@<BOARD_IP>:~/
ssh seeed@<BOARD_IP>
hailortcli fw-control identify
hailortcli benchmark ~/yolov11n.hefそれだけではバウンディングボックスデコードが検証されたことにはなりません。
4. サポートされている別のカスタム ONNX チェックポイントのコンパイル
Hailo の公式トレーニングガイドでは、カスタム ONNX モデルが既存の Model Zoo ネットワーク定義と 一致する場合に、以下の Model Zoo 形式を使用します。
Hailo's official training guides use the following Model Zoo form when a custom ONNX model matches an existing Model Zoo network definition:
hailomz compile \
--ckpt /path/to/model.onnx \
--calib-path /path/to/calibration/images \
--yaml /path/to/hailo_model_zoo/cfg/networks/<network>.yaml \
--hw-arch <hailo8-or-hailo10h>Only add parser node overrides when the model's official guide or a verified Netron inspection requires them:
hailomz compile \
--ckpt /path/to/model.onnx \
--calib-path /path/to/calibration/images \
--yaml /path/to/<network>.yaml \
--start-node-names <input_node> \
--end-node-names <output_node_1> <output_node_2> \
--hw-arch <hailo8-or-hailo10h>正しいエンドノード、前処理、量子化、後処理を自動的に決定できません。
5. 変換ワークフロー
- ONNX のエクスポートと検証。 入力サイズと前処理を固定します。コンパイル前に、 ホスト側のテスト画像で ONNX モデルをチェックします。
- ハードウェアターゲットの選択。 Hailo-8 と Hailo-10H で別々の変換ワークスペースを 作成します。ソース ONNX とキャリブレーションデータを追跡可能な状態に保ちます。
- ネットワークの解析。 DFC パーサーを使用して中間ネットワーク表現を生成し、 すべての入出力テンソル名と形状を検査します。
- 前処理と後処理の設定。 可能な限り、対応する Hailo Model Zoo ネットワーク設定を
使用します。カスタムの正規化、リサイズ、アンカー、NMS、出力デコードの決定事項は、
すべてモデルの README に記録します。
5. キャリブレーションデータによる最適化。 代表的な画像を使用して量子化を実行します。
コンパイル前に警告と精度結果を確認します。
6. HEF のコンパイル。 選択したターゲット向けに個別にコンパイルし、
成果物に
model_hailo8.hefやmodel_hailo10h.hefのように、明確な名前を付けます。 7. ハードウェアでの検証。 一致する HailoRT リリースで HEF を実行し、 出力テンソルと後処理結果をホストリファレンスと比較し、/dev/hailo0が利用可能であることを確認します。 - Compile the HEF. Compile separately for the selected target, then name
artifacts unambiguously, for example
model_hailo8.hefandmodel_hailo10h.hef. - Validate on hardware. Run the HEF with the matching HailoRT release,
compare output tensors and post-processed results with the host reference,
and verify
/dev/hailo0is available.
6. HEFの検証
生成したHEFを、対応するアクセラレータとHailoRTリリースが導入されたハードウェアにコピーし、デバイスを認識させてから公式のベンチマークコマンドを実行します。
hailortcli fw-control identify
hailortcli benchmark /path/to/model.hefベンチマークが成功すれば、HEFがデバイス上で実行可能であることが証明されます。ただし、アプリケーションの前処理や出力デコードまでは検証されないため、エンドツーエンドの結果をソースモデルのリファレンス実装と比較してください。
7. Hailo-8 / Hailo-10H リリースチェックリスト
| チェック項目 | Hailo-8 | Hailo-10H |
|---|---|---|
| HEFターゲット | Hailo-8 | Hailo-10H |
| ランタイム | デバイスのHailoRT 4.xリリースに合わせる | デバイスのHailoRT 5.xリリースに合わせる |
| コンテナマウント | libhailort.so.4.x に一致 | libhailort.so.5.x に一致 |
| 検証 | hailortcli fw-control identify およびサービス推論 | hailortcli fw-control identify およびサービス推論 |
8. 公開とデプロイ
新規モデルターゲットごとに以下の作業を行います。
-
該当するHailo CVリポジトリに、HEF、ソースモジュール、Dockerfile、デモ用メディア、テスト済みコマンドを追加します。
-
実機ターゲットハードウェア上でGHCRイメージをビルドし、テストします。
-
対応するAI Labのモデルデプロイエントリとプラットフォーム固有のWikiを追加します。
-
モデルのダウンロード総数を表示できるように、パッケージURLを
downloadSourcesに追加します。
HEFの検証後は、本セクションの Hailo-8 CVモデルデプロイ または Hailo-10H CVモデルデプロイ のページを参照し、デバイスチェック、イメージプル、Docker実行コマンド、ブラウザプレビューまでの完全な手順を実施してください。
公式リファレンス: