此页面由 AI 自动翻译。查看英文原版

本页目录

  • 概述
  • 示例
  • 工具选项

YOLO 的简化转换

概述

我们创建了一个工具来简化 Yolo 对象检测器的导出过程。具体来说,我们的工具支持从 V5 到 V11 以及 Gold Yolo 的 YOLO 转换。上传预训练模型的权重(.pt 文件),设置输入图像形状,选择目标设备的 Robotics Vision Core 代(有关参数的详细信息,请参阅 工具选项),我们将编译一个 blob 和一个 JSON 文件,其中包含 DepthAI 解码结果所需的信息。

示例

此示例演示了如何转换 YoloV6n R4 以及如何在 OAK 设备上运行编译后的模型。
  1. 首先,我们将下载模型的权重。您可以从此处下载。
  2. 在您选择的浏览器中打开 tools。然后,上传下载的 yolov6n.pt 权重并将 Input image shape 设置为 640 352(我们选择此输入图像形状是因为宽高比接近 16:9,并且吞吐量和延迟仍然不错)。其余选项保持不变。
    将 YoloV6n R4 上传到工具
  3. 点击 Submit 按钮。模型将被自动转换并下载到一个 zip 文件夹中(zip 文件夹将包含一个转换后的 blob 文件、JSON 文件以及用于生成输出 blob 文件的中间表示)。
  4. 在本地解压 ZIP 文件夹,然后使用下面的脚本对导出的模型运行推理。请确保设置 MODEL_PATH,并参考 .json 文件以获取所需的输入大小和标签信息。
Python
1import depthai as dai
2from depthai_nodes.node import YOLOExtendedParser
3
4MODEL_PATH = ... # 例如 "yolov6n.blob"
5INPUT_SIZE = ... # 例如 (640, 352)
6LABELS = ... # 例如 ["person","bicycle","car", ...]
7
8visualizer = dai.RemoteConnection(httpPort=8080)
9device = dai.Device()
10platform = device.getPlatform().name
11frame_type = (
12    dai.ImgFrame.Type.BGR888i if platform == "RVC4" else dai.ImgFrame.Type.BGR888p
13)
14
15with dai.Pipeline(device) as pipeline:
16
17    # model node
18    nn = pipeline.create(dai.node.NeuralNetwork)
19    nn.setModelPath(MODEL_PATH)
20
21    # parser node
22    parser = pipeline.create(YOLOExtendedParser, n_classes=len(LABELS), label_names=LABELS)
23
24    # input node
25    camera = pipeline.create(dai.node.Camera).build()
26    camera_stream = camera.requestOutput(size=INPUT_SIZE, type=frame_type)                                  
27
28    # connect nodes
29    camera_stream.link(nn.input)
30    nn.out.link(parser.input)
31
32    # visualize
33    visualizer.addTopic("Video", nn.passthrough, "images")
34    visualizer.addTopic("Detections", parser.out, "images")
35
36    pipeline.start()
37    visualizer.registerPipeline(pipeline)
38
39    while pipeline.isRunning():
40        key = visualizer.waitKey(1)
41        if key == ord("q"):
42            print("Got q key from the remote connection!")
43            break

工具选项

  • Yolo Version - 必需,应使用哪个 Yolo 版本进行转换。在工具中,集成了自动 Yolo 版本检测器,当您上传模型权重时,它会自动检测 Yolo 版本并进行设置。
  • RVC2 or RVC3 - 必需,目标设备的 Robotics Vision Core 代。
  • File - 必需,预训练模型的权重(.pt 文件),大小需要小于 300Mb
  • Input image shape - 必需,用于方形输入图像形状的整数,或用空格分隔的宽度和高度。它必须能被 32(或 64,取决于步幅)整除。
  • Shaves - 可选,默认值为 6。使用的 shave 数量。有关 shave 的更多信息,请参阅 此处
  • Use OpenVINO 2021.4 - 可选,默认值为 true。此复选框控制在编译到 IR 时是否使用旧版前端标志。如果关闭,则默认为 OpenVINO 2022.1。使用 2022.1 时注意到了轻微的性能下降。因此,我们建议将其设置为 true