VPI - 视觉编程接口

3.2 版本

KLT 特征追踪器

在一系列帧上运行 KLT 特征追踪。 更多...

数据结构

结构体  VPIKLTFeatureTrackerCreationParams
 KLT 特征追踪器的创建参数。 更多...
 
结构体  VPIKLTFeatureTrackerParams
 定义 vpiCreateKLTFeatureTracker 参数的结构体。 更多...
 
结构体  VPIKLTTrackedBoundingBox
 存储由 KLT 追踪器 追踪的边界框。 更多...
 

枚举

枚举  VPIKLTFeatureTrackerType
 KLT 特征追踪器算法类型。 更多...
 

函数

VPIStatus vpiInitKLTFeatureTrackerCreationParams (VPIKLTFeatureTrackerCreationParams *params)
 使用默认值初始化 VPIKLTFeatureTrackerCreationParams更多...
 
VPIStatus vpiCreateKLTFeatureTracker (uint64_t backends, int32_t imageWidth, int32_t imageHeight, VPIImageFormat imageFormat, const VPIKLTFeatureTrackerCreationParams *params, VPIPayload *payload)
 vpiSubmitKLTFeatureTracker 创建负载。 更多...
 
VPIStatus vpiInitKLTFeatureTrackerParams (VPIKLTFeatureTrackerParams *params)
 使用默认值初始化 VPIKLTFeatureTrackerParams更多...
 
VPIStatus vpiSubmitKLTFeatureTracker (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage templateImage, VPIArray inputBoxList, VPIArray inputPredictionList, VPIImage referenceImage, VPIArray outputBoxList, VPIArray outputEstimationList, const VPIKLTFeatureTrackerParams *params)
 在两个帧上运行 KLT 特征追踪器。 更多...
 

详细描述

在一系列帧上运行 KLT 特征追踪。

有关更多详细信息和用法示例,请参阅 KLT 特征追踪器


数据结构文档

◆ VPIKLTFeatureTrackerCreationParams

struct VPIKLTFeatureTrackerCreationParams

KLT 特征追踪器的创建参数。

定义于文件 KLTFeatureTracker.h 的第 80 行。

+ VPIKLTFeatureTrackerCreationParams 的协作图
数据字段
int32_t maxTemplateCount 要追踪的最大模板数量。
  • 必须 >= 1 且 <= 128。
int32_t maxTemplateWidth 每个被追踪模板的最大宽度。
  • 必须 >= 4 且 <= 128 (在 PVA 上, <= 64)。
int32_t maxTemplateHeight 每个被追踪模板的最大高度。
  • 必须 >= 4 且 <= 128 (在 PVA 上, <= 64)。

◆ VPIKLTFeatureTrackerParams

struct VPIKLTFeatureTrackerParams

定义 vpiCreateKLTFeatureTracker 参数的结构体。

定义于文件 KLTFeatureTracker.h 的第 173 行。

+ VPIKLTFeatureTrackerParams 的协作图
数据字段
int32_t numberOfIterationsScaling 尺度估计的逆组合迭代次数。
  • 在 PVA 上,最大允许值为 20。
float nccThresholdUpdate 需要模板更新的阈值。
  • 必须是介于 0 和 1 之间的值。
  • 必须大于 nccThresholdKill。
float nccThresholdKill 认为模板追踪丢失的阈值。
  • 必须是介于 0 和 1 之间的值。
float nccThresholdStop 提前停止迭代的阈值。
  • 必须是介于 0 和 1 之间的值。
  • 必须大于 nccThresholdUpdate。
float maxScaleChange 最大相对尺度变化。

大于此值的尺度变化将使 KLT 认为追踪丢失。

  • 必须 >= 0。
  • 在 PVA 上,最大尺度变化为 0.2。
float maxTranslationChange 最大相对平移变化。
  • 必须小于 >= 0。
  • 大于此值的平移变化将使 KLT 认为追踪丢失。
VPIKLTFeatureTrackerType trackingType 将要执行的 KLT 追踪类型。

◆ VPIKLTTrackedBoundingBox

struct VPIKLTTrackedBoundingBox

存储由 KLT 追踪器 追踪的边界框。

定义于文件 Types.h 的第 487 行。

+ VPIKLTTrackedBoundingBox 的协作图
数据字段
VPIBoundingBox bbox 正在追踪的边界框。
int8_t trackingStatus 此边界框的追踪状态。

接受的值

  • 1 追踪信息无效,不应依赖。
  • 0 追踪信息有效。
int8_t templateStatus 与此边界框相关的模板的状态。

接受的值

  • 1 模板需要更新。
  • 0 现有模板仍然可以用于追踪,不需要更新。
uint8_t reserved1 为将来使用保留。
uint8_t reserved2 为将来使用保留。

枚举类型文档

◆ VPIKLTFeatureTrackerType

#include <vpi/algo/KLTFeatureTracker.h>

KLT 特征追踪器算法类型。

枚举器
VPI_KLT_INVERSE_COMPOSITIONAL 

KLT 追踪器的逆组合算法。

逆组合算法是经典 Lucas-Kanade 算法的重新表述,使最速下降图像和 Hessian 矩阵保持不变。

参考Simon Baker, Iain Matthew, "Lucas-Kanade 20 Years On: A Unified Framework"
International Journal of Computer Vision, February 2004, Volume 56, issue 3, pp. 228-231。

定义于文件 KLTFeatureTracker.h 的第 156 行。

函数文档

◆ vpiInitKLTFeatureTrackerCreationParams()

VPIStatus vpiInitKLTFeatureTrackerCreationParams ( VPIKLTFeatureTrackerCreationParams params)

#include <vpi/algo/KLTFeatureTracker.h>

使用默认值初始化 VPIKLTFeatureTrackerCreationParams

默认值

  • maxTemplateCount: 128
  • maxTemplateWidth: 64
  • maxTemplateHeight: 64
参数
[输出]params要填充默认值的结构体。
返回值
VPI_ERROR_INVALID_ARGUMENTparams 为 NULL。
VPI_SUCCESS操作成功执行。

◆ vpiCreateKLTFeatureTracker()

VPIStatus vpiCreateKLTFeatureTracker ( uint64_t  backends,
int32_t  imageWidth,
int32_t  imageHeight,
VPIImageFormat  imageFormat,
const VPIKLTFeatureTrackerCreationParams params,
params VPIPayload
)

#include <vpi/algo/KLTFeatureTracker.h>

payload 

参数
[输入]backends有资格执行该算法的 VPI 后端。
[输入]imageWidth, imageHeight输入图像尺寸。
  • 在 PVA 上,尺寸必须介于 65x65 和 3264x2448 之间。
  • 必须 >= 0 (其他后端)。
[输入]imageFormat输入图像格式。
[输入]paramsparams
[输出]payload指向接收创建句柄的负载变量的指针。
返回值
VPI_ERROR_INVALID_ARGUMENTVPI_ERROR_INVALID_ARGUMENT
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTimageWidthimageHeight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENTparams 中的 maxTemplateWidthmaxTemplateHeight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENTparams 中的 maxTemplateCount 超出有效范围。
backends 引用无效的后端。VPI_IMAGE_FORMAT_INVALID
不支持 imageFormatVPI_ERROR_INVALID_OPERATION
不支持 imageFormatPVA 硬件不可用。
后端在当前上下文中未启用。VPI_ERROR_NOT_IMPLEMENTED
给定后端不支持 KLT 特征追踪器算法。VPI_ERROR_INVALID_CONTEXT
当前上下文已销毁。VPI_ERROR_OUT_OF_MEMORY
VPI_SUCCESS操作成功执行。

无法分配所需资源。

◆ vpiInitKLTFeatureTrackerParams() ( VPIStatus vpiInitKLTFeatureTrackerParams params)

#include <vpi/algo/KLTFeatureTracker.h>

VPIKLTFeatureTrackerParams

默认值

  • params
  • 使用默认值初始化 VPIKLTFeatureTrackerParams
  • 默认值
  • numberOfIterationsScaling: 20
  • nccThresholdUpdate: 0.8
  • nccThresholdKill: 0.6
  • nccThresholdStop: 1.0
参数
[输出]params要填充默认值的结构体。
maxScaleChange: 0.2
maxTranslationChange: 1.5

trackingType: VPI_KLT_INVERSE_COMPOSITIONAL

返回 ( 失败时返回错误代码,否则返回 VPI_SUCCESS ◆ vpiSubmitKLTFeatureTracker(),
uint64_t  VPIStatus vpiSubmitKLTFeatureTracker,
VPIStream  payload,
stream uint64_t ,
backend VPIPayload ,
backend payload,
stream VPIImage ,
backend templateImage,
backend VPIArray ,
inputBoxList VPIArray 
)

#include <vpi/algo/KLTFeatureTracker.h>

inputPredictionList

VPIImage 

参数
[输入]◆ vpiSubmitKLTFeatureTracker()referenceImage
[输入]VPIStatus vpiSubmitKLTFeatureTrackerVPIArray 
  • outputEstimationList
[输入]payloadconst VPIKLTFeatureTrackerParams
[输入]VPIImage params 
  • VPIArray 
  • 在两个帧上运行 KLT 特征追踪器。
  • 输出追踪的边界框和估计的变换数组。
[输入]VPIPayload [输入]
  • VPIArray 
  • 将在其中排队操作的流。
  • 不能为空。
  • 流必须已启用将执行该算法的后端。
[输入]payload将执行该算法的后端。
  • VPIArray 
  • 必须是在负载创建期间指定的后端,或使用 0 作为使用此后端的简写。
  • 不能为空。
  • 流必须已启用将执行该算法的后端。
[输入]uint64_t vpiCreateKLTFeatureTracker 创建的负载。
  • VPIArray 
  • 参考图像。
  • 输出追踪的边界框和估计的变换数组。
[输出]templateImage必须具有与模板图像相同的尺寸和格式。
  • VPIArray 
  • 将在其中排队操作的流。
  • 不能为空。
  • 流必须已启用将执行该算法的后端。
[输出]VPIArray 图像必须已启用将执行该算法的后端。
  • VPIArray 
  • 必须是在负载创建期间指定的后端,或使用 0 作为使用此后端的简写。
  • 不能为空。
  • 流必须已启用将执行该算法的后端。
[输入]params输入边界框数组。
返回值
VPI_ERROR_INVALID_ARGUMENT必须具有类型 VPI_ARRAY_TYPE_KLT_TRACKED_BOUNDING_BOX
VPI_ERROR_INVALID_ARGUMENT数组必须已启用将执行该算法的后端。
VPI_ERROR_INVALID_ARGUMENTparams 为 NULL。
VPI_ERROR_INVALID_ARGUMENT在 PVA 上,数组容量必须 >= 128。
VPI_ERROR_INVALID_ARGUMENT输入预测变换数组。
VPI_ERROR_INVALID_ARGUMENT必须具有类型 VPI_ARRAY_TYPE_HOMOGRAPHY_TRANSFORM_2D
VPI_ERROR_INVALID_ARGUMENT模板图像。
VPI_ERROR_INVALID_ARGUMENT必须具有与 referenceImage 相同的尺寸和格式。
VPI_ERROR_INVALID_ARGUMENT输出边界框数组。
VPI_ERROR_INVALID_ARGUMENT估计的变换数组。
KLT 特征追踪器算法的控制参数。VPI_ERROR_INVALID_ARGUMENT
不支持 imageFormatstream 为 NULL。
VPI_SUCCESS操作成功执行。