DepthAI v2 has been superseded by DepthAI v3. You are viewing legacy documentation.

本页目录

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

后处理

后处理是推理过程中的一个关键阶段。它涉及对模型的原始输出进行优化,以提取有意义的见解和可操作的数据。

输出解释与转换

在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实验 中找到示例。
  • 数据分析: 人员追踪实验 展示了如何利用数据进行跟踪、分析移动趋势以及统计人数。这对于零售空间、公共场所或交通枢纽等环境非常有用,在这些环境中,了解人流量模式和密度对于运营效率、安全性和客户体验优化至关重要。
  • 异常检测: 该实验 展示了实时异常检测能力。这在制造过程中的质量控制等场景中特别有用,检测产品或过程中的偏差至关重要。