ZED X One Stereo can't open svo in Depth Viewer - OBJECT DETECTION MODULE IS NOT COMPATIBLE WITH THE ZED

I’ve successfully calibrated a ZED X One stereo pair and now am trying to test it by recording a simple SVO with python and then viewing that SVO in the depth viewer.
I’ve had to experiment with a lot of trial and error to get this recording code working, since there is A LOT of detail missing in the docs. I’m running the svo_recording.py file attached, a minimal stripped down recording file.

I am trying this both with and without os.environ[‘ZED_SDK_SVO_VERSION’]=‘1’ set. Attached are the two outputs of this, a v1 SVO and a v2.

I can open both of these svo files in ZED Explorer, but so far I can not open any of my ZED X One SVOs in Depth Viewer. The Depth Viewer throws the error THE OBJECT DETECTION MODULE IS NOT COMPATIBLE WITH THE ZED.

svo_recording.py (1.3 KB)
Link to v1 SVO
Link to v2 SVO

Can anyone help explain how we can view these recordings in the Depth Viewer? Is there something wrong with the SVO files that we need to fix, or should we be able to go ahead and extract good depth data from these recordings using the python API?

Note the only way that I got these recordings to work was to NOT have the ZED X media streamer running, and to NOT use init.set_from_stream(“127.0.0.1”, 34000). What is going on here? It completely disagrees with the docs here.

My setup:

  • Seeed J4012 Orin NX 16GB
  • Jetpack 6.0 from Nvidia (not the modified build from Seeed)
  • Latest ZED SDK (4.2.2)
  • Latest X driver (1.2.1) using the version meant for ZED Box Orin NX 16 GB since the ZED Link Duo did not work
  • ZED Link Duo capture card, short CSI cables (5cm), no long/extended GMSL2 cables.

@Myzhar I see in other threads where people are trying to use the Object Detection module, you’ve told them that some of the older ZED cameras do not support the Object Detection model and that’s why they are seeing this error.
In my case here I am simply just trying to open an SVO from my X One stereo pair. Why is the Depth Viewer throwing this error?

I also get the same results on Jetpack 5.1.2 using ZED SDK 4.2.2 and X driver v1.2.1

The old ZED camera model (the silver model) does not have an IMU, so it does not support the Object Detection module.

The error you are reporting seems to be a bug in ZED Depth Viewer.
I’ve reported it and it will be fixed.

Yes ok, that makes sense for them. But what about my situation here? Why is the Depth Viewer giving that error when trying to read files from my ZED X One stereo pair.

Also, I have just tried the same setup with a set of 2 Global Shutter X One’s (I was using two 4K Ones before), and I still run into this same issue.

In any case, you recorded single-stream SVO files, not stereo-stream SVO.
You must use the ZED Media Server to create a virtual stereo stream and open the virtual stereo stream using the command reported correctly in the documentation to record stereo stream SVO.

Ok thanks, I didn’t realise I was recording a single mono stream. I’ve tried again now with the media streamer running.

If I follow the docs exactly and use this:

init = sl.InitParameters()
init.set_from_stream("127.0.0.1", 34000)
status = cam.open(init) 
...

then I get this error:

user@user-cam:~$ python3 svo_recording.py 
Traceback (most recent call last):
  File "/home/user/svo_recording.py", line 43, in <module>
    main()
  File "/home/user/svo_recording.py", line 18, in main
    status = cam.open(init) 
TypeError: Argument 'py_init' has incorrect type (expected pyzed.sl.InitParametersOne, got pyzed.sl.InitParameters)

And If I use init = sl.InitParametersOne() instead, then I get this error:

user@user-cam:~$ python3 svo_recording.py 
Opening in BLOCKING MODE 
NvMMLiteOpen : Block : BlockType = 279 
NvMMLiteBlockCreate : Block : BlockType = 279 
[2024-12-11 08:39:21 UTC][ZED][WARNING] MODULE NOT COMPATIBLE WITH CAMERA in sl::ERROR_CODE sl::CameraOneImpl::open(const sl::InitParametersOne&)
Camera Open MODULE NOT COMPATIBLE WITH CAMERA Exit program.
[ERROR] (/builds/sl/ZEDKit/lib/src/sl_input/mmapi/R364/NvV4l2ElementPlane.cpp:178) <�u4���> Capture Plane:Error while DQing buffer: Broken pipe

What is the correct code for me to use?

I was using cam = sl.CameraOne() which I guess is only for the X One as a mono camera?

I’ve switched back to the normal cam = sl.Camera() now and it won’t record due to INVALID CALIBRARION FILE. I’ll try calibration again and see if I can get past this.

Hi @Blake-James
unfortunately, you are mixing things.

There are two ways of using ZED X Mono:

  1. coupled as a Virtual Stereo Camera
  2. single as a monocular color camera

If you want to create a virtual stereo camera with a custom baseline, you must do so as described on this support page and in the documentation.

Exactly.

Please refer to the instructions in the links I shared above.

I’ve re-calibrated again but once again it produced a terrible result and the calibrated output is very distorted. Do you have some tips that I can use to help improve the quality of my calibration, especially for these 4K cameras with the wide lens?
How far away from the camera should I position the checkerboard while taking calibration pictures?

@Myzhar when I open the Depth Viewer and set the input as the IP stream, what does the Depth Viewer check for before throwing that “CALIBRATION FILE FOUND BUT IT IS CORRUPTED” error?

What is wrong with this calibration file from my two GS ZED X Ones?
SN108714828.conf (1.1 KB)

The baseline is negative:
Baseline = -185.866
please invert the left and right cameras.