NvTracker update the meta data of object detection output

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson and GPU)
• DeepStream Version 6.2

• Issue Type( questions or bugs)

Hello.
I am having the issues with output of the model object detection in the deepstream pipeline with the nvtracker element.

I had debug and check the number of object and their meta data like (left, top) value in two points.

the first one is at probe buffer srcpad of the nvinfer [got 2 objects here]
the second one is at probe buffer srcpad of the nvtracker [only 1 object here]

it already had the same frame id. but the number object and the meta location of object also had been change.

Do the nvtracker update the meta of the list object frame? if so, How could I disable this update behavior?

Thank you so much

Can you share the configure file of nvtracker and the application? Can you have a try with NvDeepSORT tracker? Can you have a try to set probationAge to 0?

1 Like

Thank you @kesong . the probationAge help me keep the number of boxes object as they are. just one more issue about the value of bounding boxes had been shifted or modified a bit? I think the tracker also do that. how could I keep the bounding box values same as origin?

I used nvsort config:

%YAML:1.0
################################################################################
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
################################################################################

BaseConfig:
  minDetectorConfidence: 0.1345    # If the confidence of a detector bbox is lower than this, then it won't be considered for tracking

TargetManagement:
  enableBboxUnClipping: 1    # In case the bbox is likely to be clipped by image border, unclip bbox
  maxTargetsPerStream: 300    # Max number of targets to track per stream. Recommended to set >10. Note: this value should account for the targets being tracked in shadow mode as well. Max value depends on the GPU memory capacity

  # [Creation & Termination Policy]
  minIouDiff4NewTarget: 0.5780    # If the IOU between the newly detected object and any of the existing targets is higher than this threshold, this newly detected object will be discarded.
  minTrackerConfidence: 0.6    # If the confidence of an object tracker is lower than this on the fly, then it will be tracked in shadow mode. Valid Range: [0.0, 1.0]
  probationAge: 0    # If the target's age exceeds this, the target will be considered to be valid.
  maxShadowTrackingAge: 26    # Max length of shadow tracking. If the shadowTrackingAge exceeds this limit, the tracker will be terminated.
  earlyTerminationAge: 2    # If the shadowTrackingAge reaches this threshold while in TENTATIVE period, the the target will be terminated prematurely.

TrajectoryManagement:
  useUniqueID: 0    # Use 64-bit long Unique ID when assignining tracker ID. Default is [true]

DataAssociator:
  dataAssociatorType: 0    # the type of data associator among { DEFAULT= 0 }
  associationMatcherType: 1    # the type of matching algorithm among { GREEDY=0, CASCADED=1 }
  checkClassMatch: 1    # If checked, only the same-class objects are associated with each other. Default: true

  # [Association Metric: Thresholds for valid candidates]
  minMatchingScore4Overall: 0.2543    # Min total score
  minMatchingScore4SizeSimilarity: 0.4019    # Min bbox size similarity score
  minMatchingScore4Iou: 0.2159    # Min IOU score
  matchingScoreWeight4SizeSimilarity: 0.1365    # Weight for the Size-similarity score
  matchingScoreWeight4Iou: 0.3836    # Weight for the IOU score

  # [Association Metric: Tentative detections] only uses iou similarity for tentative detections
  tentativeDetectorConfidence: 0.2331    # If a detection's confidence is lower than this but higher than minDetectorConfidence, then it's considered as a tentative detection
  minMatchingScore4TentativeIou: 0.2867    # Min iou threshold to match targets and tentative detection
  usePrediction4Assoc: 1    # use the predicted state info for association instead of the past known states

StateEstimator:
  stateEstimatorType: 2    # the type of state estimator among { DUMMY=0, SIMPLE=1, REGULAR=2 }

  # [Dynamics Modeling]
  noiseWeightVar4Loc: 0.0301    # weight of process and measurement noise for bbox center; if set, location noise will be proportional to box height
  noiseWeightVar4Vel: 0.0017    # weight of process and measurement noise for velocity; if set, velocity noise will be proportional to box height
  useAspectRatio: 1    # use aspect ratio in Kalman filter's observation


Hello @kesong do you have any update on this?
I have one more issue about meta data have been modified. please help me check it.

Thank you so much!

Hi @kesong One more information hope that could help to check.
I set the streammux property “enable-padding” is True

Thank you @kesong I had solve this issue.

I updated the solution for anyone might have same problem with me.

""" re-assign origin bounding box of detector """
obj_meta.rect_params.left = obj_meta.detector_bbox_info.org_bbox_coords.left
obj_meta.rect_params.top = obj_meta.detector_bbox_info.org_bbox_coords.top
obj_meta.rect_params.width = obj_meta.detector_bbox_info.org_bbox_coords.width
obj_meta.rect_params.height = obj_meta.detector_bbox_info.org_bbox_coords.height

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.