Nvtracker mistake A obj_meta->s track_id for B when two pgie in front of nvtracker

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
GPU
• DeepStream Version
5.1
• JetPack Version (valid for Jetson only)
• TensorRT Version
5.2.3
• NVIDIA GPU Driver Version (valid for GPU only)
460
• Issue Type( questions, new requirements, bugs)
maybe bugs
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
I found other people met the same issue.

my pipeline was below:
part of pipeline: nvinfer(vehicle) (unique_component_id: 1) -----> nvinfer(person) (unique_component_id:7)-----> nvtracker -----> nvvideoconvert -----> nvdsosd

I used the std::map<track_id, ObjectContext> to maintain the new object’s tracks, but sometimes vehicle’s obj_meta->track_id would be mistaked for person, person’s obj_meta->track_id would be mistaked for vehicle
Here was the log:

image
[2021-07-07 19:00:46.054] [ai_log] [info] nvstreammux0: stream enter
[2021-07-07 19:00:46.054] [ai_log] [info] nvv4l2decoder0: stream create
[2021-07-07 19:00:46.055] [ai_log] [info] nvv4l2decoder0: stream enter
[NvDCF][Warning] minTrackingConfidenceDuringInactive is deprecated
[NvDCF] Initialized
[2021-07-07 19:00:48.210] [ai_log] [info] nvv4l2h264enc0: stream create
[2021-07-07 19:00:48.210] [ai_log] [info] nvv4l2h264enc0: stream enter
vehicle 172 mistake for person
person 1190 mistake for vehicle

I wonder if the nvtrack will tag over cross the tracking objects. please help, tranks

• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

when I merged tow pige meta into one unique_component_id before nvtracker, the issue still existed.

#define FIRST_DETECTOR_ID 1

#define VEHICLE_DETECTOR_ID 2

#define PERSON_DETECTOR_ID 1



enum class DetectionType
    {
        NONE = 0,

        PERSON  = 1,

        VEHICLE = 1 << 1,

        ALL = VEHICLE | PERSON
    };


void MergeDetections(NvDsBatchMeta *&batch_meta)
{
    for (NvDsMetaList *l_frame = batch_meta->frame_meta_list; l_frame != NULL;

         l_frame = l_frame->next)

    {

        NvDsFrameMeta *frame_meta = (NvDsFrameMeta*)l_frame->data;

        for (NvDsMetaList *l_obj = frame_meta->obj_meta_list; l_obj != NULL;

             l_obj = l_obj->next)

        {
            NvDsObjectMeta *obj = (NvDsObjectMeta *)l_obj->data;

            if(obj->unique_component_id == PERSON_DETECTOR_ID)

            {

                obj->unique_component_id = FIRST_DETECTOR_ID;

                obj->class_id = gint(DetectionType::PERSON);

            }

            else if(obj->unique_component_id == VEHICLE_DETECTOR_ID)

            {

                obj->unique_component_id = FIRST_DETECTOR_ID;

                obj->class_id = gint(DetectionType::VEHICLE);

            }
        }
    }
}

vehicle 1810 mistake for person
vehicle 2082 mistake for person
vehicle 3082 mistake for person
person 4232 mistake for vehicle
vehicle 4620 mistake for person
vehicle 5496 mistake for person
vehicle 5565 mistake for person
person 5715 mistake for vehicle
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5565 mistake for person
vehicle 5680 mistake for person
vehicle 5680 mistake for person
vehicle 6567 mistake for person
vehicle 6794 mistake for person
vehicle 6794 mistake for person
vehicle 6794 mistake for person
person 6898 mistake for vehicle
person 6898 mistake for vehicle
vehicle 7789 mistake for person
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 7969 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle
person 10415 mistake for vehicle

If you have two PGIEs, please use two tarckers, one for each.