Gen2 Python API
欢迎使用Gen2 DpethAI API 文档,在此页面上,您可以找到有关DepthAI API的详细信息,该信息使您可以与DepthAI设备进行交互。我们同时支持Python API和C++ API。
什么是第二代?
Gen2是DepthAI集成的一大进步,它允许用户使用管道,节点和连接来定义自己的数据流。Gen2是根据Gen1的用户反馈以及DepthAI和支持软件(如OpenVINO)的功能创建的。
基本词汇
主机端 是DepthAI连接到的设备,例如PC或RPi。如果主机端发生了某些情况,则意味着此设备参与其中,而不是DepthAI本身。
设备端 是DepthAI本身。如果设备方面发生了某些情况,则意味着DepthAI对此负责。
管道 是设备端的完整工作流程,由节点和它们之间的连接组成-这些不能存在于管道之外。
节点 是DepthAI的单个功能。它具有输入或输出或两者兼有,以及要定义的属性(例如摄像机节点上的分辨率或神经网络节点中的Blob路径)。
连接 是一个节点的输出与另一节点的输入之间的链接。为了定义管道数据流,连接定义了将数据发送到哪里以达到预期结果。
XLink 是一种中间件,能够在设备和主机之间交换数据。XLinkIn节点允许将数据从主机发送到设备,XLinkOut则相反。
入门
为了帮助您开始使用Gen2 API,我们准备了有关API用法的多个示例,还有应用示例,以及一些有见地的教程。
在运行示例之前,请使用以下命令安装DepthAI Python库
python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple depthai
API
- class Device
- Canonical
depthai.Device
用与之交互的方法表示DepthAI设备。
构造函数
- __init__(pipeline: Pipeline, device_info: DeviceInfo, cmd_path: str) Device
pipeline 是一个
Pipeline
对象,定义了所有节点和连接的对象。usb2_mode, 为
True/False
, 允许DepthAI使用USB2协议(而不是USB3)进行通信。这降低了管道的吞吐量,但允许使用> 1m USB电缆进行连接cmd_path 是要加载到DepthAI设备中的自定义固件的路径,而不是默认路径。主要用于固件开发和调试。
device_info 是一个
DeviceInfo
对象, 从XLinkConnection
获得. 存储关于单个depthai设备的信息,允许针对应该运行管道的特定设备。
静态方法
- getAllAvailableDevices() List[DeviceInfo]
返回所有已发现的depthai设备的列表
- getDeviceByMxId(mx_id: str) bool, DeviceInfo
根据设备序列号以十六进制字符串 (例如
41440410B1933CBC00
).返回设备。可以使用获得DeviceInfo.getMxId()
成员方法
- startPipeline()
开始执行初始化期间提供的管道
- isPipelineRunning() bool
如果该
startPipeline()
方法被调用,则返回True
,否则返回False
。
- getOutputQueue(name: str, mazSize: int, overwrite: bool) DataOutputQueue
创建
DataOutputQueue
使用指定名称的队列中数据的对象。
- getInputQueue(name: str, mazSize: int, overwrite: bool) DataInputQueue
创建
DataInputQueue
将数据发送到具有指定名称的队列的对象。
- class Pipeline
- Canonical
depthai.Pipeline
表示管道,是一组节点和它们之间的连接,表示所需的数据流。
一般方法
- setOpenVINOVersion()
设置 openvino 的版本。 示例: pipeline.setOpenVINOVersion(version = dai.OpenVINO.Version.VERSION_2021_2) 其中 dai 是depthai软件包: import depthai as dai; pipeline 是创建的管道对象。
- getAssetManager() AssetManager
返回
AssetManager
分配给当前管道的实例。请注意,它未填充节点的资产-要获取已填充的实例,请使用getAllAssets()
- getGlobalProperties() GlobalProperties
返回
GlobalProperties
分配给当前管道的实例。
- getAllAssets() AssetManager
返回填充了所有节点数据的AssetManager
- getConnections() List[Connection]
返回
Connection
对象列表, 表示节点之间的互连。
节点创建方法
- createNeuralNetwork() NeuralNetwork
创建
NeuralNetwork
节点
- createMobileNetDetectionNetwork(self : depthai.Pipeline) depthai.MobileNetDetectionNetwork
- createMobileNetSpatialDetectionNetwork(self : depthai.Pipeline) depthai.MobileNetSpatialDetectionNetwork
- createYoloDetectionNetwork(self : depthai.Pipeline) depthai.YoloDetectionNetwork
- createYoloSpatialDetectionNetwork(self : depthai.Pipeline) depthai.YoloSpatialDetectionNetwork
- createColorCamera() ColorCamera
创建
ColorCamera
节点
- createVideoEncoder() VideoEncoder
创建
VideoEncoder
节点
- createImageManip() ImageManip
创建
ImageManip
节点
- createMonoCamera() MonoCamera
创建
MonoCamera
节点
- createStereoDepth() StereoDepth
创建
StereoDepth
节点
- createObjectTracker(self: depthai.Pipeline) depthai.ObjectTracker
- createSpatialLocationCalculator(self : depthai.Pipeline) depthai.SpatialLocationCalculator
- class Connection
- Canonical
depthai.Pipeline
表示管道,是一组节点和它们之间的连接,表示所需的数据流
属性
- outputId
指定输出节点的ID
- outputName
指定节点的输出名称
- inputId
指定输入节点的ID
- inputName
指定节点的输入名称
- class Point2f
Point2f结构
定义2D点的x和y坐标
方法
重载功能。
属性
- __init__(*args, **kwargs)
重载功能。
__init__(self:depthai.Point2f) -> None
__init__(self:depthai.Point2f, arg0:float, arg1:float) -> None
- x
- y
- class Point3f
Point3f结构
定义3D点的x,y,z坐标
方法
重载功能。
属性
- __init__(*args, **kwargs)
重载功能。
__init__(self:depthai.Point3f) -> None
__init__(self:depthai.Point3f, arg0:float, arg1:float, arg2:float) -> None
- x
- y
- z
- class GlobalProperties
指定适用于整个管道的属性
方法
属性
- __init__(*args, **kwargs)
初始化self。有关详细参数,请参见help(type(self))。
- leonOsFrequencyHz
- leonRtFrequencyHz
- pipelineName
- pipelineVersion
- class ADatatype
- Canonical
depthai.ADatatype
抽象信息
方法
初始化函数.
getRaw
(self)- __init__(*args, **kwargs)
初始化函数,有关详细说明,请参考help(type(self)).
- getRaw(self: depthai.ADatatype) depthai.RawBuffer
- class CpuUsage
- Canonical
depthai.CpuUsage
cpu使用详细说明
平均使用率(百分比)和平均时间跨度(自上次查询以来)
方法
__init__
(self)属性
average
msTime
- average
- msTime
- class Buffer
- Canonical
depthai.Buffer
基本消息-二进制数据缓冲区
方法
- setData(*args,**kwargs)
重载功能。
setData(self: depthai.Buffer,arg0: List [int])
- 参数data:
将数据复制到内部缓冲区
setData(self: depthai.Buffer,arg0: numpy.ndarray[numpy.uint8])
- class AssetManager
- Canonical
depthai.AssetManager
表示管道,是一组节点和它们之间的连接,表示所需的数据流
方法
有疑问?
我们很乐意为您提供代码或其他问题的帮助。
我们的联系方式
还可以通过我们发布的视频和文章了解OAK