VPI - Vision Programming Interface

1.1 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 VPI_PUBLIC VPIStatus vpiCreateKLTFeatureTracker(uint32_t backends, int32_t imageWidth, int32_t imageHeight,
111  VPIImageFormat imageFormat,
112  const VPIKLTFeatureTrackerCreationParams *params, VPIPayload *payload);
113 
117 typedef enum
118 {
130 
134 typedef struct
135 {
144 
148 
152 
172 VPI_PUBLIC VPIStatus vpiSubmitKLTFeatureTracker(VPIStream stream, uint32_t backend, VPIPayload payload,
173  VPIImage templateImage, VPIArray inputBoxList,
174  VPIArray inputPredictionList, VPIImage referenceImage,
175  VPIArray outputBoxList, VPIArray outputEstimationList,
176  const VPIKLTFeatureTrackerParams *params);
179 #ifdef __cplusplus
180 }
181 #endif
182 
183 #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.
@ 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