本页目录

  • 概述
  • 安装
  • 模块
  • Node
  • 消息

DepthAI 节点

概述

在 DepthAI 管线中,消息 用于在 节点 之间传递信息。 虽然 DepthAI 原生支持多种消息和节点类型,但某些用例需要额外的 Host 端组件来进行后处理、过滤、可视化或更高级的管线组合。depthai-nodes 是一个开源的 Python 库,提供用于 DepthAI v3 管线的 Host 端节点和消息类型。 它通过解析器、实用程序和辅助节点扩展了标准 DepthAI 工作流,这些节点在主机上运行,同时与管线的其余部分保持兼容。该库包含两个主要模块:
  • node:Host 端管线组件
  • message:用于这些组件的更丰富的消息类型
更多示例和包级文档,请参阅 GitHub 仓库API 参考

安装

depthai-nodes 需要 Python 3.10 或更高版本,并设计用于 depthai v3 管线。从 PyPI 安装:
Command Line
1pip install depthai-nodes
如果希望从源码构建,克隆仓库并本地安装:
Command Line
1git clone git@github.com:luxonis/depthai-nodes.git
2cd depthai-nodes
3pip install .

模块

Node

node 模块提供了一系列自定义节点对象,扩展了标准 DepthAI 节点的功能。 这些节点分为 解析器实用程序辅助 类别。

典型工作流

对于大多数 AI 用例,ParsingNeuralNetwork 是主要入口点。 它会创建底层的 NeuralNetwork 节点以及所选模型所需的解析器节点。 模型来源可以是 Luxonis Models 引用、本地 NN 存档dai.NNModelDescription相关辅助工具包括:
  • HostParsingNeuralNetwork:同一工作流的 Host 端版本
  • ParserGenerator:当需要从 NN 存档生成解析器节点时使用

解析器

解析器节点用于解释 AI 模型的输出。 其主要目的是封装和抽象后处理逻辑,使用户能够直接与清晰、结构化的输出进行交互。 根据解析器的不同,输出可以是标准 DepthAI 消息(如 dai.ImgDetectionsdai.TrackedFeaturesdai.ImgFrame),也可以是自定义的 depthai_nodes.message 类型。以下是可用解析器节点的概述,包括对应任务和使用示例。 我们仅列出少量示例,更多示例可在 Luxonis Models 上找到。 有关每个解析器的详细信息,请参阅 解析器节点文档
解析器任务使用示例
YOLOExtendedParser目标检测YOLOv8 实例分割 Nano, YOLOv8 Nano 姿态估计
YuNetParser目标检测YuNet
SCRFDParser目标检测SCRFD 行人检测
MPPalmDetectionParser目标检测MediaPipe 手掌检测
PPTextDetectionParser目标检测Paddle 文本检测
ClassificationParser分类EfficientNet-Lite
ClassificationSequenceParser分类Paddle 文本识别
SegmentationParser分割DeepLab-V3-Plus
FastSAMParser分割FastSAM s
KeypointParser关键点检测MediaPipe 手部地标
SuperAnimalParser关键点检测SuperAnimal 地标检测
HRNetParser关键点检测Lite-HRNet
XFeatMonoParser特征匹配XFeat
XFeatStereoParser特征匹配XFeat
LaneDetectionParser其他超快速车道检测
MLSDParser其他M-LSD
EmbeddingsParser其他ArcFace
RegressionParser其他头部姿态估计
MapOutputParser其他Depth Anything V2
ImageOutputParser其他Zero-DCE

工具与辅助节点

该组包含旨在协助常见任务的节点,例如数据处理、过滤和管道管理。 它还包含作为构建自定义节点实现模板的抽象基节点。以下是可用工具与辅助节点的简要概述,以及它们对应的任务和用途说明。 您可以在工具与辅助节点文档中找到关于每个节点的更多信息。
节点任务用途
BaseHostNode抽象类主机节点基类
BaseThreadedHostNode抽象类多线程主机节点基类
ApplyColormap图像处理应用颜色映射
ApplyDepthColormap图像处理应用基于百分位归一化的深度或视差着色
DepthMerger图像处理合并深度与检测结果
FrameCropper图像处理从检测结果或上游 manip-config 组中裁剪并调整图像区域大小
ImgFrameOverlay图像处理叠加两张图像
Tiling图像处理生成平铺的 dai.ImageManipConfig 组,用于下游裁剪管道
ExtendedNeuralNetwork神经网络处理针对模型动物园和神经网络存档源,围绕 dai.node.NeuralNetwork 的便捷封装
ParsingNeuralNetwork神经网络处理为给定模型创建 NeuralNetwork 节点及相关解析器
HostParsingNeuralNetwork神经网络处理主机端 ParsingNeuralNetwork 实现
ParserGenerator神经网络处理从给定的神经网络存档生成解析器
CoordinatesMapper检测与过滤针对支持的消息,在图像变换空间之间重新映射坐标
HostSpatialsCalc检测与过滤使用深度数据和校准信息计算主机端空间坐标
ImgDetectionsFilter检测与过滤过滤检测消息
InstanceToSemanticMask检测与过滤将实例 ID 掩码转换为语义掩码
GatherData数据管理将多条消息合并为一条
MessageCollector数据管理收集来自同一数据流中具有相同时间戳的消息,组成单个集合
SnapsUploader云集成SnapData 消息上传至 Luxonis Hub 事件 API

消息

message 模块提供了一组自定义消息类型,扩展了标准的 DepthAI 消息。 这些自定义类型使得处理各种 AI 模型的输出并将其集成到可视化或处理管道中更加容易。以下是库中当前实现的消息类型快速概览。 有关字段级别的详细信息,请参阅消息类型文档API 参考
消息类型存储内容
Classifications带有概率分数的对象类别标签
Cluster一组相关点
Clusters多个 Cluster 对象
Collection消息或其他同类型项的类型化集合
GatheredData参考数据以及为该参考收集的消息
Keypoints关键点,以及可选的骨架边
Line带有置信度的线条坐标
Lines多个 Line 对象
Map2D二维浮点数组
Prediction单浮点数值
Predictions多个 Prediction 对象
SegmentationMask二维整数数组
SnapData单个快照事件,包含文件、标签和用于 Luxonis Hub 上传的额外元数据