NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
Feature 2D Tracker Processpipeline

Detailed Description

Defines 2D-based feature detection and tracking.

Typedefs

typedef enum dwFeature2DTrackerStage dwFeature2DTrackerStage
 The stage of feature tracker. More...
 

Enumerations

enum  dwFeature2DTrackerStage {
  DW_FEATURE2D_TRACKER_STAGE_TRACK_GPU_ASYNC = 0,
  DW_FEATURE2D_TRACKER_STAGE_COMPACT_GPU_ASYNC = 1,
  DW_FEATURE2D_TRACKER_STAGE_GPU_ASYNC_DATA_PREPARE = 100,
  DW_FEATURE2D_TRACKER_STAGE_PVA_ASYNC_TRACK_PYRAMID = 101,
  DW_FEATURE2D_TRACKER_STAGE_GPU_ASYNC_DATA_POSTPROCESS = 102
}
 The stage of feature tracker. More...
 

Functions

DW_API_PUBLIC dwStatus dwFeature2DTracker_bindOutput (dwFeatureHistoryArray *featureHistoryArray, dwFeatureArray *predictedFeatures, float32_t *d_normalizedCrossCorrelation, dwFeature2DTrackerHandle_t obj)
 Bind output parameters to tracker object. More...
 
DW_API_PUBLIC dwStatus dwFeature2DTracker_bindInputFeatures (const dwFeatureArray *featuresToTrack, const dwVector2f *d_predictedPositions, dwFeature2DTrackerHandle_t obj)
 Bind input features to be tracked as input parameter to the tracker. More...
 
DW_API_PUBLIC dwStatus dwFeature2DTracker_bindInputPyramid (const dwPyramidImage *previousPyramid, const dwPyramidImage *currentPyramid, dwFeature2DTrackerHandle_t obj)
 Bind input parameters to tracker object. More...
 
DW_API_PUBLIC dwStatus dwFeature2DTracker_process (dwFeature2DTrackerStage stage, dwFeature2DTrackerHandle_t obj)
 Tracks features and store the tracked results to predictedFeatures between the previous and current images. More...
 

Typedef Documentation

◆ dwFeature2DTrackerStage

The stage of feature tracker.

  • Pipeline running order is either 0), or 1). 1) 0->1 which runs feature tracker for image on GPU 1) 100->101->102 which runs feature tracker for image on GPU and PVA, mainly on PVA.

Enumeration Type Documentation

◆ dwFeature2DTrackerStage

The stage of feature tracker.

  • Pipeline running order is either 0), or 1). 1) 0->1 which runs feature tracker for image on GPU 1) 100->101->102 which runs feature tracker for image on GPU and PVA, mainly on PVA.
Enumerator
DW_FEATURE2D_TRACKER_STAGE_TRACK_GPU_ASYNC 
DW_FEATURE2D_TRACKER_STAGE_COMPACT_GPU_ASYNC 
DW_FEATURE2D_TRACKER_STAGE_GPU_ASYNC_DATA_PREPARE 

Process the preprocessing part of the feature tracking pipeline on GPU.

DW_FEATURE2D_TRACKER_STAGE_PVA_ASYNC_TRACK_PYRAMID 

Process the tracking part of the feature tracking pipeline on PVA.

DW_FEATURE2D_TRACKER_STAGE_GPU_ASYNC_DATA_POSTPROCESS 

Process the postprocess part of the feature tracking pipeline on GPU.

Definition at line 46 of file FeatureTracker_processpipeline.h.

Function Documentation

◆ dwFeature2DTracker_bindInputFeatures()

DW_API_PUBLIC dwStatus dwFeature2DTracker_bindInputFeatures ( const dwFeatureArray featuresToTrack,
const dwVector2f d_predictedPositions,
dwFeature2DTrackerHandle_t  obj 
)

Bind input features to be tracked as input parameter to the tracker.

Parameters
[in]featuresToTracklist of features to be tracked, usually the output of feature detector.
[in]d_predictedPositionsAn optional GPU pointer to a list of expected positions of the features to be tracked. The indexes of this list must match the indexes of the internal feature list. If NULL provided, tracker will use the locations found in featuresToTrack.
[in]objSpecifies the feature tracker handle
Returns
DW_INVALID_ARGUMENT if featuresToTrack or obj parameter is NULL.
DW_INVALID_HANDLE if given handle is invalid
DW_SUCCESS otherwise.
Note
this API need to be called when there're new features detected (e.g. from feature detector) before dwFeature2DTracker_process(DW_FEATURE2D_TRACKER_STAGE_TRACK_GPU_ASYNC). If it's not called, i.e. no featuresToTrack have been set as input, tracker will continue tracking from the previously tracked features.
if feature tracker algorithm is DW_FEATURE2D_TRACKER_ALGORITHM_EX, d_predictedPositions are ignored.
API Group
  • Init: Yes
  • Runtime: Yes
  • De-Init: Yes

◆ dwFeature2DTracker_bindInputPyramid()

DW_API_PUBLIC dwStatus dwFeature2DTracker_bindInputPyramid ( const dwPyramidImage previousPyramid,
const dwPyramidImage currentPyramid,
dwFeature2DTrackerHandle_t  obj 
)

Bind input parameters to tracker object.

Parameters
[in]previousPyramidpyramid constructed from the last image.
[in]currentPyramidpyramid constructed from the current image.
[in]objSpecifies the feature tracker handle.
Returns
DW_INVALID_ARGUMENT if any input parameter is NULL, or previous and current pyramids have a different number of levels.
DW_INVALID_HANDLE if given handle is invalid
DW_SUCCESS otherwise.
API Group
  • Init: Yes
  • Runtime: Yes
  • De-Init: Yes

◆ dwFeature2DTracker_bindOutput()

DW_API_PUBLIC dwStatus dwFeature2DTracker_bindOutput ( dwFeatureHistoryArray featureHistoryArray,
dwFeatureArray predictedFeatures,
float32_t d_normalizedCrossCorrelation,
dwFeature2DTrackerHandle_t  obj 
)

Bind output parameters to tracker object.

Parameters
[out]featureHistoryArraythe dwFeatureHistoryArray that is bound to tracker, must be on GPU memory.
[out]predictedFeatureslist of predicted features, it's also the top slice of dwFeatureHistoryArray
[out]d_normalizedCrossCorrelationDevice pointer to nccScore of tracked features, will be ignored if it's NULL.
[in]objSpecifies the feature tracker handle
Returns
DW_INVALID_ARGUMENT if any parameter except d_normalizedCrossCorrelation is NULL.
DW_INVALID_ARGUMENT if featureHistoryArray is not created with tracker compatible parameters * DW_INVALID_HANDLE if given handle is invalid
DW_SUCCESS otherwise.
Note
featureHistoryArray should be allocated by dwFeatureHistoryArray_createNew()
API Group
  • Init: Yes
  • Runtime: Yes
  • De-Init: Yes

◆ dwFeature2DTracker_process()

DW_API_PUBLIC dwStatus dwFeature2DTracker_process ( dwFeature2DTrackerStage  stage,
dwFeature2DTrackerHandle_t  obj 
)

Tracks features and store the tracked results to predictedFeatures between the previous and current images.

Features to track are defined by dwFeatureHistoryArray bound to the tracker during initialization

Parameters
[in]stageSpeicifies the tracking stage
[in]objSpecifies the feature tracker handle.
Returns
DW_INVALID_ARGUMENT if obj is NULL or stage is invalid. DW_CALL_NOT_ALLOWED if there's no input/output bound to tracker.
DW_CUDA_ERROR In case of an underlying cuda failure.
DW_INVALID_HANDLE if given handle is invalid
DW_SUCCESS otherwise.
Note
dwFeature2DTracker_bindInput and dwFeature2DTracker_bindOutput must be called at least once before dwFeature2DTracker_process.
API Group
  • Init: Yes
  • Runtime: Yes
  • De-Init: Yes