NVIDIA DeepStream SDK API Reference

9.2 Release
DataAssociator Class Reference

Detailed Description

Inheritance diagram for DataAssociator:
Collaboration diagram for DataAssociator:

Data Structures

struct  DA_Stats
 Store thread-safe per-session counters for the association-scoring funnel. More...
 

Public Member Functions

 DataAssociator (const std::string &configFilePath)
 Construct a data associator from a configuration file. More...
 
 ~DataAssociator ()
 Report accumulated association statistics during destruction. More...
 
void initialize (const SourceFrameInfo &frameInfo, const uint32_t maxTargetsPerStream, const bool useVisualTracker, const bool useReid) override
 Initialize the data associator for a source stream. More...
 
assocDataOut_t associatePerStream (const assocDataIn_t in) override
 Associate detections with existing targets for one stream. More...
 
bool isInitialized () override
 Return whether the data associator has been initialized. More...
 
const DATA_ASSOCIATOR_TYPES getDataAssociatorType () override
 Return the configured data-associator type. More...
 
void updateParams (const YAML::Node &fn)
 Update dynamic parameters during runtime. More...
 
 DataAssociator (const std::string &configFilePath)
 Construct a data associator from a configuration file. More...
 
 ~DataAssociator ()
 Report accumulated association statistics during destruction. More...
 
void initialize (const SourceFrameInfo &frameInfo, const uint32_t maxTargetsPerStream, const bool useVisualTracker, const bool useReid) override
 Initialize the data associator for a source stream. More...
 
assocDataOut_t associatePerStream (const assocDataIn_t in) override
 Associate detections with existing targets for one stream. More...
 
bool isInitialized () override
 Return whether the data associator has been initialized. More...
 
const DATA_ASSOCIATOR_TYPES getDataAssociatorType () override
 Return the configured data-associator type. More...
 
void updateParams (const YAML::Node &fn)
 Update dynamic parameters during runtime. More...
 

Protected Member Functions

void initializeSimilarityParams (const bool useVisualTracker, const bool useReid)
 Rebuild per-stage similarity parameters for the enabled features. More...
 
assocDataOut_t associatePerStream_greedy (const assocDataIn_t &in, const uint stage=0)
 Find the best matches between detections and existing targets. More...
 
assocDataOut_t associatePerStream_cascadedLegacy (const assocDataIn_t &in)
 Run the legacy two-stage association algorithm. More...
 
assocDataOut_t associatePerStream_cascaded (const assocDataIn_t &in)
 Run the cascaded association algorithm. More...
 
virtual float assocDistanceFunc (const std::shared_ptr< NvTrackedObject > trajObj, const DetectedObjInfo &detObj, const std::vector< SimilarityParam > &similarityParamList, const float sumCorrRespAtDetectedPt) const
 Function to compute the association score between a detector bbox and a tracked bbox. More...
 
std::vector< std::vector< float > > computeDistanceMatrix (const assocDataIn_t &in, const uint stage=0) const
 Compute the association score matrix. More...
 
std::multimap< float, std::pair< uint, int > > sortMatching (const assocDataIn_t &in, const std::vector< std::vector< float >> &distMat) const
 Given the distance matrix, get the sorted list of potential match pairs based on the association cost. More...
 
void dumpDataAssociationResults (const assocDataOut_t &out) const
 Dump-print the data association results. More...
 
void dumpAssocDistanceMatrix (const assocDataIn_t &in, std::vector< std::vector< float >> distMat) const
 Dump-print the scores in the distance matrix for association. More...
 
void initializeSimilarityParams (const bool useVisualTracker, const bool useReid)
 Rebuild per-stage similarity parameters for the enabled features. More...
 
assocDataOut_t associatePerStream_greedy (const assocDataIn_t &in, const uint stage=0)
 Find the best matches between detections and existing targets. More...
 
assocDataOut_t associatePerStream_cascadedLegacy (const assocDataIn_t &in)
 Run the legacy two-stage association algorithm. More...
 
assocDataOut_t associatePerStream_cascaded (const assocDataIn_t &in)
 Run the cascaded association algorithm. More...
 
virtual float assocDistanceFunc (const std::shared_ptr< NvTrackedObject > trajObj, const DetectedObjInfo &detObj, const std::vector< SimilarityParam > &similarityParamList, const float sumCorrRespAtDetectedPt) const
 Function to compute the association score between a detector bbox and a tracked bbox. More...
 
std::vector< std::vector< float > > computeDistanceMatrix (const assocDataIn_t &in, const uint stage=0) const
 Compute the association score matrix. More...
 
std::multimap< float, std::pair< uint, int > > sortMatching (const assocDataIn_t &in, const std::vector< std::vector< float >> &distMat) const
 Given the distance matrix, get the sorted list of potential match pairs based on the association cost. More...
 
void dumpDataAssociationResults (const assocDataOut_t &out) const
 Dump-print the data association results. More...
 
void dumpAssocDistanceMatrix (const assocDataIn_t &in, std::vector< std::vector< float >> distMat) const
 Dump-print the scores in the distance matrix for association. More...
 

Protected Attributes

bool m_isInit
 Indicates whether the data associator has been initialized. More...
 
NvTrackerParamsAssoc m_params
 Stores parsed configuration parameters. More...
 
std::vector< std::vector< SimilarityParam > > m_similarityParamLists
 Per-stage similarity parameters and weights. More...
 
std::mutex m_similarityParamsMutex
 Guards similarity parameters during reads and updates. More...
 
int m_maxTargetsPerStream
 Specifies the maximum number of targets to track per stream. More...
 
bool m_useVisualTracker {false}
 Records whether visual-tracker similarity is enabled for parameter rebuilds. More...
 
bool m_useReid {false}
 Records whether ReID similarity is enabled for parameter rebuilds. More...
 
DA_Stats m_da_stats
 Stores association-scoring counters. More...
 

Constructor & Destructor Documentation

◆ DataAssociator() [1/2]

DataAssociator::DataAssociator ( const std::string &  configFilePath)

Construct a data associator from a configuration file.

Parameters
[in]configFilePathThe path to a config file.

◆ ~DataAssociator() [1/2]

DataAssociator::~DataAssociator ( )

Report accumulated association statistics during destruction.

◆ DataAssociator() [2/2]

DataAssociator::DataAssociator ( const std::string &  configFilePath)

Construct a data associator from a configuration file.

Parameters
[in]configFilePathThe path to a config file.

◆ ~DataAssociator() [2/2]

DataAssociator::~DataAssociator ( )

Report accumulated association statistics during destruction.

Member Function Documentation

◆ assocDistanceFunc() [1/2]

virtual float DataAssociator::assocDistanceFunc ( const std::shared_ptr< NvTrackedObject >  trajObj,
const DetectedObjInfo &  detObj,
const std::vector< SimilarityParam > &  similarityParamList,
const float  sumCorrRespAtDetectedPt 
) const
protectedvirtual

Function to compute the association score between a detector bbox and a tracked bbox.

Parameters
[in]trajObjTracked object.
[in]detObjDetected object.
[in]similarityParamListSimilarity parameters and their weights.
[in]sumCorrRespAtDetectedPtSum of tracker correlation responses at the detected point.
Returns
The similarity score.

◆ assocDistanceFunc() [2/2]

virtual float DataAssociator::assocDistanceFunc ( const std::shared_ptr< NvTrackedObject >  trajObj,
const DetectedObjInfo &  detObj,
const std::vector< SimilarityParam > &  similarityParamList,
const float  sumCorrRespAtDetectedPt 
) const
protectedvirtual

Function to compute the association score between a detector bbox and a tracked bbox.

Parameters
[in]trajObjTracked object.
[in]detObjDetected object.
[in]similarityParamListSimilarity parameters and their weights.
[in]sumCorrRespAtDetectedPtSum of tracker correlation responses at the detected point.
Returns
The similarity score.

◆ associatePerStream() [1/2]

assocDataOut_t DataAssociator::associatePerStream ( const assocDataIn_t  in)
overridevirtual

Associate detections with existing targets for one stream.

Parameters
[in]inNewly detected object bounding boxes and existing targets.
Returns
(1) matched pairs, (2) unmatched detector bboxes, and (3) unmatched targets.

Implements IDataAssociator.

◆ associatePerStream() [2/2]

assocDataOut_t DataAssociator::associatePerStream ( const assocDataIn_t  in)
overridevirtual

Associate detections with existing targets for one stream.

Parameters
[in]inNewly detected object bounding boxes and existing targets.
Returns
(1) matched pairs, (2) unmatched detector bboxes, and (3) unmatched targets.

Implements IDataAssociator.

◆ associatePerStream_cascaded() [1/2]

assocDataOut_t DataAssociator::associatePerStream_cascaded ( const assocDataIn_t &  in)
protected

Run the cascaded association algorithm.

Parameters
[in]inAssociation inputs.
Returns
The association results.

◆ associatePerStream_cascaded() [2/2]

assocDataOut_t DataAssociator::associatePerStream_cascaded ( const assocDataIn_t &  in)
protected

Run the cascaded association algorithm.

Parameters
[in]inAssociation inputs.
Returns
The association results.

◆ associatePerStream_cascadedLegacy() [1/2]

assocDataOut_t DataAssociator::associatePerStream_cascadedLegacy ( const assocDataIn_t &  in)
protected

Run the legacy two-stage association algorithm.

Parameters
[in]inAssociation inputs.
Returns
The association results.

◆ associatePerStream_cascadedLegacy() [2/2]

assocDataOut_t DataAssociator::associatePerStream_cascadedLegacy ( const assocDataIn_t &  in)
protected

Run the legacy two-stage association algorithm.

Parameters
[in]inAssociation inputs.
Returns
The association results.

◆ associatePerStream_greedy() [1/2]

assocDataOut_t DataAssociator::associatePerStream_greedy ( const assocDataIn_t &  in,
const uint  stage = 0 
)
protected

Find the best matches between detections and existing targets.

Parameters
[in]inAssociation inputs.
[in]stageAssociation stage.
Returns
The association results.

◆ associatePerStream_greedy() [2/2]

assocDataOut_t DataAssociator::associatePerStream_greedy ( const assocDataIn_t &  in,
const uint  stage = 0 
)
protected

Find the best matches between detections and existing targets.

Parameters
[in]inAssociation inputs.
[in]stageAssociation stage.
Returns
The association results.

◆ computeDistanceMatrix() [1/2]

std::vector<std::vector<float> > DataAssociator::computeDistanceMatrix ( const assocDataIn_t &  in,
const uint  stage = 0 
) const
protected

Compute the association score matrix.

Parameters
[in]inAssociation inputs.
[in]stageAssociation stage.
Returns
The computed score matrix, where higher values indicate closer matches.

◆ computeDistanceMatrix() [2/2]

std::vector<std::vector<float> > DataAssociator::computeDistanceMatrix ( const assocDataIn_t &  in,
const uint  stage = 0 
) const
protected

Compute the association score matrix.

Parameters
[in]inAssociation inputs.
[in]stageAssociation stage.
Returns
The computed score matrix, where higher values indicate closer matches.

◆ dumpAssocDistanceMatrix() [1/2]

void DataAssociator::dumpAssocDistanceMatrix ( const assocDataIn_t &  in,
std::vector< std::vector< float >>  distMat 
) const
protected

Dump-print the scores in the distance matrix for association.

Parameters
[in]inAssociation inputs used to label the matrix.
[in]distMatScore matrix to print.

◆ dumpAssocDistanceMatrix() [2/2]

void DataAssociator::dumpAssocDistanceMatrix ( const assocDataIn_t &  in,
std::vector< std::vector< float >>  distMat 
) const
protected

Dump-print the scores in the distance matrix for association.

Parameters
[in]inAssociation inputs used to label the matrix.
[in]distMatScore matrix to print.

◆ dumpDataAssociationResults() [1/2]

void DataAssociator::dumpDataAssociationResults ( const assocDataOut_t &  out) const
protected

Dump-print the data association results.

Parameters
[in]outAssociation results to print.

◆ dumpDataAssociationResults() [2/2]

void DataAssociator::dumpDataAssociationResults ( const assocDataOut_t &  out) const
protected

Dump-print the data association results.

Parameters
[in]outAssociation results to print.

◆ getDataAssociatorType() [1/2]

const DATA_ASSOCIATOR_TYPES DataAssociator::getDataAssociatorType ( )
inlineoverridevirtual

Return the configured data-associator type.

Implements IDataAssociator.

Definition at line 168 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

References NvTrackerParamsAssoc::m_dataAssociatorType, and m_params.

◆ getDataAssociatorType() [2/2]

const DATA_ASSOCIATOR_TYPES DataAssociator::getDataAssociatorType ( )
inlineoverridevirtual

Return the configured data-associator type.

Implements IDataAssociator.

Definition at line 168 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

References NvTrackerParamsAssoc::m_dataAssociatorType, and m_params.

◆ initialize() [1/2]

void DataAssociator::initialize ( const SourceFrameInfo &  frameInfo,
const uint32_t  maxTargetsPerStream,
const bool  useVisualTracker,
const bool  useReid 
)
overridevirtual

Initialize the data associator for a source stream.

Parameters
[in]frameInfoMetadata about the source image (e.g., size, color).
[in]maxTargetsPerStreamThe max number of targets to track per stream.
[in]useVisualTrackerWhether visual-tracker similarity is used.
[in]useReidWhether ReID similarity is used.

Implements IDataAssociator.

◆ initialize() [2/2]

void DataAssociator::initialize ( const SourceFrameInfo &  frameInfo,
const uint32_t  maxTargetsPerStream,
const bool  useVisualTracker,
const bool  useReid 
)
overridevirtual

Initialize the data associator for a source stream.

Parameters
[in]frameInfoMetadata about the source image (e.g., size, color).
[in]maxTargetsPerStreamThe max number of targets to track per stream.
[in]useVisualTrackerWhether visual-tracker similarity is used.
[in]useReidWhether ReID similarity is used.

Implements IDataAssociator.

◆ initializeSimilarityParams() [1/2]

void DataAssociator::initializeSimilarityParams ( const bool  useVisualTracker,
const bool  useReid 
)
protected

Rebuild per-stage similarity parameters for the enabled features.

Parameters
[in]useVisualTrackerWhether visual-tracker similarity is used.
[in]useReidWhether ReID similarity is used.

Referenced by updateParams().

◆ initializeSimilarityParams() [2/2]

void DataAssociator::initializeSimilarityParams ( const bool  useVisualTracker,
const bool  useReid 
)
protected

Rebuild per-stage similarity parameters for the enabled features.

Parameters
[in]useVisualTrackerWhether visual-tracker similarity is used.
[in]useReidWhether ReID similarity is used.

◆ isInitialized() [1/2]

bool DataAssociator::isInitialized ( )
inlineoverridevirtual

Return whether the data associator has been initialized.

Implements IDataAssociator.

Definition at line 165 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

References m_isInit.

◆ isInitialized() [2/2]

bool DataAssociator::isInitialized ( )
inlineoverridevirtual

Return whether the data associator has been initialized.

Implements IDataAssociator.

Definition at line 165 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

References m_isInit.

◆ sortMatching() [1/2]

std::multimap<float, std::pair<uint, int> > DataAssociator::sortMatching ( const assocDataIn_t &  in,
const std::vector< std::vector< float >> &  distMat 
) const
protected

Given the distance matrix, get the sorted list of potential match pairs based on the association cost.

Parameters
[in]inAssociation inputs.
[in]distMatScore matrix, where higher values indicate closer matches.
Returns
The sorted list of potential match pairs { matching score, {inDetBboxListInd, inTargetListInd}}.

◆ sortMatching() [2/2]

std::multimap<float, std::pair<uint, int> > DataAssociator::sortMatching ( const assocDataIn_t &  in,
const std::vector< std::vector< float >> &  distMat 
) const
protected

Given the distance matrix, get the sorted list of potential match pairs based on the association cost.

Parameters
[in]inAssociation inputs.
[in]distMatScore matrix, where higher values indicate closer matches.
Returns
The sorted list of potential match pairs { matching score, {inDetBboxListInd, inTargetListInd}}.

◆ updateParams() [1/2]

void DataAssociator::updateParams ( const YAML::Node &  fn)
inlinevirtual

Update dynamic parameters during runtime.

Parameters
[in]fnParsed YAML structure of config to update.

Implements IDataAssociator.

Definition at line 174 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

References initializeSimilarityParams(), m_isInit, m_params, m_useReid, m_useVisualTracker, and NvTrackerParamsAssoc::read().

◆ updateParams() [2/2]

void DataAssociator::updateParams ( const YAML::Node &  fn)
inlinevirtual

Update dynamic parameters during runtime.

Parameters
[in]fnParsed YAML structure of config to update.

Implements IDataAssociator.

Definition at line 174 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

References initializeSimilarityParams(), m_isInit, m_params, m_useReid, m_useVisualTracker, and NvTrackerParamsAssoc::read().

Field Documentation

◆ m_da_stats

DA_Stats DataAssociator::m_da_stats
mutableprotected

Stores association-scoring counters.

Definition at line 287 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

◆ m_isInit

bool DataAssociator::m_isInit
protected

Indicates whether the data associator has been initialized.

Definition at line 182 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

Referenced by isInitialized(), and updateParams().

◆ m_maxTargetsPerStream

int DataAssociator::m_maxTargetsPerStream
protected

Specifies the maximum number of targets to track per stream.

Definition at line 186 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

◆ m_params

NvTrackerParamsAssoc DataAssociator::m_params
protected

Stores parsed configuration parameters.

Definition at line 183 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

Referenced by getDataAssociatorType(), and updateParams().

◆ m_similarityParamLists

std::vector< std::vector< SimilarityParam > > DataAssociator::m_similarityParamLists
protected

Per-stage similarity parameters and weights.

Definition at line 184 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

◆ m_similarityParamsMutex

std::mutex DataAssociator::m_similarityParamsMutex
mutableprotected

Guards similarity parameters during reads and updates.

Definition at line 185 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

◆ m_useReid

bool DataAssociator::m_useReid {false}
protected

Records whether ReID similarity is enabled for parameter rebuilds.

Definition at line 188 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

Referenced by updateParams().

◆ m_useVisualTracker

bool DataAssociator::m_useVisualTracker {false}
protected

Records whether visual-tracker similarity is enabled for parameter rebuilds.

Definition at line 187 of file sources/libs/nvmultiobjecttracker/include/modules/DataAssociator/DataAssociator.hpp.

Referenced by updateParams().


The documentation for this class was generated from the following file: