VPI - Vision Programming Interface

0.4.4 Release

KLT Feature Tracker

Runs KLT Feature tracking on a sequence of frames. More...

Data Structures

struct  VPIKLTFeatureTrackerParams
 Structure that defines the parameters for vpiCreateKLTFeatureTracker. More...
 
struct  VPIKLTTrackedBoundingBox
 Stores a bounding box that is being tracked by KLT Tracker. More...
 

Enumerations

enum  VPIKLTFeatureTrackerType
 KLT Feature Tracker algorithm type. More...
 

Functions

VPIStatus vpiCreateKLTFeatureTracker (VPIBackend backend, uint32_t imageWidth, uint32_t imageHeight, VPIImageFormat imageFormat, VPIPayload *payload)
 Creates payload for vpiSubmitKLTFeatureTracker. More...
 
VPIStatus vpiSubmitKLTFeatureTracker (VPIStream stream, VPIPayload payload, VPIImage templateImage, VPIArray inputBoxList, VPIArray inputPredictionList, VPIImage referenceImage, VPIArray outputBoxList, VPIArray outputEstimationList, const VPIKLTFeatureTrackerParams *params)
 Runs KLT Feature Tracker on two frames. More...
 

Detailed Description

Runs KLT Feature tracking on a sequence of frames.


Data Structure Documentation

◆ VPIKLTFeatureTrackerParams

struct VPIKLTFeatureTrackerParams

Structure that defines the parameters for vpiCreateKLTFeatureTracker.

Parameters
[in]thresholdUpdatethreshold to update template
[in]thresholdKillthreshold to kill tracking
[in]thresholdStopthreshold to stop iteration
[in]maxScaleChangemaximum scale change for valid tracking
[in]maxTranslationChangemaximum translation change for valid tracking
[in]imageTypeinput image type

Definition at line 105 of file KLTFeatureTracker.h.

+ Collaboration diagram for VPIKLTFeatureTrackerParams:
Data Fields
float maxScaleChange Maximum relative scale change.

Scale changes larger than this will make KLT consider that tracking was lost.

float maxTranslationChange Maximum relative translation change.

Translation changes larger than this will make KLT consider that tracking was lost.

float nccThresholdKill Threshold to consider template tracking was lost.

Must be a value between 0 and 1.

float nccThresholdStop Threshold to stop estimating.
float nccThresholdUpdate Threshold for requiring template update.

Must be a value between 0 and 1.

uint32_t numberOfIterationsScaling Number of Inverse compositional iterations of scale estimations.
VPIKLTFeatureTrackerType trackingType Type of KLT tracking that will be performed.

◆ VPIKLTTrackedBoundingBox

struct VPIKLTTrackedBoundingBox

Stores a bounding box that is being tracked by KLT Tracker.

Definition at line 414 of file Types.h.

+ Collaboration diagram for VPIKLTTrackedBoundingBox:
Data Fields
VPIBoundingBox bbox Bounding box being tracked.
uint8_t reserved1 Reserved for future use.
uint8_t reserved2 Reserved for future use.
uint8_t templateStatus Status of the template related to this bounding box.

Accepted values:

  • 1 template needs updating.
  • 0 existing template still can be used for tracking, it doesn't need to be updated.
uint8_t trackingStatus Tracking status of this bounding box.

Accepted values:

  • 1 tracking information is invalid and shouldn't be relied upon.
  • 0 tracking information is valid.

Enumeration Type Documentation

◆ VPIKLTFeatureTrackerType

#include <vpi/algo/KLTFeatureTracker.h>

KLT Feature Tracker algorithm type.

Enumerator
VPI_KLT_INVERSE_COMPOSITIONAL 

Inverse compositional algorithm for KLT tracker.

The inverse compositional algorithm is a reformulation of the classic Lucas-Kanade algorithm to make the steepest-descent images and Hessian constant.

Ref:Simon Baker, Iain Matthew, "Lucas-Kanade 20 Years On: A Unified Framework".
International Journal of Computer Vision, February 2004, Volume 56, issue 3, pp. 228-231.

Definition at line 81 of file KLTFeatureTracker.h.

Function Documentation

◆ vpiCreateKLTFeatureTracker()

VPIStatus vpiCreateKLTFeatureTracker ( VPIBackend  backend,
uint32_t  imageWidth,
uint32_t  imageHeight,
VPIImageFormat  imageFormat,
VPIPayload payload 
)

#include <vpi/algo/KLTFeatureTracker.h>

Creates payload for vpiSubmitKLTFeatureTracker.

Parameters
[in]backendVPI backend that will execute the algorithm.
[in]imageWidth,imageHeightInput image dimensions.
[in]imageFormatInput image format.
[out]payloadPointer to memory where the created payload handle will be written to.
Returns
an error code on failure else VPI_SUCCESS.

◆ vpiSubmitKLTFeatureTracker()

VPIStatus vpiSubmitKLTFeatureTracker ( VPIStream  stream,
VPIPayload  payload,
VPIImage  templateImage,
VPIArray  inputBoxList,
VPIArray  inputPredictionList,
VPIImage  referenceImage,
VPIArray  outputBoxList,
VPIArray  outputEstimationList,
const VPIKLTFeatureTrackerParams params 
)

#include <vpi/algo/KLTFeatureTracker.h>

Runs KLT Feature Tracker on two frames.

Outputs tracked bounding boxes and estimated transform array.

Parameters
[in]streamThe stream where the operation will be queued in.
[in]payloadpayload created with vpiCreateKLTFeatureTracker
[in]referenceImagereference image
[in]inputBoxListInput bounding box array, must have type VPI_ARRAY_TYPE_KLT_TRACKED_BOUNDING_BOX
[in]inputPredictionListInput predicted transform array, must have type VPI_ARRAY_TYPE_HOMOGRAPHY_TRANSFORM_2D
[in]templateImagetemplate image
[out]outputBoxListoutput Bounding box array, must have type VPI_ARRAY_TYPE_KLT_TRACKED_BOUNDING_BOX
[out]outputEstimationListSstimated transform array, must have type VPI_ARRAY_TYPE_HOMOGRAPHY_TRANSFORM_2D
[in]paramsControl parameters of the KLT feature tracker algorithm.
Returns
an error code on failure else VPI_SUCCESS