Meet YOLO26: next-gen vision AI.

Link to this section用于 Ultralytics YOLO 模型的 Hailo 导出#

非直接的 Ultralytics 导出格式

Hailo HEF 未被官方支持作为直接的 Ultralytics model.export(format="hailo") 目标。以下工作流程首先导出为 ONNX,然后使用 Hailo 的外部 Dataflow Compiler 工具链生成 .hef 文件。为了获得比旧版 Hailo HEF 部署更高的单位功率性能,请改用更新的直接 Ultralytics 导出格式,例如 Axelera AIDeepX

Hailo 工具链使用 HEF 文件,适用于包括 Raspberry Pi AI KitAI HAT+、工业相机、边缘网关以及 AI PC 在内的嵌入式平台。

本指南介绍了如何使用 Hailo Dataflow Compiler (DFC) SDK 将 Ultralytics YOLO 检测模型导出为 Hailo 的 HEF (Hailo Executable Format)。该流程从 YOLO .pt 模型开始,导出为 ONNX,使用 Hailo 工具进行编译,并生成可用于 Hailo-8、Hailo-8L 和 Hailo-15 加速器的 .hef 文件。

Link to this section何时使用 Hailo HEF#

HEF 是 Hailo 目标设备上 HailoRT 使用的编译产物。仅当你的部署硬件特别需要 Hailo HEF 时,才使用本指南。如果你仍在选择边缘硬件或导出目标,请从更新的直接 Ultralytics 导出格式开始,例如 Axelera AIDeepX,它们提供了支持的 model.export(...) 工作流程,并且比旧的 Hailo 部署具有更好的单位功率性能选项。

HEF 在部署作用上类似于针对特定硬件的格式,例如用于 Rockchip NPU 的 RKNN、用于 Raspberry Pi AI 相机的 IMX500 和用于 Snapdragon NPU 的 Qualcomm QNN,但它目前并非由 Ultralytics 直接生成。

当你需要以下功能时,此工作流程非常适用:

  • Raspberry Pi AI Kit 兼容性:Hailo-8L 用于官方的 Raspberry Pi AI Kit 和 AI HAT+。
  • HailoRT 后处理:HailoRT 可以在编译的推理流水线中包含 YOLO 非极大值抑制
  • INT8 编译:Hailo DFC 使用代表性校准图像对模型进行量化,从而为 Hailo 硬件生成 INT8 图。了解更多关于 模型量化 的信息。

Link to this sectionHailo HEF 导出格式#

HEF is a hardware-specific executable generated by the Hailo Dataflow Compiler. It contains the quantized model graph, memory allocation, scheduling, and optional post-processing configured for a target Hailo architecture. Unlike standard YOLO Export mode formats that are produced directly by model.export(format=...), HEF compilation currently uses a two-stage flow:

  1. 使用 Ultralytics 将 YOLO 导出为 ONNX
  2. 使用 Hailo DFC 工具解析、优化、量化并将 ONNX 模型编译为 HEF。

完整工作流程可扩展为以下流水线:

YOLO (.pt) -> ONNX -> HAR (parse) -> HAR (optimize/quantize) -> HEF (compile)
  1. 使用 Ultralytics 导出模式 导出为 ONNX
  2. 解析 ONNX 模型为 Hailo 的中间 HAR 格式
  3. 加载模型脚本 (.alls),其中包含归一化和后处理指令
  4. 使用代表性图像进行 校准和量化
  5. 编译 为可部署的 HEF 文件

Link to this section支持的任务#

本指南侧重于 Ultralytics YOLO 目标检测模型,因为 Hailo 模型脚本和 NMS 配置是检测头特定的。

任务已支持
目标检测✅ 是
实例分割❌ 否
语义分割❌ 否
姿态估计❌ 否
OBB 检测❌ 否
分类❌ 否

对于实例分割、语义分割、姿态估计、OBB 和分类部署,请比较 导出模式 表中的其他边缘格式,或在目标运行时支持该任务的情况下使用通用的 ONNX 流水线。

Link to this section兼容性说明#

Hailo 导出兼容性取决于模型头、输入图像大小、类别数量、Hailo 架构、模型脚本 (.alls) 和 NMS 配置。Hailo Model Zoo 中的静态文件是很有用的参考,但它们并非通用模板。例如,为 COCO 80 类 YOLO11n 模型创建的 NMS JSON 不适用于自定义 3 类模型或不同的固定 imgsz

范围预期支持注意事项
YOLOv8 / YOLO11 检测,标准模型✅ 良好共享解耦检测头;.alls、端节点和 NMS 配置仍需与导出图和固定 imgsz 匹配。
自定义 YOLOv8 / YOLO11 检测✅ 可能需要根据类别数量、步长和检测头布局生成的每个模型的 NMS 配置;静态 Model Zoo JSON 将不匹配。
YOLOv9 检测⚠️ 需验证检测头模式相似,但在视为受支持之前应测试编译和输出解析。
YOLOv10 / YOLO26 端到端检测❌ 不支持端到端/无 NMS 导出与 Hailo NMS 后处理路径不匹配;如果手动测试,请使用传统的检测头。
动态或任意图像大小❌ 不支持Hailo 编译使用固定的输入形状;.alls 和 NMS 设置必须与导出的 imgsz 匹配。

Link to this section安装#

Link to this section第 1 步:安装 Ultralytics#

pip install ultralytics

Link to this section第 2 步:安装 Hailo DFC SDK#

解析、优化和编译需要 Hailo DFC。从 Hailo Developer Zone 下载 Python wheel(需免费注册)并安装它:

pip install /path/to/hailo_sdk_client-*.whl
注意

Hailo DFC SDK 需要 Linux x86_64 机器。导出和编译无法在 Raspberry Pi 等 ARM 设备上执行。将生成的 .hef 文件复制到你的 Hailo 驱动设备上,以便通过 HailoRT 进行部署。

Link to this sectionYOLO11n HEF 导出示例#

下面的脚本以 640 像素的固定输入大小将 YOLO11n 检测模型从 .pt 编译为 .hef。它使用 Ultralytics 导出为 ONNX,然后使用 COCO128 作为小型校准数据集,通过 Hailo DFC 进行编译。

运行脚本之前,请从 Hailo Model Zoo 下载匹配的 YOLO11n NMS 配置文件,或为模型创建你自己的 Hailo NMS JSON。将此脚本重新用作已知的 YOLO11n 起点;自定义模型需要匹配的端节点、.alls 指令和 NMS 设置。

完整流水线
import random

import numpy as np
from hailo_sdk_client import ClientRunner
from PIL import Image

from ultralytics import YOLO
from ultralytics.data.utils import check_det_dataset
from ultralytics.utils import DATASETS_DIR

# Configuration
MODEL = "yolo11n"
HW_ARCH = "hailo8"  # hailo8 | hailo8l | hailo15h
IMGSZ = 640
CALIB_IMAGES = 128
NMS_CONFIG = "yolo11n_nms_config.json"  # Download or generate for your exact model.

# YOLO11 detection head end nodes. See "Supported Models and End Nodes" for YOLOv8 and other families.
END_NODES = [
    "/model.23/cv2.0/cv2.0.2/Conv",
    "/model.23/cv3.0/cv3.0.2/Conv",
    "/model.23/cv2.1/cv2.1.2/Conv",
    "/model.23/cv3.1/cv3.1.2/Conv",
    "/model.23/cv2.2/cv2.2.2/Conv",
    "/model.23/cv3.2/cv3.2.2/Conv",
]

# Step 1: Export to ONNX
model = YOLO(f"{MODEL}.pt")
model.export(format="onnx", imgsz=IMGSZ, opset=11)  # creates an ONNX file named after MODEL

# Step 2: Parse ONNX with Hailo DFC
# The DFC prints the detected end nodes after parsing; use them if unsure.
runner = ClientRunner(hw_arch=HW_ARCH)
runner.translate_onnx_model(f"{MODEL}.onnx", end_node_names=END_NODES)

# Step 3: Load model script (normalization + HailoRT NMS)
# The conv layer names are generated by DFC and can change for other model sizes/families.
alls = (
    "normalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])\n"
    "change_output_activation(conv54, sigmoid)\n"
    "change_output_activation(conv65, sigmoid)\n"
    "change_output_activation(conv80, sigmoid)\n"
    f'nms_postprocess("{NMS_CONFIG}", meta_arch=yolov8, engine=cpu)\n'
    "allocator_param(width_splitter_defuse=disabled)"
)
runner.load_model_script(alls)

# Step 4: Build calibration dataset (auto-downloads COCO128)
check_det_dataset("coco128.yaml")
calib_dir = DATASETS_DIR / "coco128" / "images" / "train2017"
image_files = list(calib_dir.glob("*.jpg")) + list(calib_dir.glob("*.png"))
if not image_files:
    raise FileNotFoundError(f"No calibration images found in {calib_dir}")

calibset = np.zeros((CALIB_IMAGES, IMGSZ, IMGSZ, 3), dtype=np.float32)
for i in range(CALIB_IMAGES):
    img = Image.open(random.choice(image_files)).convert("RGB").resize((IMGSZ, IMGSZ))
    calibset[i] = np.array(img, dtype=np.float32)

# Step 5: Optimize and quantize
runner.optimize(calibset)
runner.save_har(f"{MODEL}.o.har")  # optional intermediate HAR

# Step 6: Compile to HEF
hef = runner.compile()
with open(f"{MODEL}.hef", "wb") as f:
    f.write(hef)

print(f"Compiled HEF saved to: {MODEL}.hef")

生成的 HEF 文件(例如 yolo11n.hef)已准备好部署在兼容的 Hailo 设备上。如果你正在为 Raspberry Pi AI Kit 进行编译,请在运行编译步骤之前设置 HW_ARCH = "hailo8l"

Link to this section逐步拆解#

Link to this section第 1 步:导出为 ONNX#

Ultralytics 将你的训练模型导出为 ONNX 格式,这是 Hailo DFC 的输入。设置 opset=11 以获得广泛的 DFC 兼容性。

from ultralytics import YOLO

MODEL = "yolo11n"
model = YOLO(f"{MODEL}.pt")
model.export(format="onnx", imgsz=640, opset=11)

Link to this section第 2 步:解析 ONNX 模型#

translate_onnx_model 调用将 ONNX 图转换为 Hailo 的中间 HAR 表示。end_node_names 列表告诉 DFC 在 NMS 之前截断图,以便 Hailo 可以附加其自己的硬件后处理。

from hailo_sdk_client import ClientRunner

runner = ClientRunner(hw_arch="hailo8")
runner.translate_onnx_model(f"{MODEL}.onnx", end_node_names=END_NODES)
查找端节点

DFC 在解析后会打印一条建议:

[info] In order to use HailoRT post-processing capabilities, these end node names should be used: ...

如果你不确定使用哪些节点,或者正在使用自定义或不太常见的架构,请复制这些节点名称。

Link to this section第 3 步:加载模型脚本#

模型脚本 (.alls) 用于配置输入归一化、输出激活和 NMS 后处理。meta_arch=yolov8 设置适用于 YOLOv8 和 YOLO11,因为它们共享相同的检测头布局。

MODEL = "yolo11n"
NMS_CONFIG = "yolo11n_nms_config.json"
alls = (
    "normalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])\n"
    "change_output_activation(conv54, sigmoid)\n"
    "change_output_activation(conv65, sigmoid)\n"
    "change_output_activation(conv80, sigmoid)\n"
    f'nms_postprocess("{NMS_CONFIG}", meta_arch=yolov8, engine=cpu)\n'
    "allocator_param(width_splitter_defuse=disabled)"
)
runner.load_model_script(alls)
注意

The change_output_activation layer names (conv54, conv65, conv80) are assigned by the DFC during parsing and are model-specific. If you are compiling a different model size or architecture, check the DFC output for the correct names, or use a predefined .alls file from the Hailo Model Zoo.

NMS_CONFIG 文件也是模型特定的。使用与你导出的模型相匹配的配置,或者从 Hailo Model Zoo 中找到最接近的 YOLO 变体配置开始。

engine=cpu 通过主机 CPU 上的 HailoRT 运行 NMS。仅对 Hailo 文档说明由目标硬件和 SDK 版本支持的模型/脚本组合使用 engine=nn_core

如果你希望在应用程序代码中完全运行 NMS,请移除 nms_postprocess 行。如果这样做,请更新推理解析器,因为 HEF 将输出原始检测头张量,而不是分组后的 NMS 检测结果。

Link to this section第 4 步:构建校准数据集#

INT8 量化需要一组代表性图像。下面的脚本使用 COCO128,Ultralytics 会通过 check_det_dataset 自动下载它:

from ultralytics.data.utils import check_det_dataset
from ultralytics.utils import DATASETS_DIR

check_det_dataset("coco128.yaml")  # downloads to DATASETS_DIR if not present
calib_dir = DATASETS_DIR / "coco128" / "images" / "train2017"
提示

校准至少使用 64 张图像。更多图像通常能提高量化质量。为了获得最佳效果,请使用来自你的部署领域的图像,而不是 COCO128。

Link to this section第 5 步:优化和量化#

runner.optimize(calibset)
runner.save_har(f"{MODEL}.o.har")  # optional intermediate checkpoint

此步骤应用量化感知微调和层噪声分析。强烈建议使用 GPU;如果没有 GPU,此步骤可能需要几个小时。

Link to this section第 6 步:编译为 HEF#

hef = runner.compile()
with open(f"{MODEL}.hef", "wb") as f:
    f.write(hef)

Link to this section支持的模型和端节点#

对于检测模型,end_node_names 标识了 Hailo 在附加其 NMS 后处理之前应该编译的 ONNX 检测头输出。这些名称因架构而异,并可能随着导出图的更改而变化。

Link to this sectionYOLO11 和 YOLOv8#

YOLO11 和 YOLOv8 共享相同的解耦检测头。两个系列之间的层索引相差一个:

模型系列检测头层端节点模式
YOLO11 (全部)model.23/model.23/cv2.0/cv2.0.2/Conv (6 个节点)
YOLOv8 (全部)model.22/model.22/cv2.0/cv2.0.2/Conv (6 个节点)

YOLO11 端节点 (所有尺寸:n, s, m, l, x):

END_NODES = [
    "/model.23/cv2.0/cv2.0.2/Conv",
    "/model.23/cv3.0/cv3.0.2/Conv",
    "/model.23/cv2.1/cv2.1.2/Conv",
    "/model.23/cv3.1/cv3.1.2/Conv",
    "/model.23/cv2.2/cv2.2.2/Conv",
    "/model.23/cv3.2/cv3.2.2/Conv",
]

YOLOv8 端节点 (所有尺寸:n, s, m, l, x):

END_NODES = [
    "/model.22/cv2.0/cv2.0.2/Conv",
    "/model.22/cv3.0/cv3.0.2/Conv",
    "/model.22/cv2.1/cv2.1.2/Conv",
    "/model.22/cv3.1/cv3.1.2/Conv",
    "/model.22/cv2.2/cv2.2.2/Conv",
    "/model.22/cv3.2/cv3.2.2/Conv",
]

Link to this section其他架构#

对于其他检测架构,首先在不带 end_node_names 的情况下运行解析步骤,从 DFC 日志输出中读取建议的节点,然后使用这些节点重新运行:

# First pass: let the DFC suggest end nodes
runner = ClientRunner(hw_arch=HW_ARCH)
runner.translate_onnx_model(f"{MODEL}.onnx")
# Check the printed log for: "[info] In order to use HailoRT post-processing..."

许多 YOLO 变体的预定义 .alls 脚本和 NMS 配置文件可在 Hailo Model Zoo 中找到。

Link to this section支持的硬件架构#

架构设备峰值算力 (供应商规格)常见用例
hailo8Hailo-826 TOPSHailo 加速卡
hailo8lHailo-8L13 TOPSRaspberry Pi AI Kit
hailo15hHailo-15H20 TOPSHailo-15 目标设备

在编译之前,请在脚本中设置 HW_ARCH 以匹配你的目标设备。

Link to this section在 Hailo 硬件上运行推理#

获取 .hef 文件后,将其复制到你的 Hailo 设备上,并使用 HailoRT Python API (hailo_platform 软件包) 运行推理。与 DFC 导出步骤不同,推理是直接在边缘设备上运行的。

注意

下方的推理代码是在 Hailo 设备上(例如 Raspberry Pi + AI Kit)运行的,而不是在用于编译的 x86 机器上运行。

Link to this section第 1 步:在设备上安装 HailoRT#

在目标设备上,安装 HailoRT 和 Python 绑定。对于 Raspberry Pi AI Kit 和 AI HAT+ 用户,官方 Raspberry Pi AI 软件指南 会安装 HailoRT、设备驱动程序和 Python 绑定,命令如下:

sudo apt install dkms
sudo apt install hailo-all

对于非 Raspberry Pi 的 Hailo 设备,请从 Hailo 开发者专区 (Hailo Developer Zone) 安装与你的设备、驱动程序和 SDK 版本匹配的 HailoRT 软件包。

AI HAT+ 2 设备使用不同的 Raspberry Pi 软件包 (hailo-h10-all) 和 Hailo-10H 工作流。请遵循该硬件代系的 Raspberry Pi AI 软件指南。

Link to this section第 2 步:快速完整性检查#

在运行 Python 推理之前,请确认 Hailo 设备已被识别:

hailortcli fw-control identify

你应该能看到打印出的设备类型、固件版本和序列号。

Link to this section第 3 步:运行推理#

下面的脚本使用编译好的 HEF 文件和 hailo_platform Python API 对单张图像运行目标检测。它负责处理预处理、推理以及从 HailoRT NMS 输出中绘制边界框。

推理脚本
import numpy as np
from hailo_platform import (
    HEF,
    ConfigureParams,
    FormatType,
    HailoStreamInterface,
    InferVStreams,
    InputVStreamParams,
    OutputVStreamParams,
    VDevice,
)
from PIL import Image, ImageDraw

# Configuration
MODEL = "yolo11n"
HEF_PATH = f"{MODEL}.hef"  # path to your compiled HEF file
SOURCE = "bus.jpg"  # image path
IMGSZ = 640
CONF = 0.25

COCO_NAMES = [
    "person",
    "bicycle",
    "car",
    "motorcycle",
    "airplane",
    "bus",
    "train",
    "truck",
    "boat",
    "traffic light",
    "fire hydrant",
    "stop sign",
    "parking meter",
    "bench",
    "bird",
    "cat",
    "dog",
    "horse",
    "sheep",
    "cow",
    "elephant",
    "bear",
    "zebra",
    "giraffe",
    "backpack",
    "umbrella",
    "handbag",
    "tie",
    "suitcase",
    "frisbee",
    "skis",
    "snowboard",
    "sports ball",
    "kite",
    "baseball bat",
    "baseball glove",
    "skateboard",
    "surfboard",
    "tennis racket",
    "bottle",
    "wine glass",
    "cup",
    "fork",
    "knife",
    "spoon",
    "bowl",
    "banana",
    "apple",
    "sandwich",
    "orange",
    "broccoli",
    "carrot",
    "hot dog",
    "pizza",
    "donut",
    "cake",
    "chair",
    "couch",
    "potted plant",
    "bed",
    "dining table",
    "toilet",
    "tv",
    "laptop",
    "mouse",
    "remote",
    "keyboard",
    "cell phone",
    "microwave",
    "oven",
    "toaster",
    "sink",
    "refrigerator",
    "book",
    "clock",
    "vase",
    "scissors",
    "teddy bear",
    "hair drier",
    "toothbrush",
]

# Load HEF and connect to device
hef = HEF(HEF_PATH)
params = VDevice.create_params()
target = VDevice(params)

configure_params = ConfigureParams.create_from_hef(hef, interface=HailoStreamInterface.PCIe)
network_groups = target.configure(hef, configure_params)
network_group = network_groups[0]
network_group_params = network_group.create_params()

# Setup I/O virtual streams
input_vstreams_params = InputVStreamParams.make(network_group, quantized=False, format_type=FormatType.FLOAT32)
output_vstreams_params = OutputVStreamParams.make(network_group, quantized=False, format_type=FormatType.FLOAT32)

# Preprocess
orig = Image.open(SOURCE).convert("RGB")
ow, oh = orig.size
resized = orig.resize((IMGSZ, IMGSZ))
input_data = np.expand_dims(np.array(resized, dtype=np.float32), axis=0)  # (1,640,640,3)
input_name = hef.get_input_vstream_infos()[0].name

# Inference
with InferVStreams(network_group, input_vstreams_params, output_vstreams_params) as pipeline:
    with network_group.activate(network_group_params):
        pipeline.send({input_name: input_data})
        raw = pipeline.recv()

# Parse HailoRT NMS output and draw results
# When compiled with nms_postprocess the HEF outputs detections grouped by
# class: shape (batch, num_classes, max_dets, 5) where 5 = [y1,x1,y2,x2,score]
draw = ImageDraw.Draw(orig)
output_key = next(iter(raw.keys()))
batch_dets = raw[output_key][0]  # shape: (num_classes, max_dets, 5)

for cls_idx, cls_dets in enumerate(batch_dets):
    for det in cls_dets:
        score = float(det[4])
        if score < CONF:
            continue
        y1, x1, y2, x2 = det[:4]
        # Scale from model coords (0-640) back to original image size
        x1 = int(x1 * ow / IMGSZ)
        y1 = int(y1 * oh / IMGSZ)
        x2 = int(x2 * ow / IMGSZ)
        y2 = int(y2 * oh / IMGSZ)
        label = f"{COCO_NAMES[cls_idx]} {score:.2f}"
        draw.rectangle([x1, y1, x2, y2], outline="red", width=2)
        draw.text((x1 + 2, y1 + 2), label, fill="red")

orig.save("output.jpg")
print("Saved output.jpg")
提示

The detection output format assumes the HEF was compiled with nms_postprocess in the .alls script. If you compiled without NMS, the raw outputs are the 6 detection head tensors and you must run NMS in your application separately.

Link to this sectionRaspberry Pi AI Kit 和 AI HAT+#

Raspberry Pi AI Kit 和 13 TOPS AI HAT+ 使用 Hailo-8L。要使用这些设备中的任何一个,请:

  1. 在 x86 机器上编译 HEF 之前,设置 HW_ARCH = "hailo8l"
  2. .hef 复制到你的 Raspberry Pi 上。
  3. 按照 官方 Raspberry Pi AI 软件指南 安装 HailoRT。
  4. 运行上述推理脚本。

对于 Raspberry Pi 上基于摄像头的推理,picamera2 Hailo 示例 提供了用于摄像头模块实时检测的现成脚本。你也可以在 Coral Edge TPU on Raspberry Pi 指南Sony IMX500 集成指南 中比较 Raspberry Pi 的部署路径。

Link to this section使用 TAPPAS 进行视频推理#

对于高吞吐量的视频流水线,TAPPAS 提供了 GStreamer 元素,可以实时将视频流传输通过 Hailo 芯片:

MODEL=yolo11n
gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! \
  hailonet hef-path=${MODEL}.hef ! \
  hailofilter function-name=yolov8 ! \
  hailooverlay ! autovideosink

查看 TAPPAS 文档 以获取完整的流水线配置选项。

Link to this section总结#

本指南介绍了将 Ultralytics YOLO 检测模型导出为 Hailo HEF 格式的完整工作流:

  1. 使用 Ultralytics 导出为 ONNX (model.export(format="onnx"))。
  2. 使用 Hailo DFC 解析 ONNX 模型并指定检测头终端节点。
  3. 通过模型脚本配置归一化和 NMS。
  4. 使用校准数据集(通过 Ultralytics 使用 COCO128)进行量化。
  5. 编译为可用于 Hailo-8、Hailo-8L 或 Hailo-15 的 .hef 文件。

有关更多详细信息,请参阅 Hailo 开发者专区Hailo 文档Hailo Model Zoo。对于其他 Ultralytics 导出目标,请参阅相关的 ONNXOpenVINOTensorRTNCNNTFLite Edge TPURKNNSony IMX500Qualcomm QNN 指南。要比较不同格式下导出模型的速度和准确性,请使用 基准测试模式 (Benchmark mode)。有关格式和选项的完整列表,请访问 导出模式 (Export mode) 文档和 集成指南页面

Link to this section常见问题解答#

Link to this section支持哪些 Hailo 设备?#

Hailo DFC 支持 Hailo-8 (hailo8)、Hailo-8L (hailo8l) 和 Hailo-15H (hailo15h)。请参阅 支持的硬件架构 表以获取匹配的 HW_ARCH 值。

Link to this section哪些 Ultralytics 模型可以导出?#

本指南重点介绍检测模型。请参阅 支持的任务 了解任务范围,兼容性说明 了解模型兼容性限制,以及 支持的模型和终端节点 了解 YOLO11 和 YOLOv8 终端节点示例。

Link to this section为什么模型脚本对 YOLO11 使用 meta_arch=yolov8#

YOLO11 使用与 YOLOv8 相同的解耦检测头架构。Hailo DFC 在两个模型系列的 NMS 配置中都使用 meta_arch=yolov8

Link to this section优化步骤是否需要 GPU?#

强烈建议在 runner.optimize() 中进行量化感知微调时使用 GPU。如果没有 GPU,该过程仍然可以运行,但速度会慢得多(需要几个小时,而使用 GPU 仅需约 10-20 分钟)。

Link to this section我该如何找到模型的正确终端节点?#

运行 runner.translate_onnx_model(...) 而不指定 end_node_names,然后使用 DFC 打印出的建议检测头节点。有关示例命令,请参阅 其他架构

Link to this section我从哪里可以获得 Hailo DFC SDK 和 NMS 配置文件?#

Hailo DFC SDK Python wheel 可从 Hailo 开发者专区 获取,而预定义的 .alls 脚本和 NMS 配置文件可从 Hailo Model Zoo 获取。

评论