SVO working on jetson orin but corrupted on windows

Hi,
I have some videos (I leave here the google drive link) which I can see on my jetson orin with the ZED_Explorer or ZED_Depth viewer.

As soon as I move the file to windows with winscp I get that the file is corrupted. This is extremely annoying…

Bonus question:
Since I uploaded the file I would like to ask you even how can I increase the image quality (which is really low). I would like to increase the definition of grape clusters (right now they are extremely blurred)… can it be caused by compression?

Hi @Prospecto,

We have identified the issue and we are able to reproduce it, we are investigating further. I will get back to you on the first post you’ve made once I have more information.

Regarding the image quality, I can suggest trying 30 fps mode and see if this helps.

Thanks for the info, why should the 30fps help with the image quality?

Hi @Prospecto,

I was suggesting changing the frame rate in order to have a higher exposure, but you are probably using the auto-exposure so this would not change much in your case. And to avoid motion blur it would be safer to stay with 60fps.

If the default parameters of the ZED X do not suit your needs, I can suggest opening ZED_Explorer and experimenting with the camera parameters to see what’s best for you.
I should look into brightness and contrast first. Then you can tweak the sharpness which will allow reducing blur, with the risk of adding noise to the image.

With the Zed X I can’t use contrast or brightness.

Could increasing exposure compensation help by augmenting the brightness into dark areas? And how does the exposure compensation work? Does it increase/decrease exposure time or does it change the aperture of the camera? (or a combination of both)?

Furthermore, I tried the camera controls sample and the auto exposure on a set ROI doesn’t work (makes no difference even if I select regions of the image really dark or really bright).

Hi @Prospecto,

Sorry, that is correct.

Exposure compensation can be a good way to add/remove illumination in the image after the auto-exposure takes place. If you have a rough idea of the illumination inside the vines this can be set to maximize the visibility of the fruits. Regarding the details about exposure compensation works, I will have to get back to you on that.

The automatic ROI sample should be functional with the ZED X/X Mini, please make sure that you press the ‘a’ key to apply the ROI, and also that the ROI is big enough (the box has to be bigger than a couple hundred pixels in width and height to be applied).

Yea, thanks for the clarification, I didn’t know about the minimum size of the ROI.
I think that adding it in the documentation would be pretty useful (i found that it has to be roughly bigger than 260x260).

Is there a way to compute autoexposure only using nearby objects using depth? I mean, instead of using a rectangle ROI, using a mask given by the depth (e.g use all pixels depicting objects closer than 2 meters to compute optimal exposure).

Lastly concerning the AEC/ACG how does it work? I found in your docs that it should maximize exposure before increasing gain but I can see it doesn’t behave that way (often it increases gain before increasing exposure time despite not being at the limit of exposure time given by framerate). Could you please clarify?

Hi @Prospecto,

We do not have such a feature natively currently as this is quite specific, but you could code this behavior on your own. You do have to take into account that as the depth compute is done after the capture, applying the ROI will be at least one frame late.

Activating the AEC/ACG enables the auto-exposure/gain provided by nvargus. Here are a few details about how this is configured internally:
The ratio between exposure and gain is controlled by a coefficient in the nvargus ISP file located at: /var/nvidia/nvcam/settings/zedx_ar0234.isp

The ratio between exposure and gain is controlled by a coefficient in the ISP file:

ae.ExposureTuningTable.Preview[0] = {2.4, 0.01666, 13.0, 1.0};
ae.ExposureTuningTable.Preview[1] = {2.4, 0.03333, 13.0, 1.0}; 
ae.ExposureTuningTable.Preview[2] = {2.4, 0.03333, 13.0, 1.0}; 
ae.ExposureTuningTable.Preview[3] = {2.4, 0.03333, 13.0, 1.0}; 
ae.ExposureTuningTable.Preview[4] = {2.4, 0.03333, 13.0, 1.0}; 
ae.ExposureTuningTable.Preview[5] = {2.4, 0.06666, 13.0, 1.0}; 
ae.ExposureTuningTable.Preview[6] = {2.4, 0.06666, 13.0, 1.0}; 
ae.ExposureTuningTable.Preview[7] = {2.4, 0.06666, 13.0, 1.0};

The coefficient in question is the 3rd value (13.0) in the previous snippet. Each line is supposed to control the exposure/gain ratio over an illumination range, but due to a lack of documentation on the subject, we recommend always using the same value.
By default, we set this coefficient to 13 to avoid motion blur when the camera is in motion. If this parameter is set to 1, the gain will remain at a minimum as long as the exposure is not at its maximum. The higher this value, the higher the gain level for a given illumination, and consequently, the shorter the exposure time.

You are welcome to experiment with these values if you wish to adapt your own behavior for this.
To load the new ISP parameters, you will need to reload the daemon with the command: “sudo systemctl restart zed_x_daemon.service”. The ISP of a camera cannot be modified if it is not turned off. Since the daemon controls all cameras via Argus, all cameras must be turned off when reloading a new ISP.

Thanks for the infos.
Concerning the original question do you have any updates (svo working on zed box but not on windows)?

Hi @Prospecto,

We are still working on the issue and investigating other SVO2 issues in order to release a fix in the next ZED SDK patch.