VPI - 视觉编程接口

3.2 版本

方向梯度直方图

从输入图像中提取方向梯度直方图特征。 更多...

函数

VPIStatus vpiCreateExtractHOGFeatures (uint64_t backends, int32_t width, int32_t height, int32_t features, int32_t cellSize, int32_t numOrientations, int32_t *outNumFeatures, VPIPayload *payload)
 为非批量版本的 HOG 算法创建负载。 更多...
 
VPIStatus vpiCreateExtractHOGFeaturesBatch (uint64_t backends, int32_t maxBatchWidth, int32_t maxBatchHeight, int32_t imgWidth, int32_t imgHeight, int32_t features, int32_t cellSize, int32_t numOrientations, int32_t *outNumFeatures, VPIPayload *payload)
 为批量版本的 HOG 算法创建负载。 更多...
 
VPIStatus vpiSubmitExtractHOGFeatures (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage input, VPIImage *outFeatures, int32_t numFeatures)
 向流提交 HOG 操作。 更多...
 

HOG 标志

定义将返回哪些特征。

#define VPI_HOG_CONTRAST_SENSITIVE   0x01
 返回对比度敏感特征。
 
#define VPI_HOG_CONTRAST_INSENSITIVE   0x02
 返回对比度不敏感特征。
 
#define VPI_HOG_TEXTURE   0x04
 返回纹理相关特征。
 
#define VPI_HOG_ALL_FEATURES   (VPI_HOG_CONTRAST_SENSITIVE | VPI_HOG_CONTRAST_INSENSITIVE | VPI_HOG_TEXTURE)
 用于返回所有特征的辅助标志。
 

详细描述

从输入图像中提取方向梯度直方图特征。

函数文档

◆ vpiCreateExtractHOGFeatures()

VPIStatus vpiCreateExtractHOGFeatures ( uint64_t  backends,
int32_t  width,
int32_t  height,
int32_t  features,
int32_t  cellSize,
int32_t  numOrientations,
int32_t *  outNumFeatures,
VPIPayload payload 
)

#include <vpi/experimental/HOG.h>

为非批量版本的 HOG 算法创建负载。

参数
[输入]backends有资格执行算法的 VPI 后端。
[输入]width,height要使用的输入图像的尺寸。
  • 必须 >= 0。
[输入]features用于指定将返回哪些特征的标志。
[输入]cellSize单元格大小,通常为 8 或 16,分别对应 8x8 和 16x16 单元格。
  • 必须 >=2 且 <= 32,并且是 2 的幂。
[输入]numOrientations使用的方向数量。通常为 18。
  • 必须介于 4 和 18 之间。
[输出]outNumFeatures接收将返回的特征数量。如果不需要,则传递 NULL。
[输出]payload指向接收创建句柄的负载变量的指针。
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 句柄为 NULL。
VPI_ERROR_INVALID_ARGUMENTwidthheight 超出有效范围。
VPI_ERROR_NOT_IMPLEMENTED给定的后端未实现 HOG。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作执行成功。

◆ vpiCreateExtractHOGFeaturesBatch()

VPIStatus vpiCreateExtractHOGFeaturesBatch ( uint64_t  backends,
int32_t  maxBatchWidth,
int32_t  maxBatchHeight,
int32_t  imgWidth,
int32_t  imgHeight,
int32_t  features,
int32_t  cellSize,
int32_t  numOrientations,
int32_t *  outNumFeatures,
VPIPayload payload 
)

#include <vpi/experimental/HOG.h>

为批量版本的 HOG 算法创建负载。

假定输入图像在内存中以图像的 2D 矩阵形式布局。所有图像必须具有相同的尺寸。

参数
[输入]backends有资格执行算法的 VPI 后端。
[输入]maxBatchWidth,maxBatchHeight水平和垂直方向上的最大图像数量。
  • 必须 >= 0。
[输入]imgWidth,imgHeight每个批量图像的尺寸。
  • 必须 >= 0。
  • imgWidthimgHeight 必须分别是单元格宽度和高度的倍数。
[输入]features用于指定将返回哪些特征的标志。
[输入]cellSize单元格大小,通常为 8 或 16,分别对应 8x8 和 16x16 单元格。
  • 必须 >=2 且 <= 32,并且是 2 的幂。
[输入]numOrientations使用的方向数量。通常为 18。
  • 必须为偶数,且介于 4 和 18 之间。
[输出]outNumFeatures接收将返回的特征数量。如果不需要,则传递 NULL。
[输出]payload指向将接收分配的负载句柄的负载指针。
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 句柄为 NULL。
VPI_ERROR_INVALID_ARGUMENTmaxBatchWidthmaxBatchHeight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENTimgWidthimgHeight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENT无效的 features
VPI_ERROR_INVALID_ARGUMENTcellSizenumOrientations 超出有效范围。
VPI_ERROR_INVALID_ARGUMENTimgWidth 必须是单元格宽度的倍数。
VPI_ERROR_INVALID_ARGUMENTimgHeight 必须是单元格高度的倍数。
VPI_ERROR_INVALID_ARGUMENTbackends 引用了无效的后端。
VPI_ERROR_NOT_IMPLEMENTED给定的后端未实现 HOG。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作执行成功。

◆ vpiSubmitExtractHOGFeatures()

VPIStatus vpiSubmitExtractHOGFeatures ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage  input,
VPIImage outFeatures,
int32_t  numFeatures 
)

#include <vpi/experimental/HOG.h>

向流提交 HOG 操作。

它处理批量和非批量负载。

参数
[输入]stream操作将排队到的流。
  • 不能为空。
  • 流必须已启用将执行算法的后端。
[输入]backend将执行算法的后端。必须是在负载创建期间指定的后端,或 0 作为使用此后端的简写。
[输入]payload要与其他参数一起提交的负载。
[输入]input如果使用非批量负载,这是要处理的输入图像。
  • 不能为空。
  • 其尺寸必须与传递给 vpiCreateExtractHOGFeatures 的尺寸匹配。
  • 如果使用批量负载,图像尺寸必须是 (imgWidth,imgHeight) 的倍数,并且最大为 (imgWidth*maxBatchWidth, imgHeight*maxBatchHeight)。
  • 图像必须已启用将执行算法的后端。
[输出]outFeatures指向将接收特征的图像数组的指针。
  • 不能为空。
  • 每个图像的尺寸必须为 (input.width / cellSize, input.height / cellSize)。
  • 在批量处理的情况下,输出特征在 2D 矩阵中的位置应与相应输入图像的位置相同。
  • 所有图像必须具有相同的格式。
  • 所有图像必须已启用将执行算法的后端。
[输入]numFeatures输出数组中的图像数量。必须介于 1 和 32 之间。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutFeatures 为 NULL。
VPI_ERROR_INVALID_ARGUMENTpayload 不是使用 vpiCreateExtractHOGFeatures 生成的。
VPI_ERROR_INVALID_ARGUMENTnumFeatures 超出有效范围。
VPI_ERROR_INVALID_ARGUMENT批量输入宽度必须是配置的输入宽度的倍数。
VPI_ERROR_INVALID_ARGUMENT批量输入高度必须是配置的输入高度的倍数。
VPI_ERROR_INVALID_ARGUMENToutFeatures 必须都具有相同的格式。
VPI_ERROR_INVALID_PAYLOAD_TYPEpayload 无效。
VPI_ERROR_INVALID_OPERATION所需的后端未在 streaminputoutFeatures 中启用。
VPI_SUCCESS操作执行成功。