NvDsObjectMeta object_id is giving different output

Please provide the following information when requesting support.

• RTX3050
• Detectnet_v2
• TLT Version (Please run “tlt info --verbose” and share “docker_tag” here)
• Training spec file(If have, please share here)
• How to reproduce the issue ? (This is for errors. Please share the command line and the detailed log here.)

Hi, I am currently developing an LPR app using python. I would like to obtain the object detection ID from trafficcamnet and match it with the license plate it detected.

However, I have try using obj_meta.object_id from NvDsObjectMeta, it outputs a random number for each car plate it detect. Below is the code:

while l_obj is not None:
            try: 
                # Casting l_obj.data to pyds.NvDsObjectMeta
                obj_meta=pyds.NvDsObjectMeta.cast(l_obj.data)
            except StopIteration:
                break

            if args[3] == '0':
                #no ROI
                l_class = obj_meta.classifier_meta_list
                while l_class is not None:
                    try:            	
                        class_meta = pyds.NvDsClassifierMeta.cast(l_class.data)
                    except StopIteration:
                        break
                    print(obj_meta.object_id)
                    l_label = class_meta.label_info_list

Output:
18446744073709551615
18446744073709551615
18446744073709551615
18446744073709551615

If i change the location of printing the object_id (before looping it into l_class) , it works fine as it outputs the object id from trafficcamnet.

while l_obj is not None:
            try: 
                # Casting l_obj.data to pyds.NvDsObjectMeta
                obj_meta=pyds.NvDsObjectMeta.cast(l_obj.data)
            except StopIteration:
                break

            if args[3] == '0':
                #no ROI
                l_class = obj_meta.classifier_meta_list
                print(obj_meta.object_id)
                while l_class is not None:
                    try:            	
                        class_meta = pyds.NvDsClassifierMeta.cast(l_class.data)
                    except StopIteration:
                        break
                    l_label = class_meta.label_info_list

Output:
4
3
1
2
0
18446744073709551615
18446744073709551615
4
3
1
2
0
18446744073709551615
18446744073709551615
4
3
1
2
0

Besides, any idea of what 18446744073709551615 means?

Moving to DeepStream forum.

1 Like

@yingliu thanks

Could you attach your whole pipeline and where the probe function is added?

I am using this repo GitHub - preronamajumder/deepstream-lpr-python-version: Python version for NVIDIA Deepstream's LPR. https://developer.nvidia.com/blog/creating-a-real-time-license-plate-detection-and-recognition-app/

print(obj_meta.object_id) is added to line111 and line125, resulting in different output

This value is actually -1 for 64-bit data. It is possible that python binding is causing this data exception. You can address this issue directly to the project owner in the github.

I see. But in the results, even i print on line 111 still resulting -1 and the actual object ID. Any idea on why the object ID is not printed out on line125, but only -1

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

Maybe there are some problems with some of your configurations of nvtracker. I have tried to print the object_id in our demo code deepstream_test_2.py#L79, it works normally. You can refer to our demo code and modify your project code.

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