DepthAI 节点
概述
depthai-nodes 是一个开源的 Python 库,提供用于 DepthAI v3 管线的 Host 端节点和消息类型。 它通过解析器、实用程序和辅助节点扩展了标准 DepthAI 工作流,这些节点在主机上运行,同时与管线的其余部分保持兼容。该库包含两个主要模块:node:Host 端管线组件message:用于这些组件的更丰富的消息类型
安装
depthai-nodes 需要 Python 3.10 或更高版本,并设计用于 depthai v3 管线。从 PyPI 安装:Command Line
1pip install depthai-nodesCommand Line
1git clone git@github.com:luxonis/depthai-nodes.git
2cd depthai-nodes
3pip install .模块
Node
node 模块提供了一系列自定义节点对象,扩展了标准 DepthAI 节点的功能。 这些节点分为 解析器、实用程序 和 辅助 类别。典型工作流
ParsingNeuralNetwork 是主要入口点。 它会创建底层的 NeuralNetwork 节点以及所选模型所需的解析器节点。 模型来源可以是 Luxonis Models 引用、本地 NN 存档 或 dai.NNModelDescription。相关辅助工具包括:HostParsingNeuralNetwork:同一工作流的 Host 端版本ParserGenerator:当需要从 NN 存档生成解析器节点时使用
解析器
dai.ImgDetections、dai.TrackedFeatures 或 dai.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 上传的额外元数据 |