DepthAI v2 has been superseded by DepthAI v3. You are viewing legacy documentation.
此页面由 AI 自动翻译。查看英文原版

本页目录

  • 输出解释和转换
  • 预定义模型
  • 自定义模型
  • 实用应用展示

后处理

后处理是推理过程中的关键阶段。它涉及对模型原始输出进行精炼,以获得有意义的见解和可操作的数据。

输出解释和转换

在 DepthAI 库中,我们支持一系列预定义模型以及自定义模型。本节将指导您解释和解析这两种模型类型的输出。

预定义模型

对象检测

我们为一些具有易于使用 Python API 解析的输出的预定义模型提供解码支持。这些模型为每个检测到的对象提供一组数据。这包括以下内容:
  • 边界框坐标 (xmin, ymin, xmax, ymax): 这些定义了检测到的对象在图像中所在的位置的矩形区域。坐标是归一化的,这意味着它们表示为相对于图像尺寸的 0 到 1 之间的值。
  • 置信度分数: 表示模型对检测准确性的确定性。分数越高,表示检测准确性越高。
  • 类别标签: 指示检测到的对象的类别,这是模型在训练期间学习到的。
支持的预定义模型包括:
  • MobileNet: 可通过 MobileNetDetectionNetwork 节点使用。
  • Yolo: 可通过 YoloDetectionNetwork 节点使用。可通过 Luxonis Tools 导出。 我们支持多个版本的 Yolo 模型,每个模型都针对不同的检测需求进行了定制:
    • YoloV5
    • YoloV6 (R1, R2, R3, R4)
    • YoloV7
    • YoloV8
    • GoldYolo
有关模型输出和预定义模型节点的更详细了解,请参阅 ImgDetections 文档。 解析数据的示例如下:
Python
1import depthai as dai
2
3# 假设管道和模型设置已完成
4# 有关管道创建的详细信息,请参阅 DepthAI 文档
5
6# 连接到设备并启动管道
7with dai.Device(pipeline) as device:
8
9    # 从输出队列检索检测结果
10    qDet = device.getOutputQueue(name="network_node_name", maxSize=4, blocking=False)
11    detections = qDet.get().detections
12
13    # 解析每个检测结果
14    for detection in detections:
15        xmin, ymin, xmax, ymax = detection.bbox
16        confidence = detection.confidence
17        class_id = detection.label
18        # 进一步处理或利用...

自定义模型

对于自定义模型,仍然可以使用 getLayerFp16(layer_name)getLayerInt8(layer_name) 等方法检索输出, 您需要提供特定层的名称。鉴于这些方法返回所选层的扁平化输出, 因此有必要重塑输出以供后续使用。您可以在 EfficientDet 实验 中找到示例。 以下代码片段简要说明了该过程:
Python
1import depthai as dai
2import numpy as np
3
4# 假设管道和模型设置已完成
5# 有关管道创建的详细信息,请参阅 DepthAI 文档
6output_shape=(1,1000) # 替换为您自己的形状
7
8# 连接到设备并启动管道
9with dai.Device(pipeline) as device:
10
11    # 定义队列
12    qDet = device.getOutputQueue(name="network_node_name", maxSize=4, blocking=False)
13
14    # 检索输出列表并将其重塑为所需的尺寸
15    outputs = in_nn.getLayerFp16('network_output_name')
16    outputs = np.array(outputs).reshape(output_shape)
17
18    # 进一步解析、处理或利用...

实用应用展示

模型输出解析后,即可以各种有意义的方式使用结果数据:
  • 视觉反馈: 使用边界框坐标在实时视频流中检测到的对象周围绘制矩形。您可以在 我们的 YOLO 实验 中找到示例。
  • 数据分析: 人员跟踪实验 说明了数据在跟踪、分析移动趋势和计数人员方面的应用。这在零售空间、公共场所或交通枢纽等环境中非常有用,在这些环境中,了解人流量模式和密度对于运营效率、安全性和客户体验优化至关重要。
  • 异常检测: 此实验 展示了实时异常检测功能。这在制造质量控制等场景中特别有用,在这些场景中,检测产品或流程中的偏差至关重要。