检测图像中的 AprilTags (https://april.eecs.umich.edu/software/apriltag)。 更多...
数据结构 | |
结构体 | VPIAprilTagDecodeParams |
vpiCreateAprilTagDetector 的解码参数。 更多... | |
结构体 | VPIAprilTagDetection |
存储来自 AprilTag 检测器 的 AprilTag 检测信息。 更多... | |
枚举 | |
枚举 | VPIAprilTagFamily |
指定要检测的 AprilTag 标签族。 更多... | |
函数 | |
VPIStatus | vpiInitAprilTagDecodeParams (VPIAprilTagDecodeParams *params) |
使用默认值初始化 VPIAprilTagDecodeParams。 更多... | |
VPIStatus | vpiCreateAprilTagDetector (uint64_t backends, int32_t inputWidth, int32_t inputHeight, VPIAprilTagDecodeParams const *params, VPIPayload *payload) |
创建 AprilTag 检测器 有效载荷。 更多... | |
VPIStatus | vpiSubmitAprilTagDetector (VPIStream stream, uint64_t backend, VPIPayload payload, uint32_t maxDetections, VPIImage input, VPIArray outDetections) |
将 AprilTag 检测器 操作提交到流。 更多... | |
VPIStatus | vpiSubmitAprilTagPoseEstimation (VPIStream stream, uint64_t backend, VPIArray inDetections, const VPICameraIntrinsic intrinsics, float tagSize, VPIArray outPoses) |
将 AprilTag 位姿估计 操作提交到流。 更多... | |
检测图像中的 AprilTags (https://april.eecs.umich.edu/software/apriltag)。
有关更多详细信息和使用示例,请参阅 AprilTag 检测器和位姿估计器。
struct VPIAprilTagDecodeParams |
数据字段 | ||
---|---|---|
const uint16_t * | tagIdFilter | 来自标签族的标签 ID 可选数组,表示有效检测结果。 设置为 NULL 以检测来自该族的所有标签。在调用 vpiCreateAprilTagDetector 后可以释放数据。 |
int32_t | tagIdFilterSize | 如果 tagIdFilter 数组不为 NULL,则为该数组的大小。
|
int32_t | maxBitsCorrected | 解码期间要纠正的最大位数。
|
VPIAprilTagFamily | family | 要检测的标签族。 |
struct VPIAprilTagDetection |
存储来自 AprilTag 检测器 的 AprilTag 检测信息。
数据字段 | ||
---|---|---|
uint16_t | id | 标签的解码 ID。 |
int16_t | correctedBits | 此检测纠正的位数。 |
float | decisionMargin | 二进制解码过程质量的度量:数据位强度与决策阈值之间的平均差值。 数字越大,大致表示解码效果越好。这仅对于非常小的标签才是检测精度的合理度量。 |
VPIHomographyTransform2D | homography | 从“理想”标签(角位于 (-1,1)、(1,1)、(1,-1) 和 (-1, -1))到图像中像素的投影的 3x3 单应性矩阵。 |
VPIKeypointF32 | center | 检测中心在图像像素坐标中的位置。 |
VPIKeypointF32 | corners[4] | 标签角点在图像像素坐标中的位置,逆时针顺序排列。 |
enum VPIAprilTagFamily |
#include <vpi/algo/AprilTags.h>
指定要检测的 AprilTag 标签族。
标签族由布局、标签中的位数以及有效码字之间的最小汉明距离定义。
定义于文件 AprilTags.h 的第 83 行。
VPIStatus vpiInitAprilTagDecodeParams | ( | VPIAprilTagDecodeParams * | params | ) |
#include <vpi/algo/AprilTags.h>
使用默认值初始化 VPIAprilTagDecodeParams。
默认值
[out] | params | 要填充默认值的结构体。 |
VPI_ERROR_INVALID_ARGUMENT | params 为 NULL |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiCreateAprilTagDetector | ( | uint64_t | backends, |
int32_t | inputWidth, | ||
int32_t | inputHeight, | ||
VPIAprilTagDecodeParams const * | params, | ||
VPIPayload * | payload | ||
) |
#include <vpi/algo/AprilTags.h>
创建 AprilTag 检测器 有效载荷。
此函数分配算法所需的所有临时内存。
[in] | backends | 有资格执行该算法的 VPI 后端。
|
[in] | inputWidth,inputHeight | 将用于此有效载荷的输入图像的尺寸。
|
[in] | params | 检测器的解码参数。传递 NULL 以使用 vpiInitAprilTagDecodeParams 给出的默认值。 |
[out] | payload | 指向接收创建的句柄的有效载荷变量的指针。 |
VPI_ERROR_INVALID_ARGUMENT | payload 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | backends 指的是无效的后端。 |
VPI_ERROR_INVALID_ARGUMENT | inputWidth 或 inputHeight 超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | params 为 NULL 或包含无效配置。 |
VPI_ERROR_INVALID_OPERATION | 后端硬件不可用,或者后端在当前上下文中不可用。 |
VPI_ERROR_NOT_IMPLEMENTED | 算法不支持给定的后端。 |
VPI_ERROR_INVALID_CONTEXT | 当前上下文已销毁。 |
VPI_ERROR_OUT_OF_MEMORY | 无法分配所需资源。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitAprilTagDetector | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIPayload | payload, | ||
uint32_t | maxDetections, | ||
VPIImage | input, | ||
VPIArray | outDetections | ||
) |
#include <vpi/algo/AprilTags.h>
将 AprilTag 检测器 操作提交到流。
[in] | stream | 操作将排队进入的流。
|
[in] | backend | 将执行该算法的后端。
|
[in] | payload | 要与其他参数一起提交的有效载荷。 |
[in] | maxDetections | 要在 outDetections 中返回的最大检测数。 |
[in] | input | 用于检测的输入图像
|
[out] | outDetections | 将接收检测结果的数组。数组大小会使用找到的标签数进行更新。
|
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | input 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | input 图像尺寸与传递给 vpiCreateAprilTagDetector 的尺寸不匹配。 |
VPI_ERROR_INVALID_ARGUMENT | backend 与用于创建有效载荷的后端不匹配。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | 不支持 input 图像格式。 |
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效或为 NULL。 |
VPI_ERROR_NOT_IMPLEMENTED | 算法不支持给定的后端。 |
VPI_ERROR_INVALID_OPERATION | 后端硬件不可用。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端未在 stream 、input 或 outDetections 中启用。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitAprilTagPoseEstimation | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIArray | inDetections, | ||
const VPICameraIntrinsic | intrinsics, | ||
float | tagSize, | ||
VPIArray | outPoses | ||
) |
#include <vpi/algo/AprilTags.h>
将 AprilTag 位姿估计 操作提交到流。
[in] | stream | 操作将排队进入的流。
|
[in] | backend | 将执行该算法的后端。
|
[in] | inDetections | AprilTag 检测数组。
|
[in] | intrinsics | 相机内参 |
[in] | tagSize | 标签边长
|
[out] | outPoses | 将接收位姿估计的数组。数组大小将设置为与 inDetections 相同。
|
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | inDetections 或 outPoses 为 NULL。 |
VPI_ERROR_NOT_IMPLEMENTED | 算法不支持给定的后端。 |
VPI_ERROR_INVALID_OPERATION | 后端硬件不可用。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端未在 stream 、inDetections 或 outPoses 中启用。 |
VPI_SUCCESS | 操作成功执行。 |