NVIDIA DeepStream SDK API Reference

9.2 Release
sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef NVMULTIOBJECTTRACKERLIB_NVMULTIOBJECTTRACKER_COMMON_HPP_
19 #define NVMULTIOBJECTTRACKERLIB_NVMULTIOBJECTTRACKER_COMMON_HPP_
20 
21 #include "nvdstracker.h"
22 #include "nvds_tracker_meta.h"
23 
24 #include <vector>
25 #include <map>
26 #include <deque>
27 #include <queue>
28 #include <utility>
29 #include <memory>
30 #include <thread>
31 #include <mutex>
32 #include <condition_variable>
33 
34 #ifdef _WIN32
35 using uint = unsigned int;
36 #endif
37 
38 #include "modules/utility/cv_functions.hpp"
39 #include "modules/NvMultiObjectTracker/localizer.hpp"
40 
41 typedef uint64_t TargetId;
42 typedef uint32_t TrackerIndex;
44 
46 typedef std::string CamId;
47 
50 {
53  {
54  frameBatchNo = 0;
56  }
57 
58  // [Per-frame source parameters]
59  uint64_t frameBatchNo;
60  std::map<NvMOTStreamId, std::pair<uint32_t, bool>> isDetectionDonePerStream;
61 
62  // [Plugin configuration]
64  uint32_t maxStreams;
65  uint32_t maxBufSurfAddrSize;
68  size_t srcImagePitch;
69 };
70 
73 {
75  DetectedObjInfo(DetectedObjInfo&&) noexcept = default;
76 
78  DetectedObjInfo& operator=(DetectedObjInfo&&) noexcept = default;
79 
81  DetectedObjInfo(const DetectedObjInfo&) = default;
82 
84  DetectedObjInfo& operator=(const DetectedObjInfo&) = default;
85 
88  {
89  objIn = nullptr;
90  visibility = 1.f;
91  pt_img_feet << -1, -1;
92  pt_world_feet << -1, -1;
93  convexHull.clear();
95  }
96 
107  const NvMOTObjToTrack *objIn_, const uint16_t bboxInd_, NvMOTClassId classId_,
108  float confidence_, NvMotDataTypes::Rect2f bbox_, Eigen::Vector2f loc_
109  )
110  : objIn(objIn_),
111  bboxInd(bboxInd_),
112  classId(classId_),
113  confidence(confidence_),
114  bbox(bbox_),
115  origBbox(bbox_),
116  loc(loc_)
117  {
118  visibility = 1.f;
119  pt_img_feet << -1, -1;
120  pt_world_feet << -1, -1;
121  convexHull.clear();
122  }
123 
129  DetectedObjInfo(const NvMOTObjToTrack *objIn_, const uint16_t bboxInd_)
130  : objIn(objIn_), bboxInd(bboxInd_)
131  {
132  classId = objIn_->classId;
133  confidence = objIn_->confidence;
134  visibility = 1.f;
136  bbox = CV_FUNCS::constructRect2f(objIn_->bbox.x, objIn_->bbox.y, objIn_->bbox.width, objIn_->bbox.height);
137  origBbox = bbox;
139  pt_img_feet << -1, -1;
140  pt_world_feet << -1, -1;
141  convexHull.clear();
142  }
143 
145  uint16_t bboxInd;
147  float confidence;
148  float visibility;
149  float distFromCam;
152  Eigen::Vector2f loc;
153  Eigen::Vector2f pt_img_feet;
154  Eigen::Vector2f pt_world_feet;
155  std::vector<Eigen::Vector2f> convexHull;
156 };
157 
160 {
162  TargetInfo(TargetInfo&&) noexcept = default;
163 
165  TargetInfo& operator=(TargetInfo&&) noexcept = default;
166 
168  TargetInfo(const TargetInfo&) = default;
169 
171  TargetInfo& operator=(const TargetInfo&) = default;
172 
185  const DetectedObjInfo* detObjIn_ = nullptr, const NvMOTStreamId videoStreamId_ = 0,
186  const NvMOTFrameNum frameNum_ = 0, const uint16_t classId_ = 0,
187  const NvMotDataTypes::Rect2f bbox_ = NvMotDataTypes::Rect2f(), const NvMOTFrameNum age_ = 0,
188  const NvMOTFrameNum shadowAge_ = 0, const TRACKER_STATE state = TRACKER_STATE::EMPTY
189  )
190  {
191  matchedDetObjInfo = (DetectedObjInfo *) detObjIn_;
192 
193  videoStreamId = videoStreamId_;
194  frameNum = frameNum_;
195  classId = classId_;
196  tBbox = bbox_;
197  loc << float(tBbox.min()(0) + tBbox.sizes()(0)/2.f), float(tBbox.min()(1) + tBbox.sizes()(1)/2.f);
198  age = age_;
199 
200  shadowTrackingAge = shadowAge_;
201  trackerState = state;
202 
203  if(detObjIn_ != nullptr)
204  {
205  distFromCam = detObjIn_->distFromCam;
206  origBbox = detObjIn_->origBbox;
207  visibility = detObjIn_->visibility;
208  convexHull = detObjIn_->convexHull;
209  pt_img_feet = detObjIn_->pt_img_feet;
210  pt_world_feet = detObjIn_->pt_world_feet;
211  }
212  else
213  {
215  origBbox = bbox_;
216  visibility = 1.f;
217  convexHull.clear();
218  pt_img_feet << -1, -1;
219  pt_world_feet << -1, -1;
220  }
221  pt_world_feet_cov = Eigen::Matrix2f::Identity();
224  confidence = 0.5f;
226  height = 0.0f;
227  }
228 
236  void update(
237  const NvMOTFrameNum frameNum_, const DetectedObjInfo *detObjIn_,
238  const NvMotDataTypes::Rect2f bbox_, const float imgBorderCroppingVisibility_
239  )
240  {
241  matchedDetObjInfo = (DetectedObjInfo *) detObjIn_;
242 
243  frameNum = frameNum_;
244  classId = detObjIn_->classId;
245  tBbox = bbox_;
246  loc << float(tBbox.min()(0) + tBbox.sizes()(0)/2.f), float(tBbox.min()(1) + tBbox.sizes()(1)/2.f);
247  distFromCam = detObjIn_->distFromCam;
248  origBbox = detObjIn_->origBbox;
249  visibility = detObjIn_->visibility;
250  convexHull = detObjIn_->convexHull;
251  imgBorderCroppingVisibility = imgBorderCroppingVisibility_;
252  age++;
253 
254  pt_img_feet = detObjIn_->pt_img_feet;
255  pt_world_feet = detObjIn_->pt_world_feet;
256  }
257 
264  void update(
265  const NvMOTFrameNum frameNum_, const NvMotDataTypes::Rect2f bbox_, const float imgBorderCroppingVisibility_
266  )
267  {
268  matchedDetObjInfo = nullptr;
269 
270  frameNum = frameNum_;
271  tBbox = bbox_;
272  loc << float(tBbox.min()(0) + tBbox.sizes()(0)/2.f), float(tBbox.min()(1) + tBbox.sizes()(1)/2.f);
274  origBbox = bbox_;
275  visibility = 0.f;
276  imgBorderCroppingVisibility = imgBorderCroppingVisibility_;
277  age++;
278  }
279 
285  {
286  tBbox = bbox_;
287  loc << float(tBbox.min()(0) + tBbox.sizes()(0)/2.f), float(tBbox.min()(1) + tBbox.sizes()(1)/2.f);
288  }
289 
292  {
293  return (NvMOTObjToTrack *) (matchedDetObjInfo ? matchedDetObjInfo->objIn : nullptr);
294  }
295 
302  Eigen::Vector2f loc;
303  float confidence;
304  float distFromCam;
305  float height;
308  float visibility;
310  Eigen::Vector2f pt_img_feet;
311  Eigen::Vector2f pt_world_feet;
312  Eigen::Matrix2f pt_world_feet_cov;
313  std::vector<Eigen::Vector2f> convexHull;
314  std::vector<float> pose25d;
315  std::vector<float> pose3d;
316  uint32_t shadowTrackingAge;
318 };
319 
322 typedef std::map<TrackerIndex, std::shared_ptr<NvTrackedObject>> NvTrackedObjectList;
323 
326 {
328  uint32_t lastFrameMatched;
329  std::list<TargetInfo> tracklet;
330  bool isReported;
331  std::vector<float> reidEmbedding;
332 
333  #ifdef VIZ_DEBUG
334  bool isVisualized;
335  #endif
336 };
337 
339 typedef std::pair<const std::map<NvMOTStreamId, NvMOTFrame *> *, \
340  std::map<NvMOTStreamId, std::deque<DetectedObjInfo>> *> DisMahalanobisIn;
341 
343 template <typename T> class NvTrackerMultiThreadWorker
344 {
345 public:
346 
347  // [Worker thread operations]
348  bool m_isInit;
349  std::mutex m_inputLock;
350  std::mutex m_outputLock;
351  std::condition_variable m_cond4In;
352  std::condition_variable m_cond4Out;
353  std::queue<T> m_inputQueue;
354  std::vector<std::thread> m_threadList;
358  std::function<void(T)> m_funcPerThread;
359 
362 
365 
371  void initialize(const uint numThreads, std::function<void(T)> funcPerThread);
372 
377  void submitInput(T inData);
378 
380  void waitToFinish();
381 
383  void threadLoopFunc();
384 
386  bool isInitialized() { return m_isInit; }
387 };
388 
389 #endif // NVMULTIOBJECTTRACKERLIB_NVMULTIOBJECTTRACKER_COMMON_HPP_
SourceFrameInfo::maxStreams
uint32_t maxStreams
Max # of video streams to be supported.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:64
TargetInfo::TargetInfo
TargetInfo(TargetInfo &&) noexcept=default
Move-construct target information.
DetectedObjInfo::confidence
float confidence
Detector confidence.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:147
TargetInfo::operator=
TargetInfo & operator=(TargetInfo &&) noexcept=default
Move-assign target information.
NvMotDataTypes::Rect2f
Rect_< float, 2 > Rect2f
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:47
NvTrackerMultiThreadWorker::m_inputQueue
std::queue< T > m_inputQueue
Queue for input.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:353
NvTrackerMultiThreadWorker::m_submittedJobCnt
uint m_submittedJobCnt
Keep track of how many tasks are submitted.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:356
SourceFrameInfo::srcImagePitch
size_t srcImagePitch
Row pitch of the source-frame memory.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:68
NvTrackerMultiThreadWorker::m_threadList
std::vector< std::thread > m_threadList
Persistent threads over batches.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:354
NvTrackerMultiThreadWorker::m_cond4Out
std::condition_variable m_cond4Out
Condition variable associated with the output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:352
TargetInfo
Tracked target info.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:159
_NvMOTObjToTrack::confidence
float confidence
Holds the detection confidence of the object.
Definition: includes/nvdstracker.h:249
NvMOTClassId
uint16_t NvMOTClassId
Definition: includes/nvdstracker.h:55
NvTrackerMultiThreadWorker::waitToFinish
void waitToFinish()
Wait all worker threads to finish in main thread.
TargetInfo::pt_world_feet_cov
Eigen::Matrix2f pt_world_feet_cov
Covariance of the foot location.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:312
Trajectory4Archive::tracklet
std::list< TargetInfo > tracklet
Target trajectory.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:329
TargetInfo::visibility
float visibility
Visible fraction of the object after occlusion and image-border cropping.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:308
NvTrackerMultiThreadWorker::m_persistThreadRunning
bool m_persistThreadRunning
Whether associate persistent threads should keep running; set false if receive deinit signal.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:355
NvTrackedObjectList
std::map< TrackerIndex, std::shared_ptr< NvTrackedObject > > NvTrackedObjectList
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:321
TargetInfo::TargetInfo
TargetInfo(const DetectedObjInfo *detObjIn_=nullptr, const NvMOTStreamId videoStreamId_=0, const NvMOTFrameNum frameNum_=0, const uint16_t classId_=0, const NvMotDataTypes::Rect2f bbox_=NvMotDataTypes::Rect2f(), const NvMOTFrameNum age_=0, const NvMOTFrameNum shadowAge_=0, const TRACKER_STATE state=TRACKER_STATE::EMPTY)
Initialize a target state from optional detector information.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:184
NvTrackerMultiThreadWorker::~NvTrackerMultiThreadWorker
~NvTrackerMultiThreadWorker()
Stop and join all persistent worker threads.
SourceFrameInfo::srcImageSize
NvMotDataTypes::Size srcImageSize
Size of the source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:67
DetectedObjInfo::loc
Eigen::Vector2f loc
Bounding-box centroid in image coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:152
DetectedObjInfo::DetectedObjInfo
DetectedObjInfo(const NvMOTObjToTrack *objIn_, const uint16_t bboxInd_, NvMOTClassId classId_, float confidence_, NvMotDataTypes::Rect2f bbox_, Eigen::Vector2f loc_)
Initialize detected-object information from explicit metadata and geometry.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:106
TargetId
uint64_t TargetId
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:41
TargetInfo::confidence
float confidence
Tracker confidence.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:303
CamId
std::string CamId
Camera IDs are represented as strings to maintain consistency across different communicator types.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:46
TargetInfo::pose3d
std::vector< float > pose3d
Per-object 3D pose keypoints.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:315
DetectedObjInfo::distFromCam
float distFromCam
Distance from the camera center to the model waist in world coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:149
NvTrackedObject
Stores and updates the state of one tracked target.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvTrackedObject.hpp:203
NvTrackerMultiThreadWorker::m_funcPerThread
std::function< void(T)> m_funcPerThread
Data processing function in each worker thread.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:358
NvTrackerMultiThreadWorker::initialize
void initialize(const uint numThreads, std::function< void(T)> funcPerThread)
Launch all worker threads and worker function.
SourceFrameInfo::SourceFrameInfo
SourceFrameInfo()
Initialize per-batch source-frame state.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:52
DetectedObjInfo::operator=
DetectedObjInfo & operator=(DetectedObjInfo &&) noexcept=default
Move-assign detected-object information.
DetectedObjInfo::classId
NvMOTClassId classId
Object class ID.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:146
TargetInfo::videoStreamId
NvMOTStreamId videoStreamId
Video stream ID set during initialization.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:297
TargetInfo::trackerState
TRACKER_STATE trackerState
Current tracker state such as ACTIVE or INACTIVE.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:317
uint
unsigned int uint
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:25
SourceFrameInfo::frameBatchNo
uint64_t frameBatchNo
Frame batch count from the beginning.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:59
Trajectory4Archive
Stores a terminated target trajectory for archival output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:325
SourceFrameInfo::originalSrcImageSize
NvMotDataTypes::Size originalSrcImageSize
Size of the original video source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:66
TargetInfo::update
void update(const NvMOTFrameNum frameNum_, const NvMotDataTypes::Rect2f bbox_, const float imgBorderCroppingVisibility_)
Update target state without a matched detection.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:264
NvMOTFrameNum
uint32_t NvMOTFrameNum
Definition: includes/nvdsmotmetafusion.h:51
_NvMOTObjToTrack::classId
NvMOTClassId classId
Holds the class of the object.
Definition: includes/nvdstracker.h:245
TargetInfo::pt_world_feet
Eigen::Vector2f pt_world_feet
Person foot location on the floor in world coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:311
SourceFrameInfo::isDetectionDonePerStream
std::map< NvMOTStreamId, std::pair< uint32_t, bool > > isDetectionDonePerStream
Indicates whether inference is complete for each stream.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:60
NvTrackerMultiThreadWorker::m_isInit
bool m_isInit
Indicates whether the worker has been initialized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:348
TargetInfo::imgBorderCroppingVisibility
float imgBorderCroppingVisibility
Bounding-box visibility with respect to the image border.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:307
TargetInfo::shadowTrackingAge
uint32_t shadowTrackingAge
Number of frames since the tracker entered INACTIVE state.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:316
max
int max(int a, int b)
Compute the component-wise maximum.
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:60
DetectedObjInfo::visibility
float visibility
Visible fraction of the object after occlusion and image-border cropping.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:148
NvTrackerMultiThreadWorker::m_outputLock
std::mutex m_outputLock
Lock associated with output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:350
TargetInfo::update
void update(const NvMOTFrameNum frameNum_, const DetectedObjInfo *detObjIn_, const NvMotDataTypes::Rect2f bbox_, const float imgBorderCroppingVisibility_)
Update target state from a matched detection.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:236
Trajectory4Archive::lastFrameMatched
uint32_t lastFrameMatched
Last frame number on which the target matched a detector bounding box.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:328
TargetInfo::matchedDetObjInfo
DetectedObjInfo * matchedDetObjInfo
Holds a pointer to the associated input object used in low level tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:296
DetectedObjInfo::DetectedObjInfo
DetectedObjInfo()
Initialize detected-object information with default values.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:87
TargetInfo::frameNum
NvMOTFrameNum frameNum
Frame number.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:298
_NvMOTObjToTrack::bbox
NvMOTRect bbox
Holds the bounding box of the object.
Definition: includes/nvdstracker.h:247
StreamId
NvMOTStreamId StreamId
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:43
DetectedObjInfo::pt_img_feet
Eigen::Vector2f pt_img_feet
Person foot location in image coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:153
TargetInfo::convexHull
std::vector< Eigen::Vector2f > convexHull
Convex hull of the projected 3D object model centered on the bounding box.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:313
CV_FUNCS::getBboxCenterPt
Eigen::Vector2f getBboxCenterPt(const NvMotDataTypes::Rect2f &bbox)
Compute the center point of a bounding box.
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/cv_functions.hpp:128
NvMOTStreamId
uint64_t NvMOTStreamId
Definition: includes/nvdstracker.h:53
NvTrackerMultiThreadWorker::isInitialized
bool isInitialized()
Report whether the worker queue is initialized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:386
_NvMOTObjToTrack
Holds information about an object to be tracked.
Definition: includes/nvdstracker.h:242
NvTrackerMultiThreadWorker::threadLoopFunc
void threadLoopFunc()
Process queued jobs until the worker receives a deinitialization signal.
TargetInfo::pt_img_feet
Eigen::Vector2f pt_img_feet
Person foot location in image coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:310
_NvMOTRect::height
float height
Holds the height of the bounding box, in pixels.
Definition: includes/nvdstracker.h:219
TargetInfo::loc
Eigen::Vector2f loc
Bounding-box centroid.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:302
TargetInfo::tBbox
NvMotDataTypes::Rect2f tBbox
Object bbox.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:300
TargetInfo::classId
NvMOTClassId classId
Object class ID.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:299
Trajectory4Archive::isReported
bool isReported
Indicates whether the tracklet has been reported externally.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:330
_NvMOTRect::width
float width
Holds the width of the bounding box, in pixels.
Definition: includes/nvdstracker.h:217
DetectedObjInfo::bboxInd
uint16_t bboxInd
Object bbox ind in the metadata.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:145
_NvMOTRect::x
float x
Holds the left edge position of the object bounding box, in pixels.
Definition: includes/nvdstracker.h:213
SourceFrameInfo::colorFormat
NvBufSurfaceColorFormat colorFormat
Color format of the input surfaces.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:63
TrackerIndex
uint32_t TrackerIndex
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:42
_NvMOTRect::y
float y
Holds the top edge position of the object bounding box, in pixels.
Definition: includes/nvdstracker.h:215
DetectedObjInfo::origBbox
NvMotDataTypes::Rect2f origBbox
Original bounding box from the detector.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:151
DetectedObjInfo::DetectedObjInfo
DetectedObjInfo(const NvMOTObjToTrack *objIn_, const uint16_t bboxInd_)
Initialize detected-object information from input object metadata.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:129
NvTrackerMultiThreadWorker::m_finishedJobCnt
uint m_finishedJobCnt
Keep track of how many tasks are finished.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:357
DetectedObjInfo::bbox
NvMotDataTypes::Rect2f bbox
Object bbox.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:150
SourceFrameInfo::maxBufSurfAddrSize
uint32_t maxBufSurfAddrSize
Max size of surface buffer pool.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:65
TargetInfo::height
float height
OMP-estimated person height in world coordinates (m).
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:305
NvTrackerMultiThreadWorker::m_cond4In
std::condition_variable m_cond4In
Condition variable associated with the input queue.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:351
CV_FUNCS::constructRect2f
NvMotDataTypes::Rect2f constructRect2f(const float minX=0, const float minY=0, const float width=0, const float height=0)
Construct an axis-aligned rectangle from its origin and size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/cv_functions.hpp:93
TargetInfo::distFromCam
float distFromCam
Distance from the camera.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:304
NvMotDataTypes::Size
Represents a two-dimensional integer size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:52
SourceFrameInfo
Information about the input source frames for the input frame batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:49
DetectedObjInfo
Detected object info obtained from input metadata.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:72
TargetInfo::setLocation
void setLocation(const NvMotDataTypes::Rect2f bbox_)
Update the target bounding box and centroid.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:284
DetectedObjInfo::objIn
const NvMOTObjToTrack * objIn
Holds a pointer to the associated input object in the metadata.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:144
DisMahalanobisIn
std::pair< const std::map< NvMOTStreamId, NvMOTFrame * > *, std::map< NvMOTStreamId, std::deque< DetectedObjInfo > > * > DisMahalanobisIn
Input data structure to compute Mahalanobis distance.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:340
EMPTY
@ EMPTY
Definition: includes/nvds_tracker_meta.h:42
Trajectory4Archive::reidEmbedding
std::vector< float > reidEmbedding
Archived L2-normalized ReID embedding captured at termination.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:331
Trajectory4Archive::frameNumTerminated
uint32_t frameNumTerminated
Frame number at which the target was terminated.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:327
TRACKER_STATE
TRACKER_STATE
Definition: includes/nvds_tracker_meta.h:42
DetectedObjInfo::convexHull
std::vector< Eigen::Vector2f > convexHull
Convex hull of the projected 3D object model centered on the bounding box.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:155
TargetInfo::getMatchedDetObjIn
NvMOTObjToTrack * getMatchedDetObjIn() const
Return the input object metadata matched to the target.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:291
DetectedObjInfo::pt_world_feet
Eigen::Vector2f pt_world_feet
Person foot location on the floor in world coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:154
NvTrackerMultiThreadWorker::NvTrackerMultiThreadWorker
NvTrackerMultiThreadWorker()
Initialize an empty worker queue.
NvTrackerMultiThreadWorker
Multi-threaded producer-consumer queue to perform some task.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:343
TargetInfo::pose25d
std::vector< float > pose25d
Per-object 2.5D pose keypoints.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:314
TargetInfo::age
NvMOTFrameNum age
Number of frames for which the target has been tracked.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:309
nvdstracker.h
NvTrackerMultiThreadWorker::submitInput
void submitInput(T inData)
Submit association input data to queue in main thread.
NvBufSurfaceColorFormat
NvBufSurfaceColorFormat
Defines color formats for NvBufSurface.
Definition: includes/nvbufsurface.h:110
NvTrackerMultiThreadWorker::m_inputLock
std::mutex m_inputLock
Lock associated with input queue.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:349
TargetInfo::origBbox
NvMotDataTypes::Rect2f origBbox
Original bounding box from the detector.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:301