NVIDIA DeepStream SDK API Reference

9.2 Release
EnsembleReID Class Reference

Detailed Description

Combines feature extraction from multiple ReID models.

Definition at line 60 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

Inheritance diagram for EnsembleReID:
Collaboration diagram for EnsembleReID:

Public Member Functions

 EnsembleReID (const std::string &configFilePath)
 Construct a EnsembleReID instance from configuration. More...
 
virtual ~EnsembleReID ()
 Release resources owned by the EnsembleReID instance. More...
 
void initializeRuntime (const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream, const std::shared_ptr< NvTrackedObjectManager > &targetManager) override
 Initialize variables and allocate memories. More...
 
void initializeModel () override
 Create TensorRT inference engine; if engine does not exist, serialize from model file. More...
 
void queryParams (NvMOTQuery &paramsQuery)
 Populate the capabilities reported to the tracker. More...
 
void doInference (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta, std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects, const bool isForReAssoc) override
 Crop and rescale detected objects to create input batch to reid model. More...
 
void update () override
 Update ReID feature gallery after data association. More...
 
void removeStream (const NvMOTStreamId videoStreamId) override
 Remove a stream's reid features. More...
 
void outputReIDTensor (NvDsReidTensorBatch &reidTensorBatch) override
 Output the ReID tensor of a batch. More...
 
int outputTargetReIDInd (NvMOTStreamId streamId, uint targetInd) override
 Output a target's ReID vector index in the batch tensor. More...
 
void outputTargetReIDObj (NvMOTStreamId streamId, uint targetInd, NvDsReidTensorBatch &reidTensorBatch, NvDsObjReid &reidObj) override
 Output a target's ReID vector information. More...
 
bool isModelInitialized () override
 Report whether the inference model is initialized. More...
 
bool isRuntimeInitialized () override
 Report whether runtime resources are initialized. More...
 
const REID_TYPES getReIDType () override
 Get the configured ReID implementation type. More...
 
 EnsembleReID (const std::string &configFilePath)
 Construct a EnsembleReID instance from configuration. More...
 
virtual ~EnsembleReID ()
 Release resources owned by the EnsembleReID instance. More...
 
void initializeRuntime (const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream, const std::shared_ptr< NvTrackedObjectManager > &targetManager) override
 Initialize variables and allocate memories. More...
 
void initializeModel () override
 Create TensorRT inference engine; if engine does not exist, serialize from model file. More...
 
void queryParams (NvMOTQuery &paramsQuery)
 Populate the capabilities reported to the tracker. More...
 
void doInference (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta, std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects, const bool isForReAssoc) override
 Crop and rescale detected objects to create input batch to reid model. More...
 
void update () override
 Update ReID feature gallery after data association. More...
 
void removeStream (const NvMOTStreamId videoStreamId) override
 Remove a stream's reid features. More...
 
void outputReIDTensor (NvDsReidTensorBatch &reidTensorBatch) override
 Output the ReID tensor of a batch. More...
 
int outputTargetReIDInd (NvMOTStreamId streamId, uint targetInd) override
 Output a target's ReID vector index in the batch tensor. More...
 
void outputTargetReIDObj (NvMOTStreamId streamId, uint targetInd, NvDsReidTensorBatch &reidTensorBatch, NvDsObjReid &reidObj) override
 Output a target's ReID vector information. More...
 
bool isModelInitialized () override
 Report whether the inference model is initialized. More...
 
bool isRuntimeInitialized () override
 Report whether runtime resources are initialized. More...
 
const REID_TYPES getReIDType () override
 Get the configured ReID implementation type. More...
 

Protected Member Functions

void fuseReIDSimilarity (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta, std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects)
 Combine similarity scores produced by the ensemble models. More...
 
std::vector< float > reidSimilarityFunc (const std::vector< std::vector< float >> &confidenceListReidDets, const uint numDets)
 Combine per-model detection similarities into one score vector. More...
 
void fuseReIDSimilarity (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta, std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects)
 Combine similarity scores produced by the ensemble models. More...
 
std::vector< float > reidSimilarityFunc (const std::vector< std::vector< float >> &confidenceListReidDets, const uint numDets)
 Combine per-model detection similarities into one score vector. More...
 

Protected Attributes

bool m_isModelInit
 Reid status if reid model initialized. More...
 
bool m_isRuntimeInit
 Reid status if runtime variables initialized. More...
 
EnsembleReIDConfigParams m_params
 Config params for reid module. More...
 
std::vector< ReID > m_reidList
 List of ensemble methods. More...
 
std::shared_ptr< NvTrackedObjectManager > m_targetManager
 Target manager providing target status to update feature gallery. More...
 
uint m_maxTargetsPerStream
 Max targets per stream. More...
 

Constructor & Destructor Documentation

◆ EnsembleReID() [1/2]

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

Construct a EnsembleReID instance from configuration.

Parameters
[in]configFilePathPath to the tracker configuration file.

◆ ~EnsembleReID() [1/2]

virtual EnsembleReID::~EnsembleReID ( )
virtual

Release resources owned by the EnsembleReID instance.

◆ EnsembleReID() [2/2]

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

Construct a EnsembleReID instance from configuration.

Parameters
[in]configFilePathPath to the tracker configuration file.

◆ ~EnsembleReID() [2/2]

virtual EnsembleReID::~EnsembleReID ( )
virtual

Release resources owned by the EnsembleReID instance.

Member Function Documentation

◆ doInference() [1/2]

void EnsembleReID::doInference ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta,
std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &  detectedObjects,
const bool  isForReAssoc 
)
overridevirtual

Crop and rescale detected objects to create input batch to reid model.

Parameters
[in]inputMetaA batch of input frames.
[in,out]detectedObjectsNewly detected objects in each stream.
[in]isForReAssocWhether this inference is for reassociation.

Implements IReID.

◆ doInference() [2/2]

void EnsembleReID::doInference ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta,
std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &  detectedObjects,
const bool  isForReAssoc 
)
overridevirtual

Crop and rescale detected objects to create input batch to reid model.

Parameters
[in]inputMetaA batch of input frames.
[in,out]detectedObjectsNewly detected objects in each stream.
[in]isForReAssocWhether this inference is for reassociation.

Implements IReID.

◆ fuseReIDSimilarity() [1/2]

void EnsembleReID::fuseReIDSimilarity ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta,
std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &  detectedObjects 
)
protected

Combine similarity scores produced by the ensemble models.

Parameters
[in]inputMetaInput frames keyed by stream ID.
[in,out]detectedObjectsDetected objects keyed by stream ID.

◆ fuseReIDSimilarity() [2/2]

void EnsembleReID::fuseReIDSimilarity ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta,
std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &  detectedObjects 
)
protected

Combine similarity scores produced by the ensemble models.

Parameters
[in]inputMetaInput frames keyed by stream ID.
[in,out]detectedObjectsDetected objects keyed by stream ID.

◆ getReIDType() [1/2]

const REID_TYPES EnsembleReID::getReIDType ( )
inlineoverridevirtual

Get the configured ReID implementation type.

Implements IReID.

Definition at line 145 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

References m_params, and EnsembleReIDConfigParams::m_reidType.

◆ getReIDType() [2/2]

const REID_TYPES EnsembleReID::getReIDType ( )
inlineoverridevirtual

Get the configured ReID implementation type.

Implements IReID.

Definition at line 145 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

References m_params, and EnsembleReIDConfigParams::m_reidType.

◆ initializeModel() [1/2]

void EnsembleReID::initializeModel ( )
overridevirtual

Create TensorRT inference engine; if engine does not exist, serialize from model file.

Implements IReID.

◆ initializeModel() [2/2]

void EnsembleReID::initializeModel ( )
overridevirtual

Create TensorRT inference engine; if engine does not exist, serialize from model file.

Implements IReID.

◆ initializeRuntime() [1/2]

void EnsembleReID::initializeRuntime ( const SourceFrameInfo &  frameInfo,
const uint  maxTargetsPerStream,
const std::shared_ptr< NvTrackedObjectManager > &  targetManager 
)
overridevirtual

Initialize variables and allocate memories.

Parameters
[in]frameInfoMetadata about the source image, such as size and color.
[in]maxTargetsPerStreamMaximum number of targets to track in each stream.
[in]targetManagerTarget manager of the tracked objects.

Implements IReID.

◆ initializeRuntime() [2/2]

void EnsembleReID::initializeRuntime ( const SourceFrameInfo &  frameInfo,
const uint  maxTargetsPerStream,
const std::shared_ptr< NvTrackedObjectManager > &  targetManager 
)
overridevirtual

Initialize variables and allocate memories.

Parameters
[in]frameInfoMetadata about the source image, such as size and color.
[in]maxTargetsPerStreamMaximum number of targets to track in each stream.
[in]targetManagerTarget manager of the tracked objects.

Implements IReID.

◆ isModelInitialized() [1/2]

bool EnsembleReID::isModelInitialized ( )
inlineoverridevirtual

Report whether the inference model is initialized.

Implements IReID.

Definition at line 139 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

References m_isModelInit.

◆ isModelInitialized() [2/2]

bool EnsembleReID::isModelInitialized ( )
inlineoverridevirtual

Report whether the inference model is initialized.

Implements IReID.

Definition at line 139 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

References m_isModelInit.

◆ isRuntimeInitialized() [1/2]

bool EnsembleReID::isRuntimeInitialized ( )
inlineoverridevirtual

Report whether runtime resources are initialized.

Implements IReID.

Definition at line 142 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

References m_isRuntimeInit.

◆ isRuntimeInitialized() [2/2]

bool EnsembleReID::isRuntimeInitialized ( )
inlineoverridevirtual

Report whether runtime resources are initialized.

Implements IReID.

Definition at line 142 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

References m_isRuntimeInit.

◆ outputReIDTensor() [1/2]

void EnsembleReID::outputReIDTensor ( NvDsReidTensorBatch &  reidTensorBatch)
overridevirtual

Output the ReID tensor of a batch.

Parameters
[out]reidTensorBatchBatch reid tensor output to be filled.

Implements IReID.

◆ outputReIDTensor() [2/2]

void EnsembleReID::outputReIDTensor ( NvDsReidTensorBatch &  reidTensorBatch)
overridevirtual

Output the ReID tensor of a batch.

Parameters
[out]reidTensorBatchBatch reid tensor output to be filled.

Implements IReID.

◆ outputTargetReIDInd() [1/2]

int EnsembleReID::outputTargetReIDInd ( NvMOTStreamId  streamId,
uint  targetInd 
)
overridevirtual

Output a target's ReID vector index in the batch tensor.

Parameters
[in]streamIdStream index.
[in]targetIndThe target index.
Returns
The target's ReID vector index in the batch tensor, -1 means no reid feature.

Implements IReID.

◆ outputTargetReIDInd() [2/2]

int EnsembleReID::outputTargetReIDInd ( NvMOTStreamId  streamId,
uint  targetInd 
)
overridevirtual

Output a target's ReID vector index in the batch tensor.

Parameters
[in]streamIdStream index.
[in]targetIndThe target index.
Returns
The target's ReID vector index in the batch tensor, -1 means no reid feature.

Implements IReID.

◆ outputTargetReIDObj() [1/2]

void EnsembleReID::outputTargetReIDObj ( NvMOTStreamId  streamId,
uint  targetInd,
NvDsReidTensorBatch &  reidTensorBatch,
NvDsObjReid &  reidObj 
)
overridevirtual

Output a target's ReID vector information.

Parameters
[in]streamIdStream index.
[in]targetIndThe target index.
[in]reidTensorBatchBatch reid tensor to get the memory pointers.
[out]reidObjThe target's ReID vector memory pointers and feature size.

Implements IReID.

◆ outputTargetReIDObj() [2/2]

void EnsembleReID::outputTargetReIDObj ( NvMOTStreamId  streamId,
uint  targetInd,
NvDsReidTensorBatch &  reidTensorBatch,
NvDsObjReid &  reidObj 
)
overridevirtual

Output a target's ReID vector information.

Parameters
[in]streamIdStream index.
[in]targetIndThe target index.
[in]reidTensorBatchBatch reid tensor to get the memory pointers.
[out]reidObjThe target's ReID vector memory pointers and feature size.

Implements IReID.

◆ queryParams() [1/2]

void EnsembleReID::queryParams ( NvMOTQuery &  paramsQuery)
virtual

Populate the capabilities reported to the tracker.

Parameters
[out]paramsQueryThe output query parameters.

Implements IReID.

◆ queryParams() [2/2]

void EnsembleReID::queryParams ( NvMOTQuery &  paramsQuery)
virtual

Populate the capabilities reported to the tracker.

Parameters
[out]paramsQueryThe output query parameters.

Implements IReID.

◆ reidSimilarityFunc() [1/2]

std::vector<float> EnsembleReID::reidSimilarityFunc ( const std::vector< std::vector< float >> &  confidenceListReidDets,
const uint  numDets 
)
protected

Combine per-model detection similarities into one score vector.

Parameters
[in]confidenceListReidDetsPer-model ReID similarity values for detections.
[in]numDetsNumber of detections.
Returns
The highest similarity across the models for each detection.

◆ reidSimilarityFunc() [2/2]

std::vector<float> EnsembleReID::reidSimilarityFunc ( const std::vector< std::vector< float >> &  confidenceListReidDets,
const uint  numDets 
)
protected

Combine per-model detection similarities into one score vector.

Parameters
[in]confidenceListReidDetsPer-model ReID similarity values for detections.
[in]numDetsNumber of detections.
Returns
The highest similarity across the models for each detection.

◆ removeStream() [1/2]

void EnsembleReID::removeStream ( const NvMOTStreamId  videoStreamId)
overridevirtual

Remove a stream's reid features.

Parameters
[in]videoStreamIdVideo stream id.

Implements IReID.

◆ removeStream() [2/2]

void EnsembleReID::removeStream ( const NvMOTStreamId  videoStreamId)
overridevirtual

Remove a stream's reid features.

Parameters
[in]videoStreamIdVideo stream id.

Implements IReID.

◆ update() [1/2]

void EnsembleReID::update ( )
overridevirtual

Update ReID feature gallery after data association.

Implements IReID.

◆ update() [2/2]

void EnsembleReID::update ( )
overridevirtual

Update ReID feature gallery after data association.

Implements IReID.

Field Documentation

◆ m_isModelInit

bool EnsembleReID::m_isModelInit
protected

Reid status if reid model initialized.

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

Referenced by isModelInitialized().

◆ m_isRuntimeInit

bool EnsembleReID::m_isRuntimeInit
protected

Reid status if runtime variables initialized.

Definition at line 169 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

Referenced by isRuntimeInitialized().

◆ m_maxTargetsPerStream

uint EnsembleReID::m_maxTargetsPerStream
protected

Max targets per stream.

Definition at line 173 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

◆ m_params

EnsembleReIDConfigParams EnsembleReID::m_params
protected

Config params for reid module.

Definition at line 170 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

Referenced by getReIDType().

◆ m_reidList

std::vector< ReID > EnsembleReID::m_reidList
protected

List of ensemble methods.

Definition at line 171 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.

◆ m_targetManager

std::shared_ptr< NvTrackedObjectManager > EnsembleReID::m_targetManager
protected

Target manager providing target status to update feature gallery.

Definition at line 172 of file sources/libs/nvmultiobjecttracker/include/modules/ReID/EnsembleReID.hpp.


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