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 depthai
API¶
-
class
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]¶ 返回所有已发现的deptai设备的列表
-
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
¶ 表示管道,是一组节点和它们之间的连接,表示所需的数据流。
一般方法
-
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
节点
-
createColorCamera
() → ColorCamera¶ 创建
ColorCamera
节点
-
createVideoEncoder
() → VideoEncoder¶ 创建
VideoEncoder
节点
-
createImageManip
() → ImageManip¶ 创建
ImageManip
节点
-
createMonoCamera
() → MonoCamera¶ 创建
MonoCamera
节点
-
createStereoDepth
() → StereoDepth¶ 创建
StereoDepth
节点
-
-
class
Connection
¶ 表示管道,是一组节点和它们之间的连接,表示所需的数据流
属性
-
outputId
¶ 指定输出节点的ID
-
outputName
¶ 指定节点的输出名称
-
inputId
¶ 指定输入节点的ID
-
inputName
¶ 指定节点的输入名称
-
-
class
XLinkIn
¶ XLinkIn节点。通过XLink接收消息。
方法
getMaxDataSize(self)
获取最大消息大小(以字节为单位)
getNumFrames(self)
获取池中的帧数
getStreamFrames(self)
获取流名称
setMaxDataSize(self,maxDataSize)
设置可以接收的最大数据大小
setNumFrames(self,numFrames)
设置池中用于转发消息的帧数
setStreamFrame(self,streamName)
指定要使用的XLink流名称。
属性
-
out
¶ 输出与主机发送相同类型的消息。
-
getMaxDataSize
(self: depthai.XLinkIn) → int¶ 获取最大消息大小(以字节为单位)
-
getNumFrames
(self: depthai.XLinkIn) → int¶ 获取池中的帧数
-
getStreamName
(self: depthai.XLinkIn) → str¶ 获取流名称
-
out
()¶ 输出与主机发送相同类型的消息。
-
setStreamName
(self: depthai.XLinkIn, streamName: string)¶ 指定要使用的XLink流名称。
该名称不应以双下划线“ __”开头,因为保留给内部使用。
-
参数name:
流名称
-
-
setMaxDataSize
(self: depthai.XLinkIn, maxDataSize: int)¶ 设置可以接收的最大邮件大小
-
参数maxDataSize:
最大大小(以字节为单位)
-
-
setNumFrames
(self: depthai.XLinkIn, numFrames: int)¶ 设置池中用于转发消息的帧数。
-
参数numFrames:
池中的最大帧数
-
-
-
class
XLinkOut
¶ XLinkOut节点。通过XLink发送消息。
方法
getFpsLimit(self)
每秒获取消息中的速率限制
getMetadataOnly(self)
获取是否仅传输消息属性而不传输数据
getStreamName(self)
获取流名称
setFpsLimit(self,fpsLimit)
指定消息发送限制
setMetadataOnly(self,arg0)
指定是否仅传输消息属性,而不传输缓冲区数据
setStreamName(self,streamName)
指定要使用的XLink流名称。
属性
-
input
¶ 通过XLink流传输的任何类型的消息的输入
-
getFpsLimit
(self: depthai.XLinkOut) → float¶ 每秒获取消息中的速率限制
-
getMetadataOnly
(self: depthai.XLinkOut) → bool¶ 获取是否仅传输消息属性而不传输数据
-
getStreamName
(self: depthai.XLinkOut) → str¶ 获取流名称
-
input
()¶ 通过XLink流传输的任何类型的消息的输入
默认队列被阻止,大小为8
-
setStreamName
(self: depthai.XLinkOut, streamName: str)¶ 指定要使用的XLink流名称。
该名称不应以双下划线“ __”开头,因为保留给内部使用。
-
参数name:
流名称
-
-
setFpsLimit
(self: depthai.XLinkOut, fpsLimit: float)¶ 指定消息发送限制。它是从指定比率近似得出的。
-
参数fps:
每秒消息中的近似速率限制
-
-
setMetadataOnly
(self: depthai.arg0: bool)¶ 指定是否仅传输消息属性,而不传输缓冲区数据
-
-
class
XLinkDeviceState
¶ 成员
X_LINK_ANY_STATE
X_LINK_BOOTED
X_LINK_UNBOOTED
X_LINK_BOOTLOADER
属性
-
name
¶
-
-
class
XLinkProtocol
¶ 成员
X_LINK_USB_VSC
X_LINK_USB_CDC
X_LINK_PCIE
X_LINK_IPC
X_LINK_NMB_OF_PROTOCOLS
X_LINK_ANY_PROTOCOL
属性
-
name
¶
-
-
class
ColorCamera
¶ ColorCamera节点。与颜色传感器一起使用。
Inputs
-
inputConfig
¶ 可链接到
ImageManipConfig
,ImageManipConfig消息的输入, 允许修改裁剪区域,水平翻转,帧数据类型等。默认队列是非阻塞的,大小为8。
-
inputControl
¶ 适用于传感器的初始控制选项,可链接到
CameraControl
,CameraControl消息的输入, 允许将信号发送到相机,例如捕获静止图像。默认队列是非阻塞的,大小为8。
Outputs
-
video
¶ 彩色摄像机视频流NV12编码(YUV420,UV平面交错)输出,适用于VideoEncoder
-
preview
¶ 彩色摄像机视频流按比例缩放至预览大小,可使用
setPreviewSize()
,输出ImgFrame消息,该消息携带BGR / RGB平面/交错编码帧数据。适用于NeuralNetwork节点。
-
still
¶ 彩色摄像机输出,经过NV12编码(YUV420,UV平面交错),当从
inputControl
输入发送“拍摄静止”命令时捕获。
方法
-
getCamId
(self: depthai.ColorCamera) → int¶ 获取使用的摄像头,彩色相机的ID为0
-
setCamId
(self: depthai.ColorCamera, arg0: int)¶ 设置使用的摄像头 colorcamera的ID为0
Warning
getCamId/setCamId最新版depthai已不推荐使用,请使用以下两种方法。
-
setBoardSocket
(boardSocket: CameraBoardSocket)¶ 将摄像机插槽分配给节点
-
getBoardSocket
() → CameraBoardSocket¶ 检索要使用的板卡插槽
-
setColorOrder
(colorOrder: ColorCameraProperties.ColorOrder)¶ 设置框架的颜色顺序
-
getColorOrder
() → ColorCameraProperties.ColorOrder¶ 获取预览输出帧的颜色顺序。RGB或BGR。
-
getImageOrientation
(self: depthai.ColorCamera) → CameraImageOrientation¶ 获取相机图像方向
-
setImageOrientation
(self: depthai.ColorCamera, boardSocket: CameraImageOrientation)¶ 设置相机图像方向
-
getInterleaved
(self: depthai.ColorCamera) → bool¶ 获取预览输出帧的平面或交错数据
-
setInterleaved
(self: depthai.ColorCamera, interleaved: bool)¶ 设置预览输出帧的平面或交错数据
-
getPreviewSize
() → Tuple[int, int]¶ 以元组的形式返回先前使用
setPreviewSize()
设置的预览大小
-
getPreviewWidth
() → int¶ 返回先前使用
setPreviewSize()
设置的预览宽度
-
getPreviewHeight
() → int¶ 返回先前使用
setPreviewSize()
设置的预览的高度
-
getVideoSize
() → Tuple[int, int]¶ 返回先前使用
setVideoSize()
设置的视频尺寸
-
getVideoWidth
() → int¶ 返回先前使用
setVideoSize()
设置的视频的宽度
-
getVideoHeight
() → int¶ 返回先前使用
setVideoSize()
设置的视频的高度
-
getStillSize
()¶ 返回先前使用
setStillSize()
设置的框架尺寸
-
getStillWidth
()¶ 返回先前使用
setStillSize()
设置的帧的宽度
-
getStillHeight
()¶ 返回先前使用
setStillSize()
设置的框架的高度
-
setResolution
(resolution: ColorCameraProperties.SensorResolution)¶ 设置相机传感器分辨率,确定可以从该节点获得的最大分辨率
-
getResolution
() → ColorCameraProperties.SensorResolution¶ 返回先前使用
setResolution()
设置的传感器分辨率
-
sensorCenterCrop
()¶ 从原始传感器分辨率 (使用设置
setResolution()
)启用中心裁切
-
getSensorCrop
() → Tuple[float, float]¶ 返回以前使用
setSensorCrop()
设置的传感器裁剪集的x和y参数
-
getSensorCropX
() → float¶ 返回以前使用
setSensorCrop()
设置的传感器裁剪集的x参数
-
getSensorCropY
() → float¶ 返回以前使用
setSensorCrop()
设置的传感器裁剪集的y参数
-
getWaitForConfigInput
() → bool¶ 返回先前使用
setWaitForConfigInput()
设置的值,如果等待inputConfig消息,则为true,否则为false
-
setPreviewKeepAspectRatio
(keep: bool)¶ 如果设置为
True
,preview
则将裁剪输出并调整其大小以保留相机分辨率的h / w比例。否则,图像将被压缩到任一方向,以实现使用指定的精确输出setPreviewSize()
-
getPreviewKeepAspectRatio
() → bool¶ 返回先前使用
setPreviewKeepAspectRatio()
设置的值,预览保持纵横比选项
-
-
class
MonoCamera
¶ MonoCamera节点。与灰度传感器一起使用。
Outputs
-
out
¶ 输出ImgFrame消息,该消息携带RAW8编码的(灰度)帧数据。
适合使用StereoDepth节点。
-
initialControl
¶ 适用于传感器的初始控制选项
-
inputControl
¶ CameraControl消息的输入,可以在运行时中修改摄像机参数默认队列被阻止,大小为8
方法
-
getCamId
(self: depthai.MonoCamera) → int¶ 获取使用的摄像头id, 左边灰度相机的ID为1,右边灰度相机的ID为2
-
setCamId
(self: depthai.ColorCamera, arg0: int)¶ 设置使用的摄像头id, 左边灰度相机的ID为1,右边灰度相机的ID为2
Warning
getCamId/setCamId最新版depthai已不推荐使用,请使用以下两种方法。
-
setBoardSocket
()¶ 设置要使用的板卡插槽
-
getBoardSocket
()¶ 检索要使用的板卡插槽
-
getImageOrientation
(self: depthai.ColorCamera) → CameraImageOrientation¶ 获取相机图像方向
-
setImageOrientation
(self: depthai.ColorCamera, boardSocket: CameraImageOrientation)¶ 设置相机图像方向
-
setResolution
(resolution: MonoCameraProperties.SensorResolution)¶ 设置传感器分辨率
-
getResolution
() → MonoCameraProperties.SensorResolution¶ 获取传感器分辨率
-
-
class
NNdata
¶ NNData消息。承载张量及其元数据
方法
-
getAllLayerNames(self: depthai.NNData) → List[str]
添加的所有图层的名称
-
getAllLayers(self: depthai.NNData) → List[depthai.TensorInfo]
所有图层及其信息
-
getFirstLayerFp16(self: depthai.NNData) → List[float]
便利功能,可从第一层FP16张量中检索浮点值,float
-
getFirstLayerInt32(self: depthai.NNData) → List[int]
便利功能,可从第一层张量中检索INT32值,INT32数据
-
getFirstLayerUInt8(self: depthai.NNData) → List[int]
便捷功能,可从第一层检索U8数据,U8二进制数据
-
getLayer(self: depthai.NNData, name: str, tensor: depthai.TensorInfo) → bool
检索层张量信息
-
name:
图层名称
-
datatype:
输出该层的张量信息,如果存在图层则为true,否则为false
-
-
getLayerDatatype(self: depthai.NNData, name: str, datatype: depthai.TensorInfo.DataType) → bool
检索图层张量的数据类型
-
name:
图层名称,U8二进制数据
-
datatype:
层张量的数据类型,如果存在图层则为true,否则为false
-
-
getLayerFp16(self: depthai.NNData, name: str) → List[float]
便利功能,可从FP16张量张量中检索浮点值
-
name:
图层名称,U8二进制数据
-
-
getLayerInt32(self: depthai.NNData, name: str) → List[int]
便利功能,可从层张量中检索INT32值
-
name:
图层名称,U8二进制数据
-
-
getLayerUInt8(self: depthai.NNData, name: str) → List[int]
便捷功能,可从图层中检索U8数据
-
name:
图层名称,U8二进制数据
-
-
hasLayer(self: depthai.NNData, name: str) → bool
检查给定的图层是否存在
-
name:
图层名称,如果存在图层则为true,否则为false
-
-
setLayer
(*args, **kwargs)¶ 重载功能。
setLayer(self: depthai.NNData, name: str, data: numpy.ndarray[numpy.uint8])
设置数据类型为U8的图层。
-
参数name:
图层名称
-
参数data:
要存储的数据
setLayer(self: depthai.NNData, name: str, data: List[int])
设置数据类型为U8的图层。整数被强制转换为字节。
-
参数name:
图层名称
-
参数data:
要存储的数据
setLayer(self: depthai.NNData, name: str, data: List[float])
设置数据类型为FP16的图层。浮点值将转换为FP16。
-
参数name:
图层名称
-
参数data:
要存储的数据
setLayer(self: depthai.NNData, name: str, data: List[float])
设置数据类型为FP16的图层。将双精度值转换为FP16。
-
参数name:
图层名称
-
参数data:
要存储的数据
-
-
class
NeuralNetwork
¶ NeuralNetwork节点。对输入数据进行神经推理。
-
input
¶ 输入消息,其中包含要推论为默认队列的数据,大小为5
-
out
¶ 输出带有推断结果的NNData消息
-
passthrough
¶ 执行推断的直通消息。
适用于将输入队列设置为非阻塞行为的情况。
方法
-
setBlobPath
(path: str)¶ 将网络Blob加载到资产中,并在管道启动后使用。
如果文件不存在或不是有效的网络Blob,则抛出该异常。
-
参数path:
神经网络模型文件(.blob)的路径
-
-
setNumInferenceThreads
(self: depthai.NeuralNetwork, numThreads: int)¶ 节点应使用多少个线程来运行网络。
-
参数numThreads:
专用于该节点的线程数
-
-
setNumNCEPerInferenceThread
(self: depthai.NeuralNetwork, numNCEPerThread: int)¶ 一个线程应使用多少个神经计算引擎进行推理
-
参数numNCEPerThread:
每个线程的NCE数量
-
-
-
class
Node
¶ 抽象节点
属性
-
id
¶
节点编号
classes
-
Connection:
输入和输出之间的连接
-
Id
()¶ 节点标识符。对于单个管道中的每个节点都是唯一的
方法
-
getAssets(self: depthai.Node) → List[depthai.Asset]
检索所有节点资产
-
getInputs(self: depthai.Node) → List[dai::Node::Input]
检索所有节点输入
-
getName(self: depthai.Node) → str
检索节点名称
-
getOutputs(self: depthai.Node) → List[dai::Node::Output]
检索所有节点输出
-
-
class
OpenVINO
¶ 支持与OpenVINO相关的基本操作,例如神经网络Blob的版本识别,…
classes*
-
Version
()¶ OpenVINO版本支持的版本信息
成员
VERSION_2020_1
VERSION_2020_2
VERSION_2020_3
VERSION_2020_4
VERSION_2021_1
VERSION_2021_2
属性
-
name
¶
方法
-
static areVersionsBlobCompatible(v1: dai::OpenVINO::Version, v2: dai::OpenVINO::Version) → bool
检查两个Blob版本是否兼容
-
OpenVINO.getBlobLatestSupportedVersion(majorVersion: int, majorVersion: int) -> dai::OpenVINO::Version
返回给定的blob版本最新受支持的版本。
-
参数majorVersion:
OpenVINO blob的主要版本
-
参数minorVersion:
OpenVINO blob的次要版本
-
-
static getVersionName(version: dai::OpenVINO::Version) → str
返回给定版本的字符串表示形式
-
参数version:
OpenVINO版本
-
-
static getVersions() → List[dai::OpenVINO::Version]
支持的版本
-
static parseVersionName(versionString: str) → dai::OpenVINO::Version
从字符串表示形式创建Version。如果不可能,则抛出。
-
参数versionString:
版本为字符串
-
-
-
class
SPIOut
¶ SPIOut节点。通过SPI发送消息。
属性
-
input
¶ 通过SPI流传输的任何类型消息的输入
默认队列被阻止,大小为8
-
setBusId
(self: depthai.SPIOut, id: int)¶ 指定要使用的SPI总线号
-
参数id:
SPI总线ID
-
-
setStreamName
(self: depthai.SPIOut, name: str)¶ 指定节点将通过其发送数据的流名称
-
name:
流名称
-
-
-
class
ImageManip
¶ ImageManip节点。裁剪,调整大小,变形,…传入图像帧的能力
Inputs
-
initialConfig
¶ 操纵框架时要使用的初始配置
-
inputConfig
¶ 输入ImageManipConfig消息,能够在运行时修改参数默认队列被阻止,大小为8
-
inputImage
¶ 要修改的输入图像默认队列大小为8
Outputs
-
out
¶ 输出带有修改图像的ImgFrame消息。
方法
-
setCenterCrop
(ratio: float, whRatio: float)¶ 允许为图像指定任意裁剪。
whRatio
确定裁切部分的宽高比(下图中的白框whRatio
设置为1
),ratio
正在确定裁切部分的实际大小(下图中的绿色框ratio
设置为0.7
)
-
setResizeThumbnail
(w: int, h: int, bgRed: int, bgGreen: int, bgBlue: int)¶ 调整框架大小,保留原始长宽比,用指定的颜色填充缺少的空间
-
setFrameType
(type: RawImgFrame.Type)¶ 将输入帧修改为指定的图像帧类型(之一
RawImgFrame.Type
)
-
setNumFramesPool
()¶ 指定如果使用者未收到该节点,则该节点将保留多少结果。达到限制后,节点将停止并等待结果被消耗,然后再生成新结果
-
-
class
ImageManipConfig
¶ ImageManipConfig消息。指定图像处理选项,例如:
庄稼
调整大小
经
…
方法
-
getCropXMax(self: depthai.ImageManipConfig) → float
作物区域的右下角X坐标
-
getCropXMin(self: depthai.ImageManipConfig) → float
作物区域的左上X坐标
-
getCropYMax(self: depthai.ImageManipConfig) → float
作物区域的右下角Y坐标
-
getCropYMin(self: depthai.ImageManipConfig) → float
作物区域的左上Y坐标
-
getResizeHeight(self: depthai.ImageManipConfig) → int
输出图像高度
-
getResizeWidth(self: depthai.ImageManipConfig) → int
输出图像宽度
-
isResizeThumbnail(self: depthai.ImageManipConfig) → bool
如果设置了调整大小缩略图模式,则为True,否则为False
-
setCenterCrop
(self: depthai.ImageManipConfig, ratio: float, whRatio: float)¶ 指定居中裁切。
-
参数ratio:
输入图像与裁切区域之间的比率(0..1)
-
参数whRatio:
作物区域长宽比-1等于正方形,1.7等于16:9,…
-
-
setCropRect(self: depthai.ImageManipConfig, xmin: float, ymin: float, xmax: float, xmax: float)
用具有标准化值(0..1)的矩形指定裁剪
-
参数xmin:
矩形的左上X坐标
-
参数ymin:
矩形的左上Y坐标
-
参数xmax:
矩形的右下X坐标
-
参数ymax:
矩形的右下角Y坐标
-
-
setCropRotatedRect
(self: depthai.ImageManipConfig, rr: depthai.RotatedRect, normalizedCoords: bool)¶ 指定带有旋转矩形的裁切。可选地作为非规范化坐标
-
参数rr:
指定作物的旋转矩形
-
参数normalizedCoords:
如果真实坐标在归一化范围内(0..1),则为绝对坐标
-
-
setFrameType
(self: depthai.ImageManipConfig, name: depthai.RawImgFrame.Type)¶ 指定输出帧的类型。
-
参数name:
图像类型
-
-
setHorizontalFlip
(self: depthai.ImageManipConfig, flip: bool)¶ 指定水平翻转
-
参数flip:
设置为true以启用翻转,否则为false
-
-
setKeepAspectRatio
(self: depthai.ImageManipConfig, keep: bool)¶ 指定是否保持宽高比
-
setResize
(self: depthai.ImageManipConfig, w: int, h: int)¶ 指定输出图像的大小。裁剪阶段后,将拉伸图像以使其适合。
-
参数w:
宽度(以像素为单位)
-
参数h:
高度(以像素为单位)
-
-
setResizeThumbnail
(self: depthai.ImageManipConfig, w: int, h: int, bgRed: int, bgGreen: int, bgBlue: int)¶ 指定输出图像的大小。裁剪阶段后,将通过保留宽高比来调整图像大小。可以选择指定背景。
-
参数w:
宽度(以像素为单位)
-
参数h:
高度(以像素为单位)
-
参数bgRed:
红色成分
-
参数bgGreem:
绿色成分
-
参数bgBlue:
蓝色成分
-
-
setReusePreviousImage
(self: depthai.ImageManipConfig, reuse: bool)¶ 指示ImageManip不要从其队列中删除当前图像,并将其用于下一条消息。
-
参数reuse:
设置为true以启用重用,否则为false
-
-
setRotationDegrees
(self: depthai.ImageManipConfig, deg: float)¶ 指定以度为单位的顺时针旋转
-
参数deg:
旋转角度
-
-
setRotationRadians
(self: depthai.ImageManipConfig, rad: float)¶ 指定以弧度为单位的顺时针旋转
-
参数rad:
弧度旋转
-
-
setSkipCurrentImage
(self: depthai.ImageManipConfig, skip: bool)¶ 指示ImageManip跳过当前图像并等待队列中的下一个图像。
-
参数skip:
设置为true以跳过当前图像,否则设置为false
-
-
setWarpBorderFillColor
(self: depthai.ImageManipConfig, red: int, green: int, blue: int)¶ 指定边框像素的填充颜色。例子:
setWarpBorderFillColor(255,255,255)->白色
setWarpBorderFillColor(0,0,255)->蓝色
-
参数red:
红色成分
-
参数greem:
绿色成分
-
参数blue:
蓝色成分
-
setWarpBorderReplicatePixels
(self: depthai.ImageManipConfig)¶ 指定扭曲复制边框像素
-
setWarpTransformFourPoints
(self: depthai.ImageManipConfig, pt: List[depthai.Point2f], normalizedCoords: bool)¶ 通过在绝对坐标或规范坐标中提供4个点来指定变形
-
参数pt:
4点指定翘曲
-
参数normalizedCoords:
如果将true pt解释为归一化,则为绝对
-
-
setWarpTransformMatrix3x3
(self: depthai.ImageManipConfig, mat: List[float])¶ 用3x3矩阵指定变形
-
参数mat:
3*3矩阵
-
-
class
LogLevel
¶ 成员
TRACE
DEBUG
INFO
WARN
ERR
CRITICAL
OFF
属性
-
property name
-
-
class
MobileNetDetectionNetwork
¶ MobileNetDetectionNetwork节点。解析MobileNet结果
-
class
YoloDetectionNetwork
¶ YoloDetectionNetwork节点。解析Yolo结果
方法
-
setAnchorMasks
(self: depthai.YoloDetectionNetwork, anchorMasks: Dict[str, List[int]])¶ 设置锚mask
-
setCoordinateSize
(self: depthai.YoloDetectionNetwork, coordinates: int)¶ 设置coordinates大小
-
setIouThreshold
(self: depthai.YoloDetectionNetwork, thresh: float)¶ 设置阈值
-
setNumClasses
(self: depthai.YoloDetectionNetwork, numClasses: int)¶ 设置num类
-
-
class
StereoDepth
¶ StereoDepth节点。从左右图像对计算立体视差和深度。
Inputs
-
left
¶ 输入来自左侧灰度相机的帧
-
right
¶ 输入来自右侧灰度相机的帧
Outputs
-
depth
¶ 输出原始的深度框架,使通过调用
setOutputDepth()
和True
. 不能与disparity: output
一起使用
-
syncedLeft
¶ 输出用于深度计算的左框架
-
syncedRight
¶ 输出用于深度计算的右框架
方法
-
setEmptyCalibration
()¶ 指定当输入帧已得到纠正(例如,来自主机上的记录的源)时,应使用通过/虚拟校准
-
setInputResolution
(width: int, height: int)¶ 指定
left
/right
输入的输入大小。在大多数情况下,不需要调用此功能,当输入帧不是来自单反相机而是直接来自主机时,此功能很有用
-
setMedianFilter
(median: StereoDepthProperties.MedianFilter)¶ 指定在深度计算期间应使用哪个中值滤波器。
StereoDepthProperties.MedianFilter
可能是其中之一
-
-
class
SystemInformation
¶ SystemInformation消息。携带内存使用量,CPU使用量和芯片温度。
-
class
SystemLogger
¶ SystemLogger节点。定期发送系统信息。
属性
-
out
()¶ 输出SystemInformation消息,其中包含各种系统信息,例如内存和CPU使用率,温度等。
方法
-
setRate
(self: depthai.SystemLogger, hz: float)¶ 指定日志记录速率,以该速率将消息发送到输出
-
参数hz:
发送速率,以赫兹为单位(每秒的消息数)
-
-
-
class
VideoEncoder
¶ VideoEncoder节点。将帧编码为MJPEG,H264或H265。
Inputs
-
input
¶ NV12 ImgFrame的输入要编码默认队列被阻塞,其大小由“ setNumFramesPool”(4)设置。
Outputs
-
bitstream
¶ 输出ImgFrame消息,该消息携带BITSTREAM编码的(MJPEG,H264或H265)帧数据。
Methods
-
setDefaultProfilePreset
(*args, **kwargs)¶ 重载功能。
setDefaultProfilePreset(self: depthai.VideoEncoder,width: int,height: int,fps: float,profile: depthai.VideoEncoderProperties.Profile)
根据指定的输入大小,帧频和配置文件设置默认预设
-
参数width:
输入框宽度
-
参数height:
输入框高度
-
参数fps:
帧速率(每秒帧数)
-
参数profile:
编码配置文件
setDefaultProfilePreset(self: depthai.VideoEncoder,size: Tuple[int,int],fps: float,profile: depthai.VideoEncoderProperties.Profile)
根据指定的输入大小,帧频和配置文件设置默认预设
-
参数size:
输入框尺寸
-
参数fps:
帧速率(每秒帧数)
-
参数profile:
编码配置文件
-
setNumFramesPool
(self: depthai.VideoEncoder, numBFrames: int)¶ 设置要插入的B帧数
-
getNumFramesPool
(self: depthai.VideoEncoder) → int¶ 获取池中的帧数
-
setRateControlMode
(self: depthai.VideoEncoder, mode: depthai.VideoEncoderProperties.RateControlMode)¶ 设定速率控制模式
-
getRateControlMode
(self: depthai.VideoEncoder) → VideoEncoderProperties.Profile¶ 获取速率控制模式
-
setProfile
(self: depthai.VideoEncoder, width: int, height: int, profile: dai.VideoEncoderProperties.Profile)¶ 设置编码配置文件
-
getProfile
(self: depthai.VideoEncoder) → VideoEncoderProperties.Profile¶ 获取资料
-
setBitrate
(self: depthai.VideoEncoder, bitrateKbps: int)¶ 将输出比特率设置为kbps。最终比特率取决于速率控制模式
-
getBitrate
(self: depthai.VideoEncoder) → int¶ 获得比特率
-
setKeyframeFrequency
(self: depthai.VideoEncoder, freq: int)¶ 设置关键帧频率。每第N个帧插入一个关键帧。
仅适用于H264和H265配置文件
例子:
30 FPS视频,关键帧频率:30。每1s将插入一个关键帧
60 FPS视频,关键帧频率:180。每3秒钟将插入一个关键帧
-
getKeyframeFrequency
(self: depthai.VideoEncoder) → int¶ 获取关键帧频率
-
setNumBFrames
(self: depthai.VideoEncoder, numBFrames: int)¶ 设置要插入的B帧数
-
getNumBFrames
(self: depthai.VideoEncoder) → int¶ 获取B帧数
-
setQuality
(self: depthai.VideoEncoder, quality: int)¶ 设置质量,图像质量越大,经过压缩后显示越清晰。
-
getQuality
(self: depthai.VideoEncoder) → int¶ 获得质量,图像质量越大,经过压缩后显示越清晰。
-
getWidth
(self: depthai.VideoEncoder) → int¶ 获取输入宽度
-
getHeight
(self: depthai.VideoEncoder) → int¶ 获取输入高度
-
getSize
(self: depthai.VideoEncoder) → Tuple[int, int]¶ 获取输入大小
-
setFrameRate
(self: depthai.VideoEncoder, frameRate: int)¶ 设置预期的帧率
-
frameRate:
帧速率(每秒帧数)
-
-
getFrameRate
(self: depthai.VideoEncoder) → int¶ 获取帧率
-
-
class
CameraControl
¶ CameraControl消息指定各种摄像机控制命令,例如:
仍然捕捉
自动对焦
反捆扎
自动白平衡
场景
影响
…
class
成员:
成员:
成员:
成员:
成员:
方法
getCaptureStill(self)
检查是否设置了捕获静止图像的命令
setAntiBandingMode(self, mode)
设置命令以指定自动组合模式
setAutoExposureCompensation(self, compensation)
设置命令以指定自动曝光补偿
setAutoExposureEnable(self)
设置命令以启用自动曝光
setAutoExposureLock(self, lock)
设置命令以指定锁定自动曝光
setAutoExposureRegion(self, startX, startY, …)
设置命令以像素为单位指定自动曝光区域
setAutoFocusMode(self, mode)
设置命令以指定自动对焦模式
setAutoFocusRegion(self, startX, startY, …)
设置命令以像素为单位指定焦点区域
setAutoFocusTrigger(self)
设置命令以触发自动对焦
setAutoWhiteBalanceLock(self, lock)
设置命令以指定自动白平衡锁定
setAutoWhiteBalanceMode(self, mode)
设置命令以指定自动白平衡模式
setBrightness(self, value)
设置命令以指定自动白平衡锁定
setCaptureStill(self, capture)
设置命令以捕获静止图像
setChromaDenoise(self, value)
设置命令以指定色度降噪值
setContrast(self, value)
设置命令以指定自动白平衡锁定
setEffectMode(self, mode)
设置命令以指定效果模式
setLumaDenoise(self, value)
设置命令以指定亮度降噪值
setManualExposure(self, exposureTimeUs, …)
设置命令以手动指定曝光
setManualFocus(self, lensPosition)
设置命令以指定手动对焦位置
setNoiseReductionStrength(self, value)
设置命令以指定降噪强度
setSaturation(self, value)
设置命令以指定饱和度值
setSceneMode(self, mode)
设置命令以指定场景模式
setSharpness(self, value)
设置命令以指定清晰度值
setStartStreaming(self)
设置命令以开始流式传输
setStopStreaming(self)
设置命令以停止流式传输
-
AntiBandingMode
()¶ 成员
OFF
MAINS_50_HZ
MAINS_60_HZ
AUTO
属性
-
property name
-
-
AutoFocusMode
()¶ 成员
OFF
AUTO
MACRO
CONTINUOUS_VIDEO
CONTINUOUS_PICTURE
EDOF
属性
-
property name
-
-
AutoWhiteBalanceMode
()¶ 成员
OFF
AUTO
INCANDESCENT
FLUORESCENT
WARM_FLUORESCENT
DAYLIGHT
CLOUDY_DAYLIGHT
TWILIGHT
SHADE
属性
-
property name
-
-
EffectMode
()¶ 成员
OFF
MONO
NEGATIVE
SOLARIZE
SEPIA
POSTERIZE
WHITEBOARD
BLACKBOARD
AQUA
属性
-
property name
-
-
SceneMode
()¶ 成员
UNSUPPORTED
FACE_PRIORITY
ACTION
PORTRAIT
LANDSCAPE
NIGHT
NIGHT_PORTRAIT
THEATRE
BEACH
SNOW
SUNSET
STEADYPHOTO
FIREWORKS
SPORTS
PARTY
CANDLELIGHT
BARCODE
属性
-
property name
-
-
getCaptureStill
(self: depthai.CameraControl) → bool¶ 检查是否设置了捕获静止图像的命令,如果设置了捕获静止命令,则为True。
-
setAntiBandingMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.AntiBandingMode)¶ 设置命令以指定自动组合模式
-
参数mode:
使用自动分组模式
-
-
setAutoExposureCompensation
(self: depthai.CameraControl, compensation: int)¶ 设置命令以指定自动曝光补偿
-
参数compensation:
补偿值在-128..127之间
-
-
setAutoExposureEnable
(self: depthai.CameraControl, lock: bool)¶ 设置命令以指定锁定自动曝光
-
参数lock:
启用或禁用自动曝光锁定模式
-
-
setAutoExposureRegion
(self: depthai.CameraControl, startX: int, startY: int, width: int, height: int)¶ 设置命令以像素为单位指定自动曝光区域
-
参数startX:
区域左上角的X坐标
-
参数startY:
区域左上角的Y坐标
-
参数width:
区域宽度
-
height:
区域高度
-
-
setAutoFocusMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.AutoFocusMode)¶ 设置命令以指定自动对焦模式
-
setAutoFocusRegion
(self: depthai.CameraControl, startX: int, startY: int, width: int, height: int)¶ 设置命令以像素为单位指定焦点区域
-
参数startX:
区域左上角的X坐标
-
参数startY:
区域左上角的Y坐标
-
参数width:
区域宽度
-
height:
区域高度
-
-
setAutoFocusTrigger
(self: depthai.CameraControl)¶ 设置命令以触发自动对焦
-
setAutoWhiteBalanceLock
(self: depthai.CameraControl, lock: bool)¶ 设置命令以指定自动白平衡锁定
-
参数lock:
自动白平衡锁定模式启用或禁用
-
-
setAutoWhiteBalanceMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.AutoWhiteBalanceMode)¶ 设置命令以指定自动白平衡模式
-
参数mode:
自动白平衡模式使用
-
-
setBrightness
(self: depthai.CameraControl, value: int)¶ 设置命令以指定自动白平衡锁定
-
参数lock:
自动白平衡锁定模式启用或禁用
-
-
setCaptureStill
(self: depthai.CameraControl, 捕获: bool)¶ 设置命令以捕获静止图像
-
setChromaDenoise
(self: depthai.CameraControl, value: int)¶ 设置命令以指定色度降噪值
-
参数value:
色度降噪
-
-
setContrast
(self: depthai.CameraControl, value: int)¶ 设置命令以指定自动白平衡锁定
-
参数lock:
自动白平衡锁定模式启用或禁用
-
-
setEffectMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.EffectMode)¶ 设置命令以指定效果模式
-
参数mode:
效果模式
-
-
setLumaDenoise
(self: depthai.CameraControl, value: int)¶ 设置命令以指定亮度降噪值
-
参数value:
亮度降噪
-
-
setManualExposure
(自: depthai.CameraControl, exposureTimeUs: INT, sensitivityIso: INT)¶ 设置命令以手动指定曝光
-
参数exposureTimeUs:
曝光时间(以微秒为单位)
-
参数sensitivityIso:
感光度作为ISO值
-
-
setManualFocus
(self: depthai.CameraControl, lensPosition: int)¶ 设置命令以指定手动对焦位置
-
参数lensPosition:
指定镜头位置0..255
-
-
setNoiseReductionStrength
(self: depthai.CameraControl, value: int)¶ 设置命令以指定降噪强度
-
参数value:
降噪强度
-
-
setSaturation
(self: depthai.CameraControl, value: int)¶ 设置命令以指定饱和度值
-
参数value:
饱和
-
-
setSceneMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.SceneMode)¶ 设置命令以指定场景模式
-
参数mode:
场景模式
-
-
setSharpness
(self: depthai.CameraControl, value: int)¶ 设置命令以指定清晰度值
-
参数value:
清晰度
-
-
setStartStreaming
(self: depthai.CameraControl)¶ 设置命令以开始流式传输
-
setStopStreaming
(self: depthai.CameraControl)¶ 设置命令以停止流式传输
-
class
CameraBoardSocket
¶ 成员
AUTO
RGB
LEFT
RIGHT
属性
-
property name
-
-
class
CameraImageOrientation
¶ 成员
AUTO
NORMAL
HORIZONTAL_MIRROR
VERTICAL_FLIP
ROTATE_180_DEG
属性
-
property name
-
-
class
DataInputQueue
¶ 通过XLink流访问发送消息
方法
getBlocking(self)
满时获取当前队列行为(最大大小)
getMaxSize(self, arg0)
获取队列的最大大小
getName(self)
获取队列名称
重载功能。
setBlocking(self, blocking)
设置满时的队列行为(maxSize)
setMaxSize(self, maxSize)
设置队列的最大大小
-
getBlocking
(self: depthai.DataInputQueue)¶ 满时获取当前队列行为(最大大小),如果阻塞则为true,否则为false
-
getMaxSize
(self: depthai.DataInputQueue, arg0: int)¶ 获取队列的最大大小,最大队列大小
-
getName
(self: depthai.DataInputQueue)¶ 获取队列名称
-
send
(*args, **kwargs)¶ 重载功能。
send(self:depthai.DataInputQueue,msg:depthai.ADatatype)
将消息添加到队列,该消息将被提取并发送到设备。如果“阻止”行为为真,则可以阻止,也可以覆盖最旧的
-
参数msg:
要添加到队列中的消息
send(self:depthai.DataInputQueue,rawMsg:depthai.RawBuffer)
将原始消息添加到队列,该消息将被提取并发送到设备。如果“阻止”行为为真,则可以阻止,也可以覆盖最旧的
-
参数msg:
要添加到队列中的消息
-
setBlocking
(self: depthai.DataInputQueue, 阻塞: bool)¶ 指定是阻止还是覆盖队列中最旧的消息
-
参数blocking:
指定是阻止还是覆盖队列中最旧的消息
-
-
setMaxSize
(self: depthai.DataInputQueue, maxSize: int)¶ 设置队列的最大大小
-
参数maxSize:
指定队列中的最大消息数
-
-
-
class
DataOutputQueue
¶ 访问接收来自XLink流的消息
方法
addCallback(*args,**kwargs)
重载功能。
get(self)
阻止直到有消息可用。
getAll(self)
阻塞直到队列中至少有一条消息。
getBlocking(self)
满时获取当前队列行为(最大大小)
getMaxSize(self,arg0)
获取队列的最大大小
getName(self)
获取队列名称
has(self)
检查队列前面是否有消息(不为空)
removeCallback(self,callbackId)
删除回调
setBlocking(self,blocking)
设置满时的队列行为(maxSize)
setMaxSize(self,maxSize)
设置队列的最大大小
tryGet(self)
尝试从队列中检索消息。
tryGetAll(self)
尝试检索队列中的所有消息。
-
addCallback
(*args, **kwargs)¶ 重载功能。
addCallback(self: depthai.DataOutputQueue, callback: std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<dai::ADatatype>)>) -> int
在收到的消息上添加回调
-
参数callback:
带有队列名称和消息指针的回调函数
addCallback(self: depthai.DataOutputQueue, callback: std::function<void (std::shared_ptr<dai::ADatatype>)>) -> int
在收到的消息上添加回调
-
参数callback:
带消息指针的回调功能
addCallback(self: depthai.DataOutputQueue, callback: std::function<void ()>) -> int
在收到的消息上添加回调
-
参数callback:
没有任何参数的回调函数
-
get(self: depthai.DataOutputQueue) → depthai.ADatatype
阻止直到有消息可用。
-
getAll(self: depthai.DataOutputQueue) → List[depthai.ADatatype]
阻塞直到队列中至少有一条消息。然后返回队列中的所有消息。
-
getBlocking(self: depthai.DataOutputQueue) → bool
满时获取当前队列行为(最大大小),如果阻塞则为true,否则为false
-
getMaxSize(self: depthai.DataOutputQueue, arg0: int) → int
获取队列的最大大小
-
getName(self: depthai.DataOutputQueue) → str
获取队列名称
-
has(self: depthai.DataOutputQueue) → bool
检查队列前面是否有消息(不为空),如果队列不为空,则为true,否则为false
-
removeCallback(self: depthai.DataOutputQueue, callbackId: int) → bool
删除回调,如果删除了回调,则为true,否则为false
-
setBlocking
(self: depthai.DataOutputQueue, blocking: bool)¶ 设置满时的队列行为(maxSize),指定是阻止还是覆盖队列中最旧的消息
-
setMaxSize
(self: depthai.DataOutputQueue, maxSize: int)¶ 设置队列的最大大小,指定队列中的最大消息数
-
tryGet(self: depthai.DataOutputQueue) → depthai.ADatatype
尝试从队列中检索消息。如果没有可用的消息,则立即返回
-
tryGetAll(self: depthai.DataOutputQueue) → List[depthai.ADatatype]
尝试检索队列中的所有消息。
-
-
class
DetectionNetwork
¶ 检测网络。不同网络专业的基础
属性
input
输入消息,其中包含要推论为默认队列的数据,大小为5
out
输出ImgDetections消息,其中包含已解析的检测结果。
passthrough
执行推断的直通消息。
-
input
¶ 输入消息,其中包含要推论为默认队列的数据,大小为5
-
out
¶ 输出ImgDetections消息,其中包含已解析的检测结果。
-
passthrough
¶ 执行推断的直通消息。
适用于将输入队列设置为非阻塞行为的情况。
方法
-
setConfidenceThreshold
(self: depthai.DetectionNetwork,thresh: float)¶ 指定用于过滤其余检测的置信度阈值。
-
参数thresh:
检测置信度必须大于指定的阈值才能添加到列表中
-
-
-
class
ColorCameraProperties
¶ Outputs
-
boardSocket
¶
-
colorOrder
¶
-
interleaved
¶
-
previewHeight
¶
-
previewWidth
¶
-
resolution
¶
-
fps
¶
-
videoHeight
¶
-
videoWidth
¶
-
stillHeight
¶
-
stillWidth
¶
-
sensorCropX
¶
-
sensorCropY
¶
-
-
class
StereoDepthProperties
¶ Outputs
-
calibration
¶
-
median
¶
-
confidenceThreshold
¶
-
enableLeftRightCheck
¶
-
enableSubpixel
¶
-
enableExtendedDisparity
¶
-
rectifyMirrorFrame
¶
-
rectifyEdgeFillColor
¶
-
enableOutputRectified
¶
-
enableOutputDepth
¶
-
width
¶
-
height
¶
-
-
class
VideoEncoderProperties
¶ Outputs
-
bitrate
¶
-
keyframeFrequency
¶
-
maxBitrate
¶
-
numBFrames
¶
-
numFramesPool
¶
-
profile
¶
-
quality
¶
-
rateCtrlMode
¶
-
width
¶
-
height
¶
-
-
class
VideoEncoderProperties.
Profile
¶ Outputs
-
H264_BASELINE
¶
-
H264_HIGH
¶
-
H264_MAIN
¶
-
H265_MAIN
¶
-
MJPEG
¶
-
-
class
Buffer
¶ 基本消息-二进制数据缓冲区
方法
-
setData
(*args,**kwargs)¶ 重载功能。
setData(self: depthai.Buffer,arg0: List [int])
-
参数data:
将数据复制到内部缓冲区
setData(self: depthai.Buffer,arg0: numpy.ndarray[numpy.uint8])
-
-
class
AssetManager
¶ 表示管道,是一组节点和它们之间的连接,表示所需的数据流
方法
有疑问?
我们很乐意为您提供代码或其他问题的帮助。