45#ifndef DW_IMAGEPROCESSING_TRACKING_TEMPLATETRACKER_TEMPLATETRACKER_H_
46#define DW_IMAGEPROCESSING_TRACKING_TEMPLATETRACKER_TEMPLATETRACKER_H_
54#include <dw/imageprocessing/pyramid/Pyramid.h>
111#define DW_MAX_TEMPLATE2D_SIZE 128
236 const uint32_t maxTemplateCount,
282 cudaStream_t stream);
397 const dwPyramidImage* currentPyramid,
398 const dwPyramidImage* previousPyramid,
NVIDIA DriveWorks API: Core Methods
NVIDIA DriveWorks API: Feature Array and Feature History Array
Defines a rectangle with floating point numbers.
NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
struct dwContextObject * dwContextHandle_t
Context handle.
dwStatus
Status definition.
dwProcessorType
Processor type definitions.
dwMemoryType
Memory type definitions.
dwFeature2DStatus
Defines the possible status of a feature.
float32_t thresholdUpdate
Updating threshold in [0, 1].
uint32_t maxTemplateCount
Upper bound on number of templates handled.
uint32_t imageHeight
Height of the images that the tracker runs on.
float32_t maxScaleChange
If scalingFactor between frame N to N-1 is outside range [1/maxScaleChange, maxScaleChange] tracking ...
dwMemoryType memoryType
Whether the template array is located on CPU or GPU.
uint8_t * data
Pointer to the raw data address.
uint32_t * ids
Id of each template.
dwRectf * bboxes
bounding box of each template.
uint32_t maxTemplates
Max number of templates in template array.
float32_t thresholdKill
Killing threshold in [0, 1].
float32_t * scaleFactors
scaleFactor from frame N to N-1 of each template.
size_t bytes
Bytes of raw data.
float32_t thresholdStop
for DW_TEMPLATE_TRACKER_ALGO_IC only Stop threshold in [-1, 1].
uint32_t numIterationsCoarse
for DW_TEMPLATE_TRACKER_ALGO_IA only Iteration number to apply the coarse KLT for robustness.
uint32_t * ages
Age of each template.
uint32_t imageWidth
Width of the images that the tracker runs on.
float32_t validWidth
Maximum valid template width, any templates with bbox.width > validWidth will be killed after trackin...
uint32_t numIterationsFine
Iteration number to apply the KLT tracker.
dwProcessorType processorType
Processor type which determines on which processor the algorithm should be executed on.
uint32_t * templateCount
Total number of templates.
dwFeature2DStatus * statuses
Status of each template.
dwTemplateTrackerAlgorithm algorithm
Tracking Algorithm defined by dwTemplateTrackerAlgorithm.
float32_t validHeight
Maximum valid template height, any templates with bbox.height > validHeight will be killed after trac...
uint32_t * newToOldMap
New to old index map, 1D array of size maxTemplates.
uint32_t maxPyramidLevel
Max pyramid level to track.
DW_API_PUBLIC dwStatus dwTemplateTracker_reset(dwTemplateTrackerHandle_t obj)
Resets the TemplateTracker.
DW_API_PUBLIC dwStatus dwTemplateArray_create(dwTemplateArray *templateArray, const uint32_t maxTemplateCount, const dwMemoryType memoryType, dwContextHandle_t context)
Creates and initializes a template array.
DW_API_PUBLIC dwStatus dwTemplateTracker_setCUDAStream(cudaStream_t cudaStream, dwTemplateTrackerHandle_t obj)
Sets the CUDA stream used.
DW_API_PUBLIC dwStatus dwTemplateArray_reset(dwTemplateArray *templateArray, cudaStream_t stream)
Resets the template array.
DW_API_PUBLIC dwStatus dwTemplateTracker_trackPyramid(dwTemplateArray *templateArray, const dwPyramidImage *currentPyramid, const dwPyramidImage *previousPyramid, dwTemplateTrackerHandle_t obj)
Track the templates in currentPyramid .
DW_API_PUBLIC dwStatus dwTemplateTracker_initDefaultParams(dwTemplateTrackerParameters *params)
Initializes TemplateTracker parameters with default values.
DW_API_PUBLIC dwStatus dwTemplateArray_destroy(dwTemplateArray templateArray)
Destroys the template array and frees any memory created by dwTemplateArray_create().
DW_API_PUBLIC dwStatus dwTemplateTracker_initialize(dwTemplateTrackerHandle_t *obj, const dwTemplateTrackerParameters *params, cudaStream_t stream, dwContextHandle_t context)
Initialize the TemplateTracker module.
DW_API_PUBLIC dwStatus dwTemplateArray_copyAsync(dwTemplateArray *dstTemplateArray, const dwTemplateArray *srcTemplateArray, cudaStream_t stream)
Deep copy all contents from srcTemplateArray to dstTemplateArray
DW_API_PUBLIC dwStatus dwTemplateTracker_release(dwTemplateTrackerHandle_t obj)
Releases the TemplateTracker module.
dwTemplateTrackerAlgorithm
Different versions of the template tracker Both can be found in paper: "Lucas-Kanade 20 Years On: A U...
DW_API_PUBLIC dwStatus dwTemplateTracker_trackImage(dwTemplateArray *templateArray, const dwImageCUDA *currentImage, const dwImageCUDA *previousImage, dwTemplateTrackerHandle_t obj)
Track the templates in currentImage .
struct dwTemplateTrackerObject * dwTemplateTrackerHandle_t
Handle representing a TemplateTracker tracker.
struct dwTemplateTrackerObject const * dwConstTemplateTrackerHandle_t
Handle representing a const TemplateTracker tracker.
DW_API_PUBLIC dwStatus dwTemplateTracker_getCUDAStream(cudaStream_t *cudaStream, dwTemplateTrackerHandle_t obj)
Gets the CUDA stream used.
@ DW_TEMPLATE_TRACKER_ALGORITHM_IC
inverse compositional KLT.
@ DW_TEMPLATE_TRACKER_ALGORITHM_IA
inverse additive KLT
Configuration parameters for a dwTemplateTrackerIA.
NVIDIA DriveWorks API: Image Conversion and Streaming Functionality