VPI - Vision Programming Interface

3.0 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 
68 #include "../Export.h"
69 #include "../ImageFormat.h"
70 #include "../Status.h"
71 #include "../Types.h"
72 
73 #include <stdint.h>
74 
75 #ifdef __cplusplus
76 extern "C" {
77 #endif
78 
80 typedef struct
81 {
85 
89 
93 
95 
109 
149 VPI_PUBLIC VPIStatus vpiCreateKLTFeatureTracker(uint64_t backends, int32_t imageWidth, int32_t imageHeight,
150  VPIImageFormat imageFormat,
151  const VPIKLTFeatureTrackerCreationParams *params, VPIPayload *payload);
152 
156 typedef enum
157 {
169 
173 typedef struct
174 {
178 
183 
187 
192 
198 
203 
207 
224 
289 VPI_PUBLIC VPIStatus vpiSubmitKLTFeatureTracker(VPIStream stream, uint64_t backend, VPIPayload payload,
290  VPIImage templateImage, VPIArray inputBoxList,
291  VPIArray inputPredictionList, VPIImage referenceImage,
292  VPIArray outputBoxList, VPIArray outputEstimationList,
293  const VPIKLTFeatureTrackerParams *params);
296 #ifdef __cplusplus
297 }
298 #endif
299 
300 #endif /* NV_VPI_ALGORITHMS_KLT_BOUNDING_BOX_TRACKER_H */
struct VPIArrayImpl * VPIArray
A handle to an array.
Definition: Types.h:232
uint64_t VPIImageFormat
Pre-defined image formats.
Definition: ImageFormat.h:94
struct VPIImageImpl * VPIImage
A handle to an image.
Definition: Types.h:256
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 early stop iteration.
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 vpiCreateKLTFeatureTracker(uint64_t backends, int32_t imageWidth, int32_t imageHeight, VPIImageFormat imageFormat, const VPIKLTFeatureTrackerCreationParams *params, VPIPayload *payload)
Creates payload for vpiSubmitKLTFeatureTracker.
VPIStatus vpiSubmitKLTFeatureTracker(VPIStream stream, uint64_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 vpiInitKLTFeatureTrackerCreationParams(VPIKLTFeatureTrackerCreationParams *params)
Initialize VPIKLTFeatureTrackerCreationParams with default values.
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:268
VPIStatus
Status codes.
Definition: Status.h:81
struct VPIStreamImpl * VPIStream
A handle to a stream.
Definition: Types.h:250