NVIDIA DeepStream SDK API Reference

9.2 Release
sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2023-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_DCFTRACKER_HPP_
19 #define VISUALTRACKERLIB_DCFTRACKER_HPP_
20 
21 #include <map>
22 #include <unordered_map>
23 #include "modules/cuDCFv2/cuDCF.h"
24 #include "modules/VisualTracker/IVisualTracker.hpp"
25 #include "modules/NvMultiObjectTracker/NvTrackerParams.hpp"
26 #include "modules/NvMultiObjectTracker/NvTrackedObject.hpp"
27 #include "modules/utility/dataTypes.hpp"
28 
29 // VPI.
30 #include "vpi/Stream.h"
31 #include "vpi/Image.h"
32 #include "vpi/Array.h"
33 #include "vpi/algo/CropScaler.h"
34 #include "vpi/algo/DCFTracker.h"
35 
36 #if defined(__aarch64__)
37 #include <EGL/egl.h>
38 #include <EGL/eglext.h>
39 #include "cudaEGL.h"
40 #endif
41 
42 #ifdef VIZ_DEBUG
43 
44 class TrackerVizOutput;
45 #endif
46 
49 {
50 public:
53 
59  DCFTrackerConfigParams(const std::string &configFilePath, const std::string moduleName);
60 
65  DCFTrackerConfigParams(const YAML::Node &fn);
66 
71  void read(const YAML::Node &fn) override;
72 
77 
78  // [Visual feature types]
80  bool m_useHog;
81  bool m_useGray;
82  bool m_useRgb;
83 
84  // [VPI]
88 
89  // [Feature extraction]
95 
96  // [DCF][Core]
97  float m_filterLr;
100  float m_lambda;
101  float m_peakCorrLr;
102 
103  // [FFT]
105 
107  // [Viz Debug]
114  std::string m_vizOutDirectory;
116 
118  // [Custom parameters for debugging]
125 
126  // [Configuration parameters]
128  bool m_isInit = false;
129 };
131 
134 {
141  size_t srcImagePitch;
146  std::map<NvMOTStreamId, uint32_t> isDetectionDonePerStream;
150 };
152 
155 {
156 public:
157 
162  DCFTracker(const std::string &configFilePath);
163 
165  virtual ~DCFTracker();
166 
174  void initialize(
175  const SourceFrameInfo &frameInfo, const uint maxTargetsToTrack,
176  const uint maxDetectorBboxesPerFrame, const std::shared_ptr<NvTrackedObjectManager> &targetManager
177  ) override;
178 
183  void queryParams(NvMOTQuery &paramsQuery);
184 
190  void localize(
191  const std::map<NvMOTStreamId, NvMOTFrame *> inputMeta,
192  const std::map<NvMOTStreamId, std::deque<DetectedObjInfo>> &detectedObjects
193  ) override;
194 
199  void update(const std::map<NvMOTStreamId, NvMOTFrame *> inputMeta) override;
200 
202  bool isInitialized() override { return m_isInit; }
203 
206 
211  void updateParams(const YAML::Node &fn) { m_params.read(fn); }
212 
213 protected:
214 
215  bool m_isInit;
218  std::shared_ptr<NvTrackedObjectManager> m_targetManager;
219  std::map<NvMOTStreamId, std::vector<std::pair<uint, NvMotDataTypes::Rect2f>>> m_featureRoisInBatch;
220 
223  // [cuFFT operations]
225 
226  // [CUDA memory buffers for pixel processing]
229 
230  // [CUDA and host memory buffers for miscellaneous data]
244 
245  // [VPI library interactions]
246  VPIDCFTrackerCreationParams m_vpiCreateParams;
247  VPIDCFTrackerParams m_vpiRuntimeParams;
248  VPIPayload m_vpiDcfPayload;
249  VPIPayload m_vpiCropPayload;
250  VPIStream m_vpiStream;
251  int m_vpiMemFlags = VPI_BACKEND_CUDA | VPI_RESTRICT_MEM_USAGE;
252 
253  // [Input frame sequences]
255  VPIImageData *m_vpiInputFrameDataList;
256  std::vector<bool> m_isFrameCreated;
257  int32_t *m_enabledSequences;
259 
260  // [Tracked objects]
261  std::vector<VPIDCFTrackedBoundingBox> m_vpiDCFBboxes;
262  VPIArrayData m_vpiDCFBboxesData;
266  std::vector<VPIDCFTrackedBoundingBox> m_vpiDCFBboxesLocalized;
267  VPIArrayData m_vpiDCFBboxesLocalizedData;
270 
271  // [Cropped and scaled object patches]
272  uint8_t *m_vpiObjPatches_d;
273  #if defined (VIZ_DEBUG)
274  uint8_t *m_vpiObjPatches_h;
275  #endif
277  VPIImageData m_vpiObjPatchesData;
279  VPIImage m_vpiObjPatches;
280 
282  // [VPI images and arrays wrapping CUDA memory]
287  VPIImageData m_vpiCorrResponsesData;
293 
294  // [CUDA pointers from NvBufSurface objects]
298  #if defined(__aarch64__)
299 
300  // [Cached EGL mappings]
301  std::unordered_map<const NvBufSurfaceParams *, CUgraphicsResource> m_graphicsResourceAddrMap;
302  std::unordered_map<const NvBufSurfaceParams *, CUeglFrame> m_eglFrameAddrMap;
304  #endif
305 
306  cudaEvent_t m_eventStart;
307  cudaEvent_t m_eventStop;
308 
313  void checkInputOutput(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
314 
319  void setVpiInputFrameSequence(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
320 
322  void allocateCudaMemories();
323 
332  const NvMotDataTypes::RowMajorMatrixXf &srcMat, void *devMem, uint batchSize, float *workarea_host
333  );
334 
339  void updateLocalizationResults(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
340 
347  Eigen::Vector2f convertSrcImgCoordToCorrRespCoord(
348  const NvMotDataTypes::Rect2f &roi, const Eigen::Vector2f pt_img
349  ) const;
350 
352  void cudaCalculateResponse(void);
353 
359  const std::map<NvMOTStreamId, std::deque<DetectedObjInfo>> &detectedObjects
360  );
361 
363  void cudaFilterUpdate();
364 
370  inline int getCufftPlanId(int num_target);
371 
377  float getTemplateRescaleRatio(const NvMotDataTypes::Rect2f &roi) const;
378 
384  void performCropAndScale(const std::map<NvMOTStreamId, NvMOTFrame *> &inputMeta, const bool isForLocalization);
385 
390  inline void getCudaMemPointers(NvBufSurfaceParams *baseSurface);
391 
392  #ifdef VIZ_DEBUG
393  // [Source images in host memory]
394  std::map<NvMOTStreamId, cv::Mat> m_srcFramesAtHost;
395  uint8_t *m_idata_host;
396 
398  std::map<NvMOTStreamId, std::map<uint, cv::Mat > > getImagePatches2Host_OCV_batch();
399 
400  std::shared_ptr<TrackerVizOutput> m_vizOutput;
401  float *m_batchCudaArray_host;
402  std::map<uint, std::pair<NvMOTStreamId, uint> > m_targetNumInd2RoisInBatchMapper;
404  float2 *m_targetDisplacement2D_h;
405 
410  std::vector<cv::Mat> fetchBatchDataToHost_perObj(const float *deviceData);
411 
413  std::map<NvMOTStreamId, cv::Mat> getSrcImagesAtHost();
414 
419  void uploadDeviceData2HostMemories(const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
420 
422  const std::map<NvMOTStreamId, cv::Mat>& getSrcFramesAtHost() const { return m_srcFramesAtHost; }
423 
424  friend class TrackerVizOutput;
425  #endif
426 };
427 
428 #endif // VISUALTRACKERLIB_DCFTRACKER_HPP_
DCFTracker::m_vpiInputFrameDataList
VPIImageData * m_vpiInputFrameDataList
Sequence of VPIImageData pointers to input frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:255
DCFTracker::m_eventStart
cudaEvent_t m_eventStart
Event start point for GPU timers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:306
DCFTrackerRunTimeParams::isDetectionDonePerStream
std::map< NvMOTStreamId, uint32_t > isDetectionDonePerStream
Indicates whether inference completed for each stream.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:146
DCFTracker::m_params
DCFTrackerConfigParams m_params
Config params for visual tracker module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:216
DCFTrackerRunTimeParams::singleFeatureChannelElementSize
int singleFeatureChannelElementSize
Number of elements in a single feature matrix.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:148
DCFTrackerRunTimeParams::srcImagePitch
size_t srcImagePitch
Memory pitch of the source frame.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:141
DCFTrackerConfigParams::m_vizJpegImageQuality
int m_vizJpegImageQuality
JPEG output quality in the range [1, 100].
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:113
DCFTrackerConfigParams::m_debugParamInt2
int m_debugParamInt2
Third integer debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:121
DCFTrackerConfigParams::m_useGray
bool m_useGray
Enables the grayscale pixel-intensity feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:81
DCFTracker::m_vpiChannelWeightsArrayData
VPIArrayData m_vpiChannelWeightsArrayData
VPIArrayData for m_channelWeights.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:291
IVisualTracker
Defines the interface implemented by visual trackers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/IVisualTracker.hpp:35
NvMotDataTypes::Rect2f
Rect_< float, 2 > Rect2f
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:47
DCFTracker::m_cudaStream
cudaStream_t m_cudaStream
CUDA stream used for tracker operations.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:224
DCFTrackerConfigParams::m_visualTrackerType
VISUAL_TRACKER_TYPES m_visualTrackerType
The type of visual tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:127
DCFTrackerConfigParams::m_debugParamFloat2
float m_debugParamFloat2
Third floating-point debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:124
DCFTracker::m_vpiObjPatchesData
VPIImageData m_vpiObjPatchesData
VPIImageData corresponding to m_vpiObjPatches_d.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:278
DCFTracker::initialize
void initialize(const SourceFrameInfo &frameInfo, const uint maxTargetsToTrack, const uint maxDetectorBboxesPerFrame, const std::shared_ptr< NvTrackedObjectManager > &targetManager) override
Initialize variables and allocate memories.
DCFTracker::m_trackerAge_d
uint32_t * m_trackerAge_d
Tracker age.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:233
DCFTrackerConfigParams::m_cufftHandleQuantFactor
int m_cufftHandleQuantFactor
Clustering size for cuFFT plans.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:104
DCFTracker::m_trackingConfidence_d
float * m_trackingConfidence_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:239
DCFTracker::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.
DCFTracker::isInitialized
bool isInitialized() override
Report whether tracker initialization completed.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:202
DCFTracker::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/DCFTracker.hpp:237
DCFTrackerConfigParams::m_isInit
bool m_isInit
Indicates whether the parameters have been initialized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:128
DCFTracker::m_vpiMaxCorrResponseArrayData
VPIArrayData m_vpiMaxCorrResponseArrayData
VPIArrayData for m_maxCorrResponse_d.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:289
DCFTrackerConfigParams::m_vizWriteAllTrajectoriesOnEveryFrame
bool m_vizWriteAllTrajectoriesOnEveryFrame
Write the whole frame with trajectories of all targets in the scene.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:111
DCFTrackerRunTimeParams::maxStreams
uint maxStreams
Maximum number of supported video streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:135
DCFTrackerConfigParams::m_vizOutDirectory
std::string m_vizOutDirectory
The directory to write the outputs.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:114
DCFTrackerConfigParams::m_debugVerboseLevel_cufft
int m_debugVerboseLevel_cufft
Debug verbosity level for cuFFT.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:76
DCFTrackerRunTimeParams::skipBatchUpdate
bool skipBatchUpdate
Indicates whether to skip the update for the whole batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:147
DCFTracker::cudaFilterUpdate
void cudaFilterUpdate()
Create and update the DCF filter.
DCFTracker::m_vpiStream
VPIStream m_vpiStream
VPI stream used for all VPI operations.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:250
DCFTrackerConfigParams::m_vizDebugStreamId
int m_vizDebugStreamId
Video stream ID selected for visualization debugging.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:115
DCFTrackerRunTimeParams::originalSrcImageSize
NvMotDataTypes::Size originalSrcImageSize
The size of the original video source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:139
DCFTracker::m_vpiDcfPayload
VPIPayload m_vpiDcfPayload
VPI payload for DCF Tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:248
DCFTrackerRunTimeParams::maxDetectorBboxesPerFrame
uint maxDetectorBboxesPerFrame
Maximum number of detector bounding boxes per frame.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:137
DCFTrackerRunTimeParams::singleFeatureMatSize
NvMotDataTypes::Size singleFeatureMatSize
Dimensions of a single feature matrix processed on the GPU.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:144
DCFTracker::m_confidenceAtDetectedPt_d
float * m_confidenceAtDetectedPt_d
Tracking confidence at each detector bbox center.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:235
DCFTrackerConfigParams::m_filterLr
float m_filterLr
Learning rate for DCF filter in exponential moving average.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:97
DCFTracker::m_vpiDCFBboxes
std::vector< VPIDCFTrackedBoundingBox > m_vpiDCFBboxes
List of tracked objects.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:261
DCFTracker::m_enabledSequences
int32_t * m_enabledSequences
An array marking the entries in input frame list as valid(1) or invalid(0).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:258
DCFTracker::m_vpiObjPatches_d
uint8_t * m_vpiObjPatches_d
Int8 device memory for VPI output that contains cropped and scaled object patches.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:272
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: includes/nvbufsurftransform.h:40
DCFTracker::m_vpiBboxesArraySize
int32_t m_vpiBboxesArraySize
Number of active entries in m_vpiDCFBboxes used for dynamic compute adjustment.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:265
DCFTrackerConfigParams::m_debugVerboseLevel
int m_debugVerboseLevel
Debug message verbose mode level.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:74
DCFTracker::m_vpiObjPatches
VPIImage m_vpiObjPatches
Image of cropped and scaled object patches.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:279
DCFTrackerConfigParams::m_featureFocusOffsetFactor_y
float m_featureFocusOffsetFactor_y
Vertical Hanning-window center offset relative to the feature height.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:92
DCFTracker::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/DCFTracker.hpp:228
NVBUF_MAX_PLANES
#define NVBUF_MAX_PLANES
Defines the maximum number of planes.
Definition: includes/nvbufsurface.h:56
DCFTrackerConfigParams::m_vizWriteBirdsEyeView
bool m_vizWriteBirdsEyeView
Write the bird's-eye view.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:110
DCFTracker::m_vpiDCFBboxesData
VPIArrayData m_vpiDCFBboxesData
VPIArrayData for m_vpiDCFBboxes.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:263
DCFTracker::m_isInit
bool m_isInit
Indicates whether tracker initialization completed.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:215
detectorBbox_t
Detector bbox in correlation-response coordinates.
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCF.h:31
uint
unsigned int uint
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:25
DCFTracker::m_vpiCreateParams
VPIDCFTrackerCreationParams m_vpiCreateParams
VPI DCF Tracker creation params.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:246
DCFTrackerConfigParams::m_useColorNames
bool m_useColorNames
Enables the ColorNames feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:79
DCFTracker::updateLocalizationResults
void updateLocalizationResults(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Update target states from their correlation responses.
DCFTracker::m_detectorBboxes_size_h
uint * m_detectorBboxes_size_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:232
DCFTrackerRunTimeParams::detectorInputInterval
int detectorInputInterval
Interval between external detector inputs.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:145
DCFTracker::queryParams
void queryParams(NvMOTQuery &paramsQuery)
Populate the visual tracker's capability query.
DCFTrackerRunTimeParams::templateSize
NvMotDataTypes::Size templateSize
Size of the rescaled search-region template.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:143
DCFTracker::m_featureChannelSize
int m_featureChannelSize
Number of channels in a feature vector.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:242
DCFTracker::m_vpiMaskingWindow4ModelData
VPIImageData m_vpiMaskingWindow4ModelData
VPIImageData for m_maskingWindow4Model.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:285
DCFTracker::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/DCFTracker.hpp:234
DCFTracker::m_confidenceAtDetectedPt_h
float * m_confidenceAtDetectedPt_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:235
DCFTracker::m_vpiMaskingWindow4ModelImage
VPIImage m_vpiMaskingWindow4ModelImage
VPIImage for m_maskingWindow4Model.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:286
DCFTrackerConfigParams::m_featureImgSize
float m_featureImgSize
Maximum template length in one dimension.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:90
DCFTrackerConfigParams::m_showGpuTiming
int m_showGpuTiming
Controls whether GPU timing is displayed.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:73
DCFTrackerConfigParams::m_filterChannelWeightsLr
float m_filterChannelWeightsLr
Learning rate for DCF filter channel weights in exponential moving average.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:98
DCFTracker::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/DCFTracker.hpp:227
DCFTracker::m_eventStop
cudaEvent_t m_eventStop
Event stop point for GPU timers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:307
DCFTrackerRunTimeParams::srcImageSize
NvMotDataTypes::Size srcImageSize
The size of the source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:140
DCFTracker::m_vpiMaskingWindow4SrcImage
VPIImage m_vpiMaskingWindow4SrcImage
VPIImage for m_maskingWindow4Src.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:284
NvBufSurfaceParams
Hold the information of single buffer in the batch.
Definition: includes/nvbufsurface.h:567
DCFTrackerConfigParams::m_vizWriteSrcImgPatchesAndCorrResp
bool m_vizWriteSrcImgPatchesAndCorrResp
Write the cropped/scaled image patches and correlation response.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:109
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
DCFTrackerConfigParams::m_debugParamInt0
int m_debugParamInt0
First integer debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:119
DCFTracker::m_trackerDoProcessing_d
bool * m_trackerDoProcessing_d
True when this tracker is updated for this batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:231
DCFTrackerConfigParams::m_debugVerboseLevel_gpumemory
int m_debugVerboseLevel_gpumemory
GPU memory debug verbosity level.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:75
DCFTracker::m_maxCorrResponse_h
float * m_maxCorrResponse_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:237
DCFTracker::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/DCFTracker.hpp:239
DCFTracker::m_paramsRt
DCFTrackerRunTimeParams m_paramsRt
Runtime params for visual tracker module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:217
DCFTracker::update
void update(const std::map< NvMOTStreamId, NvMOTFrame * > inputMeta) override
Update each target's correlation-filter model from an input batch.
DCFTracker::m_maskingWindow4Src
float * m_maskingWindow4Src
Masking window for input image feature (a CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:240
DCFTrackerConfigParams::m_useHog
bool m_useHog
Enables the HOG feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:80
NvTrackerParams
Provides common loading helpers for tracker configuration parameters.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvTrackerParams.hpp:35
DCFTrackerRunTimeParams::maxTargetsToTrack
uint maxTargetsToTrack
Maximum number of targets tracked across all streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:136
NvMOTStreamId
uint64_t NvMOTStreamId
Definition: includes/nvdstracker.h:53
DCFTrackerConfigParams::m_generateTrackerVisualization
bool m_generateTrackerVisualization
Enables tracker visualization generation.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:108
DCFTracker
Tracks objects with the VPI discriminative correlation filter implementation.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:154
DCFTracker::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/DCFTracker.hpp:219
DCFTracker::m_corrResponseAtDetectedPt_d
float * m_corrResponseAtDetectedPt_d
Correlation response at each detector bbox center.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:236
DCFTracker::m_vpiDCFBboxesLocalizedData
VPIArrayData m_vpiDCFBboxesLocalizedData
VPIArrayData for m_vpiDCFBboxesLocalized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:268
DCFTrackerConfigParams::read
void read(const YAML::Node &fn) override
Read visual tracker parameters from a YAML node.
DCFTrackerConfigParams::m_gaussianSigma
float m_gaussianSigma
Sigma for Gaussian for desired response.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:99
DCFTrackerConfigParams::m_vpiBackend4DcfTracker
VPIBackend m_vpiBackend4DcfTracker
VPI backend for the DCF tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:87
DCFTrackerConfigParams::m_modelMaskingWindowFactor
float m_modelMaskingWindowFactor
Masking-window factor used for focused filter learning.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:93
DCFTracker::m_deviceId
int m_deviceId
GPU device ID.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:296
DCFTracker::m_surfCudaMemPtr
uint8_t * m_surfCudaMemPtr[NVBUF_MAX_PLANES]
Pointers to cuda memories of all the planes in a surface.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:297
DCFTrackerConfigParams::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/DCFTracker.hpp:85
_NvMOTQuery
Holds the capabilities and requirements reported by the tracker library.
Definition: includes/nvdstracker.h:420
DCFTracker::m_vpiMemFlags
int m_vpiMemFlags
Flags used for creating VPI Image/Array wrappers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:251
DCFTracker::m_vpiCropPayload
VPIPayload m_vpiCropPayload
VPI payload for Crop scaler.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:249
DCFTracker::m_trackerAge_h
uint32_t * m_trackerAge_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:233
DCFTrackerRunTimeParams
Stores runtime dimensions and processing state for the VPI DCF tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:133
DCFTrackerConfigParams::m_hogCellSize
int m_hogCellSize
Cell size of HOG feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:94
DCFTracker::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.
DCFTracker::m_maxCorrResponse_ma_d
float * m_maxCorrResponse_ma_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:238
DCFTracker::~DCFTracker
virtual ~DCFTracker()
Release VPI DCF tracker resources.
DCFTracker::m_vpiMaskingWindow4SrcData
VPIImageData m_vpiMaskingWindow4SrcData
VPIImageData for m_maskingWindow4Src.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:283
DCFTracker::m_vpiChannelWeightsArray
VPIArray m_vpiChannelWeightsArray
VPIArray for m_channelWeights.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:292
DCFTracker::performCropAndScale
void performCropAndScale(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta, const bool isForLocalization)
Crop and scale object regions for localization or model update.
DCFTracker::m_targetManager
std::shared_ptr< NvTrackedObjectManager > m_targetManager
Target manager.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:218
DCFTracker::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/DCFTracker.hpp:211
DCFTracker::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/DCFTracker.hpp:232
DCFTracker::m_maskingWindow4Model
float * m_maskingWindow4Model
Masking window for the model for filter learning (a CUDA memory buffer).
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:241
DCFTracker::cudaCalculateResponse
void cudaCalculateResponse(void)
Given the cropped and scaled object patches and the learned filters, compute the correlation response...
DCFTracker::getDetectorBboxCorrelationResponses
void getDetectorBboxCorrelationResponses(const std::map< NvMOTStreamId, std::deque< DetectedObjInfo >> &detectedObjects)
Retrieve each tracker's correlation response at nearby detector bounding boxes.
DCFTracker::m_cudaKernelMaxBatchSize
int m_cudaKernelMaxBatchSize
Maximum CUDA batch size across feature channels and target trackers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:243
DCFTracker::DCFTracker
DCFTracker(const std::string &configFilePath)
Construct from a configuration file path.
DCFTrackerConfigParams
Configuration parameters for the VPI DCF tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:48
DCFTracker::setVpiInputFrameSequence
void setVpiInputFrameSequence(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Populate the VPI input frame sequence from MOT frames.
DCFTrackerRunTimeParams::m_maxBufSurfAddrSize
uint m_maxBufSurfAddrSize
Maximum number of stored EGL-mapped addresses.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:138
DCFTracker::m_vpiRuntimeParams
VPIDCFTrackerParams m_vpiRuntimeParams
VPI DCF Tracker runtime params.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:247
DCFTrackerConfigParams::m_lambda
float m_lambda
Regularization factor used in DCF filter creation.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:100
DCFTracker::m_vpiDCFBboxesLocalizedArray
VPIArray m_vpiDCFBboxesLocalizedArray
VPIArray for m_vpiDCFBboxesLocalized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:269
DCFTracker::m_corrResponseAtDetectedPt_h
float * m_corrResponseAtDetectedPt_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:236
DCFTracker::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.
NvMotDataTypes::Size
Represents a two-dimensional integer size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:52
DCFTracker::m_vpiMaxCorrResponseArray
VPIArray m_vpiMaxCorrResponseArray
VPIArray for m_maxCorrResponse_d.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:290
SourceFrameInfo
Information about the input source frames for the input frame batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:49
DCFTracker::getCufftPlanId
int getCufftPlanId(int num_target)
Select a cuFFT plan large enough for the requested target count.
DCFTrackerConfigParams::m_debugParamInt1
int m_debugParamInt1
Second integer debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:120
DCFTracker::getTemplateRescaleRatio
float getTemplateRescaleRatio(const NvMotDataTypes::Rect2f &roi) const
Compute the scale that maps a search region to the fixed feature-image size.
DCFTrackerRunTimeParams::colorFormat
NvBufSurfaceColorFormat colorFormat
Input source image color format.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:142
DCFTracker::m_vpiDCFBboxesLocalized
std::vector< VPIDCFTrackedBoundingBox > m_vpiDCFBboxesLocalized
List of localized objects.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:266
DCFTracker::getCudaMemPointers
void getCudaMemPointers(NvBufSurfaceParams *baseSurface)
Retrieve CUDA memory pointers for all planes of an NvBufSurface.
DCFTracker::m_maxCorrResponse_ma_h
float * m_maxCorrResponse_ma_h
The moving average of the max corr resp.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:238
DCFTrackerConfigParams::DCFTrackerConfigParams
DCFTrackerConfigParams()
Construct the default configuration.
DCFTracker::m_vpiInputFrameSequence
VPIImage * m_vpiInputFrameSequence
Sequence of VPIImage pointers to input frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:254
DCFTracker::m_detectorBboxes_h
detectorBbox_t * m_detectorBboxes_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:234
DCFTrackerConfigParams::m_useRgb
bool m_useRgb
Enables the RGB feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:82
DCFTracker::m_isFrameCreated
std::vector< bool > m_isFrameCreated
List indicating whether each frame wrapper has been created.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:256
DCFTrackerConfigParams::m_vpiBackend4CropnScale
VPIBackend m_vpiBackend4CropnScale
VPI backend for the crop scaler.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:86
DCFTracker::m_trackerDoProcessing_h
bool * m_trackerDoProcessing_h
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:231
DCFTrackerConfigParams::m_vizWriteEachCompletedTrajectory
bool m_vizWriteEachCompletedTrajectory
Write each completed trajectory.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:112
DCFTracker::m_vpiCorrResponsesImage
VPIImage m_vpiCorrResponsesImage
VPIImage for m_corrResponses_d.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:288
DCFTracker::allocateCudaMemories
void allocateCudaMemories()
Pre-allocate required cuda memories on GPU.
DCFTracker::checkInputOutput
void checkInputOutput(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Check the input and find the detection interval.
NvMotDataTypes::RowMajorMatrixXf
RowMajorMatrixX< float > RowMajorMatrixXf
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:39
DCFTracker::m_vpiCorrResponsesData
VPIImageData m_vpiCorrResponsesData
VPIImageData for m_corrResponses_d.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:287
DCFTracker::m_vpiDCFBboxesArray
VPIArray m_vpiDCFBboxesArray
VPIArray for m_vpiDCFBboxes.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:264
TrackerVizOutput
Renders and writes visual tracker debugging output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/vizOutput.hpp:43
DCFTrackerConfigParams::m_peakCorrLr
float m_peakCorrLr
Learning rate for peak correlation response in exponential moving average.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:101
DCFTracker::m_vpiObjPatchesNumChannels
int m_vpiObjPatchesNumChannels
Object patches are of format VPI_IMAGE_FORMAT_RGBA8 for CUDA backend.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:276
DCFTrackerConfigParams::m_debugParamFloat1
float m_debugParamFloat1
Second floating-point debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:123
DCFTrackerRunTimeParams::detCorrRespSearchWindowSize
int detCorrRespSearchWindowSize
Correlation-response search radius used to tolerate detector jitter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:149
NvBufSurfaceColorFormat
NvBufSurfaceColorFormat
Defines color formats for NvBufSurface.
Definition: includes/nvbufsurface.h:110
DCFTracker::getVisualTrackerType
const VISUAL_TRACKER_TYPES getVisualTrackerType() override
Return the configured visual tracker type.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:205
DCFTracker::m_integrated_gpu
int m_integrated_gpu
Indicates whether the tracker runs on an integrated GPU.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:295
DCFTrackerConfigParams::m_debugParamFloat0
float m_debugParamFloat0
First floating-point debugging parameter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/VisualTracker/DCFTracker.hpp:122