VPI - Vision Programming Interface

1.2 Release

KLTFeatureTracker.h
Go to the documentation of this file.
1 /*
2  * Copyright 2019-2021 NVIDIA Corporation. All rights reserved.
3  *
4  * NOTICE TO LICENSEE:
5  *
6  * This source code and/or documentation ("Licensed Deliverables") are
7  * subject to NVIDIA intellectual property rights under U.S. and
8  * international Copyright laws.
9  *
10  * These Licensed Deliverables contained herein is PROPRIETARY and
11  * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12  * conditions of a form of NVIDIA software license agreement by and
13  * between NVIDIA and Licensee ("License Agreement") or electronically
14  * accepted by Licensee. Notwithstanding any terms or conditions to
15  * the contrary in the License Agreement, reproduction or disclosure
16  * of the Licensed Deliverables to any third party without the express
17  * written consent of NVIDIA is prohibited.
18  *
19  * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20  * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21  * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22  * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23  * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24  * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25  * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26  * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27  * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28  * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29  * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32  * OF THESE LICENSED DELIVERABLES.
33  *
34  * U.S. Government End Users. These Licensed Deliverables are a
35  * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36  * 1995), consisting of "commercial computer software" and "commercial
37  * computer software documentation" as such terms are used in 48
38  * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39  * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40  * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41  * U.S. Government End Users acquire the Licensed Deliverables with
42  * only those rights set forth herein.
43  *
44  * Any use of the Licensed Deliverables in individual and commercial
45  * software must include, in the user documentation and internal
46  * comments to the code, the above Disclaimer and U.S. Government End
47  * Users Notice.
48  */
49 
56 #ifndef NV_VPI_ALGORITHMS_KLT_BOUNDING_BOX_TRACKER_H
57 #define NV_VPI_ALGORITHMS_KLT_BOUNDING_BOX_TRACKER_H
58 
67 #include "../Export.h"
68 #include "../ImageFormat.h"
69 #include "../Status.h"
70 #include "../Types.h"
71 
72 #include <stdint.h>
73 
74 #ifdef __cplusplus
75 extern "C" {
76 #endif
77 
79 typedef struct
80 {
81  int32_t maxTemplateCount;
82  int32_t maxTemplateWidth;
85 
98 
110 #if NV_VPI_VERSION_API_IS(1, 0)
111 __asm__(".symver vpiCreateKLTFeatureTracker,vpiCreateKLTFeatureTracker@VPI_1.0");
112 #endif
113 VPI_PUBLIC VPIStatus vpiCreateKLTFeatureTracker(uint32_t backends, int32_t imageWidth, int32_t imageHeight,
114  VPIImageFormat imageFormat,
115  const VPIKLTFeatureTrackerCreationParams *params, VPIPayload *payload);
116 
120 typedef enum
121 {
133 
137 typedef struct
138 {
147 
151 
155 
172 
192 VPI_PUBLIC VPIStatus vpiSubmitKLTFeatureTracker(VPIStream stream, uint32_t backend, VPIPayload payload,
193  VPIImage templateImage, VPIArray inputBoxList,
194  VPIArray inputPredictionList, VPIImage referenceImage,
195  VPIArray outputBoxList, VPIArray outputEstimationList,
196  const VPIKLTFeatureTrackerParams *params);
199 #ifdef __cplusplus
200 }
201 #endif
202 
203 #endif /* NV_VPI_ALGORITHMS_KLT_BOUNDING_BOX_TRACKER_H */
struct VPIArrayImpl * VPIArray
A handle to an array.
Definition: Types.h:191
VPIImageFormat
Pre-defined image formats.
Definition: ImageFormat.h:99
struct VPIImageImpl * VPIImage
A handle to an image.
Definition: Types.h:215
float maxScaleChange
Maximum relative scale change.
float maxTranslationChange
Maximum relative translation change.
int32_t maxTemplateHeight
Maximum height of each tracked templates.
int32_t maxTemplateCount
Maximum number of templates to be tracked.
float nccThresholdUpdate
Threshold for requiring template update.
float nccThresholdStop
Threshold to stop estimating.
float nccThresholdKill
Threshold to consider template tracking was lost.
int32_t numberOfIterationsScaling
Number of Inverse compositional iterations of scale estimations.
VPIKLTFeatureTrackerType trackingType
Type of KLT tracking that will be performed.
int32_t maxTemplateWidth
Maximum width of each tracked template.
VPIStatus vpiInitKLTFeatureTrackerCreationParams(VPIKLTFeatureTrackerCreationParams *params)
Initialize VPIKLTFeatureTrackerCreationParams with default values.
VPIStatus vpiSubmitKLTFeatureTracker(VPIStream stream, uint32_t backend, VPIPayload payload, VPIImage templateImage, VPIArray inputBoxList, VPIArray inputPredictionList, VPIImage referenceImage, VPIArray outputBoxList, VPIArray outputEstimationList, const VPIKLTFeatureTrackerParams *params)
Runs KLT Feature Tracker on two frames.
VPIStatus vpiCreateKLTFeatureTracker(uint32_t backends, int32_t imageWidth, int32_t imageHeight, VPIImageFormat imageFormat, const VPIKLTFeatureTrackerCreationParams *params, VPIPayload *payload)
Creates payload for vpiSubmitKLTFeatureTracker.
VPIKLTFeatureTrackerType
KLT Feature Tracker algorithm type.
VPIStatus vpiInitKLTFeatureTrackerParams(VPIKLTFeatureTrackerParams *params)
Initialize VPIKLTFeatureTrackerParams with default values.
@ VPI_KLT_INVERSE_COMPOSITIONAL
Inverse compositional algorithm for KLT tracker.
Creation parameters of KLT Feature Tracker.
Structure that defines the parameters for vpiCreateKLTFeatureTracker.
struct VPIPayloadImpl * VPIPayload
A handle to an algorithm payload.
Definition: Types.h:227
VPIStatus
Status codes.
Definition: Status.h:81
struct VPIStreamImpl * VPIStream
A handle to a stream.
Definition: Types.h:209