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

本页目录

  • 使用脚本节点
  • 创建自定义 NN 模型
  • 支持的层
  • 创建自定义 OpenCL 内核

设备端编程

由于原生工具的封闭性,常规的(固件级)设备端开发不可行,但我们仍然提供了几种替代方式来运行自定义代码:
  1. 脚本 — 使用 Python 3.9 结合 脚本节点
  2. 创建自己的 NN 模型来运行计算量更大的功能
  3. 创建自定义 OpenCL 内核

使用脚本节点

使用 脚本节点 可以在设备上运行自定义 Python 脚本,这为用户在构建管道时提供了更大的灵活性。脚本节点在串联使用多个神经网络并且需要先处理第一个网络的输出,再将图像输入第二个网络时非常有用示例面部年龄/性别识别演示——第一个 NN 会检测人脸,将检测结果传递给脚本节点,脚本节点会创建 ImageManipConfig 来裁剪原始帧,然后仅将裁剪后的面部帧送入面部年龄/性别识别 NN。对于运行计算量较大的功能(例如图像滤镜),出于性能考虑,你可能希望避免使用脚本节点,而是采用下面描述的两种方案之一。

创建自定义 NN 模型

你可以使用你喜欢的 NN 库创建自定义模型,将模型转换为 OpenVINO 格式,然后编译成 .blob 文件。关于此主题的更多信息,请参阅 将模型转换为 MyriadX blob 文档。更多内容请参考 计算机视觉 页面。

支持的层

将模型转换为 OpenVINO 的 IR 格式(.bin.xml)时,需要检查 OpenVINO 是否支持所用的层。以下是各种框架支持的层及其限制:

创建自定义 OpenCL 内核

创建自定义 NN 模型有一些限制,例如 OpenVINO/VPU 的 支持的层。要避免这些限制,可以考虑创建自定义 OpenCL 内核并将其编译到 VPU 上。该内核将在 VPU 的 SHAVE 核心上运行。需要注意的是,这种方案不太友好。我们计划创建一个教程,介绍如何开发此类内核并在 OAK 相机上运行。