Link to this section用于 Ultralytics YOLO 模型的 Hailo 导出#
Hailo AI 加速器可以在边缘设备(例如 Raspberry Pi AI Kit 和 AI HAT+)上运行已编译的 Hailo 可执行格式(HEF)模型。Ultralytics 使用 Hailo 数据流编译器(DFC)将 YOLO 检测、分割、姿态估计、OBB、分类、语义分割和深度估计模型直接导出为 HEF。
Hailo 部署专为边缘计算机视觉设计:适用于摄像头、机器人、工业系统、网关以及其他需要在本地进行目标检测而无需将每一帧数据发送到云端的设备。编译后的 HEF 包含所选加速器所需的量化网络、硬件分配、调度以及可选的 HailoRT 后处理功能。
Link to this section为何在 Hailo 上部署 Ultralytics YOLO?#
将 Ultralytics YOLO 与 Hailo 神经网络处理单元 (NPU) 相结合,提供了一条从模型训练到低功耗边缘 AI 推理的实用路径。常见的应用案例包括:
- 智能摄像头和视频分析:在摄像头附近运行实时目标检测,用于安防、零售、交通和占用检测应用。
- 机器人和自主系统:检测人员、车辆、包裹、工具或障碍物,而无需依赖持续的云连接。
- 工业计算机视觉:部署自定义 YOLO 模型用于检测、计数、安全监控和质量控制。
- Raspberry Pi AI 项目:使用 AI Kit 或 AI HAT+ 为 Raspberry Pi 系统增加加速视觉推理功能。
- 边缘网关和 AI PC:在本地处理多个视频或传感器流,同时减少带宽和云端计算需求。
本地推理可以提高隐私性和响应速度,因为图像保留在部署设备上。实际的吞吐量、延迟和功耗取决于 YOLO 模型大小、输入分辨率、Hailo 架构、主机系统和应用程序流水线。
Link to this sectionHailo 导出工作原理#
Ultralytics 拥有 format="hailo" 背后的完整导出工作流:
YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compile导出器自动执行以下阶段:
- 导出具有编译器兼容设置的静态 ONNX 图。
- 选择模型架构的头输出。
- 生成归一化、激活和后处理指令。
- 构建代表性校准流并将模型量化为 INT8。
- 为所选的 Hailo 加速器编译优化后的图。
- 保存带有 Ultralytics 元数据的 HEF 并删除中间的 ONNX 文件。
YOLOv8 和 YOLO11 检测模型在已编译的流水线中使用 HailoRT YOLO NMS。YOLO26 检测模型使用其无需 NMS 的一对一输出,因此导出器会自动选择不同的输出和量化路径。YOLOv8/YOLO11 分割、姿态估计和 OBB 会编译原始头部张量,Ultralytics 会在推理时对其进行解码,而 YOLOv8/YOLO11/YOLO26 分类则在芯片上运行 softmax,因此 HEF 会直接返回类别概率。对于 YOLO26 语义分割,导出器遵循加速器规则:Hailo-8/8L(DFC v3.x)返回分类器 logits 以供主机进行上采样和缩减,而 Hailo-10/15(DFC v5.x)在芯片上编译多类 ArgMax 头部并返回紧凑的类别映射。单类头部在每个目标上都使用主机 logit 路径,因为它们需要阈值而不是 ArgMax。YOLO26 深度模型在 a16 中编译密集 logit 卷积,并在主机上重建公制深度图(头部之后的裁剪/指数和学习到的对数仿射校准),因此量化器在原始 logit 上保持其最宽的范围。用户不需要手动查找 ONNX 结束节点、编写 Hailo 模型脚本(.alls)或创建 NMS JSON。
Link to this section安装#
安装 Ultralytics 并从 Hailo Developer Zone 下载适用于目标硬件的 DFC wheel(需免费注册):
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 安装。
Link to this section导出 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)Link to this section支持的模型和硬件#
Hailo 生态系统涵盖广泛的计算机视觉工作负载,但 Ultralytics 的 format="hailo" 导出器目前验证了标准的 YOLO 检测、分割、姿态估计、OBB、分类、语义分割和深度估计头部。任务表格描述了可用的导出器路径;硬件验证单独列在下方。
| Ultralytics 任务 | 直接 Hailo 导出 | 支持的模型系列 | 注意事项 |
|---|---|---|---|
| 目标检测 | ✅ | YOLOv8, YOLO11, YOLO26 | 标准 Ultralytics Detect 头,包括自定义模型 |
| 实例分割 | ✅ | YOLOv8, YOLO11 | 由 Ultralytics 在推理时解码的原始头张量;YOLO26-seg 目前不支持 |
| 图像分类 | ✅ | YOLOv8, YOLO11, YOLO26 | Softmax 在芯片上运行;HEF 直接返回类别概率 |
| 姿态估计 | ✅ | YOLOv8, YOLO11 | 原始头部张量由 Ultralytics 在推理时解码;目前不支持 YOLO26-pose |
| 旋转目标检测 | ✅ | YOLOv8, YOLO11 | 原始头部张量由 Ultralytics 在推理时解码;目前不支持 YOLO26-OBB |
| 语义分割 | ✅ | YOLO26 | Hailo-8/8L 和单类头部返回逻辑值;Hailo-10/15 生成多类地图 |
| 深度估计 | ✅ | YOLO26 | 密集 logit 在 a16 中编译;Ultralytics 在推理时重建公制深度图 |
诸如 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 验证 | 未验证 | 原始 OBB 张量,由 Ultralytics 在推理时解码 |
| YOLOv8-cls / YOLO11-cls / YOLO26-cls | 已通过 Hailo-8L 验证 | 未验证 | 芯片上 softmax;HEF 返回类别概率 |
| YOLO26-sem | 已通过 Hailo-8L 验证 | 未验证 | 逻辑值,或在 Hailo-10/15 上生成的完整多类地图 |
| YOLO26-depth | 已通过 Hailo-8L 验证 | 未验证 | 密集 logit;由 Ultralytics 解码的公制深度图 |
姿态估计、OBB、分类、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 版本。
Link to this sectionHailo 硬件和 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 边缘主机上。
Link to this section兼容性说明#
Hailo 编译与硬件相关,并使用固定的输入形状。请记住这些约束:
- 所选的
name必须与部署加速器匹配。 - 校准图像应代表生产环境中预期的光照、视点、对象和背景。
- 用一个
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 版本编译,不可互换。
Link to this section校准和 INT8 量化#
Hailo HEF 导出使用 INT8 量化,以便将 YOLO 网络高效映射到加速器上。校准数据集用于估计激活范围;它不会重新训练模型,也不需要在编译期间提供标签。
当省略 data 时,Ultralytics 会使用任务特定的轻量级校准数据集,例如用于检测的 COCO128、用于语义分割的 cityscapes8 或用于深度估计的 depth8。密集深度头部对校准域特别敏感:用不相关的检测图像校准深度模型会使预测的地图变平,而更大的域内数据集可以提高保真度。对于自定义计算机视觉模型,请将 data 指向其数据集 YAML,以便编译器观察来自实际部署域的代表性图像:
model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")fraction 用于选择数据集的校准比例。更多图像只有在代表部署域时才有用;域外图像可能会降低量化精度并增加优化时间。如果 INT8 HEF 相比原始 PyTorch 模型损失了精度,请先改进校准数据,再考虑更改模型或运行时设置。
Link to this section各模型系列的精度预期#
在 Hailo-8L 上使用域内校准(COCO128,128 张图像)进行测量,在相同的评估协议下,INT8 HEF 导出的模型保留了其 PyTorch mAP50 的以下比例:
| 模型 | mAP50 保留率 | 注意事项 |
|---|---|---|
| YOLOv8n | ~100% | 带有片上 NMS 的 DFL 头 |
| YOLO11n | ~96% | 主干网络中的注意力模块对 INT8 更敏感 |
| YOLO26n | ~93% | 端到端头加注意力机制;请参阅置信度说明 |
保留率比较了两个模型在相同置信度阈值下的表现。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% |
| 姿态 | box mAP50 保留率 (COCO8-pose) | 98.1% | 90.8% |
| 旋转目标检测 (Oriented bounding box) | mAP50 保留率 (DOTA128) | ~100% | 96.9% |
| 分类 | top-1 保留率 (ImageNet val) | 92.6% | 95.4% |
分割、姿态和 OBB 是使用各任务默认的域内数据集 (COCO128-seg, COCO8-pose, DOTA128) 进行校准的;分类任务则是使用 ImageNet100 进行校准。基于这些默认设置有两点需要注意:COCO8-pose 仅包含 8 张图像,因此请将姿态识别结果视为指示性数据,并在生产环境中使用更大的 data=;DOTA8 会导致两个模型的 mAP50 均趋于 100% 饱和,这就是为什么 OBB 采用 DOTA128 的原因。另外,分类是唯一一个 YOLO11 保留效果优于 YOLOv8 的任务;对于其他任务,YOLO11 的注意力骨干网络对 INT8 的敏感度更高。
根据设备测量结果,得出以下三条实用规则:
- 始终进行域内校准。 使用域外图像进行微调等同于完全禁用微调:使用 1,238 张域外图像校准的 YOLO26n 保留的精度(85.7%)与不进行微调直接编译的模型相同。一小部分域内数据集优于大量域外数据集。
- 在 YOLO26 部署中将
conf调低约 0.05。 量化会将 YOLO26 的得分平均下调约 0.05,因此在 PyTorch 中调整好的阈值会导致 HEF 上丢失有效检测结果。在设备端使用conf=0.20与 PyTorch 在conf=0.25下的检测数量相匹配,而进一步轻微降低阈值(约为conf=0.15)可以以增加更多低置信度检测为代价,基本找回剩余的 mAP50 差距。量化还会重新排列约 20% 的检测结果——这是一种无法通过阈值消除的持久排序效应——但这种重排并不会阻碍在较低阈值下 mAP50 的恢复。 - 在 Hailo-8/8L (DFC 3.33) 上,注意力惩罚是结构性的。 注意力块会编译为
matmul操作,在编译器提供的每种模式下都会保持 INT8 激活输入;16 位输出模式会因该图分配失败,且提高周围层的精度也无济于事,因为 matmul 无论如何都会将其输入重新量化为 INT8(在我们的测试中,将深度可分离卷积和输出卷积保护在 16 位时,mAP 没有变化)。当准确性为优先且模型可互换时,YOLO11 目前比 YOLO26 量化效果更好;较新的 Hailo 版本 (DFC 5.x) 提供了更多混合精度选项,情况可能会有所不同。
Link to this section导出工件#
导出操作会创建一个包含可部署 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 图在编译后会被删除。
Link to this section在 Hailo 硬件上运行推理#
在目标设备上安装 HailoRT。Raspberry Pi AI Kit 和 AI HAT+ 用户可以参考 Raspberry Pi AI 软件指南:
sudo apt install hailo-all
hailortcli fw-control identify将完整的导出目录复制到设备,确保 metadata.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 的一对一输出。它会解码原始分割、姿态估计和 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 ! autovideosinkLink to this sectionHailo 部署选项#
HEF 是在多个 Hailo 运行时接口中通用的可部署模型工件。选择适合应用程序的接口:
| 运行时选项 | 最适合 |
|---|---|
| HailoRT Python 或 C/C++ API | 自定义应用程序和对推理的直接控制 |
Raspberry Pi picamera2.devices.Hailo | Raspberry Pi 上的 Camera Module 项目 |
| GStreamer 和 Hailo 应用程序 | 实时视频流和多阶段流水线 |
hailortcli | 设备检查、HEF 检测和基准测试 |
当应用程序需要 Ultralytics 类名、输入尺寸、步长或其他模型信息时,请保留 metadata.yaml 和 HEF 文件。HEF 本身不能替代摄像头采集、可视化、追踪、警报或存储等应用层逻辑。
Link to this section验证 Hailo 设备和 HEF#
在集成摄像头或视频流水线之前,请独立验证运行时和加速器:
hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hef仅设备的性能测量可将 Hailo 推理与视频解码、图像缩放、绘制和应用程序 I/O 隔离开来。在评估端到端延迟或每秒帧数时,请单独测量整个应用程序。
Link to this sectionHailo 与其他 YOLO 导出格式的比较#
根据将要执行该模型的硬件选择导出格式:
| 部署目标 | 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 执行的是由 DFC 生成的硬件特定 HEF,而不是原始的 ONNX 模型。
Link to this section优化 Hailo 计算机视觉性能#
模型和流水线的选择通常比编译器标志更重要:
- 从小型 YOLO 模型开始,只有在精度有要求时才增加模型大小。
- 选择能保留应用程序重要对象的最低固定
imgsz。 - 尽可能使用来自真实摄像头和环境的校准图像。
- 保持 Hailo 网络在各帧之间保持活跃,而不是为每次推理重新打开 HEF。
- 将设备推理时间与预处理、视频解码、后处理、可视化和网络 I/O 分离开来。
- 对于持续的视频工作负载,请使用 GStreamer 等流式传输流水线。
- 在生产环境中使用的确切加速器和 HailoRT 版本上验证导出的 HEF。
Link to this section导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
name | str | hailo8l | 目标 Hailo 加速器架构 |
imgsz | int, list | 640 | 固定模型输入尺寸 |
data | str | 任务特定 | 校准数据集 YAML |
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 的一对一输出。分割、姿态估计和 OBB 使用原始头部张量,分类返回芯片上的概率,语义分割在 Hailo-8/8L 上返回原始 logits 以及所有单类头部,或为多类 Hailo-10/15 头部返回烘焙的类别映射。深度估计返回原始深度 logit,Ultralytics 在推理将其解码为公制深度图。请勿传递 end2end;显式覆盖将被拒绝。动态形状、大于 1 的批次大小、嵌入式 Ultralytics NMS、FP16 和 FP32 同样不受支持。
Link to this section排查 Hailo 导出问题#
Link to this sectionHailo Dataflow Compiler 导入错误#
如果导出报告缺少 hailo_sdk_client,请在与 Ultralytics 相同的 Python 环境中为目标硬件代际安装 DFC wheel。Hailo-8/8L 和 Hailo-10/15 需要不同的编译器代际。
Link to this section不支持的操作系统或架构#
Linux x86_64 支持 HEF 编译。如果本地计算机是 macOS、Windows、Raspberry Pi 或其他 ARM 系统,请通过 Ultralytics Platform 导出或使用兼容的工作站。
Link to this section导出耗时较长#
DFC 优化是最昂贵的阶段。编译时间会随着模型大小、输入分辨率和校准数据而增加。受支持的 GPU 可以加速优化,而仅使用 CPU 编译可能会慢得多。
Link to this section量化模型精度下降#
请使用与生产环境输入相似的校准图像,并包含重要的物体、尺度、光照条件和背景。在部署前,在相同的验证集上比较原始 PyTorch 模型和导出的 HEF。即使校准效果良好,各模型系列之间仍存在一定的差距;请参阅 各模型系列的精度预期 以获取测量基准。
Link to this sectionHEF 无法在设备上加载#
确认 name 与物理 Hailo 架构匹配,并且设备驱动程序、固件和 HailoRT 软件包相互兼容。使用 hailortcli parse-hef 检查伪影,并使用 hailortcli fw-control identify 验证加速器。
Link to this section输出解析看起来不正确#
请将 metadata.yaml 保留在 HEF 旁边,以便 Ultralytics 可以选择匹配的 YOLOv8、YOLO11 或 YOLO26 后处理路径。自定义的 HailoRT 应用程序同样必须根据导出的模型系列匹配后处理过程。
Link to this section常见问题解答#
Link to this section我可以在 Raspberry Pi 上编译 HEF 吗?#
不能。请在受支持的 Linux x86_64 系统上运行 DFC,并将生成的 HEF 部署到 Raspberry Pi。
Link to this section我需要 NVIDIA GPU 吗?#
受支持的 GPU 可大幅缩短 DFC 优化时间。可以使用 CPU 编译,但时间可能要长得多。
Link to this section哪些 YOLO 模型支持 Hailo 导出?#
直接导出支持带有标准 YOLOv8、YOLO11 或 YOLO26 检测头部的检测模型、YOLOv8/YOLO11 分割、姿态估计和 OBB 模型,以及 YOLOv8/YOLO11/YOLO26 分类模型。这包括从这些标准架构构建的自定义训练模型。同时也支持 YOLO26 语义分割和深度估计模型。YOLO26 实例分割、姿态估计和 OBB,以及 YOLOv10、YOLO-World、YOLOE 和 RT-DETR 将被拒绝,而不会生成未经验证的 HEF。
Link to this section我可以导出自定义训练的 YOLO 模型吗?#
可以。使用相同的 format="hailo" 命令配合自定义 .pt 权重,并通过 data 传递训练数据集 YAML 以进行代表性的 INT8 校准。类名和类数量将从模型元数据中读取。
Link to this sectionHailo 导出是否支持动态图像尺寸?#
不支持。DFC 会将固定输入形状编译进 HEF 中。请在导出时选择与部署流水线所用分辨率相匹配的 imgsz。
Link to this section为什么 YOLO26 会产生不同的 Hailo 输出?#
YOLO26 使用无 NMS 的一对一检测头。Ultralytics 会直接编译这些输出张量,而不是附加用于 YOLOv8 和 YOLO11 的 HailoRT YOLOv8 风格 NMS。
Link to this sectionDFC 和 HailoRT 有什么区别?#
Hailo Dataflow Compiler 在 Linux x86_64 构建机器上将模型转换并量化为硬件特定的 HEF。HailoRT 在目标设备上加载并运行该 HEF。
Link to this section我应该部署 ONNX 还是 HEF 文件?#
将编译后的 HEF 部署到 Hailo 运行时。ONNX 是导出过程中使用的中间表示,在成功编译后会被移除。
Link to this section我可以在哪里获取 Hailo DFC?#
从 Hailo 开发者专区下载适用于您硬件代际的编译器 wheel。编译器仅用于创建 HEF;HailoRT 在目标加速器上运行它。
Link to this section总结#
Ultralytics Hailo 导出提供了一条从训练好的 YOLO 模型到可部署 HEF 的直接路径:
- 加载 YOLOv8、YOLO11 或 YOLO26 检测或分类模型,YOLOv8/YOLO11 分割、姿态估计或 OBB 模型,或 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。