NVIDIA DeepStream SDK API Reference

9.2 Release
NvTrajectoryManager Class Reference

Detailed Description

Manage target IDs, archived trajectories, and trajectory reassociation.

Definition at line 229 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

Inheritance diagram for NvTrajectoryManager:
Collaboration diagram for NvTrajectoryManager:

Data Structures

struct  ReAssocStats
 Re-association pipeline counters: dumped to stderr at destructor time. More...
 

Public Member Functions

 NvTrajectoryManager (const std::string &configFilePath)
 Construct a trajectory manager from configuration. More...
 
virtual ~NvTrajectoryManager ()
 Report statistics and destroy the trajectory manager. More...
 
void archiveTrajectory (const std::shared_ptr< NvTrackedObject > target)
 Store the trajectories of the terminated objects up to a certain time. More...
 
void assignTargetIDs (const NvTrackedObjectList &targetList, std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject > > &toBeTerminated, const NvMOTTimeMeta &timeMeta)
 Assign target IDs and set targetIDTimeStamp. More...
 
void cleanUpArchivedTrajectories (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
 Remove expired archived trajectories for all input streams. More...
 
void cleanUpArchivedTrajectories_perStream (const NvMOTStreamId streamId, const uint32_t currFrameNum, const bool doPurge=false)
 Remove expired archived trajectories for one stream. More...
 
void resetIDs ()
 Reset the unique-ID generator with a new random prefix. More...
 
void purgeArchivedTrajectories ()
 Purge all archived trajectories. More...
 
virtual std::deque< DetectedObjInfo > generateTrackedObjects4ReidPerStream (const NvMOTStreamId streamId, const NvTrackedObjectList &targetList)
 Generate target detections that require ReID extraction for one stream. More...
 
void updateStreamIds (const std::vector< NvMOTStreamId > &streamIdsToAdd={}, const std::vector< NvMOTStreamId > &streamIdsToDel={})
 Update per-stream trajectory state when streams are added or removed. More...
 
void updateParams (const YAML::Node &fn)
 Update dynamic parameters during runtime. More...
 
void setSrcFrameInfo (const NvMotDataTypes::Rect2f originalSrcImageBox, const NvMotDataTypes::Rect2f srcImageBox)
 Set source-frame geometry used for trajectory output. More...
 
void setMultiViewAssociators (std::map< NvMOTStreamId, std::shared_ptr< IMultiViewAssociator >> multiViewAssociators)
 Set the multi-view associators. More...
 
const Trajectory4Archive & getArchivedTrajectory (const NvMOTStreamId videoStreamId, const uint64_t targetId)
 Return an archived trajectory by stream and target ID. More...
 
const NvTrackerParamsTrajectoryManager getParams ()
 Return a copy of trajectory-manager parameters. More...
 
const float getMinVisibility4TrajDump ()
 Return the minimum visibility required for trajectory dumping. More...
 
const bool getDumpDetectorBboxes ()
 Return whether detector bounding boxes are dumped. More...
 
 NvTrajectoryManager (const std::string &configFilePath)
 Construct a trajectory manager from configuration. More...
 
virtual ~NvTrajectoryManager ()
 Report statistics and destroy the trajectory manager. More...
 
void archiveTrajectory (const std::shared_ptr< NvTrackedObject > target)
 Store the trajectories of the terminated objects up to a certain time. More...
 
void assignTargetIDs (const NvTrackedObjectList &targetList, std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject > > &toBeTerminated, const NvMOTTimeMeta &timeMeta)
 Assign target IDs and set targetIDTimeStamp. More...
 
void cleanUpArchivedTrajectories (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
 Remove expired archived trajectories for all input streams. More...
 
void cleanUpArchivedTrajectories_perStream (const NvMOTStreamId streamId, const uint32_t currFrameNum, const bool doPurge=false)
 Remove expired archived trajectories for one stream. More...
 
void resetIDs ()
 Reset the unique-ID generator with a new random prefix. More...
 
void purgeArchivedTrajectories ()
 Purge all archived trajectories. More...
 
virtual std::deque< DetectedObjInfo > generateTrackedObjects4ReidPerStream (const NvMOTStreamId streamId, const NvTrackedObjectList &targetList)
 Generate target detections that require ReID extraction for one stream. More...
 
void updateStreamIds (const std::vector< NvMOTStreamId > &streamIdsToAdd={}, const std::vector< NvMOTStreamId > &streamIdsToDel={})
 Update per-stream trajectory state when streams are added or removed. More...
 
void updateParams (const YAML::Node &fn)
 Update dynamic parameters during runtime. More...
 
void setSrcFrameInfo (const NvMotDataTypes::Rect2f originalSrcImageBox, const NvMotDataTypes::Rect2f srcImageBox)
 Set source-frame geometry used for trajectory output. More...
 
void setMultiViewAssociators (std::map< NvMOTStreamId, std::shared_ptr< IMultiViewAssociator >> multiViewAssociators)
 Set the multi-view associators. More...
 
const Trajectory4Archive & getArchivedTrajectory (const NvMOTStreamId videoStreamId, const uint64_t targetId)
 Return an archived trajectory by stream and target ID. More...
 
const NvTrackerParamsTrajectoryManager getParams ()
 Return a copy of trajectory-manager parameters. More...
 
const float getMinVisibility4TrajDump ()
 Return the minimum visibility required for trajectory dumping. More...
 
const bool getDumpDetectorBboxes ()
 Return whether detector bounding boxes are dumped. More...
 

Protected Member Functions

bool tryReAssoc (const std::shared_ptr< NvTrackedObject > target, std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject >> &toBeFused)
 Try to perform the re-assoc with the targets in the temporary DB that stores projected trajectories. More...
 
bool processTrajectory (const uint64_t targetId, const NvMOTStreamId streamId, std::list< TargetInfo > &tracklet)
 Trim the tracklet by removing the last un-validated trajectory points. More...
 
std::list< TargetInfo > createProjectedTrajectories (const uint64_t targetId, const NvMOTStreamId streamId, const std::list< TargetInfo > &tracklet, int overrideShadowAge=-1)
 Trim the tracklet by removing the last un-validated trajectory points and return the projected trajectory points only. More...
 
void add2ProjectedTrajectoryDB (std::shared_ptr< NvTrackedObject > target)
 Add the projected trajectory to the temporary DB so that it can be re-associated. More...
 
void removeFromProjectedTrajectoryDB (std::shared_ptr< NvTrackedObject > target)
 Remove from the projected trajectory DB. More...
 
virtual std::list< TargetInfo > getTrimmedTraj4ReAssoc (const std::list< TargetInfo > &newTraj, const std::list< TargetInfo > &peerTraj, const NvMOTFrameNum lastTrackedFrameNum_peer)
 Get the trimmed new trajectory for reassociation with peer trajectory. More...
 
bool findMatch4ReAssoc (const std::shared_ptr< NvTrackedObject > target, std::shared_ptr< NvTrackedObject > &bestMatchPeer)
 Find the best live projected-trajectory match for a target. More...
 
bool findArchiveMatch4ReAssoc (const std::shared_ptr< NvTrackedObject > newTarget)
 Fallback re-association against terminated tracks in m_trajectoryArchive. More...
 
bool try3DReAssoc (const std::shared_ptr< NvTrackedObject > newTarget)
 Perform archive-only world-distance and frame-gap re-association. More...
 
virtual float calculateSizeSimilarityScore (const std::list< TargetInfo > &traj, const std::list< TargetInfo > &peerTraj)
 Calculate bounding-box size similarity between two trajectories. More...
 
const std::tuple< float, int, float, float, float, float > calculateSimilarityBtwTracklets (const std::list< TargetInfo > &traj, const std::list< TargetInfo > &peerTraj, const float peerTrajCov)
 Calculate tracklet, direction, speed, and size similarity metrics. More...
 
const std::tuple< float, int, float, float, float > calculateAssocScore4QuasiDTW (const std::list< TargetInfo > &traj, const std::list< TargetInfo > &peerTraj, const float peerTrajCov)
 Calculate quasi-DTW association metrics between two trajectories. More...
 
const float computeAngleInDegree (const Eigen::Vector2f &vec1, const Eigen::Vector2f &vec2)
 Compute the angle between the two tracklets direction [degree]. More...
 
const float computeSpeedSimilarity (const Eigen::Vector2f &vec1, const Eigen::Vector2f &vec2)
 Compute the speed similarity between the two tracklets. More...
 
const bool detectMotion (const Eigen::Vector2f &vec, float threshold)
 Detect if a tracklet is in motion, that is, if its speed is at least the threshold. More...
 
void fuseTracklets (std::shared_ptr< NvTrackedObject > targetToBeKept, std::shared_ptr< NvTrackedObject > targetToBeFused)
 Fuse two tracklets. More...
 
bool checkDuplicateTracklet (const uint64_t targetId, std::map< uint64_t, Trajectory4Archive > &tracklets, std::set< uint64_t > &peersToBeDeleted)
 Check if the tracklet is a duplicate to another existing tracklet. More...
 
int calculateTrackletInclusionScore (const std::list< TargetInfo > &tracklet, const std::list< TargetInfo > &peerTracklet)
 Calculate the number of duplicate bboxes between the two tracklets. More...
 
void fuseArchivedTracklets (const uint64_t targetId, const uint64_t peerId, std::map< uint64_t, Trajectory4Archive > &tracklets)
 Fuse the peer's tracklet into the target's. More...
 
void dumpTrajectoryIntoFile (const NvMOTStreamId streamId, const TargetId targetId, const Trajectory4Archive &traj)
 Dump the trajectory data into a file in a specified format. More...
 
const uint64_t generateNewTargetID ()
 Generate a thread-safe target ID according to the configured ID mode. More...
 
const uint64_t peekNewTargetID () const
 Return the next target ID without consuming it. More...
 
bool tryReAssoc (const std::shared_ptr< NvTrackedObject > target, std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject >> &toBeFused)
 Try to perform the re-assoc with the targets in the temporary DB that stores projected trajectories. More...
 
bool processTrajectory (const uint64_t targetId, const NvMOTStreamId streamId, std::list< TargetInfo > &tracklet)
 Trim the tracklet by removing the last un-validated trajectory points. More...
 
std::list< TargetInfo > createProjectedTrajectories (const uint64_t targetId, const NvMOTStreamId streamId, const std::list< TargetInfo > &tracklet, int overrideShadowAge=-1)
 Trim the tracklet by removing the last un-validated trajectory points and return the projected trajectory points only. More...
 
void add2ProjectedTrajectoryDB (std::shared_ptr< NvTrackedObject > target)
 Add the projected trajectory to the temporary DB so that it can be re-associated. More...
 
void removeFromProjectedTrajectoryDB (std::shared_ptr< NvTrackedObject > target)
 Remove from the projected trajectory DB. More...
 
virtual std::list< TargetInfo > getTrimmedTraj4ReAssoc (const std::list< TargetInfo > &newTraj, const std::list< TargetInfo > &peerTraj, const NvMOTFrameNum lastTrackedFrameNum_peer)
 Get the trimmed new trajectory for reassociation with peer trajectory. More...
 
bool findMatch4ReAssoc (const std::shared_ptr< NvTrackedObject > target, std::shared_ptr< NvTrackedObject > &bestMatchPeer)
 Find the best live projected-trajectory match for a target. More...
 
bool findArchiveMatch4ReAssoc (const std::shared_ptr< NvTrackedObject > newTarget)
 Fallback re-association against terminated tracks in m_trajectoryArchive. More...
 
bool try3DReAssoc (const std::shared_ptr< NvTrackedObject > newTarget)
 Perform archive-only world-distance and frame-gap re-association. More...
 
virtual float calculateSizeSimilarityScore (const std::list< TargetInfo > &traj, const std::list< TargetInfo > &peerTraj)
 Calculate bounding-box size similarity between two trajectories. More...
 
const std::tuple< float, int, float, float, float, float > calculateSimilarityBtwTracklets (const std::list< TargetInfo > &traj, const std::list< TargetInfo > &peerTraj, const float peerTrajCov)
 Calculate tracklet, direction, speed, and size similarity metrics. More...
 
const std::tuple< float, int, float, float, float > calculateAssocScore4QuasiDTW (const std::list< TargetInfo > &traj, const std::list< TargetInfo > &peerTraj, const float peerTrajCov)
 Calculate quasi-DTW association metrics between two trajectories. More...
 
const float computeAngleInDegree (const Eigen::Vector2f &vec1, const Eigen::Vector2f &vec2)
 Compute the angle between the two tracklets direction [degree]. More...
 
const float computeSpeedSimilarity (const Eigen::Vector2f &vec1, const Eigen::Vector2f &vec2)
 Compute the speed similarity between the two tracklets. More...
 
const bool detectMotion (const Eigen::Vector2f &vec, float threshold)
 Detect if a tracklet is in motion, that is, if its speed is at least the threshold. More...
 
void fuseTracklets (std::shared_ptr< NvTrackedObject > targetToBeKept, std::shared_ptr< NvTrackedObject > targetToBeFused)
 Fuse two tracklets. More...
 
bool checkDuplicateTracklet (const uint64_t targetId, std::map< uint64_t, Trajectory4Archive > &tracklets, std::set< uint64_t > &peersToBeDeleted)
 Check if the tracklet is a duplicate to another existing tracklet. More...
 
int calculateTrackletInclusionScore (const std::list< TargetInfo > &tracklet, const std::list< TargetInfo > &peerTracklet)
 Calculate the number of duplicate bboxes between the two tracklets. More...
 
void fuseArchivedTracklets (const uint64_t targetId, const uint64_t peerId, std::map< uint64_t, Trajectory4Archive > &tracklets)
 Fuse the peer's tracklet into the target's. More...
 
void dumpTrajectoryIntoFile (const NvMOTStreamId streamId, const TargetId targetId, const Trajectory4Archive &traj)
 Dump the trajectory data into a file in a specified format. More...
 
const uint64_t generateNewTargetID ()
 Generate a thread-safe target ID according to the configured ID mode. More...
 
const uint64_t peekNewTargetID () const
 Return the next target ID without consuming it. More...
 

Protected Attributes

NvTrackerParamsTrajectoryManager m_params
 Config params for target management. More...
 
const std::string m_configFilePath
 Config file path. More...
 
std::map< NvMOTStreamId, std::shared_ptr< Trajectory4ArchiveList > > m_trajectoryArchive
 Archive of past trajectories up to a configured age, modified on the main thread and read by workers. More...
 
std::map< NvMOTStreamId, std::shared_ptr< ProjectedTrajectoryList > > m_projectedTrajectories
 Temporary buffer of the projected trajectories to be re-associated. More...
 
std::map< NvMOTStreamId, std::shared_ptr< TrackedObjectsReidIndList > > m_trackedObjectsReidInd
 Target's index in reid batch. More...
 
std::map< NvMOTStreamId, bool > m_isFileTrajectoryDumpCreated
 Post-processing: dump trajectories into a file: only accessed in main thread. More...
 
std::map< NvMOTStreamId, std::ofstream > m_fileTrajectoryDump
 Per-stream trajectory dump file, accessed only on the main thread. More...
 
std::map< NvMOTStreamId, std::shared_ptr< IEstimator2 > > m_trajProjector
 Per-stream state estimator used to project trajectories for re-association. More...
 
std::map< NvMOTStreamId, std::shared_ptr< IMultiViewAssociator > > m_multiViewAssociators
 Multi-view associators. More...
 
std::map< uint64_t, NvMOTFrameNum > m_usedPeerTargetIds
 Claimed peer target id mapped to the frame of the claim. More...
 
UIDGenerator m_uidGenerator
 ID generator. More...
 
bool m_isOffline = false
 Boolean to indicate if the trajectory manager is used for offline processing. More...
 
struct NvTrajectoryManager::ReAssocStats m_stats
 Stores trajectory-reassociation counters. More...
 

Constructor & Destructor Documentation

◆ NvTrajectoryManager() [1/2]

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

Construct a trajectory manager from configuration.

Parameters
[in]configFilePathPath to the configuration file.

◆ ~NvTrajectoryManager() [1/2]

virtual NvTrajectoryManager::~NvTrajectoryManager ( )
virtual

Report statistics and destroy the trajectory manager.

◆ NvTrajectoryManager() [2/2]

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

Construct a trajectory manager from configuration.

Parameters
[in]configFilePathPath to the configuration file.

◆ ~NvTrajectoryManager() [2/2]

virtual NvTrajectoryManager::~NvTrajectoryManager ( )
virtual

Report statistics and destroy the trajectory manager.

Member Function Documentation

◆ add2ProjectedTrajectoryDB() [1/2]

void NvTrajectoryManager::add2ProjectedTrajectoryDB ( std::shared_ptr< NvTrackedObject >  target)
protected

Add the projected trajectory to the temporary DB so that it can be re-associated.

Parameters
[in]targetShadow track whose projected trajectory is stored.

◆ add2ProjectedTrajectoryDB() [2/2]

void NvTrajectoryManager::add2ProjectedTrajectoryDB ( std::shared_ptr< NvTrackedObject >  target)
protected

Add the projected trajectory to the temporary DB so that it can be re-associated.

Parameters
[in]targetShadow track whose projected trajectory is stored.

◆ archiveTrajectory() [1/2]

void NvTrajectoryManager::archiveTrajectory ( const std::shared_ptr< NvTrackedObject >  target)

Store the trajectories of the terminated objects up to a certain time.

Parameters
[in]targetTerminated object whose trajectory is stored.

◆ archiveTrajectory() [2/2]

void NvTrajectoryManager::archiveTrajectory ( const std::shared_ptr< NvTrackedObject >  target)

Store the trajectories of the terminated objects up to a certain time.

Parameters
[in]targetTerminated object whose trajectory is stored.

◆ assignTargetIDs() [1/2]

void NvTrajectoryManager::assignTargetIDs ( const NvTrackedObjectList &  targetList,
std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject > > &  toBeTerminated,
const NvMOTTimeMeta &  timeMeta 
)

Assign target IDs and set targetIDTimeStamp.

Parameters
[in]targetListTracked objects that may receive target IDs.
[out]toBeTerminatedMap from a terminated target to its peer.
[in]timeMetaTiming metadata from association.

◆ assignTargetIDs() [2/2]

void NvTrajectoryManager::assignTargetIDs ( const NvTrackedObjectList &  targetList,
std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject > > &  toBeTerminated,
const NvMOTTimeMeta &  timeMeta 
)

Assign target IDs and set targetIDTimeStamp.

Parameters
[in]targetListTracked objects that may receive target IDs.
[out]toBeTerminatedMap from a terminated target to its peer.
[in]timeMetaTiming metadata from association.

◆ calculateAssocScore4QuasiDTW() [1/2]

const std::tuple<float, int, float, float, float> NvTrajectoryManager::calculateAssocScore4QuasiDTW ( const std::list< TargetInfo > &  traj,
const std::list< TargetInfo > &  peerTraj,
const float  peerTrajCov 
)
protected

Calculate quasi-DTW association metrics between two trajectories.

Parameters
[in]trajFirst trajectory.
[in]peerTrajPeer trajectory.
[in]peerTrajCovPeer trajectory covariance.
Returns
Tuple of average IOU, frame difference, angle, speed similarity, and speed unit magnitude.

◆ calculateAssocScore4QuasiDTW() [2/2]

const std::tuple<float, int, float, float, float> NvTrajectoryManager::calculateAssocScore4QuasiDTW ( const std::list< TargetInfo > &  traj,
const std::list< TargetInfo > &  peerTraj,
const float  peerTrajCov 
)
protected

Calculate quasi-DTW association metrics between two trajectories.

Parameters
[in]trajFirst trajectory.
[in]peerTrajPeer trajectory.
[in]peerTrajCovPeer trajectory covariance.
Returns
Tuple of average IOU, frame difference, angle, speed similarity, and speed unit magnitude.

◆ calculateSimilarityBtwTracklets() [1/2]

const std::tuple<float, int, float, float, float, float> NvTrajectoryManager::calculateSimilarityBtwTracklets ( const std::list< TargetInfo > &  traj,
const std::list< TargetInfo > &  peerTraj,
const float  peerTrajCov 
)
protected

Calculate tracklet, direction, speed, and size similarity metrics.

Parameters
[in]trajFirst trajectory.
[in]peerTrajPeer trajectory.
[in]peerTrajCovPeer trajectory covariance.
Returns
Tuple of tracklet score, frame difference, angle, speed similarity, speed unit magnitude, and size similarity.

◆ calculateSimilarityBtwTracklets() [2/2]

const std::tuple<float, int, float, float, float, float> NvTrajectoryManager::calculateSimilarityBtwTracklets ( const std::list< TargetInfo > &  traj,
const std::list< TargetInfo > &  peerTraj,
const float  peerTrajCov 
)
protected

Calculate tracklet, direction, speed, and size similarity metrics.

Parameters
[in]trajFirst trajectory.
[in]peerTrajPeer trajectory.
[in]peerTrajCovPeer trajectory covariance.
Returns
Tuple of tracklet score, frame difference, angle, speed similarity, speed unit magnitude, and size similarity.

◆ calculateSizeSimilarityScore() [1/2]

virtual float NvTrajectoryManager::calculateSizeSimilarityScore ( const std::list< TargetInfo > &  traj,
const std::list< TargetInfo > &  peerTraj 
)
protectedvirtual

Calculate bounding-box size similarity between two trajectories.

Parameters
[in]trajFirst trajectory.
[in]peerTrajPeer trajectory.
Returns
Average bounding-box size similarity.

◆ calculateSizeSimilarityScore() [2/2]

virtual float NvTrajectoryManager::calculateSizeSimilarityScore ( const std::list< TargetInfo > &  traj,
const std::list< TargetInfo > &  peerTraj 
)
protectedvirtual

Calculate bounding-box size similarity between two trajectories.

Parameters
[in]trajFirst trajectory.
[in]peerTrajPeer trajectory.
Returns
Average bounding-box size similarity.

◆ calculateTrackletInclusionScore() [1/2]

int NvTrajectoryManager::calculateTrackletInclusionScore ( const std::list< TargetInfo > &  tracklet,
const std::list< TargetInfo > &  peerTracklet 
)
protected

Calculate the number of duplicate bboxes between the two tracklets.

Parameters
[in]trackletTracklet being compared.
[in]peerTrackletPeer tracklet being compared.
Returns
Number of duplicate boxes, or -1 when a tracklet is empty or the tracklets do not overlap in time.

◆ calculateTrackletInclusionScore() [2/2]

int NvTrajectoryManager::calculateTrackletInclusionScore ( const std::list< TargetInfo > &  tracklet,
const std::list< TargetInfo > &  peerTracklet 
)
protected

Calculate the number of duplicate bboxes between the two tracklets.

Parameters
[in]trackletTracklet being compared.
[in]peerTrackletPeer tracklet being compared.
Returns
Number of duplicate boxes, or -1 when a tracklet is empty or the tracklets do not overlap in time.

◆ checkDuplicateTracklet() [1/2]

bool NvTrajectoryManager::checkDuplicateTracklet ( const uint64_t  targetId,
std::map< uint64_t, Trajectory4Archive > &  tracklets,
std::set< uint64_t > &  peersToBeDeleted 
)
protected

Check if the tracklet is a duplicate to another existing tracklet.

Parameters
[in]targetIdID of the tracklet to check.
[in,out]trackletsArchived tracklets for the stream; a duplicate may be fused into its peer.
[in,out]peersToBeDeletedPeer IDs already marked for deletion; a duplicate peer is inserted here.
Returns
True when this tracklet is a duplicate of a peer.

◆ checkDuplicateTracklet() [2/2]

bool NvTrajectoryManager::checkDuplicateTracklet ( const uint64_t  targetId,
std::map< uint64_t, Trajectory4Archive > &  tracklets,
std::set< uint64_t > &  peersToBeDeleted 
)
protected

Check if the tracklet is a duplicate to another existing tracklet.

Parameters
[in]targetIdID of the tracklet to check.
[in,out]trackletsArchived tracklets for the stream; a duplicate may be fused into its peer.
[in,out]peersToBeDeletedPeer IDs already marked for deletion; a duplicate peer is inserted here.
Returns
True when this tracklet is a duplicate of a peer.

◆ cleanUpArchivedTrajectories() [1/2]

void NvTrajectoryManager::cleanUpArchivedTrajectories ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta)

Remove expired archived trajectories for all input streams.

Parameters
[in]inputMetaCurrent input metadata by stream.

◆ cleanUpArchivedTrajectories() [2/2]

void NvTrajectoryManager::cleanUpArchivedTrajectories ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta)

Remove expired archived trajectories for all input streams.

Parameters
[in]inputMetaCurrent input metadata by stream.

◆ cleanUpArchivedTrajectories_perStream() [1/2]

void NvTrajectoryManager::cleanUpArchivedTrajectories_perStream ( const NvMOTStreamId  streamId,
const uint32_t  currFrameNum,
const bool  doPurge = false 
)

Remove expired archived trajectories for one stream.

Parameters
[in]streamIdSource stream identifier.
[in]currFrameNumCurrent frame number.
[in]doPurgeWhether to remove every archived trajectory.

◆ cleanUpArchivedTrajectories_perStream() [2/2]

void NvTrajectoryManager::cleanUpArchivedTrajectories_perStream ( const NvMOTStreamId  streamId,
const uint32_t  currFrameNum,
const bool  doPurge = false 
)

Remove expired archived trajectories for one stream.

Parameters
[in]streamIdSource stream identifier.
[in]currFrameNumCurrent frame number.
[in]doPurgeWhether to remove every archived trajectory.

◆ computeAngleInDegree() [1/2]

const float NvTrajectoryManager::computeAngleInDegree ( const Eigen::Vector2f &  vec1,
const Eigen::Vector2f &  vec2 
)
protected

Compute the angle between the two tracklets direction [degree].

Parameters
[in]vec1Direction vector of the first tracklet.
[in]vec2Direction vector of the second tracklet.
Returns
Angle between the two directions in degrees.

◆ computeAngleInDegree() [2/2]

const float NvTrajectoryManager::computeAngleInDegree ( const Eigen::Vector2f &  vec1,
const Eigen::Vector2f &  vec2 
)
protected

Compute the angle between the two tracklets direction [degree].

Parameters
[in]vec1Direction vector of the first tracklet.
[in]vec2Direction vector of the second tracklet.
Returns
Angle between the two directions in degrees.

◆ computeSpeedSimilarity() [1/2]

const float NvTrajectoryManager::computeSpeedSimilarity ( const Eigen::Vector2f &  vec1,
const Eigen::Vector2f &  vec2 
)
protected

Compute the speed similarity between the two tracklets.

Parameters
[in]vec1Velocity vector of the first tracklet.
[in]vec2Velocity vector of the second tracklet.
Returns
Speed similarity, where a higher value means a closer match.

◆ computeSpeedSimilarity() [2/2]

const float NvTrajectoryManager::computeSpeedSimilarity ( const Eigen::Vector2f &  vec1,
const Eigen::Vector2f &  vec2 
)
protected

Compute the speed similarity between the two tracklets.

Parameters
[in]vec1Velocity vector of the first tracklet.
[in]vec2Velocity vector of the second tracklet.
Returns
Speed similarity, where a higher value means a closer match.

◆ createProjectedTrajectories() [1/2]

std::list<TargetInfo> NvTrajectoryManager::createProjectedTrajectories ( const uint64_t  targetId,
const NvMOTStreamId  streamId,
const std::list< TargetInfo > &  tracklet,
int  overrideShadowAge = -1 
)
protected

Trim the tracklet by removing the last un-validated trajectory points and return the projected trajectory points only.

Parameters
[in]targetIdID of the tracklet.
[in]streamIdStream that owns the tracklet.
[in]trackletTracklet to project.
[in]overrideShadowAgeShadow age to use when non-negative; a negative value counts INACTIVE frames at the tail.
Returns
Projected trajectory points.

◆ createProjectedTrajectories() [2/2]

std::list<TargetInfo> NvTrajectoryManager::createProjectedTrajectories ( const uint64_t  targetId,
const NvMOTStreamId  streamId,
const std::list< TargetInfo > &  tracklet,
int  overrideShadowAge = -1 
)
protected

Trim the tracklet by removing the last un-validated trajectory points and return the projected trajectory points only.

Parameters
[in]targetIdID of the tracklet.
[in]streamIdStream that owns the tracklet.
[in]trackletTracklet to project.
[in]overrideShadowAgeShadow age to use when non-negative; a negative value counts INACTIVE frames at the tail.
Returns
Projected trajectory points.

◆ detectMotion() [1/2]

const bool NvTrajectoryManager::detectMotion ( const Eigen::Vector2f &  vec,
float  threshold 
)
protected

Detect if a tracklet is in motion, that is, if its speed is at least the threshold.

Parameters
[in]vecVelocity vector of the tracklet.
[in]thresholdMinimum speed treated as motion.
Returns
True when the vector speed is at least the threshold.

◆ detectMotion() [2/2]

const bool NvTrajectoryManager::detectMotion ( const Eigen::Vector2f &  vec,
float  threshold 
)
protected

Detect if a tracklet is in motion, that is, if its speed is at least the threshold.

Parameters
[in]vecVelocity vector of the tracklet.
[in]thresholdMinimum speed treated as motion.
Returns
True when the vector speed is at least the threshold.

◆ dumpTrajectoryIntoFile() [1/2]

void NvTrajectoryManager::dumpTrajectoryIntoFile ( const NvMOTStreamId  streamId,
const TargetId  targetId,
const Trajectory4Archive &  traj 
)
protected

Dump the trajectory data into a file in a specified format.

Parameters
[in]streamIdStream that owns the trajectory.
[in]targetIdID of the trajectory to dump.
[in]trajArchived trajectory to write.

◆ dumpTrajectoryIntoFile() [2/2]

void NvTrajectoryManager::dumpTrajectoryIntoFile ( const NvMOTStreamId  streamId,
const TargetId  targetId,
const Trajectory4Archive &  traj 
)
protected

Dump the trajectory data into a file in a specified format.

Parameters
[in]streamIdStream that owns the trajectory.
[in]targetIdID of the trajectory to dump.
[in]trajArchived trajectory to write.

◆ findArchiveMatch4ReAssoc() [1/2]

bool NvTrajectoryManager::findArchiveMatch4ReAssoc ( const std::shared_ptr< NvTrackedObject >  newTarget)
protected

Fallback re-association against terminated tracks in m_trajectoryArchive.

Parameters
[in]newTargetNewly appearing track needing an ID.
Returns
True if a match above minMatchingScore4Overall was found.

◆ findArchiveMatch4ReAssoc() [2/2]

bool NvTrajectoryManager::findArchiveMatch4ReAssoc ( const std::shared_ptr< NvTrackedObject >  newTarget)
protected

Fallback re-association against terminated tracks in m_trajectoryArchive.

Parameters
[in]newTargetNewly appearing track needing an ID.
Returns
True if a match above minMatchingScore4Overall was found.

◆ findMatch4ReAssoc() [1/2]

bool NvTrajectoryManager::findMatch4ReAssoc ( const std::shared_ptr< NvTrackedObject >  target,
std::shared_ptr< NvTrackedObject > &  bestMatchPeer 
)
protected

Find the best live projected-trajectory match for a target.

Parameters
[in]targetTarget to reassociate.
[out]bestMatchPeerBest matching peer target.
Returns
True when a match meets the reassociation threshold.

◆ findMatch4ReAssoc() [2/2]

bool NvTrajectoryManager::findMatch4ReAssoc ( const std::shared_ptr< NvTrackedObject >  target,
std::shared_ptr< NvTrackedObject > &  bestMatchPeer 
)
protected

Find the best live projected-trajectory match for a target.

Parameters
[in]targetTarget to reassociate.
[out]bestMatchPeerBest matching peer target.
Returns
True when a match meets the reassociation threshold.

◆ fuseArchivedTracklets() [1/2]

void NvTrajectoryManager::fuseArchivedTracklets ( const uint64_t  targetId,
const uint64_t  peerId,
std::map< uint64_t, Trajectory4Archive > &  tracklets 
)
protected

Fuse the peer's tracklet into the target's.

Parameters
[in]targetIdID of the tracklet that is kept.
[in]peerIdID of the peer tracklet that is merged in.
[in,out]trackletsArchived tracklets; the kept tracklet is replaced by the fused result.

◆ fuseArchivedTracklets() [2/2]

void NvTrajectoryManager::fuseArchivedTracklets ( const uint64_t  targetId,
const uint64_t  peerId,
std::map< uint64_t, Trajectory4Archive > &  tracklets 
)
protected

Fuse the peer's tracklet into the target's.

Parameters
[in]targetIdID of the tracklet that is kept.
[in]peerIdID of the peer tracklet that is merged in.
[in,out]trackletsArchived tracklets; the kept tracklet is replaced by the fused result.

◆ fuseTracklets() [1/2]

void NvTrajectoryManager::fuseTracklets ( std::shared_ptr< NvTrackedObject >  targetToBeKept,
std::shared_ptr< NvTrackedObject >  targetToBeFused 
)
protected

Fuse two tracklets.

Parameters
[in]targetToBeKeptTrack that is kept and receives the fused trajectory.
[in]targetToBeFusedTrack whose trajectory is copied into the kept track.

◆ fuseTracklets() [2/2]

void NvTrajectoryManager::fuseTracklets ( std::shared_ptr< NvTrackedObject >  targetToBeKept,
std::shared_ptr< NvTrackedObject >  targetToBeFused 
)
protected

Fuse two tracklets.

Parameters
[in]targetToBeKeptTrack that is kept and receives the fused trajectory.
[in]targetToBeFusedTrack whose trajectory is copied into the kept track.

◆ generateNewTargetID() [1/2]

const uint64_t NvTrajectoryManager::generateNewTargetID ( )
protected

Generate a thread-safe target ID according to the configured ID mode.

◆ generateNewTargetID() [2/2]

const uint64_t NvTrajectoryManager::generateNewTargetID ( )
protected

Generate a thread-safe target ID according to the configured ID mode.

◆ generateTrackedObjects4ReidPerStream() [1/2]

virtual std::deque<DetectedObjInfo> NvTrajectoryManager::generateTrackedObjects4ReidPerStream ( const NvMOTStreamId  streamId,
const NvTrackedObjectList &  targetList 
)
virtual

Generate target detections that require ReID extraction for one stream.

Parameters
[in]streamIdSource stream identifier.
[in]targetListTracked targets to inspect.

◆ generateTrackedObjects4ReidPerStream() [2/2]

virtual std::deque<DetectedObjInfo> NvTrajectoryManager::generateTrackedObjects4ReidPerStream ( const NvMOTStreamId  streamId,
const NvTrackedObjectList &  targetList 
)
virtual

Generate target detections that require ReID extraction for one stream.

Parameters
[in]streamIdSource stream identifier.
[in]targetListTracked targets to inspect.

◆ getArchivedTrajectory() [1/2]

const Trajectory4Archive& NvTrajectoryManager::getArchivedTrajectory ( const NvMOTStreamId  videoStreamId,
const uint64_t  targetId 
)
inline

Return an archived trajectory by stream and target ID.

Parameters
[in]videoStreamIdSource stream identifier.
[in]targetIdTarget ID.

Definition at line 323 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References m_trajectoryArchive.

◆ getArchivedTrajectory() [2/2]

const Trajectory4Archive& NvTrajectoryManager::getArchivedTrajectory ( const NvMOTStreamId  videoStreamId,
const uint64_t  targetId 
)
inline

Return an archived trajectory by stream and target ID.

Parameters
[in]videoStreamIdSource stream identifier.
[in]targetIdTarget ID.

Definition at line 323 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References m_trajectoryArchive.

◆ getDumpDetectorBboxes() [1/2]

const bool NvTrajectoryManager::getDumpDetectorBboxes ( )
inline

◆ getDumpDetectorBboxes() [2/2]

const bool NvTrajectoryManager::getDumpDetectorBboxes ( )
inline

◆ getMinVisibility4TrajDump() [1/2]

const float NvTrajectoryManager::getMinVisibility4TrajDump ( )
inline

Return the minimum visibility required for trajectory dumping.

Definition at line 332 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References NvTrackerParamsTrajectoryManager::m_minVisibility4TrajDump, and m_params.

◆ getMinVisibility4TrajDump() [2/2]

const float NvTrajectoryManager::getMinVisibility4TrajDump ( )
inline

Return the minimum visibility required for trajectory dumping.

Definition at line 332 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References NvTrackerParamsTrajectoryManager::m_minVisibility4TrajDump, and m_params.

◆ getParams() [1/2]

const NvTrackerParamsTrajectoryManager NvTrajectoryManager::getParams ( )
inline

Return a copy of trajectory-manager parameters.

Definition at line 329 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References m_params.

◆ getParams() [2/2]

const NvTrackerParamsTrajectoryManager NvTrajectoryManager::getParams ( )
inline

Return a copy of trajectory-manager parameters.

Definition at line 329 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References m_params.

◆ getTrimmedTraj4ReAssoc() [1/2]

virtual std::list<TargetInfo> NvTrajectoryManager::getTrimmedTraj4ReAssoc ( const std::list< TargetInfo > &  newTraj,
const std::list< TargetInfo > &  peerTraj,
const NvMOTFrameNum  lastTrackedFrameNum_peer 
)
protectedvirtual

Get the trimmed new trajectory for reassociation with peer trajectory.

Parameters
[in]newTrajTrajectory to be trimmed.
[in]peerTrajPeer trajectory to reassociate against.
[in]lastTrackedFrameNum_peerLast tracked frame number of the peer.
Returns
The trimmed new trajectory.

◆ getTrimmedTraj4ReAssoc() [2/2]

virtual std::list<TargetInfo> NvTrajectoryManager::getTrimmedTraj4ReAssoc ( const std::list< TargetInfo > &  newTraj,
const std::list< TargetInfo > &  peerTraj,
const NvMOTFrameNum  lastTrackedFrameNum_peer 
)
protectedvirtual

Get the trimmed new trajectory for reassociation with peer trajectory.

Parameters
[in]newTrajTrajectory to be trimmed.
[in]peerTrajPeer trajectory to reassociate against.
[in]lastTrackedFrameNum_peerLast tracked frame number of the peer.
Returns
The trimmed new trajectory.

◆ peekNewTargetID() [1/2]

const uint64_t NvTrajectoryManager::peekNewTargetID ( ) const
protected

Return the next target ID without consuming it.

◆ peekNewTargetID() [2/2]

const uint64_t NvTrajectoryManager::peekNewTargetID ( ) const
protected

Return the next target ID without consuming it.

◆ processTrajectory() [1/2]

bool NvTrajectoryManager::processTrajectory ( const uint64_t  targetId,
const NvMOTStreamId  streamId,
std::list< TargetInfo > &  tracklet 
)
protected

Trim the tracklet by removing the last un-validated trajectory points.

Parameters
[in]targetIdID of the tracklet.
[in]streamIdStream that owns the tracklet.
[in,out]trackletTracklet trimmed in place by removing unvalidated tail points.
Returns
True when the tracklet is valid to archive.

◆ processTrajectory() [2/2]

bool NvTrajectoryManager::processTrajectory ( const uint64_t  targetId,
const NvMOTStreamId  streamId,
std::list< TargetInfo > &  tracklet 
)
protected

Trim the tracklet by removing the last un-validated trajectory points.

Parameters
[in]targetIdID of the tracklet.
[in]streamIdStream that owns the tracklet.
[in,out]trackletTracklet trimmed in place by removing unvalidated tail points.
Returns
True when the tracklet is valid to archive.

◆ purgeArchivedTrajectories() [1/2]

void NvTrajectoryManager::purgeArchivedTrajectories ( )

Purge all archived trajectories.

◆ purgeArchivedTrajectories() [2/2]

void NvTrajectoryManager::purgeArchivedTrajectories ( )

Purge all archived trajectories.

◆ removeFromProjectedTrajectoryDB() [1/2]

void NvTrajectoryManager::removeFromProjectedTrajectoryDB ( std::shared_ptr< NvTrackedObject >  target)
protected

Remove from the projected trajectory DB.

Parameters
[in]targetTrack to remove from the projected trajectory database.

◆ removeFromProjectedTrajectoryDB() [2/2]

void NvTrajectoryManager::removeFromProjectedTrajectoryDB ( std::shared_ptr< NvTrackedObject >  target)
protected

Remove from the projected trajectory DB.

Parameters
[in]targetTrack to remove from the projected trajectory database.

◆ resetIDs() [1/2]

void NvTrajectoryManager::resetIDs ( )
inline

Reset the unique-ID generator with a new random prefix.

Definition at line 276 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References m_uidGenerator, and UIDGenerator::reset().

◆ resetIDs() [2/2]

void NvTrajectoryManager::resetIDs ( )
inline

Reset the unique-ID generator with a new random prefix.

Definition at line 276 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

References m_uidGenerator, and UIDGenerator::reset().

◆ setMultiViewAssociators() [1/2]

void NvTrajectoryManager::setMultiViewAssociators ( std::map< NvMOTStreamId, std::shared_ptr< IMultiViewAssociator >>  multiViewAssociators)

Set the multi-view associators.

Parameters
[in]multiViewAssociatorsPer-stream multi-view associators.

◆ setMultiViewAssociators() [2/2]

void NvTrajectoryManager::setMultiViewAssociators ( std::map< NvMOTStreamId, std::shared_ptr< IMultiViewAssociator >>  multiViewAssociators)

Set the multi-view associators.

Parameters
[in]multiViewAssociatorsPer-stream multi-view associators.

◆ setSrcFrameInfo() [1/2]

void NvTrajectoryManager::setSrcFrameInfo ( const NvMotDataTypes::Rect2f  originalSrcImageBox,
const NvMotDataTypes::Rect2f  srcImageBox 
)

Set source-frame geometry used for trajectory output.

Parameters
[in]originalSrcImageBoxOriginal source image bounds.
[in]srcImageBoxTracker source image bounds.

◆ setSrcFrameInfo() [2/2]

void NvTrajectoryManager::setSrcFrameInfo ( const NvMotDataTypes::Rect2f  originalSrcImageBox,
const NvMotDataTypes::Rect2f  srcImageBox 
)

Set source-frame geometry used for trajectory output.

Parameters
[in]originalSrcImageBoxOriginal source image bounds.
[in]srcImageBoxTracker source image bounds.

◆ try3DReAssoc() [1/2]

bool NvTrajectoryManager::try3DReAssoc ( const std::shared_ptr< NvTrackedObject >  newTarget)
protected

Perform archive-only world-distance and frame-gap re-association.

Searches m_trajectoryArchive for terminated tracks within maxFrameGap4WorldDistReAssoc whose last valid world foot point is within maxWorldDist4ArchiveReAssoc of the new track and whose bbox similarity is at least 0.5.

Parameters
[in]newTargetNewly appearing track needing an ID.
Returns
True if a match above minMatchingScore4Overall was found.

◆ try3DReAssoc() [2/2]

bool NvTrajectoryManager::try3DReAssoc ( const std::shared_ptr< NvTrackedObject >  newTarget)
protected

Perform archive-only world-distance and frame-gap re-association.

Searches m_trajectoryArchive for terminated tracks within maxFrameGap4WorldDistReAssoc whose last valid world foot point is within maxWorldDist4ArchiveReAssoc of the new track and whose bbox similarity is at least 0.5.

Parameters
[in]newTargetNewly appearing track needing an ID.
Returns
True if a match above minMatchingScore4Overall was found.

◆ tryReAssoc() [1/2]

bool NvTrajectoryManager::tryReAssoc ( const std::shared_ptr< NvTrackedObject >  target,
std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject >> &  toBeFused 
)
protected

Try to perform the re-assoc with the targets in the temporary DB that stores projected trajectories.

Parameters
[in]targetTarget to reassociate.
[out]toBeFusedMap from a terminated target to its peer.
Returns
True when reassociation succeeds.

◆ tryReAssoc() [2/2]

bool NvTrajectoryManager::tryReAssoc ( const std::shared_ptr< NvTrackedObject >  target,
std::map< std::shared_ptr< NvTrackedObject >, std::shared_ptr< NvTrackedObject >> &  toBeFused 
)
protected

Try to perform the re-assoc with the targets in the temporary DB that stores projected trajectories.

Parameters
[in]targetTarget to reassociate.
[out]toBeFusedMap from a terminated target to its peer.
Returns
True when reassociation succeeds.

◆ updateParams() [1/2]

void NvTrajectoryManager::updateParams ( const YAML::Node &  fn)

Update dynamic parameters during runtime.

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

◆ updateParams() [2/2]

void NvTrajectoryManager::updateParams ( const YAML::Node &  fn)

Update dynamic parameters during runtime.

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

◆ updateStreamIds() [1/2]

void NvTrajectoryManager::updateStreamIds ( const std::vector< NvMOTStreamId > &  streamIdsToAdd = {},
const std::vector< NvMOTStreamId > &  streamIdsToDel = {} 
)

Update per-stream trajectory state when streams are added or removed.

Parameters
[in]streamIdsToAddStream identifiers to add.
[in]streamIdsToDelStream identifiers to remove.

◆ updateStreamIds() [2/2]

void NvTrajectoryManager::updateStreamIds ( const std::vector< NvMOTStreamId > &  streamIdsToAdd = {},
const std::vector< NvMOTStreamId > &  streamIdsToDel = {} 
)

Update per-stream trajectory state when streams are added or removed.

Parameters
[in]streamIdsToAddStream identifiers to add.
[in]streamIdsToDelStream identifiers to remove.

Field Documentation

◆ m_configFilePath

const std::string NvTrajectoryManager::m_configFilePath
protected

◆ m_fileTrajectoryDump

std::map< NvMOTStreamId, std::ofstream > NvTrajectoryManager::m_fileTrajectoryDump
protected

Per-stream trajectory dump file, accessed only on the main thread.

Definition at line 346 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

◆ m_isFileTrajectoryDumpCreated

std::map< NvMOTStreamId, bool > NvTrajectoryManager::m_isFileTrajectoryDumpCreated
protected

Post-processing: dump trajectories into a file: only accessed in main thread.

Definition at line 345 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

◆ m_isOffline

bool NvTrajectoryManager::m_isOffline = false
protected

Boolean to indicate if the trajectory manager is used for offline processing.

Definition at line 360 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

◆ m_multiViewAssociators

std::map< NvMOTStreamId, std::shared_ptr< IMultiViewAssociator > > NvTrajectoryManager::m_multiViewAssociators
protected

◆ m_params

NvTrackerParamsTrajectoryManager NvTrajectoryManager::m_params
protected

◆ m_projectedTrajectories

std::map< NvMOTStreamId, std::shared_ptr< ProjectedTrajectoryList > > NvTrajectoryManager::m_projectedTrajectories
protected

Temporary buffer of the projected trajectories to be re-associated.

Definition at line 343 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

◆ m_stats

struct NvTrajectoryManager::ReAssocStats NvTrajectoryManager::m_stats
protected

Stores trajectory-reassociation counters.

◆ m_trackedObjectsReidInd

std::map< NvMOTStreamId, std::shared_ptr< TrackedObjectsReidIndList > > NvTrajectoryManager::m_trackedObjectsReidInd
protected

◆ m_trajectoryArchive

std::map< NvMOTStreamId, std::shared_ptr< Trajectory4ArchiveList > > NvTrajectoryManager::m_trajectoryArchive
protected

Archive of past trajectories up to a configured age, modified on the main thread and read by workers.

Definition at line 342 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

Referenced by getArchivedTrajectory().

◆ m_trajProjector

std::map< NvMOTStreamId, std::shared_ptr< IEstimator2 > > NvTrajectoryManager::m_trajProjector
protected

Per-stream state estimator used to project trajectories for re-association.

Definition at line 349 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.

◆ m_uidGenerator

UIDGenerator NvTrajectoryManager::m_uidGenerator
protected

◆ m_usedPeerTargetIds

std::map< uint64_t, NvMOTFrameNum > NvTrajectoryManager::m_usedPeerTargetIds
protected

Claimed peer target id mapped to the frame of the claim.

The claim blocks reuse for m_maxAge4TrackletArchiving frames.

Definition at line 353 of file sources/libs/nvmultiobjecttracker/include/modules/TrajectoryManager/NvTrajectoryManager.hpp.


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