ERROR X not PSD

Hi, I have a problem with this error:

ERROR X not PSD : -1.000000 -60.000000 -0.000000 -0.000000 -0.000000 -13.500000 0.000002 -0.000000 -0.000000 0.000036 -0.000000 -0.000000 1480.000000 -0.002782 0.003307 -0.000002 517.500000 -0.000002 0.001153 -0.000310 -0.000119 -0.000000 -0.002782 -60.000000 -0.006573 -0.000000 -0.001524 -13.500000 -0.001521 0.000004 -0.000000 -0.000000 0.003307 -0.006573 1480.000000 -0.000000 0.000014 -0.000002 517.500000 0.000335 0.000119 -13.500000 -0.000002 -0.000000 -0.000000 9499.000000 0.000000 0.000000 0.000000 -0.000000 0.000418 0.000002 517.500000 -0.001524 0.000014 0.000000 476.500000 -0.000033 0.000008 0.000000 0.000135 -0.000000 -0.000002 -13.500000 -0.000002 0.000000 -0.000033 9499.000000 0.000000 -0.000000 0.000418 -0.000000 0.001153 -0.001521 517.500000 0.000000 0.000008 0.000000 476.500000 0.000000 0.000139 0.000036 -0.000310 0.000004 0.000335 -0.000000 0.000000 -0.000000 0.000000 0.250977 0.084717 -0.000000 -0.000119 -0.000000 0.000119 0.000418 0.000135 0.000418 0.000139 0.084717 91.314880

I’m using ZED 2i and ZED Box Xavier-NX for people detection and depth obstacle detection. I get this error very often and it’s causing my application to not detect people properly. When I assign a certain person a specific role in my application (based on his id) and I get this error, then that person is gone (gets a different id) and my computation can’t continue. However, when I disable the depth obstacle detection then I still get this error, but it’s drastically less frequent.

Any advice on how to fix this? Or at least what’s causing it?

Thanks!

Hi @Gaba
can you provide more details about the configuration of the Object Detection module?

Hi @Myzhar
here is the code:

  positional_tracking_parameters = sl.PositionalTrackingParameters()
  zed.enable_positional_tracking(positional_tracking_parameters)

  obj_param = sl.ObjectDetectionParameters()
  obj_param.detection_model = sl.DETECTION_MODEL.MULTI_CLASS_BOX
  obj_param.enable_tracking = True
  zed.enable_object_detection(obj_param)

  obj_runtime_param = sl.ObjectDetectionRuntimeParameters()
  detection_confidence = 60
  obj_runtime_param.detection_confidence_threshold = detection_confidence
  obj_runtime_param.object_class_filter = [sl.OBJECT_CLASS.PERSON]
  obj_runtime_param.object_class_detection_confidence_threshold = {
      sl.OBJECT_CLASS.PERSON: detection_confidence
  }

When the person that you are tracking gets out of the scene, or it’s occluded, it exits the tracking queue, and when a new detection occurs a new ID is assigned to it.
In order to re-identify it, you must enable the “batching” feature, this example is a good starting point:

I’m afraid that this doesn’t solve my problem. The person I’m tracking is standing right in front of the camera and there is no obstacle or occlusion. The error that I mentioned in the intro is causing the problems. The tracking is working just fine otherwise but when the error pops up then the tracked person is re-identified without any reason. Can I prevent this somehow?

Hi @Gaba
I asked the team about your error and they replied that it’s related to the received data and to the elapsed time between the frames.
To recover from the error a new ID is assigned to the tracked object.

Can you please record an SVO in the same conditions in order to try to replicate and debug the issue in our laboratories?
The SVO must be long a few minutes, you can send it to support@stereolabs.com