从立体图像对估计视差。 更多...
数据结构 | |
struct | VPIStereoDisparityEstimatorCreationParams |
定义 vpiCreateStereoDisparityEstimator 参数的结构体。 更多... | |
struct | VPIStereoDisparityEstimatorParams |
定义 vpiSubmitStereoDisparityEstimator 参数的结构体。 更多... | |
枚举 | |
enum | VPIStereoDisparityConfidenceType |
定义置信度值的计算方式。 更多... | |
函数 | |
VPIStatus | vpiInitStereoDisparityEstimatorCreationParams (VPIStereoDisparityEstimatorCreationParams *params) |
使用默认值初始化 VPIStereoDisparityEstimatorCreationParams。 更多... | |
VPIStatus | vpiCreateStereoDisparityEstimator (uint64_t backends, int32_t imageWidth, int32_t imageHeight, VPIImageFormat inputFormat, const VPIStereoDisparityEstimatorCreationParams *params, VPIPayload *payload) |
为 vpiSubmitStereoDisparityEstimator 创建负载 (payload)。 更多... | |
VPIStatus | vpiInitStereoDisparityEstimatorParams (VPIStereoDisparityEstimatorParams *params) |
使用默认值初始化 VPIStereoDisparityEstimatorParams。 更多... | |
VPIStatus | vpiSubmitStereoDisparityEstimator (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage left, VPIImage right, VPIImage disparity, VPIImage confidenceMap, const VPIStereoDisparityEstimatorParams *params) |
在一对图像上运行立体处理并输出视差图。 更多... | |
从立体图像对估计视差。
有关更多详细信息和用法示例,请参阅 立体视差估计器。
struct VPIStereoDisparityEstimatorCreationParams |
定义 vpiCreateStereoDisparityEstimator 参数的结构体。
定义于文件 StereoDisparity.h 的第 82 行。
struct VPIStereoDisparityEstimatorParams |
定义 vpiSubmitStereoDisparityEstimator 参数的结构体。
定义于文件 StereoDisparity.h 的第 220 行。
数据字段 | ||
---|---|---|
int32_t | windowSize | 表示 OFA+PVA+VIC 后端的中值滤波器大小或算法中使用的 census 变换窗口大小(其他后端)。
|
int32_t | maxDisparity | 匹配搜索的最大视差。
|
int32_t | confidenceThreshold | 置信度阈值,高于此阈值,视差值被认为是有效的。 仅在 CUDA 和 OFA+PVA+VIC 后端中使用。
|
int32_t | quality | 已忽略,请勿使用。
|
VPIStereoDisparityConfidenceType | confidenceType | 用于生成置信度输出的计算类型。
|
int32_t | minDisparity | 最小可能的视差值。 仅在使用 CUDA 后端时适用。通常为零,但可以根据输入图像进行调整。
|
int32_t | p1 | 相邻像素之间视差变化 +/- 1 的惩罚值。 通常是一个较小的值,在(最小,最大)视差范围内,用于惩罚视差的微小变化,即 1。使用较低的 P1 惩罚值可以适应倾斜或弯曲的表面。(请参阅 paper_sgm 了解惩罚如何影响视差值。)仅在使用 CUDA 和 OFA 后端时适用。
|
int32_t | p2 | 相邻像素之间视差变化大于 1 的惩罚值。 通常是一个较大的值,在(最小,最大)视差范围内,用于惩罚视差的较大变化。使用较高的 P2 惩罚值可以避免视差的突变,即不连续性。(请参阅 paper_sgm 了解惩罚如何影响视差值。)仅在使用 CUDA 和 OFA 后端时适用。
|
int32_t | p2Alpha | Alpha 用于启用自适应大惩罚值(自适应 P2)功能。 它用于更好地保留对象边界和细小对象。较高的 alpha 值表示 P2 根据像素强度的自适应性较低。它是公式 P2' = - (1 / alpha) * abs(I_cur - I_prev) + P2 中的 alpha 值;其中 P2' 是给定 P2 惩罚值的自适应版本。abs(I_cur - I_prev) 是沿着路径成本评估方向的当前像素位置和先前像素位置之间强度值的绝对差值。这种自适应背后的直觉是,如果大的视差差异与大的强度变化相吻合,则应减少对它们的惩罚。alpha 值可以是 0、1、2、4 或 8。使用 alpha 值为 0 会禁用自适应 P2 功能。仅在使用 OFA 后端时适用。
|
float | uniqueness | 唯一性比率,范围为 [0, 1],是最佳成本值应超过第二佳成本值的边距。 值为 1 表示标记为无效的像素较少,因为在与当前最佳成本进行比较时,会考虑全部成本。值小于 1 表示仅考虑成本的比率作为最佳成本。值为 0 表示标记为无效的像素较多,因为仅考虑 +/- 1 像素的视差变化。使用它可以提高计算出的视差的确定性。使用 [0, 1] 范围之外的值(例如 -1)可以忽略唯一性计算。仅在使用 CUDA 后端时适用。 |
int8_t | numPasses | 内存高效半全局匹配 (eSGM) 计算中的pass次数。 值为 1 或 2 表示每个方向执行一次正向或一次正向和一次反向pass。值为 3 表示在正向和反向pass之后再执行一次正向pass。将pass次数设置为 3 会使立体视差估计器速度变慢,但会提高结果质量。仅在使用 OFA 后端时适用。
|
#include <vpi/algo/StereoDisparity.h>
定义置信度值的计算方式。
VPI_STEREO_CONFIDENCE_[ABSOLUTE|RELATIVE] 基于从左到右 (D_lr) 和从右到左 (D_rl) 的视差差异,以及可能的最大视差 (MAX_DISP)。有关详细信息,请参见公式。
VPI_STEREO_CONFIDENCE_INFERENCE 使用卷积神经网络 (CNN) 来确定置信度。仅适用于 OFA+VIC+PVA 后端的组合。
置信度值低于给定置信度阈值参数的值会使输出视差无效。
定义于文件 StereoDisparity.h 的第 199 行。
VPIStatus vpiInitStereoDisparityEstimatorCreationParams | ( | VPIStereoDisparityEstimatorCreationParams * | params | ) |
#include <vpi/algo/StereoDisparity.h>
使用默认值初始化 VPIStereoDisparityEstimatorCreationParams。
默认值
[in] | params | 要填充默认值的结构体。 |
VPI_ERROR_INVALID_ARGUMENT | params 为 NULL。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiCreateStereoDisparityEstimator | ( | uint64_t | backends, |
int32_t | imageWidth, | ||
int32_t | imageHeight, | ||
VPIImageFormat | inputFormat, | ||
const VPIStereoDisparityEstimatorCreationParams * | params, | ||
VPIPayload * | payload | ||
) |
#include <vpi/algo/StereoDisparity.h>
为 vpiSubmitStereoDisparityEstimator 创建负载 (payload)。
VPI_ERROR_INVALID_IMAGE_FORMAT | 不支持 inputFormat 。 |
VPI_ERROR_INVALID_ARGUMENT | payload 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | imageWidth 或 imageHeight 超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | backends 指的是无效的后端。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的最大视差超出有效范围。 |
VPI_ERROR_NOT_IMPLEMENTED | 给定的后端不支持立体视差估计器算法。 |
VPI_ERROR_INVALID_OPERATION | 后端硬件不可用。 |
VPI_ERROR_INVALID_CONTEXT | 当前上下文已销毁。 |
VPI_ERROR_OUT_OF_MEMORY | 无法分配所需的资源。 |
VPI_ERROR_INVALID_OPERATION | 后端在当前上下文中未启用。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiInitStereoDisparityEstimatorParams | ( | VPIStereoDisparityEstimatorParams * | params | ) |
#include <vpi/algo/StereoDisparity.h>
使用默认值初始化 VPIStereoDisparityEstimatorParams。
默认值
[in] | params | 要填充默认值的结构体。 |
VPI_ERROR_INVALID_ARGUMENT | params 为 NULL。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitStereoDisparityEstimator | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIPayload | payload, | ||
VPIImage | left, | ||
VPIImage | right, | ||
VPIImage | disparity, | ||
VPIImage | confidenceMap, | ||
const VPIStereoDisparityEstimatorParams * | params | ||
) |
#include <vpi/algo/StereoDisparity.h>
在一对图像上运行立体处理并输出视差图。
[in] | stream | 操作将排队到的流。
|
[in] | backend | 将执行算法的后端。
|
[in] | payload | 要与其他参数一起提交的 Payload。 |
[in] | left | 左立体输入图像。
|
[in] | right | 右立体输入图像。
|
[out] | disparity | 将在其中写入视差值的图像。 返回值采用 Q10.5 格式,即带有 5 个小数位的有符号定点数。 将其除以 32.0f 可将其转换为浮点数。
|
[out] | confidenceMap | 包含置信度分数的图像,指示视差的准确程度。 如果不需要,请传递 NULL。 返回的置信度范围为 0 到 65535。 置信度越高,相应的视差越准确。
|
[in] | params | 指向算法控制参数的指针。 如果为 NULL,它将使用 vpiInitStereoDisparityEstimatorParams 给出的默认值。 |
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | left 、right 或 disparity 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的最大视差超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的窗口大小超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | left 和 right 图像必须具有相同的尺寸。 |
VPI_ERROR_INVALID_ARGUMENT | 输入图像尺寸必须等于 payload 中配置的尺寸。 |
VPI_ERROR_INVALID_ARGUMENT | confidenceMap 和 disparity 必须具有相同的尺寸。 |
VPI_ERROR_INVALID_ARGUMENT | 后端不输出置信度图。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | left 和 right 格式与 payload 图像格式不匹配。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | disparity 格式无效。 |
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端在 stream 、left 、right 、disparity 或 confidenceMap 中未启用。 |
VPI_SUCCESS | 操作成功执行。 |