Coordinates tracker submodules to process batched multi-stream input.
Definition at line 89 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
Public Member Functions | |
| NvMultiObjectTrackerBase (const std::string &configFilePath) | |
| Constructor. More... | |
| ~NvMultiObjectTrackerBase () | |
| Release the tracker submodules. More... | |
| bool | isInitialized () |
| Report whether the tracker is initialized. More... | |
| virtual void | initialize (const NvMotDataTypes::Size srcImgSize, const size_t srcImgPitch) |
| Initialize variables and allocate memories. More... | |
| virtual void | update (const std::map< NvMOTStreamId, NvMOTFrame * > &nvFramesInBatch, NvMOTTrackedObjBatch *&pTrackedObjectsBatch) |
| Perform multi-object tracking for a batch of frames from multiple streams, with at most one frame per stream. More... | |
| void | queryParams (NvMOTQuery ¶msQuery) |
| Populate tracker capability and memory requirement fields. More... | |
| void | outputPastFrameObjs (const std::set< NvMOTStreamId > videoStreamIdList, NvDsTargetMiscDataBatch *&pPastFrameObjBatch) |
| Output past-frame tracking data to tracker plugin and clear the buffer. More... | |
| void | outputTerminatedObjs (const std::set< NvMOTStreamId > videoStreamIdList, NvDsTargetMiscDataBatch *&pPastFrameObjBatch) |
| Output complete frame history for all terminated tracks to the plugin. More... | |
| void | outputShadowObj (const std::set< NvMOTStreamId > videoStreamIdList, NvDsTargetMiscDataBatch *&pShadowTracksBatch) |
| Output most recent frame history for current shadow tracks to the plugin. More... | |
| void | deleteRemovedStreamTrackers (const NvMOTStreamId videoStreamID) |
| Delete trackers when a stream is removed. More... | |
| void | updateParams (const std::string &configStr) |
| Apply supported runtime tracker configuration updates. More... | |
| NvBufSurfaceColorFormat | getColorFormatType () const |
| Return the configured input surface color format. More... | |
| void | setColorFormatType (const NvBufSurfaceColorFormat colorFormat) |
| Set the input surface color format. More... | |
| uint32_t | getMaxStreams () const |
| Return the maximum number of supported streams. More... | |
| void | setMaxStreams (const uint32_t maxStreams) |
| Set the maximum number of supported streams. More... | |
| void | setMaxBufSurfAddrSize (const uint32_t maxBufSurfAddrSize) |
| Set the maximum surface-buffer address pool size. More... | |
| NvMultiObjectTrackerBase (const std::string &configFilePath) | |
| Constructor. More... | |
| ~NvMultiObjectTrackerBase () | |
| Release the tracker submodules. More... | |
| bool | isInitialized () |
| Report whether the tracker is initialized. More... | |
| virtual void | initialize (const NvMotDataTypes::Size srcImgSize, const size_t srcImgPitch) |
| Initialize variables and allocate memories. More... | |
| virtual void | update (const std::map< NvMOTStreamId, NvMOTFrame * > &nvFramesInBatch, NvMOTTrackedObjBatch *&pTrackedObjectsBatch) |
| Perform multi-object tracking for a batch of frames from multiple streams, with at most one frame per stream. More... | |
| void | queryParams (NvMOTQuery ¶msQuery) |
| Populate tracker capability and memory requirement fields. More... | |
| void | outputPastFrameObjs (const std::set< NvMOTStreamId > videoStreamIdList, NvDsTargetMiscDataBatch *&pPastFrameObjBatch) |
| Output past-frame tracking data to tracker plugin and clear the buffer. More... | |
| void | outputTerminatedObjs (const std::set< NvMOTStreamId > videoStreamIdList, NvDsTargetMiscDataBatch *&pPastFrameObjBatch) |
| Output complete frame history for all terminated tracks to the plugin. More... | |
| void | outputShadowObj (const std::set< NvMOTStreamId > videoStreamIdList, NvDsTargetMiscDataBatch *&pShadowTracksBatch) |
| Output most recent frame history for current shadow tracks to the plugin. More... | |
| void | deleteRemovedStreamTrackers (const NvMOTStreamId videoStreamID) |
| Delete trackers when a stream is removed. More... | |
| void | updateParams (const std::string &configStr) |
| Apply supported runtime tracker configuration updates. More... | |
| NvBufSurfaceColorFormat | getColorFormatType () const |
| Return the configured input surface color format. More... | |
| void | setColorFormatType (const NvBufSurfaceColorFormat colorFormat) |
| Set the input surface color format. More... | |
| uint32_t | getMaxStreams () const |
| Return the maximum number of supported streams. More... | |
| void | setMaxStreams (const uint32_t maxStreams) |
| Set the maximum number of supported streams. More... | |
| void | setMaxBufSurfAddrSize (const uint32_t maxBufSurfAddrSize) |
| Set the maximum surface-buffer address pool size. More... | |
Protected Member Functions | |
| void | initializeSubModules () |
| Initialize the sub-modules. More... | |
| void | addStreamSubModulesRuntime () |
| Add per stream submodules runtime whenever there is a new stream coming in. More... | |
| bool | checkInputOutput (const std::map< NvMOTStreamId, NvMOTFrame * > &nvFramesInBatch, NvMOTTrackedObjBatch *&pTrackedObjectsBatch) |
| Check the input and output for the update function. More... | |
| void | parseInputMetadata () |
| Parse and filter the input metadata and store only valid detected objects. More... | |
| void | recoverFullBbox () |
| Recover the full bbox if 3D camera params are provided. More... | |
| void | performDataAssociationAndUpdate () |
| Submit all streams' objects from main thread to each working thread to perform data association, update and re-association. More... | |
| void | performDataAssociationAndUpdatePerStream (assocDataIn_t in) |
| Function called in each thread to perform each stream's data association and update. More... | |
| void | setOutputData (NvMOTTrackedObjBatch *&pTrackedObjectsBatch) |
| Fill out the output metadata. More... | |
| void | wrapUpProcessingFrameBatch () |
| Advance batch state and emit optional debug output. More... | |
| void | initializeSubModules () |
| Initialize the sub-modules. More... | |
| void | addStreamSubModulesRuntime () |
| Add per stream submodules runtime whenever there is a new stream coming in. More... | |
| bool | checkInputOutput (const std::map< NvMOTStreamId, NvMOTFrame * > &nvFramesInBatch, NvMOTTrackedObjBatch *&pTrackedObjectsBatch) |
| Check the input and output for the update function. More... | |
| void | parseInputMetadata () |
| Parse and filter the input metadata and store only valid detected objects. More... | |
| void | recoverFullBbox () |
| Recover the full bbox if 3D camera params are provided. More... | |
| void | performDataAssociationAndUpdate () |
| Submit all streams' objects from main thread to each working thread to perform data association, update and re-association. More... | |
| void | performDataAssociationAndUpdatePerStream (assocDataIn_t in) |
| Function called in each thread to perform each stream's data association and update. More... | |
| void | setOutputData (NvMOTTrackedObjBatch *&pTrackedObjectsBatch) |
| Fill out the output metadata. More... | |
| void | wrapUpProcessingFrameBatch () |
| Advance batch state and emit optional debug output. More... | |
Protected Attributes | |
| NvTrackerParamsBase | m_paramsBase |
| Configuration parameters used by the base tracker. More... | |
| const std::string | m_configFilePath |
| Path to the tracker configuration file. More... | |
| SourceFrameInfo | m_frameInfo |
| Source video frame information. More... | |
| std::map< NvMOTStreamId, NvMOTFrame * > | m_inputMeta |
| Input frame metadata keyed by stream ID. More... | |
| std::map< NvMOTStreamId, std::deque< DetectedObjInfo > > | m_detectedObjects |
| Valid detected objects obtained from the input metadata. More... | |
| std::shared_ptr< NvTrackedObjectManager > | m_targets |
| Targets in use and in the object pool. More... | |
| std::shared_ptr< IDataAssociator > | m_dataAssociator |
| Data association module. More... | |
| std::shared_ptr< IVisualTracker > | m_visualTracker |
| Visual tracker module for target localization. More... | |
| std::shared_ptr< IReID > | m_reid |
| ReID module. More... | |
| std::shared_ptr< ISegmenter > | m_segmenter |
| Object segmentation module. More... | |
| std::shared_ptr< IPoseEstimator > | m_poseEstimator |
| Pose estimation module. More... | |
| std::shared_ptr< IReIDService > | m_reidService |
| Re-ID Service module. More... | |
| std::map< const NvMOTStreamId, std::shared_ptr< ObjectModelProjector > > | m_objModelProjectors |
| Refine bbox based on 3D object model. More... | |
| std::shared_ptr< NvTrackerMultiThreadWorker< assocDataIn_t > > | m_threadWorker |
| Multi-threaded producer-consumer for stream specific tasks. More... | |
| bool | m_isInit |
| Indicates whether the base tracker is initialized. More... | |
| bool | m_isInitSubModules |
| Indicates whether all tracker submodules are initialized. More... | |
| REID4REASSOC_STATE | m_reid4ReAssocState |
| Indicates whether per-stream input must be resubmitted for ReID-based reassociation. More... | |
Friends | |
| class | NvTrackedObject |
| NvMultiObjectTrackerBase::NvMultiObjectTrackerBase | ( | const std::string & | configFilePath | ) |
Constructor.
| [in] | configFilePath | Path to the tracker configuration file. |
| NvMultiObjectTrackerBase::~NvMultiObjectTrackerBase | ( | ) |
Release the tracker submodules.
| NvMultiObjectTrackerBase::NvMultiObjectTrackerBase | ( | const std::string & | configFilePath | ) |
Constructor.
| [in] | configFilePath | Path to the tracker configuration file. |
| NvMultiObjectTrackerBase::~NvMultiObjectTrackerBase | ( | ) |
Release the tracker submodules.
|
protected |
Add per stream submodules runtime whenever there is a new stream coming in.
|
protected |
Add per stream submodules runtime whenever there is a new stream coming in.
|
protected |
Check the input and output for the update function.
| [in] | nvFramesInBatch | Input frames and detector objects keyed by stream ID. |
| [in,out] | pTrackedObjectsBatch | Caller-allocated batch whose filled counts are cleared before tracking. |
|
protected |
Check the input and output for the update function.
| [in] | nvFramesInBatch | Input frames and detector objects keyed by stream ID. |
| [in,out] | pTrackedObjectsBatch | Caller-allocated batch whose filled counts are cleared before tracking. |
|
virtual |
Delete trackers when a stream is removed.
| [in] | videoStreamID | Stream ID whose trackers are removed. |
Implements IBatchLocalizer.
|
virtual |
Delete trackers when a stream is removed.
| [in] | videoStreamID | Stream ID whose trackers are removed. |
Implements IBatchLocalizer.
|
inline |
Return the configured input surface color format.
Definition at line 164 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References SourceFrameInfo::colorFormat, and m_frameInfo.
|
inline |
Return the configured input surface color format.
Definition at line 164 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References SourceFrameInfo::colorFormat, and m_frameInfo.
|
inline |
Return the maximum number of supported streams.
Definition at line 173 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_frameInfo, and SourceFrameInfo::maxStreams.
|
inline |
Return the maximum number of supported streams.
Definition at line 173 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_frameInfo, and SourceFrameInfo::maxStreams.
|
virtual |
Initialize variables and allocate memories.
| [in] | srcImgSize | Source image size. |
| [in] | srcImgPitch | Source image row pitch in bytes. |
Implements IBatchLocalizer.
|
virtual |
Initialize variables and allocate memories.
| [in] | srcImgSize | Source image size. |
| [in] | srcImgPitch | Source image row pitch in bytes. |
Implements IBatchLocalizer.
|
protected |
Initialize the sub-modules.
|
protected |
Initialize the sub-modules.
|
inlinevirtual |
Report whether the tracker is initialized.
Implements IBatchLocalizer.
Definition at line 102 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_isInit.
|
inlinevirtual |
Report whether the tracker is initialized.
Implements IBatchLocalizer.
Definition at line 102 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_isInit.
|
virtual |
Output past-frame tracking data to tracker plugin and clear the buffer.
| [in] | videoStreamIdList | Stream IDs whose past-frame tracking data is reported. |
| [in,out] | pPastFrameObjBatch | Caller-allocated batch that receives the past-frame objects. |
Implements IBatchLocalizer.
|
virtual |
Output past-frame tracking data to tracker plugin and clear the buffer.
| [in] | videoStreamIdList | Stream IDs whose past-frame tracking data is reported. |
| [in,out] | pPastFrameObjBatch | Caller-allocated batch that receives the past-frame objects. |
Implements IBatchLocalizer.
|
virtual |
Output most recent frame history for current shadow tracks to the plugin.
| [in] | videoStreamIdList | Stream IDs whose shadow tracks are reported. |
| [in,out] | pShadowTracksBatch | Caller-allocated batch that receives the latest shadow-track frame. |
Implements IBatchLocalizer.
|
virtual |
Output most recent frame history for current shadow tracks to the plugin.
| [in] | videoStreamIdList | Stream IDs whose shadow tracks are reported. |
| [in,out] | pShadowTracksBatch | Caller-allocated batch that receives the latest shadow-track frame. |
Implements IBatchLocalizer.
|
virtual |
Output complete frame history for all terminated tracks to the plugin.
| [in] | videoStreamIdList | Stream IDs whose terminated tracks are reported. |
| [in,out] | pPastFrameObjBatch | Caller-allocated batch that receives the terminated-track history. |
Implements IBatchLocalizer.
|
virtual |
Output complete frame history for all terminated tracks to the plugin.
| [in] | videoStreamIdList | Stream IDs whose terminated tracks are reported. |
| [in,out] | pPastFrameObjBatch | Caller-allocated batch that receives the terminated-track history. |
Implements IBatchLocalizer.
|
protected |
Parse and filter the input metadata and store only valid detected objects.
|
protected |
Parse and filter the input metadata and store only valid detected objects.
|
protected |
Submit all streams' objects from main thread to each working thread to perform data association, update and re-association.
|
protected |
Submit all streams' objects from main thread to each working thread to perform data association, update and re-association.
|
protected |
Function called in each thread to perform each stream's data association and update.
| [in] | in | Association input for one stream. |
|
protected |
Function called in each thread to perform each stream's data association and update.
| [in] | in | Association input for one stream. |
|
virtual |
Populate tracker capability and memory requirement fields.
| [out] | paramsQuery | Query structure populated with tracker requirements. |
Implements IBatchLocalizer.
|
virtual |
Populate tracker capability and memory requirement fields.
| [out] | paramsQuery | Query structure populated with tracker requirements. |
Implements IBatchLocalizer.
|
protected |
Recover the full bbox if 3D camera params are provided.
|
protected |
Recover the full bbox if 3D camera params are provided.
|
inline |
Set the input surface color format.
| [in] | colorFormat | Input surface color format. |
Definition at line 170 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References SourceFrameInfo::colorFormat, and m_frameInfo.
|
inline |
Set the input surface color format.
| [in] | colorFormat | Input surface color format. |
Definition at line 170 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References SourceFrameInfo::colorFormat, and m_frameInfo.
|
inline |
Set the maximum surface-buffer address pool size.
| [in] | maxBufSurfAddrSize | Maximum number of surface-buffer addresses. |
Definition at line 185 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_frameInfo, and SourceFrameInfo::maxBufSurfAddrSize.
|
inline |
Set the maximum surface-buffer address pool size.
| [in] | maxBufSurfAddrSize | Maximum number of surface-buffer addresses. |
Definition at line 185 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_frameInfo, and SourceFrameInfo::maxBufSurfAddrSize.
|
inline |
Set the maximum number of supported streams.
| [in] | maxStreams | Maximum number of supported streams. |
Definition at line 179 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_frameInfo, and SourceFrameInfo::maxStreams.
|
inline |
Set the maximum number of supported streams.
| [in] | maxStreams | Maximum number of supported streams. |
Definition at line 179 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
References m_frameInfo, and SourceFrameInfo::maxStreams.
|
protected |
Fill out the output metadata.
| [in,out] | pTrackedObjectsBatch | Caller-allocated batch filled with tracked objects for this frame batch. |
|
protected |
Fill out the output metadata.
| [in,out] | pTrackedObjectsBatch | Caller-allocated batch filled with tracked objects for this frame batch. |
|
virtual |
Perform multi-object tracking for a batch of frames from multiple streams, with at most one frame per stream.
| [in] | nvFramesInBatch | Source frames and detector bboxes keyed by video stream ID. |
| [in,out] | pTrackedObjectsBatch | Caller-allocated batch filled with tracked objects for this frame batch. |
Implements IBatchLocalizer.
|
virtual |
Perform multi-object tracking for a batch of frames from multiple streams, with at most one frame per stream.
| [in] | nvFramesInBatch | Source frames and detector bboxes keyed by video stream ID. |
| [in,out] | pTrackedObjectsBatch | Caller-allocated batch filled with tracked objects for this frame batch. |
Implements IBatchLocalizer.
|
virtual |
Apply supported runtime tracker configuration updates.
| [in] | configStr | Stringified YAML configuration parameters to update. |
Implements IBatchLocalizer.
|
virtual |
Apply supported runtime tracker configuration updates.
| [in] | configStr | Stringified YAML configuration parameters to update. |
Implements IBatchLocalizer.
|
protected |
Advance batch state and emit optional debug output.
|
protected |
Advance batch state and emit optional debug output.
|
friend |
Definition at line 271 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Path to the tracker configuration file.
Definition at line 194 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Data association module.
Definition at line 205 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Valid detected objects obtained from the input metadata.
Definition at line 199 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Source video frame information.
Definition at line 197 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
Referenced by getColorFormatType(), getMaxStreams(), setColorFormatType(), setMaxBufSurfAddrSize(), and setMaxStreams().
|
protected |
Input frame metadata keyed by stream ID.
Definition at line 198 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Indicates whether the base tracker is initialized.
Definition at line 227 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
Referenced by isInitialized().
|
protected |
Indicates whether all tracker submodules are initialized.
Definition at line 228 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Refine bbox based on 3D object model.
Definition at line 223 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Configuration parameters used by the base tracker.
Definition at line 193 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Pose estimation module.
Definition at line 217 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
ReID module.
Definition at line 211 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Indicates whether per-stream input must be resubmitted for ReID-based reassociation.
Definition at line 229 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Re-ID Service module.
Definition at line 220 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Object segmentation module.
Definition at line 214 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Targets in use and in the object pool.
Definition at line 202 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Multi-threaded producer-consumer for stream specific tasks.
Definition at line 226 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.
|
protected |
Visual tracker module for target localization.
Definition at line 208 of file sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker.hpp.