VPI - 视觉编程接口

3.2 版本

TransformEstimator.h
跳转至此文件的文档。
1 /*
2  * 版权所有 2023-2024 NVIDIA Corporation。保留所有权利。
3  *
4  * 许可证持有者须知:
5  *
6  * 此源代码和/或文档(“许可交付物”)受美国和国际版权法项下的 NVIDIA 知识产权保护。
7  * 受美国和
8  * 国际版权法约束。
9  *
10  * 此处包含的这些许可交付物是 NVIDIA 的专有和机密信息,并根据 NVIDIA 与被许可方之间的 NVIDIA 软件许可协议(“许可协议”)条款和条件或被许可方以电子方式接受的条款和条件提供。
11  * 机密信息,并根据 NVIDIA 软件许可协议的条款和
12  * 条件提供,协议形式为 NVIDIA 与被许可方之间达成的协议(“许可协议”)或
13  * 由被许可方以电子方式接受。尽管许可协议中有任何相反的条款或条件,
14  * 由被许可方接受。尽管许可协议中有任何相反的条款或条件,
15  * 许可协议中与此相反的任何条款或条件,未经 NVIDIA 明确书面同意,
16  * 许可协议中与此相反的任何条款或条件,未经 NVIDIA 明确
17  * 书面同意,禁止向任何第三方复制或披露许可交付物。
18  *
19  * 尽管许可协议中有任何相反的条款或条件,
20  * 许可协议,NVIDIA 对这些许可交付物针对任何特定用途的适用性不做任何陈述。
21  * 许可协议,NVIDIA 对这些许可交付物针对任何用途的适用性不做任何陈述。
22  * 它们按“原样”提供,不附带任何明示或暗示的担保。
23  * NVIDIA 声明不对这些许可交付物承担任何担保责任,包括所有关于适销性、
24  * 交付物的所有担保,包括所有关于适销性、
25  * 非侵权性以及针对特定用途的适用性的默示担保。
26  * 尽管许可协议中有任何相反的条款或条件,
27  * 许可协议,在任何情况下,NVIDIA 均不对任何
28  * 特殊、间接、附带或后果性损害,或任何因使用、数据或利润损失而导致的任何损害承担责任,
29  * 特殊、间接、附带或后果性损害,或任何
30  * 无论是合同诉讼、过失或其他侵权行为,因使用或执行这些许可交付物而引起或与之相关的诉讼。
31  * 行为,因使用或与使用或性能相关
32  * 这些许可交付物。
33  *
34  * 美国政府最终用户。这些许可交付物是
35  * “商业项目”,该术语在 48 C.F.R. 2.101 (OCT
36  * 1995) 中定义,包括“商业计算机软件”和“商业
37  * 计算机软件文档”,这些术语在 48
38  * C.F.R. 12.212 (SEPT 1995) 中使用,并且仅作为商业最终项目提供给美国政府。
39  * 仅作为商业最终项目。根据 48 C.F.R. 12.212 和
40  * 48 C.F.R. 227.7202-1 至 227.7202-4 (JUNE 1995),所有美国政府最终用户均获得许可交付物,
41  * 48 C.F.R. 227.7202-1 至 227.7202-4 (JUNE 1995),所有
42  * 美国政府最终用户按照此处规定的权利获取许可交付物。
43  * 仅根据此处规定的权利获得许可交付物。
44  *
45  * 在个人和商业软件中使用许可交付物时,必须在用户文档和代码的内部注释中包含上述免责声明和美国政府最终用户须知。
46  * 软件必须包括,在用户文档和内部
47  * 注释中,上述免责声明和美国政府最终
48  */
49 
56 #ifndef NV_VPI_ALGORITHMS_TRANSFORM_ESTIMATOR_H
57 #define NV_VPI_ALGORITHMS_TRANSFORM_ESTIMATOR_H
58 
59 #include "../AlgoFlags.h"
60 #include "../Export.h"
61 #include "../Status.h"
62 #include "../Types.h"
63 
64 #include <stdint.h>
65 
66 #ifdef __cplusplus
67 extern "C" {
68 #endif
69 
101 VPI_PUBLIC VPIStatus vpiCreateTransformEstimator(uint64_t backends, int32_t maxKeypoints, VPIPayload *payload);
102 
104 typedef struct
105 {
111  float minRotation, maxRotation;
112  /* @} */
113 
120  float minXScale, maxXScale;
129  float minYScale, maxYScale;
138  float minXTranslation, maxXTranslation;
147  float minYTranslation, maxYTranslation;
156  float minShear, maxShear;
162  int8_t isAffine;
163 
169 
171 typedef enum
172 {
176 
178 typedef union
179 {
180  VPIConstrainedHomography2DConfig constrainedHomography2D;
182 
184 typedef enum
185 {
191 
193 typedef struct
194 {
197 
200 
208  int32_t ransacSeed;
212 
218 
260 
338 VPI_PUBLIC VPIStatus vpiSubmitTransformEstimator(VPIStream stream, uint64_t backend, VPIPayload payload,
339  VPIArray srcKeypoints, VPIArray tgtKeypoints, VPIArray matches,
340  VPIArray outTransform, VPIArray outInliers,
341  const VPITransformEstimatorParams *params);
342 
345 #ifdef __cplusplus
346 }
347 #endif
348 
349 #endif /* NV_VPI_ALGORITHMS_TRANSFORM_ESTIMATOR_H */
struct VPIArrayImpl * VPIArray
数组的句柄。
定义: Types.h:232
struct VPIPayloadImpl * VPIPayload
算法负载的句柄。
定义: Types.h:268
VPIStatus
状态码。
定义: Status.h:81
struct VPIStreamImpl * VPIStream
流的句柄。
定义: Types.h:250
float maxXTranslation
有效的水平平移范围。
int32_t solverMaxIterations
非线性求解器应采取的最大迭代次数。
VPITransformConfig xfcfg
变换配置,例如可信边界等。
float ransacReprojErrorTolerance
点被视为内点的最大允许重投影误差。
int32_t ransacMaxIterations
RANSAC 的最大迭代次数。
float maxShear
有效的剪切范围。
VPITransformType xftype
要估计的变换类型。
float maxXScale
有效的旋转范围,以弧度为单位。
float maxRotation
有效的旋转范围,以弧度为单位。
float maxYScale
有效的垂直缩放范围。
float maxYTranslation
有效的垂直平移范围。
float ransacConfidenceLevel
点被视为内点的最大允许重投影误差。
int32_t maxRefinementIterations
模型细化步骤的最大迭代次数。
int8_t isAffine
是否限制为仿射变换。
int32_t ransacSeed
要使用的随机数种子。
VPITransfomEstimationMethod method
用于变换估计的方法。
int8_t isIsotropicScale
缩放是否在所有方向上均匀(各向同性)。
VPITransfomEstimationMethod
变换估计方法。
VPITransformType
支持的变换类型。
VPIStatus vpiCreateTransformEstimator(uint64_t backends, int32_t maxKeypoints, VPIPayload *payload)
为 vpiSubmitTransformEstimator 创建负载。
VPIStatus vpiSubmitTransformEstimator(VPIStream stream, uint64_t backend, VPIPayload payload, VPIArray srcKeypoints, VPIArray tgtKeypoints, VPIArray matches, VPIArray outTransform, VPIArray outInliers, const VPITransformEstimatorParams *params)
向流提交变换估计器操作。
VPIStatus vpiInitTransformEstimatorParams(VPITransformType type, VPITransformEstimatorParams *params)
使用给定变换类型的默认值初始化 VPITransformEstimatorParams。
@ VPI_XFORM_ESTIM_METHOD_REGULAR
使用最小二乘法最小化方法。
@ VPI_XFORM_ESTIM_METHOD_RANSAC
使用 RANSAC 和最小二乘法的鲁棒估计。
@ VPI_XFORM_CONSTRAINED_HOMOGRAPHY_2D
表示约束的 2D 单应性变换。
保存约束的 2d 单应性变换的配置。
用于调整变换估计器算法的参数。