Ultralytics YOLO27:
Get Started

Ultralytics YOLO 的 Luxonis OAK 部署#

Luxonis OAK 摄像头通过 Luxonis 工具转换后,可在设备端运行 Ultralytics YOLO 模型。这是一种手动部署工作流;Luxonis 不是 Ultralytics 原生的 model.export(format="...") 目标。

本指南介绍 RVC2 和 RVC4 设备。请根据摄像头平台进行转换:RVC2 和 RVC4 产物不能互换。支持的模型系列和任务各不相同;转换前请查看 Luxonis Tools 支持矩阵。

从受支持的 YOLO .pt 检查点开始,例如 yolo26n.pt,或使用你自己的训练模型。转换后的 NN Archive 会打包模型和运行时元数据。

使用 Luxonis Hub 进行云端转换#

  1. 登录 Luxonis Hub,然后打开快速转换。
  2. 选择 YOLO,选择 RVC2 或 RVC4,然后上传你的 .pt 检查点。
  3. 设置输入形状和转换参数,然后提交转换任务。
  4. 转换完成后,复制已转换模型的标识符,以便用于下方的推理示例,或下载其 NN Archive。

如需自动化转换或使用自定义 RVC4 校准数据,请使用 HubAI SDK。在 Python 3.10+ 环境中按照其安装说明操作。详细转换提供注册表管理和预定义校准数据集。

使用 Tools 和 ModelConverter 进行本地转换#

使用 Python 3.10+ 和 Docker。按照上游设置说明安装 Luxonis Tools,包括依赖项约束。Tools 会准备 YOLO 输出,以供 Luxonis 解析;通用 ONNX 导出不能替代此步骤。

# Export the checkpoint to an ONNX NN Archive
tools yolo26n.pt --imgsz "640 640" --output-dir output

# Install the target-platform converter
pip install modelconv==0.6.0

Tools 会在 output/ 下的带时间戳目录中写入 yolo26n.tar.xz。请将下方示例路径替换为该文件的路径。对于 RVC4 INT8 转换,请在 calibration_images/ 中放入有代表性的部署图像;请参阅校准数据要求。

modelconverter convert rvc4 --path output/yolo26n_20260807_104858/yolo26n.tar.xz \
  calibration.path calibration_images/

对于 RVC2,请使用 rvc2 而非 rvc4;其 FP16 转换不需要校准图像。推理时请使用 ModelConverter 输出目录中的已编译 NN Archive,而非中间 ONNX Archive。有关输出路径和平台专属选项,请参阅 ModelConverter。

在 OAK 摄像头上运行推理#

连接兼容的 OAK 摄像头,并在 Python 环境中安装 DepthAI:

pip install depthai==3.9.0

对于私有 Hub 模型,请在运行脚本前,将 DEPTHAI_HUB_API_KEY 设置为 Luxonis Hub API 密钥。将 your-model-identifier 替换为 Hub 中的标识符,或使用本地已编译的 NN Archive。

import depthai as dai

model = "your-model-identifier"
# 或者,使用转换后的本地文件:
# model = dai.NNArchive("path/to/model.rvc4.tar.xz")

visualizer = dai.RemoteConnection()

with dai.Pipeline() as pipeline:
    camera = pipeline.create(dai.node.Camera).build()
    detection = pipeline.create(dai.node.DetectionNetwork).build(camera, model)

    visualizer.addTopic("rgb", detection.passthrough, group="RGB")
    visualizer.addTopic("detections", detection.out, group="RGB")

    pipeline.start()
    visualizer.registerPipeline(pipeline)

    while pipeline.isRunning():
        if visualizer.waitKey(1) == ord("q"):
            pipeline.stop()

打开 http://localhost:8082 查看 RGB 流和检测结果。DetectionNetwork 也支持兼容的实例分割和姿态模型。对于其他任务,包括语义分割和分类,请参阅特定任务的推理指南。

如需了解立体深度流水线,请参阅空间检测示例。请按照基准测试指南,在目标摄像头上测量模型性能;吞吐量取决于模型、输入尺寸、精度和流水线配置。

常见问题#

  • 不可以。Luxonis 不是 Ultralytics 原生导出格式。使用 Luxonis Hub 或本地 Tools 和 ModelConverter 工作流转换 .pt 检查点,然后使用 DepthAI 运行生成的 NN Archive。

  • 不可以。RVC2 和 RVC4 产物针对不同硬件编译,不能互换,因此每个平台都需要单独转换一次。

  • 支持情况由 Luxonis 工具而非 Ultralytics 决定。转换前请查看 Luxonis Tools 支持矩阵;运行非检测模型时,请参阅特定任务的推理指南。

评论