NvDCF destroys output from pgie

• V100
• DS5.0 Docker
• 7.0.0
• 440.64

Hi all, I feel like I am missing something obvious, but a pipeline with pgie followed by a tracker works fine if I use KLT or IOU tracker, but completely stops producing any output if I switch the tracker to NvDCF. Any ideas what might be the issue? By completely stopping to produce output I mean that for some reason obj_meta_list comes empty after the tracker, but I can verify that it is not empty before

Here’ my tracker config:

NvDCF:
    # [General]
    useUniqueID: 1    # Use 64-bit long Unique ID when assignining tracker ID. Default is [true]
    maxTargetsPerStream: 99 # 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

    # [Feature Extraction]
    useColorNames: 1     # Use ColorNames feature
    useHog: 1            # Use Histogram-of-Oriented-Gradient (HOG) feature
    useHighPrecisionFeature: 0  # Use high-precision in feature extraction. Default is [true]

    # [DCF]
    filterLr: 0.15 # learning rate for DCF filter in exponential moving average. Valid Range: [0.0, 1.0]
    filterChannelWeightsLr: 0.22 # learning rate for the channel weights among feature channels. Valid Range: [0.0, 1.0]
    gaussianSigma: 0.75 # Standard deviation for Gaussian for desired response when creating DCF filter [pixels]
    featureImgSizeLevel: 5 # Size of a feature image. Valid range: {1, 2, 3, 4, 5}, from the smallest to the largest
    SearchRegionPaddingScale: 1 # Search region size. Determines how large the search region should be scaled     from the target bbox.  Valid range: {1, 2, 3}, from the smallest to the largest

    # [MOT] [False Alarm Handling]
    maxShadowTrackingAge: 30  # Max length of shadow tracking (the shadow tracking age is incremented when (1)     there's detector input yet no match or (2) tracker confidence is lower than minTrackerConfidence). Once reached, the tracker will be terminated.
    probationAge: 3           # Once the tracker age (incremented at every frame) reaches this, the tracker is considered to be valid
    earlyTerminationAge: 1    # Early termination age (in terms of shadow tracking age) during the probation period. If reached during the probation period, the tracker will be terminated prematurely.

    # [Tracker Creation Policy] [Target Candidacy]
    minDetectorConfidence: -1  # If the confidence of a detector bbox is lower than this, then it won't be considered for tracking
    minTrackerConfidence: 0.7  # 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]
    minTargetBboxSize: 0      # If the width or height of the bbox size gets smaller than this threshold, the target will be terminated.
    minDetectorBboxVisibilityTobeTracked: 0.0  # If the detector-provided bbox's visibility (i.e., IOU with image) is lower than this, it won't be considered.  
    minVisibiilty4Tracking: 0.0  # If the visibility of the tracked object (i.e., IOU with image) is lower than this, it will be terminated immediately, assuming it is going out of scene.

    # [Tracker Termination Policy]
    targetDuplicateRunInterval: 5 # The interval in which the duplicate target detection removal is carried out. A Negative value indicates indefinite interval. Unit: [frames]
    minIou4TargetDuplicate: 0.9 # If the IOU of two target bboxes are higher than this, the newer target tracker will be terminated.

    # [Data Association] Matching method
    useGlobalMatching: 0   # If true, enable a global matching algorithm (i.e., Hungarian method). Otherwise, a greedy algorithm wll be used.

    # [Data Association] Thresholds in matching scores to be considered as a valid candidate for matching
    minMatchingScore4Overall: 0.0   # Min total score
    minMatchingScore4SizeSimilarity: 0.5    # Min bbox size similarity score
    minMatchingScore4Iou: 0.1       # Min IOU score
    minMatchingScore4VisualSimilarity: 0.2    # Min visual similarity score
    
    # [Data Association] Weights for each matching score term
    matchingScoreWeight4VisualSimilarity: 0.8  # Weight for the visual similarity (in terms of correlation response ratio)
    matchingScoreWeight4SizeSimilarity: 0.0    # Weight for the Size-similarity score
    matchingScoreWeight4Iou: 0.1               # Weight for the IOU score
    matchingScoreWeight4Age: 0.1               # Weight for the tracker age

    # [State Estimator]
    useTrackSmoothing: 1    # Use a state estimator
    stateEstimatorType: 1   # The type of state estimator among { moving_avg:1, kalman_filter:2 }

    # [State Estimator] [MovingAvgEstimator]
    trackExponentialSmoothingLr_loc: 0.5       # Learning rate for new location
    trackExponentialSmoothingLr_scale: 0.3     # Learning rate for new scale
    trackExponentialSmoothingLr_velocity: 0.05  # Learning rate for new velocity

    # [State Estimator] [Kalman Filter] 
    kfProcessNoiseVar4Loc: 0.1   # Process noise variance for location in Kalman filter
    kfProcessNoiseVar4Scale: 0.04   # Process noise variance for scale in Kalman filter
    kfProcessNoiseVar4Vel: 0.04   # Process noise variance for velocity in Kalman filter
    kfMeasurementNoiseVar4Trk: 9   # Measurement noise variance for tracker's detection in Kalman filter
    kfMeasurementNoiseVar4Det: 9   # Measurement noise variance for detector's detection in Kalman filter

    # [Past-frame Data] 
    useBufferedOutput: 0   # Enable storing of past-frame data in a buffer and report it back

    # [Instance-awareness]
    useInstanceAwareness: 0 # Use instance-awareness for multi-object tracking
    lambda_ia: 2            # Regularlization factor for each instance
    maxInstanceNum_ia: 4    # The number of nearby object instances to use for instance-awareness

    minTrackingConfidenceDuringInactive: 99 #gets rid of the lingering big boxes

Are you using deepstream-app, what’s the deepstream-app config file?

Hi, @bcao, no, I am using a custom pipeline setup very similar to deepstream-test3. It reads a number of input streams and uses a custom detector as a pgie with a custom output parsing function

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Could you explain more details about this?