NVIDIA DeepStream SDK API Reference

9.2 Release
sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.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 VISUALTRACKERLIB_VISUALTRACKER_HPP_
19 #define VISUALTRACKERLIB_VISUALTRACKER_HPP_
20 
21 #include <map>
22 #include <unordered_map>
23 #include "modules/cuDCFv2/cuDCF.h"
24 #include "modules/cuDCFv2/featureExtractor.hpp"
25 #include "modules/VisualTracker/IVisualTracker.hpp"
26 #include "modules/NvMultiObjectTracker/NvTrackerParams.hpp"
27 #include "modules/NvMultiObjectTracker/NvTrackedObject.hpp"
28 #include "modules/utility/dataTypes.hpp"
29 
30 #ifdef VIZ_DEBUG
31 
32 class TrackerVizOutput;
33 #endif
34 
37 {
38 public:
41 
47  VisualTrackerConfigParams(const std::string &configFilePath, const std::string moduleName);
48 
53  VisualTrackerConfigParams(const YAML::Node &fn);
54 
59  void read(const YAML::Node &fn) override;
60 
65 
66  // [Visual feature types]
68  bool m_useHog;
69  bool m_useGray;
70  bool m_useRgb;
71 
72  // [VPI]
75 
76  // [Feature extraction]
82 
83  // [DCF][Core]
84  float m_filterLr;
87  float m_lambda;
88  float m_peakCorrLr;
90 
91  // [FFT]
93 
95  // [Viz Debug]
103  std::string m_vizOutDirectory;
105 
107  // [Custom parameters for debugging]
114 
115  // [Configuration parameters]
117  bool m_isInit = false;
118 };
120 
123 {
129  size_t srcImagePitch;
134  std::map<NvMOTStreamId, uint32_t> isDetectionDonePerStream;
140 
141  // [CUDA configuration]
146 };
148 
151 {
152 public:
153 
158  VisualTracker(const std::string &configFilePath);
159 
161  virtual ~VisualTracker();
162 
170  void initialize(
171  const SourceFrameInfo &frameInfo, const uint maxTargetsToTrack,
172  const uint maxDetectorBboxesPerFrame, const std::shared_ptr<NvTrackedObjectManager> &targetManager
173  ) override;
174 
179  void queryParams(NvMOTQuery &paramsQuery);
180 
186  void localize(
187  const std::map<NvMOTStreamId, NvMOTFrame *> inputMeta,
188  const std::map<NvMOTStreamId, std::deque<DetectedObjInfo>> &detectedObjects
189  ) override;
190 
195  void update(const std::map<NvMOTStreamId, NvMOTFrame *> inputMeta) override;
196 
198  bool isInitialized() override { return m_isInit; }
199 
202 
207  void updateParams(const YAML::Node &fn) { m_params.read(fn); }
208 
209 protected:
210 
211  bool m_isInit;
214  std::map<NvMOTStreamId, NvMOTFrame *> m_inputMeta;
215  std::shared_ptr<NvTrackedObjectManager> m_targetManager;
216 
217  // [Feature extraction]
219  std::map<NvMOTStreamId, std::vector<std::pair<uint, NvMotDataTypes::Rect2f>>> m_featureRoisInBatch;
220 
223  // [cuFFT operations]
226  cufftHandle *m_cufftHandle_C2R_perCh;
228  cufftHandle *m_cufftHandle_R2C_perCh;
230 
231  // [Fourier-space CUDA buffers: each target uses half the image size because of conjugate symmetry]
232  cufftComplex *m_ftrs_F;
233  cufftComplex *m_desiredResp_F;
234  cufftComplex *m_dcfFilter_F;
235  cufftComplex *m_work_F_1;
236  cufftComplex *m_work_F_2;
237 
238  // [CUDA memory buffers for pixel processing]
245  float *m_work_I;
246 
247  // [CUDA and host memory buffers for miscellaneous data]
260  cudaEvent_t m_eventStart;
261  cudaEvent_t m_eventStop;
262 
267  void checkInputOutput(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
268 
273  void updateData4Processing(const int lastTrackerInd);
274 
276  void allocateCudaMemories();
277 
286  const NvMotDataTypes::RowMajorMatrixXf &srcMat, void *devMem, uint batchSize, float *workarea_host
287  );
288 
293  void updateLocalizationResults(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
294 
301  Eigen::Vector2f convertSrcImgCoordToCorrRespCoord(
302  const NvMotDataTypes::Rect2f &roi, const Eigen::Vector2f pt_img
303  ) const;
304 
309  void cudaCalculateResponse(float *ftrs);
310 
316  const std::map<NvMOTStreamId, std::deque<DetectedObjInfo>> &detectedObjects
317  );
318 
323  void cudaFilterUpdate(const float *ftrs);
324 
330  inline int getCufftPlanId(int num_target);
331 
337  float getTemplateRescaleRatio(const NvMotDataTypes::Rect2f &roi) const;
338 
345  float *extractVisualFeatures(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta, const bool isForLocalization);
346 
347  #ifdef VIZ_DEBUG
348  std::shared_ptr<TrackerVizOutput> m_vizOutput;
349  float *m_batchCudaArray_host;
350 
357  std::vector<cv::Mat> fetchBatchDataToHost_perObj(const float *deviceData, const bool multiChannelInput=false);
358 
360  std::map<NvMOTStreamId, cv::Mat> getSrcImagesAtHost();
361 
362  friend class TrackerVizOutput;
363  #endif
364 };
365 
366 #endif // VISUALTRACKERLIB_VISUALTRACKER_HPP_
VisualTracker::m_cudaStream
cudaStream_t m_cudaStream
CUDA stream used for tracker operations.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:225
VisualTracker::m_trackingConfidence_d
float * m_trackingConfidence_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:257
VisualTracker::m_detectorBboxes_d
detectorBbox_t * m_detectorBboxes_d
The detector bbox center points to be looked up at each tracker's correlation response.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:252
VisualTracker::update
void update(const std::map< NvMOTStreamId, NvMOTFrame * > inputMeta) override
Update each target's correlation-filter model from an input batch.
VisualTracker::m_dcfFilter_F
cufftComplex * m_dcfFilter_F
Learned filter in a batched Fourier-space CUDA buffer.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:234
VisualTrackerConfigParams::m_debugParamFloat0
float m_debugParamFloat0
First floating-point debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:111
IVisualTracker
Defines the interface implemented by visual trackers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/IVisualTracker.hpp:35
VisualTracker::isInitialized
bool isInitialized() override
Report whether tracker initialization completed.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:198
NvMotDataTypes::Rect2f
Rect_< float, 2 > Rect2f
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:47
VisualTracker::m_maskingWindow4Src
float * m_maskingWindow4Src
Masking window for input image feature (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:239
VisualTracker::m_channelWeightSum
float * m_channelWeightSum
The filter weight sums used for filter weight normalization, but play as a workplace only (a Batch CU...
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:244
VisualTrackerRunTimeParams::colorFormat
NvBufSurfaceColorFormat colorFormat
Input source image color format.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:130
VisualTracker::m_corrResponseAtDetectedPt_h
float * m_corrResponseAtDetectedPt_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:254
VisualTracker::m_confidenceAtDetectedPt_d
float * m_confidenceAtDetectedPt_d
Tracking confidence at each detector bbox center.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:253
VisualTracker::m_params
VisualTrackerConfigParams m_params
Config params for visual tracker module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:212
VisualTracker::cudaCalculateResponse
void cudaCalculateResponse(float *ftrs)
Given the Fourier-transformed extracted features and the learned filters, compute the correlation res...
VisualTrackerConfigParams::m_vizWriteSegMask
bool m_vizWriteSegMask
Save the filter mask generated by the segmenter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:101
VisualTrackerConfigParams::m_vizWriteEachCompletedTrajectory
bool m_vizWriteEachCompletedTrajectory
Write each completed trajectory.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:100
VisualTrackerRunTimeParams::featureChannelSize
int featureChannelSize
Number of channels in a feature vector.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:142
VisualTracker::m_eventStop
cudaEvent_t m_eventStop
Event stop point for GPU timers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:261
VisualTracker::m_cufftHandle_C2R_perCh
cufftHandle * m_cufftHandle_C2R_perCh
Cufft handler for all the batch elements (i.e., (# of elements in single feature mat) * (# of feature...
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:226
VisualTracker::m_detectorBboxes_size_h
uint * m_detectorBboxes_size_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:249
VisualTracker::m_trackerAge_d
uint32_t * m_trackerAge_d
Tracker age.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:250
VisualTracker::m_maxCorrResponse_h
float * m_maxCorrResponse_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:255
VisualTracker::m_trackerUseMaskSeg_h
bool * m_trackerUseMaskSeg_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:259
VisualTracker::m_trackerAge_h
uint32_t * m_trackerAge_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:250
VisualTracker::m_targetDisplacement2D_d
float2 * m_targetDisplacement2D_d
The target displacement in correlation response (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:251
VisualTrackerRunTimeParams::srcImageSize
NvMotDataTypes::Size srcImageSize
The size of the source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:128
VisualTracker::m_isInit
bool m_isInit
Indicates whether tracker initialization completed.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:211
VisualTracker::m_ftrs_F
cufftComplex * m_ftrs_F
Extracted features in a batched Fourier-space CUDA buffer.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:232
VisualTrackerConfigParams::m_showGpuTiming
int m_showGpuTiming
Controls whether GPU timing is displayed.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:61
VisualTracker::m_detectorBboxes_h
detectorBbox_t * m_detectorBboxes_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:252
VisualTrackerConfigParams::m_vizWriteAllTrajectoriesOnEveryFrame
bool m_vizWriteAllTrajectoriesOnEveryFrame
Write the whole frame with trajectories of all targets in the scene.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:99
VisualTracker::~VisualTracker
virtual ~VisualTracker()
Release CUDA DCF tracker resources.
VisualTrackerConfigParams::m_useRgb
bool m_useRgb
Enables the RGB feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:70
VisualTracker::m_paramsRt
VisualTrackerRunTimeParams m_paramsRt
Config params for visual tracker module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:213
VisualTracker::getDetectorBboxCorrelationResponses
void getDetectorBboxCorrelationResponses(const std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects)
Retrieve each tracker's correlation response at nearby detector bounding boxes.
VisualTracker::m_work_I
float * m_work_I
A temporary work space for float (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:245
VisualTrackerRunTimeParams::maxDetectorBboxesPerFrame
uint maxDetectorBboxesPerFrame
Maximum number of detector bounding boxes per frame.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:126
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: includes/nvbufsurftransform.h:40
VisualTracker::m_eventStart
cudaEvent_t m_eventStart
Event start point for GPU timers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:260
VisualTrackerConfigParams::m_debugVerboseLevel
int m_debugVerboseLevel
Debug message verbose mode level.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:62
VisualTrackerConfigParams::m_useGray
bool m_useGray
Enables the grayscale pixel-intensity feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:69
VisualTracker::m_trackerDoProcessing_d
bool * m_trackerDoProcessing_d
True when this tracker is updated for this batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:248
VisualTrackerConfigParams::m_debugVerboseLevel_gpumemory
int m_debugVerboseLevel_gpumemory
GPU memory debug verbosity level.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:63
VisualTracker::queryParams
void queryParams(NvMOTQuery &paramsQuery)
Populate the visual tracker's capability query.
VisualTracker::initialize
void initialize(const SourceFrameInfo &frameInfo, const uint maxTargetsToTrack, const uint maxDetectorBboxesPerFrame, const std::shared_ptr< NvTrackedObjectManager > &targetManager) override
Initialize variables and allocate memories.
VisualTracker::checkInputOutput
void checkInputOutput(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Check the input and find the detection interval.
detectorBbox_t
Detector bbox in correlation-response coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCF.h:31
VisualTracker::m_maxCorrResponse_ma_h
float * m_maxCorrResponse_ma_h
The moving average of the max corr resp.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:256
uint
unsigned int uint
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:25
VisualTracker
Tracks objects with a CUDA discriminative correlation filter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:150
VisualTrackerRunTimeParams::singleFeatureChannelElementSize_F
int singleFeatureChannelElementSize_F
Number of elements in one Fourier feature matrix, which has half the image size because of conjugate ...
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:136
VisualTrackerConfigParams::m_debugParamInt2
int m_debugParamInt2
Third integer debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:110
VisualTracker::m_trackingConfidence_h
float * m_trackingConfidence_h
The tracking confidence derived from the instant and the moving average of the max corr resp.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:257
VisualTracker::m_cufftWorkspce
void * m_cufftWorkspce
Cufft workspace memory on device.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:229
VisualTrackerRunTimeParams::detectorInputInterval
int detectorInputInterval
Interval between external detector inputs.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:133
VisualTrackerConfigParams::m_useColorNames
bool m_useColorNames
Enables the ColorNames feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:67
VisualTrackerConfigParams::m_gaussianSigma
float m_gaussianSigma
Sigma for Gaussian for desired response.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:86
VisualTrackerConfigParams::m_debugParamFloat1
float m_debugParamFloat1
Second floating-point debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:112
VisualTrackerConfigParams::m_useHog
bool m_useHog
Enables the HOG feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:68
VisualTrackerConfigParams::m_featureImgSize
float m_featureImgSize
Maximum template length in one dimension.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:77
VisualTracker::m_maskSegRois_d
float4 * m_maskSegRois_d
Filter ROI to crop segmentation masks.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:258
VisualTrackerConfigParams::m_useHighPrecisionFeature
bool m_useHighPrecisionFeature
Enables high-precision 16-bit VPI output instead of low-precision 8-bit output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:73
VisualTrackerConfigParams::m_peakCorrLr
float m_peakCorrLr
Learning rate for peak correlation response in exponential moving average.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:88
VisualTrackerConfigParams::m_vizOutDirectory
std::string m_vizOutDirectory
The directory to write the outputs.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:103
VisualTrackerConfigParams::m_minConfidence4SegmentationFilter
float m_minConfidence4SegmentationFilter
Minimum confidence for using a segmentation mask during filter learning.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:89
VisualTracker::m_work_F_2
cufftComplex * m_work_F_2
Second temporary batched complex workspace.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:236
VisualTracker::updateParams
void updateParams(const YAML::Node &fn)
Update any Dynamic Params as provided during runtime by the user.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:207
VISUAL_TRACKER_TYPES
VISUAL_TRACKER_TYPES
Visual tracker implementations that can be selected by configuration.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/IVisualTracker.hpp:27
VisualTrackerConfigParams::m_filterLr
float m_filterLr
Learning rate for DCF filter in exponential moving average.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:84
VisualTrackerRunTimeParams::featureVecBatchElementSize
int featureVecBatchElementSize
Number of feature-vector elements for the current tracker batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:137
VisualTracker::m_maskingSegWindow4Model
float * m_maskingSegWindow4Model
Masking window for the model for filter learning (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:241
VisualTracker::m_featureRoisInBatch
std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > m_featureRoisInBatch
Trackers' search regions as ROI for feature extraction.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:219
VisualTrackerConfigParams::m_featureFocusOffsetFactor_y
float m_featureFocusOffsetFactor_y
Vertical Hanning-window center offset relative to the feature height.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:79
VisualTracker::m_inputMeta
std::map< NvMOTStreamId, NvMOTFrame * > m_inputMeta
Hold the input metadata.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:214
VisualTrackerConfigParams::m_filterChannelWeightsLr
float m_filterChannelWeightsLr
Learning rate for DCF filter channel weights in exponential moving average.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:85
VisualTracker::makeBatchAndSendFloatMatToDevice
void makeBatchAndSendFloatMatToDevice(const NvMotDataTypes::RowMajorMatrixXf &srcMat, void *devMem, uint batchSize, float *workarea_host)
Duplicate one host matrix into a batched float buffer and copy it to the device.
NvTrackerParams
Provides common loading helpers for tracker configuration parameters.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvTrackerParams.hpp:35
VisualTrackerConfigParams::m_debugParamInt1
int m_debugParamInt1
Second integer debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:109
NvMOTStreamId
uint64_t NvMOTStreamId
Definition: includes/nvdstracker.h:53
VisualTracker::getCufftPlanId
int getCufftPlanId(int num_target)
Select a cuFFT plan large enough for the requested target count.
VisualTracker::convertSrcImgCoordToCorrRespCoord
Eigen::Vector2f convertSrcImgCoordToCorrRespCoord(const NvMotDataTypes::Rect2f &roi, const Eigen::Vector2f pt_img) const
Map a source-image point into a tracker's correlation-response coordinates.
VisualTrackerConfigParams::m_visualTrackerType
VISUAL_TRACKER_TYPES m_visualTrackerType
The type of visual tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:116
VisualTrackerConfigParams::read
void read(const YAML::Node &fn) override
Read visual tracker parameters from a YAML node.
VisualTracker::getTemplateRescaleRatio
float getTemplateRescaleRatio(const NvMotDataTypes::Rect2f &roi) const
Compute the scale that maps a search region to the fixed feature-image size.
VisualTrackerConfigParams::m_isInit
bool m_isInit
Indicates whether the parameters have been initialized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:117
VisualTracker::cudaFilterUpdate
void cudaFilterUpdate(const float *ftrs)
Create and update the DCF filter.
VisualTrackerConfigParams::VisualTrackerConfigParams
VisualTrackerConfigParams()
Construct the default configuration.
VisualTrackerRunTimeParams::isDetectionDonePerStream
std::map< NvMOTStreamId, uint32_t > isDetectionDonePerStream
Indicates whether inference completed for each stream.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:134
VisualTrackerConfigParams
Configuration parameters for the visual tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:36
VisualTrackerConfigParams::m_vizWriteSrcImgPatchesAndCorrResp
bool m_vizWriteSrcImgPatchesAndCorrResp
Write the cropped/scaled image patches and correlation response.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:97
VisualTracker::updateLocalizationResults
void updateLocalizationResults(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Update target states from their correlation responses.
VisualTrackerConfigParams::m_vizWriteBirdsEyeView
bool m_vizWriteBirdsEyeView
Write the bird's-eye view.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:98
VisualTracker::m_corrResponseAtDetectedPt_d
float * m_corrResponseAtDetectedPt_d
Correlation response at each detector bbox center.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:254
VisualTrackerRunTimeParams::singleFeatureChannelElementSize
int singleFeatureChannelElementSize
Number of elements in a single feature matrix.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:135
VisualTracker::m_cufftHandle_C2R_perObj
cufftHandle * m_cufftHandle_C2R_perObj
Cufft handler for a smaller subset (i.e., (# of elements in single feature mat) * (# of trackers)).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:227
_NvMOTQuery
Holds the capabilities and requirements reported by the tracker library.
Definition: includes/nvdstracker.h:420
VisualTrackerConfigParams::m_vizJpegImageQuality
int m_vizJpegImageQuality
JPEG output quality in the range [1, 100].
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:102
VisualTracker::m_maskSegRois_h
float4 * m_maskSegRois_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:258
VisualTracker::m_channelWeights
float * m_channelWeights
The adaptive filter weights for the channels on device (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:243
VisualTracker::m_desiredResp_F
cufftComplex * m_desiredResp_F
Desired response in a batched Fourier-space CUDA buffer.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:233
VisualTracker::extractVisualFeatures
float * extractVisualFeatures(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta, const bool isForLocalization)
Extract a batched visual feature vector for localization or model update.
VisualTrackerConfigParams::m_cufftHandleQuantFactor
int m_cufftHandleQuantFactor
Clustering size for cuFFT plans.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:92
VisualTracker::allocateCudaMemories
void allocateCudaMemories()
Pre-allocate required cuda memories on GPU.
VisualTrackerRunTimeParams::originalSrcImageSize
NvMotDataTypes::Size originalSrcImageSize
The size of the original video source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:127
VisualTracker::m_trackerDoProcessing_h
bool * m_trackerDoProcessing_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:248
VisualTrackerRunTimeParams::templateSize
NvMotDataTypes::Size templateSize
Size of the rescaled search-region template.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:131
VisualTracker::getVisualTrackerType
const VISUAL_TRACKER_TYPES getVisualTrackerType() override
Return the configured visual tracker type.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:201
FeatureExtractor
Extracts batched ColorNames and HOG features with VPI.
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/featureExtractor.hpp:39
VisualTracker::m_maxCorrResponse_ma_d
float * m_maxCorrResponse_ma_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:256
VisualTrackerRunTimeParams::cudaKernelMaxBatchSize
int cudaKernelMaxBatchSize
Maximum CUDA batch size across feature channels and target trackers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:144
VisualTracker::localize
void localize(const std::map< NvMOTStreamId, NvMOTFrame * > inputMeta, const std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects) override
Localize tracked targets and evaluate nearby detections across an input batch.
VisualTracker::m_cufftPlanSize
uint m_cufftPlanSize
Number of cuFFT plans.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:224
VisualTracker::m_detectorBboxes_size_d
uint * m_detectorBboxes_size_d
The number of detector bbox candidate for each target.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:249
VisualTrackerRunTimeParams::cudaKernelBatchSize
int cudaKernelBatchSize
Number of feature matrices in the current CUDA batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:143
VisualTracker::m_confidenceAtDetectedPt_h
float * m_confidenceAtDetectedPt_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:253
VisualTrackerRunTimeParams::maxStreams
uint maxStreams
Maximum number of supported video streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:124
VisualTracker::VisualTracker
VisualTracker(const std::string &configFilePath)
Construct from a configuration file path.
VisualTrackerRunTimeParams::srcImagePitch
size_t srcImagePitch
Memory pitch of the source frame.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:129
VisualTrackerRunTimeParams::featureVecMaxBatchElementSize_F
int featureVecMaxBatchElementSize_F
Maximum number of Fourier feature-vector elements across all supported trackers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:139
NvMotDataTypes::Size
Represents a two-dimensional integer size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:52
VisualTracker::m_targetDisplacement2D_h
float2 * m_targetDisplacement2D_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:251
SourceFrameInfo
Information about the input source frames for the input frame batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:49
VisualTracker::m_targetManager
std::shared_ptr< NvTrackedObjectManager > m_targetManager
Target manager.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:215
VisualTrackerConfigParams::m_generateTrackerVisualization
bool m_generateTrackerVisualization
Enables tracker visualization generation.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:96
VisualTrackerRunTimeParams::featureVecMaxBatchElementSize
int featureVecMaxBatchElementSize
Maximum number of feature-vector elements across all supported trackers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:138
VisualTrackerConfigParams::m_useCpuBackends4VPI
bool m_useCpuBackends4VPI
Enables CPU backends for VPI instead of CUDA.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:74
VisualTrackerConfigParams::m_debugParamInt0
int m_debugParamInt0
First integer debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:108
VisualTrackerRunTimeParams::maxTargetsToTrack
uint maxTargetsToTrack
Maximum number of targets tracked across all streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:125
VisualTrackerConfigParams::m_debugParamFloat2
float m_debugParamFloat2
Third floating-point debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:113
VisualTrackerConfigParams::m_debugVerboseLevel_cufft
int m_debugVerboseLevel_cufft
Debug verbosity level for cuFFT.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:64
VisualTrackerConfigParams::m_vizDebugStreamId
int m_vizDebugStreamId
Video stream ID selected for visualization debugging.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:104
VisualTracker::m_trackerUseMaskSeg_d
bool * m_trackerUseMaskSeg_d
True when this tracker is updated for this batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:259
VisualTrackerConfigParams::m_modelMaskingWindowFactor
float m_modelMaskingWindowFactor
Masking-window factor used for focused filter learning.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:80
VisualTrackerConfigParams::m_hogCellSize
int m_hogCellSize
Cell size of HOG feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:81
VisualTrackerRunTimeParams::singleFeatureMatSize
NvMotDataTypes::Size singleFeatureMatSize
Dimensions of a single feature matrix processed on the GPU.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:132
NvMotDataTypes::RowMajorMatrixXf
RowMajorMatrixX< float > RowMajorMatrixXf
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:39
VisualTracker::m_featureExtractor
FeatureExtractor m_featureExtractor
Feature extractor that performs bbox cropping, scaling, and compose a feature vec batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:218
VisualTracker::m_work_F_1
cufftComplex * m_work_F_1
First temporary batched complex workspace.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:235
VisualTracker::m_cufftHandle_R2C_perCh
cufftHandle * m_cufftHandle_R2C_perCh
Cufft R2C handle for all the batch elements (i.e., (# of elements in single feature mat) * (# of feat...
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:228
VisualTracker::updateData4Processing
void updateData4Processing(const int lastTrackerInd)
Adjust processing dimensions after the active tracker count changes.
TrackerVizOutput
Renders and writes visual tracker debugging output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/vizOutput.hpp:43
VisualTracker::m_maskingWindow4Model
float * m_maskingWindow4Model
Masking window for the model for filter learning (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:240
VisualTrackerRunTimeParams
Stores runtime dimensions and processing state for the CUDA DCF tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:122
NvBufSurfaceColorFormat
NvBufSurfaceColorFormat
Defines color formats for NvBufSurface.
Definition: includes/nvbufsurface.h:110
VisualTracker::m_corrResponses_d
float * m_corrResponses_d
The correlation response maps for targets (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:242
VisualTrackerRunTimeParams::detCorrRespSearchWindowSize
int detCorrRespSearchWindowSize
Correlation-response search radius used to tolerate detector jitter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:145
VisualTracker::m_maxCorrResponse_d
float * m_maxCorrResponse_d
The max correlation response for targets (a Batch CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:255
VisualTrackerConfigParams::m_lambda
float m_lambda
Regularization factor used in DCF filter creation.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/VisualTracker.hpp:87