Observed limitations and potential issues
Below we have listed the possible exceptions and errors you may get when using multiple zivid cameras. We only got these when running 4 cameras simultaneously on a single computer with a very high load. With very high load, we mean 4 Zivid cameras continuously capturing with highest possible acquisition rate for an extended period of time using fastest capture settings.
USB controller errors
Important
Can only occur for Zivid One+.
Typical exceptions:
Frames were overwritten in snapshot mode
Failed to acquire an image from the driver (CAM_API_STS_FLUSHED_BY_CAMERA_REMOVE)
Failed to acquire an image from the driver (CAM_API_STS_REQUEST_TIMEOUT)
Failed to wait for image stream event (CAM_API_STS_TIMEOUT)
Some USB chipsets will not perform well during high load, e.g. multiple captures at the same time. The above exceptions can indicate that the USB controller, where the cameras are connected, is not working properly. If these exceptions occur, switch to another USB controller. You can check which USB controller you are connected to by
Go to Device Manager and change view to devices by connections (View → Devices by connections).
Type lsusb -t
in command prompt.
Note
Try to use different USB ports or a different PC.
GPU memory errors
Important
Only observed with Zivid One+.
Typical exceptions:
An OpenCL error occurred: Failed to map image to host memory
An OpenCL error occurred: Failed to enqueue kernel
An OpenCL error occurred: Failed to wait for image to be mapped to host memory
Capturing during extended periods with very high load on Nvidia GPUs can cause OpenCL out-of-memory related exceptions. The recurrence of this error depends on your GPU speed and RAM size. Tests with moderate to high load, e.g. 2 seconds with the fastest capture then 1-second break, did not give any errors.
You can test this by inspecting the GPU memory usage Window’s task manager or the system monitor on Ubuntu.
Note
This only happened with Nvidia GPUs during very high load testing.
GPU drivers errors
Important
Only observed with Zivid One+.
CPU/GPU driver versions affect the performance of the multi-zivid setup. Make sure that you use the latest drivers for your GPU. Check GPU Driver explains how you can check your driver version and/or upgrade your drivers.
OpenCL drivers errors
Important
Only observed with Zivid One+.
Typical exceptions:
Abort was called at 256 line in file: ../neo/runtime/memory_manager/host_ptr_manager.cpp
Any other Intel NEO error.
Depending on your GPU you should use different versions of OpenCL. Check OpenCL Driver demonstrates how to check which OpenCL version you have. If you are using intel NEO on Linux, make sure that you use version 20.08 or newer. Older versions of this driver can be unstable. How to update Intel NEO version is explained in install openCL drivers in Ubuntu.
Note
Intel NEO for Linux requires version 20.08.
Conclusion
We have observed limitations and potential issues only with Zivid One+ cameras. This is mainly because Ethernet (Zivid Two) is more robust than USB (Zivid One+), which also holds for single-camera use.
We have observed limitations and issues only in the following extreme conditions:
Very high load (no pause between captures; uncommon for the majority of applications)
Specific USB chipsets and GPU and OpenCL driver versions
Using four cameras simultaneously
It is possible to recover from the observed exceptions by recapturing or reconnecting routines.
The exceptions are not specific for multiple Zivid One+ camera use, just more frequent in extreme conditions mentioned above.
The exceptions are expected to occur as frequently as for single Zivid One+ camera use in comparable conditions.