I am using NanoPi Duo 2 for the real-time image acquisition project.
I have noticed a significant performance (speed) difference between using CSI camera and USB camera.
The performance difference is as follows, Time for OpenCV VideoCapture.read()
CSI_OV5640_Camera = ~0.04s (40 ms) USB_Logitech_HD_C270 = ~0.009 (9 ms)
As far as I know, I understand that NanoPi Duo2 does not have any GPU and CSI camera will be handled by CPU (Same as USB Camera).
Using $ htop
both CSI and USB cameras shows 100% @ one of 4 cores.
For background,
OpenCV 3.4.6 Build Output
Video I/O - libv4l/libv4l2 NO - v4l/v4l2 linux/videodev2.h
$ v4l2-ctl –get-fmt-video
Format Video Capture: Width/Height : 640/480 Pixel Format : 'YV12' Field : Any Bytes per Line : 960 Size Image : 460800 Colorspace : Default Transfer Function : Default YCbCr Encoding : Default Quantization : Default Flags :
One interesting thing Performance of using numpy ndarray
from CSI and USB are ALSO different
pyzbar.decode() calculation CSI_OV5640_Camera = ~0.43s (430 ms) USB_Logitech_HD_C270 = ~0.19s (190 ms)
I am thinking that encoding of the VideoCapture.read() are different but all I see is same sized (640×480, 3 colors) numpy ndarray with similar looking values.
Thank you for reading my question.