Frame drop when recording using ZED SDK Python API

When recording an svo, along with tracking pose information, using the ZED 2 camera, I get frame drops. I am recording a 10 second svo at 30fps, so I have a total of 300 frames, and I will get a frame drop of around 4 frames out of the 300.

This doesn’t happen every time I record an SVO, but happens roughly half of the time.

I am using ZED SDK 4.0.8, with CUDA 12.2 and a GeForce RTX 3050 Mobile GPU. I am writing to a nvme that still has a good amount of memory left.

Also, this hasn’t happened when I record using the ZED Explorer so far. But I need to record using the Python API because I need pose information as well. Frame dropping also happens when using the SDK in a docker container.

zed.py (2.6 KB)

This is the python script I use for recording.

Hi @safe_blue,

I can suggest you try to run the C++ sample, to see how it behaves as well.

Unfortunately, small drop frames like this can happen for a number of reasons, for example the USB3 connection, CPU or GPU load, disk write speed (on an nvme this should be fine), so this is difficult to troubleshoot on our side.

From what I’ve seen in your recording script, I can suggest setting the InitParameters.depth_mode to DEPTH_MODE.NONE and disabling the positional tracking module so that the grab loop is not impacted by the additional algorithms from the ZED SDK.

While replaying the SVOs you can activate these modules to process each one of the frames in a deterministic way.

@mattrouss

While replaying the SVOs you can activate these modules to process each one of the frames in a deterministic way.

Does this mean it’s possible to retrieve the depth map for each frame in an already-recorded SVO file using any of the DEPTH modes, even if the depth module was not active during recording?

That is correct. An SVO file contains raw sensor data such as images, IMU, magnetometer (when available), temperature, etc.
Thanks to this, costly depth map information is not stored, and you can replay the SVO file with all the different parameters of the ZED SDK, and its different modules.

1 Like

Since an SVO file contains IMU information, does this mean we can extract RTK pose information from the SVO? How do I do this? Previously, I thought the only way to do this was using the position tracking module.

Hi @safe_blue,

By default, SVOs do not contain RTK data, as this comes from another GNSS sensor.

It is possible starting with ZED SDK 4.1 to save your own data in a SVO, so you can timestamp it and retrieve it as you replay the file.
This can be done with the ingestDataIntoSVO method of the API

The positional tracking module outputs the 3D pose of the camera after fusing both image and IMU data. More information about the positional tracking here: Positional Tracking Overview - Stereolabs