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

本页目录

  • 概述
  • 安装
  • 模块
  • Node
  • Message

DepthAI 节点

概述

在 DepthAI 流水线中,消息用于在节点之间发送信息。 虽然 DepthAI 本地支持许多消息和节点类型,但某些用例需要额外的宿主端组件来进行后处理、过滤、可视化或更高级的流水线组合。depthai-nodes 是一个开源 Python 库,包含用于 DepthAI v3 流水线的宿主端节点和消息类型。 它通过在宿主机器上运行的解析器、实用程序和辅助节点扩展了标准的 DepthAI 工作流,同时保持与流水线其余部分的兼容性。该库分为两个主要模块:
  • node 用于宿主端流水线组件
  • 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 Archivedai.NNModelDescription相关的辅助工具包括:
  • HostParsingNeuralNetwork 用于同一工作流的宿主端版本
  • ParserGenerator 当您需要从 NN Archive 生成解析器节点时

解析器

解析器节点用于解释 AI 模型的输出。 它们的主要目的是封装和抽象后处理逻辑,允许用户直接与干净、结构化的输出进行交互。 根据解析器的不同,输出可以是标准的 DepthAI 消息,例如 dai.ImgDetectionsdai.TrackedFeaturesdai.ImgFrame,或者是自定义的 depthai_nodes.message 类型。以下是可用解析器节点及其相应任务和用法示例的概述。 我们仅列出了一小部分示例,因为在 Luxonis Models 上还有更多可用。 有关每个单独解析器的详细信息,请参阅 解析器节点文档
解析器任务用法示例
YOLOExtendedParser对象检测YOLOv8 实例分割 NanoYOLOv8 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其他Ultra Fast Lane Detection
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 的便捷包装器,用于模型库和 NN 存档源
ParsingNeuralNetwork神经网络处理为给定模型创建 NeuralNetwork 节点和相关的解析器
HostParsingNeuralNetwork神经网络处理主机端 ParsingNeuralNetwork 实现
ParserGenerator神经网络处理从给定的 NN 存档生成解析器
CoordinatesMapper检测和过滤重新映射支持的消息在图像转换空间之间的坐标
HostSpatialsCalc检测和过滤使用深度数据和校准信息计算主机端空间坐标
ImgDetectionsFilter检测和过滤过滤检测消息
InstanceToSemanticMask检测和过滤将实例 ID 蒙版转换为语义蒙版
GatherData数据管理将消息收集到一个
MessageCollector数据管理将来自流的相同时间戳消息收集到一个集合中
SnapsUploader云集成SnapData 消息上传到 Luxonis Hub Events API

Message

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