NVIDIA DeepStream SDK API Reference

9.2 Release
sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2024-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 SEGMENTERLIB_SEGMENTER_HPP_
19 #define SEGMENTERLIB_SEGMENTER_HPP_
20 
21 #include <deque>
22 #include <map>
23 #include <set>
24 
25 #ifdef VIZ_DEBUG_SEG
26 #include <opencv2/core.hpp>
27 #include <opencv2/imgcodecs.hpp>
28 #include <opencv2/imgproc.hpp>
29 #endif
30 
31 #include <cuda_runtime_api.h>
32 #include <cuda_runtime.h>
33 #include "cuda.h"
34 #include <NvInfer.h>
35 #include <NvOnnxParser.h>
36 #include "modules/Segmenter/ISegmenter.hpp"
37 #include "modules/FrameTransform/trtModule.hpp"
38 #include "modules/ReID/ReIDFrameTransformTexture.hpp"
39 #include "modules/ReID/ReIDCropScaler.hpp"
40 
41 enum SAM_POINT_TYPE : int
42 {
43  BACKGROUND = 0,
44  FOREGROUND = 1,
45  TOP_LEFT = 2,
47 };
48 
49 typedef std::shared_ptr<std::vector<float>> TensorPtr;
50 
53 {
60 };
61 
64 {
68 };
69 
72 {
74  std::vector<TensorPtr> objPtrCond;
75  std::vector<MemoryEncoderStatus> statusCond;
76  std::vector<TensorPtr> objPtrUncond;
77  std::vector<MemoryEncoderStatus> statusUncond;
78 };
79 
82 {
86 };
87 
90 {
98  int objPtrSize;
103  int batchSize;
104 };
105 
108 {
109 public:
112 
118  SegmenterConfigParams(const std::string &configFilePath, const std::string moduleName);
119 
124  SegmenterConfigParams(const YAML::Node &fn);
125 
130  void read(const YAML::Node &fn) override;
131 
134  std::vector<int> m_inferDims;
138  int m_width;
139  int m_height;
140  int m_channel;
141  int m_gpuId;
143  std::vector<float> m_offsets;
146  int m_outputLabelNum;
148  bool m_useVPICropScaler;
150  std::string m_vizDir;
153  bool m_outputMask;
169 
170 private:
171  std::string m_trackerConfigPathForPathResolve;
172 };
173 
176 {
177 public:
180 
183 
192  void initialize(
193  const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream,
194  const SegmenterRunTimeParams &paramsRt, const SegmenterConfigParams &params, cudaStream_t& cuStream
195  );
196 
207  void update(
208  float* maskMemFeatures_d, float* maskMemPosEnc_d, float* temporalCode_d, float* objPtr_d,
209  std::shared_ptr<NvTrackedObject> target, int indInBatch, CudaInferenceStatus& inferStatus
210  );
211 
216  void reset(const TrackerIndex targetInd);
217 
222  std::vector<float*> getCudaMemBank(const TrackerIndex targetInd);
223 
224 private:
225  bool m_isInit;
226  cudaStream_t m_cuStream;
227  SegmenterRunTimeParams m_paramsRt;
228  SegmenterConfigParams m_params;
229  float* m_targetsMaskMemFeatures_d;
230  float* m_targetsMaskMemPosEnc_d;
231  float* m_targetsTemporalCode_d;
232  float* m_targetsObjPtr_d;
233  float* m_work_0_d;
234 
246  void updateTensorBank(
247  float* srcBatch, float* dst, int& numFilled, const int maxNumPerTarget, const int numElementsPerTensor,
248  const TrackerIndex targetInd, const int indInBatch, const bool keepFirst=false
249  );
250 };
251 
253 class Segmenter: public ISegmenter
254 {
255 public:
260  Segmenter(const std::string &configFilePath);
261 
267  Segmenter(const std::string &configFilePath, const std::string &modelName);
268 
270  virtual ~Segmenter();
271 
278  void initialize(
279  const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream,
280  const std::shared_ptr<NvTrackedObjectManager> &targetManager
281  ) override;
282 
287  void queryParams(NvMOTQuery &paramsQuery) override;
288 
293  void localize(const std::map<NvMOTStreamId, NvMOTFrame *>& inputMeta) override;
294 
299  void update(const std::map<NvMOTStreamId, NvMOTFrame *>& inputMeta) override;
300 
306  void outputMaskObj(const std::shared_ptr<NvTrackedObject> target, NvMOTMask& mask) override;
307 
312  void removeStream(const NvMOTStreamId videoStreamId) override;
313 
315  bool isInitialized() override { return m_isInit; }
316 
319 
320 protected:
321  bool m_isInit;
328  cublasHandle_t m_cublasHandle;
329 
330  // [TRT inference modules]
335 
336  // [Image encoder]
340 
341  // [Memory attention]
346 
347  // [Mask decoder]
348  float *m_points_d;
350  float *m_inputMask_d;
353  float *m_maskForMem_d;
354  float *m_obj_ptr_d;
355  float *m_outputIou_d;
357  std::vector<float> m_outputIou_h;
359  std::vector<float> m_outputOccLogit_h;
361 
362  // [Memory encoder]
364 
365  // [Mask post-processing]
368 
369  // [Image size]
370  Eigen::Vector2f m_scaleMask2Src;
371  Eigen::Vector2f m_scaleInput2Original;
374 
375  // [Target related]
376  std::shared_ptr<NvTrackedObjectManager> m_targetManager;
377  std::shared_ptr<ReIDFrameTransformTexture> m_subImageCropper2;
378  std::shared_ptr<ReIDCropScaler> m_subImageCropScaler;
379  std::map<NvMOTStreamId, std::vector<std::pair<uint, NvMotDataTypes::Rect2f>>> m_inputRoisInBatch;
381  std::map<TrackerIndex, std::map<NvMOTFrameNum, SegmentMemoryInfo>> m_condFrameOutputs;
382  std::map<TrackerIndex, std::map<NvMOTFrameNum, SegmentMemoryInfo>> m_nonCondFrameOutputs;
383  std::map<TrackerIndex, InferenceStatus> m_inferStatus;
384  std::map<TrackerIndex, CudaInferenceStatus> m_cudaInferenceStatus;
385  std::map<TrackerIndex, std::vector<float>> m_targetScores;
388 
393  void doInference(const std::map<NvMOTStreamId, NvMOTFrame *>& inputMeta);
394 
399  void extractImagePatchesBatch(const std::map<NvMOTStreamId, NvMOTFrame *> &inputMeta);
400 
406  void fillMemoryConditionedFeatures(TrackerIndex targetInd, int indInBatch);
407 
413  void fillCudaMemoryConditionedFeatures(TrackerIndex targetInd, int indInBatch);
414 
415  // [TensorRT inference functions]
417  void initializeTrtBindings();
418 
423  void updateTrtBindingsPerStream(const uint inputRoiInd);
424 
433  void batchInfer(
434  const std::map<uint32_t, std::shared_ptr<NvTrackedObject>> &targetList, bool usePrompt,
435  int outputLabelIndMax, const NvMOTFrameNum frameNum, const uint inputRoiInd
436  );
437 
446  void singleInfer(
447  const std::map<uint32_t, std::shared_ptr<NvTrackedObject>> &targetList, bool usePrompt,
448  int outputLabelIndMax, const NvMOTFrameNum frameNum, const uint inputRoiInd
449  );
450 
452  void imgEncoderInfer();
453 
462  void maskDecoderInfer(
463  bool usePrompt, std::vector<std::shared_ptr<NvTrackedObject>>& targetList,
464  int& outputLabelIndMax, const uint inputStreamInd, const NvMOTFrameNum frameNum
465  );
466 
473  void memAttenInfer(const std::shared_ptr<NvTrackedObject> target, const int indInBatch, const int inputStreamInd);
474 
480  void memAttenInferBatchParser(std::vector<std::shared_ptr<NvTrackedObject>>& targetList, const int inputStreamInd);
481 
486  void memEncoderInfer(const int batchSizeActual);
487 
492  void setMaskDecoderPointLabels(int promptType);
493 
499  void setMaskDecoderSinglePointLabelAsNegative(int pointNumPerTarget, int indInBatch);
500 
506  void setMaskDecoderPoints(const bool usePrompt, std::vector<std::shared_ptr<NvTrackedObject>> targetList);
507 
514  void postProcessing(
515  const int indInBatch, const std::shared_ptr<NvTrackedObject> target, const NvMOTFrameNum frameNum
516  );
517 
524  void updateInferStatus(
525  const int indInBatch, const std::shared_ptr<NvTrackedObject> target, const NvMOTFrameNum frameNum
526  );
527 
529  void removeInferStatus();
530 
538  void copyFromCuda(float* src, TensorPtr& dst, int numElements, cudaStream_t& cuStream);
539 
545  inline bool isInferStatusEmpty(TrackerIndex targetInd)
546  {
548  {
549  if (m_cudaInferenceStatus.find(targetInd) != m_cudaInferenceStatus.end())
550  {
551  CudaInferenceStatus& targetStatus = m_cudaInferenceStatus.at(targetInd);
552  return targetStatus.numStatusUncond == 0;
553  }
554  else
555  {
556  return true;
557  }
558  }
559  else
560  {
561  if (m_inferStatus.find(targetInd) != m_inferStatus.end())
562  {
563  InferenceStatus& targetStatus = m_inferStatus.at(targetInd);
564  return targetStatus.statusCond.empty() && targetStatus.statusUncond.empty();
565  }
566  else
567  {
568  return true;
569  }
570  }
571  }
572 
578  bool skipInfer(std::shared_ptr<NvTrackedObject> target, const NvMOTFrameNum frameNum);
579 
587  inline bool isGoodBboxProg(
588  const std::shared_ptr<NvTrackedObject> target, const float confidence,
589  const NvMotDataTypes::Rect2f bboxProg, const float iouThresh=0.5
590  );
591 
592  #ifdef VIZ_DEBUG_SEG
593  cv::Mat m_imageSumMask;
594  cv::Mat m_imageIDMask;
595  std::map<NvMOTStreamId, std::map<uint, cv::Mat>> m_vizSrcImages;
596 
602  void updatePerTargetMaskInFrame(const std::shared_ptr<NvTrackedObject> target, bool initMask);
603 
610  void savePerFrameMask(
611  NvMOTStreamId videoStreamId, NvMOTFrameNum frameNum,
612  const std::map<uint32_t, std::shared_ptr<NvTrackedObject>> &targetList
613  );
614  #endif
615 };
616 
617 #endif // SEGMENTERLIB_SEGMENTER_HPP_
SegmentMemoryInfo::pred_masks_high_res
TensorPtr pred_masks_high_res
Predicted high-resolution masks.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:55
MemoryEncoderStatus
Records targets awaiting memory-encoder processing.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:63
Segmenter::m_bindingsMaskDecoder
std::vector< void * > m_bindingsMaskDecoder
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:387
Segmenter
Performs target segmentation and maintains temporal model state.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:253
Segmenter::Segmenter
Segmenter(const std::string &configFilePath)
Construct a Segmenter instance from configuration.
Segmenter::m_memory_pos_embed_d
float * m_memory_pos_embed_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:343
SegmenterRunTimeParams::highResFeaturesEncoder0Size
int highResFeaturesEncoder0Size
Image encoder high resolution (0) output feature size (single image).
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:92
NvMotDataTypes::Rect2f
Rect_< float, 2 > Rect2f
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:47
SegmenterRunTimeParams::highResMaskSize
int highResMaskSize
Mask decoder high resolution output mask size in a batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:100
SegmenterConfigParams::m_minMemoryUpdateConfidence
float m_minMemoryUpdateConfidence
Mask confidence to update memory bank.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:166
SegmenterConfigParams::m_vizDir
std::string m_vizDir
Dir to save visualization dumps.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:150
SegmenterCudaMemBank::getCudaMemBank
std::vector< float * > getCudaMemBank(const TrackerIndex targetInd)
Get CUDA memory-bank pointers for a target.
SegmenterConfigParams::m_inferDims
std::vector< int > m_inferDims
Network input dimension.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:134
CudaInferenceStatus::currentFrameNum
NvMOTFrameNum currentFrameNum
Target age at the latest memory update.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:83
Segmenter::m_params
SegmenterConfigParams m_params
Config params for Segmenter module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:323
Segmenter::m_memory_d
float * m_memory_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:343
Segmenter::m_work_1_d
float * m_work_1_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:342
FOREGROUND
@ FOREGROUND
Positive point prompt.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:44
Segmenter::m_bindingsMemAtten
std::vector< void * > m_bindingsMemAtten
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:387
SegmenterRunTimeParams::memChannel
int memChannel
Number of channels in memory feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:102
Segmenter::fillMemoryConditionedFeatures
void fillMemoryConditionedFeatures(TrackerIndex targetInd, int indInBatch)
Construct memory attention input.
Segmenter::m_cudaInferenceStatus
std::map< TrackerIndex, CudaInferenceStatus > m_cudaInferenceStatus
Cuda inference status.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:384
SegmenterConfigParams::m_maskMemoryUpdateInterval
int m_maskMemoryUpdateInterval
Frame interval to update memory bank.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:163
InferenceStatus::statusUncond
std::vector< MemoryEncoderStatus > statusUncond
Memory encoder status of the unconditional frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:77
SegmenterConfigParams::m_hiddenDim
int m_hiddenDim
Hidden feature dimension.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:133
Segmenter::m_targetScores
std::map< TrackerIndex, std::vector< float > > m_targetScores
Target IOU and occlusion scores.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:385
SegmenterConfigParams::m_width
int m_width
Input image patch width.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:138
Segmenter::extractImagePatchesBatch
void extractImagePatchesBatch(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Rescale low-level tracker frames into encoder input.
SegmentMemoryInfo::maskmem_pos_enc
TensorPtr maskmem_pos_enc
Mask memory position encoding.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:58
SegmenterRunTimeParams::highResFeaturesEncoder1Size
int highResFeaturesEncoder1Size
Image encoder high resolution (1) output feature size (single image).
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:93
Segmenter::setMaskDecoderSinglePointLabelAsNegative
void setMaskDecoderSinglePointLabelAsNegative(int pointNumPerTarget, int indInBatch)
Mark a single decoder prompt point as negative.
SegmenterRunTimeParams::maskMemFeatSize
int maskMemFeatSize
Memory encoder output memory feature size in a batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:96
Segmenter::setMaskDecoderPoints
void setMaskDecoderPoints(const bool usePrompt, std::vector< std::shared_ptr< NvTrackedObject >> targetList)
Populate mask-decoder prompt coordinates for a target batch.
Segmenter::m_memoryEncoder
TrtModule m_memoryEncoder
Memory encoder module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:334
Segmenter::m_points_d
float * m_points_d
Input a list of points (prompt) to decoder.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:348
Segmenter::m_batchMaskDecSize_d
float * m_batchMaskDecSize_d
Mask output for all targets in all streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:366
Segmenter::m_subImageCropScaler
std::shared_ptr< ReIDCropScaler > m_subImageCropScaler
Image crop scaler.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:378
Segmenter::batchInfer
void batchInfer(const std::map< uint32_t, std::shared_ptr< NvTrackedObject >> &targetList, bool usePrompt, int outputLabelIndMax, const NvMOTFrameNum frameNum, const uint inputRoiInd)
Batch inference.
SEGMENTER_TYPES
SEGMENTER_TYPES
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/ISegmenter.hpp:26
Segmenter::m_directly_add_no_mem_embed_d
float * m_directly_add_no_mem_embed_d
Non-memory embeddings added to image-encoder output.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:325
Segmenter::m_srcImageSize
NvMotDataTypes::Size m_srcImageSize
Input to low level tracker.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:372
InferenceStatus::objPtrCond
std::vector< TensorPtr > objPtrCond
Object pointers of the conditional frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:74
Segmenter::m_cudaMemBank
SegmenterCudaMemBank m_cudaMemBank
Cuda memory bank.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:386
SegmentMemoryInfo::pred_masks
TensorPtr pred_masks
Predicted masks.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:54
SegmenterConfigParams::m_netScaleFactor
float m_netScaleFactor
Input normalization factor.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:142
MemoryEncoderStatus::temporal_code
TensorPtr temporal_code
Temporal code.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:67
SAM_POINT_TYPE
SAM_POINT_TYPE
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:41
Segmenter::m_obj_ptr_d
float * m_obj_ptr_d
Output obj ptrs.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:354
InferenceStatus::statusCond
std::vector< MemoryEncoderStatus > statusCond
Memory encoder status of the conditional frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:75
Segmenter::initializeTrtBindings
void initializeTrtBindings()
Define IO bindings for each TRT engine.
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: includes/nvbufsurftransform.h:40
Segmenter::m_imageEncoder
TrtModule m_imageEncoder
Encoder to extract features from each image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:331
Segmenter::m_bindingsMemEncoder
std::vector< void * > m_bindingsMemEncoder
TensorRT bindings.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:387
SegmenterCudaMemBank
Manages CUDA-resident temporal features for SAM2 inference.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:175
SegmenterConfigParams
Stores configuration for segmentation inference.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:107
SegmenterConfigParams::m_offsets
std::vector< float > m_offsets
List of mean values of color components to be subtracted from input.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:143
Segmenter::imgEncoderInfer
void imgEncoderInfer()
Run the image encoder for the current input batch.
Segmenter::m_paramsRt
SegmenterRunTimeParams m_paramsRt
Runtime parameters.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:324
TOP_LEFT
@ TOP_LEFT
Top-left corner of a bounding-box prompt.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:45
SegmenterConfigParams::m_outputLabelNum
int m_outputLabelNum
Number of decoder output labels for each target.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:147
SegmenterConfigParams::m_debugVerboseLevel
int m_debugVerboseLevel
Debug message verbose mode level.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:159
uint
unsigned int uint
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:25
CudaInferenceStatus::numStatusUncond
int numStatusUncond
Number of unconditional memory entries stored.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:84
SegmenterConfigParams::m_minPromptUpdateConfidence
float m_minPromptUpdateConfidence
Minimum confidence of detection bbox to use as the prompt for mask decoder.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:168
SegmenterConfigParams::m_numConditionalMem
int m_numConditionalMem
Number of conditional frames to use for memory bank update.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:162
InferenceStatus::currentFrameNum
NvMOTFrameNum currentFrameNum
Target age at the latest memory update.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:73
SegmenterConfigParams::m_gpuId
int m_gpuId
Gpu id.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:141
Segmenter::memAttenInfer
void memAttenInfer(const std::shared_ptr< NvTrackedObject > target, const int indInBatch, const int inputStreamInd)
Run memory attention for one tracked target.
Segmenter::m_pointLabels_d
float * m_pointLabels_d
Input a list of point types (single point, bounding box corners) to decoder.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:349
Segmenter::m_visionPosEmbed_d
float * m_visionPosEmbed_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:339
SegmenterConfigParams::read
void read(const YAML::Node &fn) override
Load configuration values from a YAML node.
SegmenterConfigParams::m_segmenterType
SEGMENTER_TYPES m_segmenterType
Type of segmenter.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:132
Segmenter::m_outputOccLogit_h
std::vector< float > m_outputOccLogit_h
Output occlusion logit on host.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:359
NvMOTFrameNum
uint32_t NvMOTFrameNum
Definition: includes/nvdsmotmetafusion.h:51
SegmenterConfigParams::m_promptType
int m_promptType
Prompt type.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:145
Segmenter::m_visionFeats_d
float * m_visionFeats_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:339
Segmenter::m_bindingsImgEncoder
std::vector< void * > m_bindingsImgEncoder
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:387
Segmenter::m_cublasHandle
cublasHandle_t m_cublasHandle
Cublas handle.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:328
Segmenter::doInference
void doInference(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
Run segmentation inference for targets in the input batch.
SegmenterCudaMemBank::~SegmenterCudaMemBank
~SegmenterCudaMemBank()
Release resources owned by the SegmenterCudaMemBank instance.
MemoryEncoderStatus::maskmem_features
TensorPtr maskmem_features
Mask memory features.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:65
Segmenter::m_nonCondFrameOutputs
std::map< TrackerIndex, std::map< NvMOTFrameNum, SegmentMemoryInfo > > m_nonCondFrameOutputs
Outputs of the non-conditional frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:382
SegmenterRunTimeParams::batchSize
int batchSize
Batch size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:103
Segmenter::m_scaleInput2Original
Eigen::Vector2f m_scaleInput2Original
Scale from decoder output to original frame size decided by streammux.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:371
SegmentMemoryInfo::maskmem_features
TensorPtr maskmem_features
Mask memory features.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:57
SegmenterRunTimeParams::objPtrSize
int objPtrSize
Mask decoder output obj ptr size in a batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:98
SegmenterCudaMemBank::reset
void reset(const TrackerIndex targetInd)
Clear retained memory for one target.
TrtModule
TRT module to perform various deep learning inference.
Definition: sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/trtModule.hpp:137
Segmenter::isGoodBboxProg
bool isGoodBboxProg(const std::shared_ptr< NvTrackedObject > target, const float confidence, const NvMotDataTypes::Rect2f bboxProg, const float iouThresh=0.5)
Check whether a propagated bounding box is reliable.
Segmenter::m_maskmem_features_d
float * m_maskmem_features_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:363
Segmenter::m_outputIou_d
float * m_outputIou_d
Output IOU score.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:355
Segmenter::isInitialized
bool isInitialized() override
Report whether the module is initialized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:315
SegmentMemoryInfo
Holds per-frame segmentation features retained in memory.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:52
Segmenter::m_temporal_code_d
float * m_temporal_code_d
Output mask memory features and pos encoding.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:363
Segmenter::maskDecoderInfer
void maskDecoderInfer(bool usePrompt, std::vector< std::shared_ptr< NvTrackedObject >> &targetList, int &outputLabelIndMax, const uint inputStreamInd, const NvMOTFrameNum frameNum)
Run mask-decoder inference for the current target batch.
Segmenter::m_isForLocalization
bool m_isForLocalization
Whether the inference is for localization.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:322
Segmenter::m_work_0_d
float * m_work_0_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:342
Segmenter::m_maskForMem_d
float * m_maskForMem_d
Output mask high resolution.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:353
NvTrackerParams
Provides common loading helpers for tracker configuration parameters.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvTrackerParams.hpp:35
NvMOTStreamId
uint64_t NvMOTStreamId
Definition: includes/nvdstracker.h:53
Segmenter::m_scaleMask2Src
Eigen::Vector2f m_scaleMask2Src
Scale from mask output to the source image.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:370
SegmenterRunTimeParams::featuresEncoderSize
int featuresEncoderSize
Image encoder basic resolution output feature size (single image).
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:91
SegmentMemoryInfo::obj_ptr
TensorPtr obj_ptr
Object pointer.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:56
Segmenter::getSegmenterType
const SEGMENTER_TYPES getSegmenterType() override
Get the configured segmenter type.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:318
Segmenter::m_inputMaskLabel_d
float * m_inputMaskLabel_d
Input mask label, currently unused and set as 0.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:351
SegmenterConfigParams::m_minIouPrevFrame4ProgBbox
float m_minIouPrevFrame4ProgBbox
IOU threshold to use detection bboxes as the prompt for mask decoder.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:165
Segmenter::m_outputOccLogit_d
float * m_outputOccLogit_d
Output occlusion logit; <2 means target is occluded.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:356
Segmenter::m_outputIou_h
std::vector< float > m_outputIou_h
Output IOU score on host.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:358
BACKGROUND
@ BACKGROUND
Negative point prompt.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:43
Segmenter::m_pix_feat_with_mem_d
float * m_pix_feat_with_mem_d
Attention output features with memory for one target.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:344
Segmenter::m_inputBuf_h
float * m_inputBuf_h
Input patches to encoder.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:337
BOTTOM_RIGHT
@ BOTTOM_RIGHT
Bottom-right corner of a bounding-box prompt.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:46
SegmenterConfigParams::m_updateMemBankPrompt
bool m_updateMemBankPrompt
Update memory bank using bbox prompt.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:157
SegmentMemoryInfo::temporal_code
TensorPtr temporal_code
Temporal code.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:59
Segmenter::initialize
void initialize(const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream, const std::shared_ptr< NvTrackedObjectManager > &targetManager) override
Initialize variables and allocate memories.
Segmenter::memAttenInferBatchParser
void memAttenInferBatchParser(std::vector< std::shared_ptr< NvTrackedObject >> &targetList, const int inputStreamInd)
Assemble and run batched memory-attention input.
_NvMOTQuery
Holds the capabilities and requirements reported by the tracker library.
Definition: includes/nvdstracker.h:420
SegmenterConfigParams::m_numMaskMem
int m_numMaskMem
Number of memory bank masks.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:158
Segmenter::m_inputBuf_d
float * m_inputBuf_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:337
SegmenterConfigParams::SegmenterConfigParams
SegmenterConfigParams()
Construct a SegmenterConfigParams instance.
SegmenterConfigParams::m_maskPromptUpdateInterval
int m_maskPromptUpdateInterval
Frame interval to use detection bboxes as the prompt for mask decoder. (Memory bank is also used exce...
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:167
SegmenterConfigParams::m_channel
int m_channel
Input image patch channel.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:140
Segmenter::removeInferStatus
void removeInferStatus()
Remove terminated memory bank.
SegmenterRunTimeParams::pixFeatWithMemSize
int pixFeatWithMemSize
Memory attention output feature size in a batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:94
Segmenter::m_isInit
bool m_isInit
Segmenter status if initialized.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:321
SegmenterConfigParams::m_useMemBank
bool m_useMemBank
Use memory bank.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:155
SegmenterConfigParams::m_saveIDMask
bool m_saveIDMask
Enables saving encoded target-ID masks.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:152
SegmenterConfigParams::m_maxMemVecSize_legacy
int m_maxMemVecSize_legacy
Maximum memory vector size of the legacy work spaces.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:137
SegmenterConfigParams::m_encoderFeatureDim
int m_encoderFeatureDim
Encoder feature dimension.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:136
Segmenter::queryParams
void queryParams(NvMOTQuery &paramsQuery) override
Populate the capabilities reported to the tracker.
Segmenter::update
void update(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta) override
Update Segmenter after data association.
SegmenterConfigParams::m_outputMask
bool m_outputMask
Output mask to tracker plugin.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:154
TensorPtr
std::shared_ptr< std::vector< float > > TensorPtr
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:49
SegmenterConfigParams::m_height
int m_height
Input image patch height.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:139
Segmenter::m_targetMaskDecSize_h
float * m_targetMaskDecSize_h
Output mask basic resolution.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:352
Segmenter::m_outputSize_d
int * m_outputSize_d
Output size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:360
Segmenter::m_featuresEncoder_d
float * m_featuresEncoder_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:338
Segmenter::m_inputMask_d
float * m_inputMask_d
Input mask prompt, currently unused and set as 0.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:350
Segmenter::m_memoryAttention
TrtModule m_memoryAttention
Memory attention module.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:333
SegmenterConfigParams::m_useVPICropScaler
bool m_useVPICropScaler
Use VPI crop scaler instead of in built crop scaler.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:149
Segmenter::m_memory_obj_ptr_d
float * m_memory_obj_ptr_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:343
ISegmenter
Defines the interface for target segmentation modules.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/ISegmenter.hpp:35
Segmenter::setMaskDecoderPointLabels
void setMaskDecoderPointLabels(int promptType)
Populate mask-decoder labels for points or bounding boxes.
Segmenter::copyFromCuda
void copyFromCuda(float *src, TensorPtr &dst, int numElements, cudaStream_t &cuStream)
Copy a CUDA buffer into a TensorRT tensor.
Segmenter::m_targetManager
std::shared_ptr< NvTrackedObjectManager > m_targetManager
Target manager providing target status to update feature gallery.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:376
Segmenter::m_memory_maskmem_features_d
float * m_memory_maskmem_features_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:343
Segmenter::outputMaskObj
void outputMaskObj(const std::shared_ptr< NvTrackedObject > target, NvMOTMask &mask) override
Output segmentation mask of a target.
TrackerIndex
uint32_t TrackerIndex
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:42
Segmenter::updateTrtBindingsPerStream
void updateTrtBindingsPerStream(const uint inputRoiInd)
Update TRT bindings per stream.
SegmenterRunTimeParams::maxPointNum
int maxPointNum
Max number of points for each object.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:101
Segmenter::isInferStatusEmpty
bool isInferStatusEmpty(TrackerIndex targetInd)
Check whether a target has no retained inference state.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:545
CudaInferenceStatus::numObjPtrUncond
int numObjPtrUncond
Number of object pointers stored.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:85
Segmenter::skipInfer
bool skipInfer(std::shared_ptr< NvTrackedObject > target, const NvMOTFrameNum frameNum)
Determine whether segmentation can be skipped for a target.
Segmenter::m_targetMaskOriginalSrcSize_d
float * m_targetMaskOriginalSrcSize_d
Mask for each target resized to original streammux size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:367
Segmenter::m_cond_frame_id_diff_d
float * m_cond_frame_id_diff_d
Memory attention inputs: object pointers, mask memory features, memory, positional embeddings,...
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:343
SegmenterRunTimeParams
Stores dimensions and batch limits used at segmenter runtime.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:89
Segmenter::updateInferStatus
void updateInferStatus(const int indInBatch, const std::shared_ptr< NvTrackedObject > target, const NvMOTFrameNum frameNum)
Record a target in the pending inference batch.
Segmenter::memEncoderInfer
void memEncoderInfer(const int batchSizeActual)
Run the memory encoder for the current target batch.
Segmenter::m_highResFeaturesEncoder1_d
float * m_highResFeaturesEncoder1_d
Image encoder output feature.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:338
Segmenter::m_highResFeaturesEncoder0_d
float * m_highResFeaturesEncoder0_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:338
Segmenter::m_highResImgPosEmbed1_d
float * m_highResImgPosEmbed1_d
Image encoder output position embedding.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:339
Segmenter::removeStream
void removeStream(const NvMOTStreamId videoStreamId) override
Remove a stream's Segmenter features.
Segmenter::m_inferStatus
std::map< TrackerIndex, InferenceStatus > m_inferStatus
Inference status.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:383
NvMotDataTypes::Size
Represents a two-dimensional integer size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/utility/dataTypes.hpp:52
MemoryEncoderStatus::maskmem_pos_enc
TensorPtr maskmem_pos_enc
Mask memory position encoding.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:66
SourceFrameInfo
Information about the input source frames for the input frame batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/NvMultiObjectTracker/NvMultiObjectTracker_common.hpp:49
CudaInferenceStatus
Tracks batched CUDA inference work across streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:81
Segmenter::postProcessing
void postProcessing(const int indInBatch, const std::shared_ptr< NvTrackedObject > target, const NvMOTFrameNum frameNum)
Convert one inference result into retained target state.
SegmenterConfigParams::m_minIouDiff4MemoryUpdate
float m_minIouDiff4MemoryUpdate
IOU threshold to update memory bank.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:164
InferenceStatus::objPtrUncond
std::vector< TensorPtr > objPtrUncond
Object pointers of the unconditional frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:76
Segmenter::m_work_2_d
float * m_work_2_d
Scratch buffers for memory attention.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:342
SegmenterConfigParams::m_saveFrameViz
bool m_saveFrameViz
Save overlay masks for each target in each frame.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:151
Segmenter::m_condFrameOutputs
std::map< TrackerIndex, std::map< NvMOTFrameNum, SegmentMemoryInfo > > m_condFrameOutputs
Outputs of the conditional frames.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:381
SegmenterConfigParams::m_numObjPtr
int m_numObjPtr
Number of object pointers.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:161
Segmenter::m_maskmem_pos_enc_d
float * m_maskmem_pos_enc_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:363
Segmenter::singleInfer
void singleInfer(const std::map< uint32_t, std::shared_ptr< NvTrackedObject >> &targetList, bool usePrompt, int outputLabelIndMax, const NvMOTFrameNum frameNum, const uint inputRoiInd)
Run segmentation for one target.
Segmenter::localize
void localize(const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta) override
Localize and segment target in a new frame.
Segmenter::m_originalSrcImageSize
NvMotDataTypes::Size m_originalSrcImageSize
Input to tracker plugin, usually from streammux.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:373
SegmenterCudaMemBank::SegmenterCudaMemBank
SegmenterCudaMemBank()
Construct a SegmenterCudaMemBank instance from configuration.
_NvMOTMask
Holds the segmentaiton mask of an object.
Definition: includes/nvdstracker.h:225
SegmenterConfigParams::m_inputOrder
int m_inputOrder
Input dimension order: 0: NCHW, 1: NHWC.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:135
Segmenter::m_cuStream
cudaStream_t m_cuStream
Cuda stream to run all GPU tasks.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:327
SegmenterRunTimeParams::temporalCodeSize
int temporalCodeSize
Temporal code size.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:97
SegmenterCudaMemBank::initialize
void initialize(const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream, const SegmenterRunTimeParams &paramsRt, const SegmenterConfigParams &params, cudaStream_t &cuStream)
Initialize memory bank.
Segmenter::fillCudaMemoryConditionedFeatures
void fillCudaMemoryConditionedFeatures(TrackerIndex targetInd, int indInBatch)
Fill memory conditioned features for cuda memory bank.
SegmenterRunTimeParams::basicMaskSize
int basicMaskSize
Mask decoder basic resolution output mask size in a batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:99
Segmenter::~Segmenter
virtual ~Segmenter()
Release resources owned by the Segmenter instance.
Segmenter::m_batchPixFeatWithMem_d
float * m_batchPixFeatWithMem_d
Attention output features with memory for all targets in all streams.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:345
Segmenter::m_inputRoisInBatch
std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > m_inputRoisInBatch
Input rois to crop.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:380
SegmenterConfigParams::m_promptBboxPaddingScale
float m_promptBboxPaddingScale
Padding of the bounding-box prompt as a fraction of the box height.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:160
Segmenter::m_subImageCropper2
std::shared_ptr< ReIDFrameTransformTexture > m_subImageCropper2
Image cropper, may share with visual tracker in the future.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:377
Segmenter::m_maskDecoder
TrtModule m_maskDecoder
Decoder taking in prompts (points, bboxes, etc.) to create segmentation mask.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:332
Segmenter::m_targetMaskDecSize_d
float * m_targetMaskDecSize_d
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:352
SegmenterRunTimeParams::maxConcatMemFeatSize
int maxConcatMemFeatSize
Memory attention input feature max size in a batch.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:95
InferenceStatus
Tracks pending segmentation inference for one stream.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:71
SegmenterConfigParams::m_colorFormat
NvBufSurfaceColorFormat m_colorFormat
Color format of input to segmentation network.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:144
SegmenterConfigParams::m_useCudaMemBank
bool m_useCudaMemBank
Use cuda memory bank.
Definition: sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp:156
NvBufSurfaceColorFormat
NvBufSurfaceColorFormat
Defines color formats for NvBufSurface.
Definition: includes/nvbufsurface.h:110
SegmenterCudaMemBank::update
void update(float *maskMemFeatures_d, float *maskMemPosEnc_d, float *temporalCode_d, float *objPtr_d, std::shared_ptr< NvTrackedObject > target, int indInBatch, CudaInferenceStatus &inferStatus)
Update memory bank.