SAME CAMERA SAME DRIVERS LOW FPS USING OPENCV UPSQUARED VS LAPTOP WITH i7
theodoros p
New Member Posts: 24 ✭
in Peripherals
hello i have wrote an opencv application and i test the identical code in two machines one is the UP² Celeron Dual-core 2GB / 32GB and the other machine is my laptop quad core with i7 last generation.
When i run the same identical code in my lap top the FPS of the camera in 1280x720 is 60FPS as the cameras specs gives me
When in turn i plug the camera to the UP2 i get 9 FPS with the same configuration same resolution same drivers loaded (UVC) as i previously used to my laptop.
Any idea why i have this dramatic FPS drop????
May the UP2 doesnt have enough proccessing power to make the encoding decoding????
Any idea?
When i run the same identical code in my lap top the FPS of the camera in 1280x720 is 60FPS as the cameras specs gives me
When in turn i plug the camera to the UP2 i get 9 FPS with the same configuration same resolution same drivers loaded (UVC) as i previously used to my laptop.
Any idea why i have this dramatic FPS drop????
May the UP2 doesnt have enough proccessing power to make the encoding decoding????
Any idea?
Comments
-
The Celeron has only a fraction of the computing-power of a last-gen i7, so yes. Look into using Intel's QuickSync on the UP2 to speed up encoding and decoding.
-
Is it a USB camera, and which USB version (2/3)? And is that the frame rate just streaming to the display, or is that encoding to storage in some codec?
If its USB and you're running a Linux distribution, you probably have to change(or in this case remove) the USB buffer size limit:
sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb >/dev/null <<<0
(From https://www.ximea.com/support/wiki/apis/Linux_USB30_Support) -
Is usb 2 camera I just use it with opencv it use the videoCapture to grab frames and then it read them to a mat.Even when I don’t imgShow() them the FPS is low ,to my i7 the FPS are 60 as the camera support and to upboard only 9...
-
My guess is you are hitting difference in processing speed, and also maybe maxing out memory...
Have you tried running something like htop
in another window to see if you are CPU and/or memory maxed out? -
I would suggest profiling the application to measure where the time is being spent.
There could be some hidden additional image processing/converting going on on the CPU, which would be quite slow on any mobile CPU. Any image processing you would only really want to do with a GPU shader or the hardware-accelerated video functions of intel quicksync video. -
I use the opencv’s function “get” to get the FPS just before I entry to any processing loop!so the results are given without processing load ,I think it’s just processing power issue to encode decode between the i7 and the UP2 processor I think is the most logical explanation ,cause I have wrote versions of my code to use the GPU (OpenCL) to make the processing but the FPS doesn’t change ,the whole problem is from the camera grubbing until the reading to an Mat structure .And I cant have memory overloading issues cause the memory my application use is really small is just and image of 1280x720 and some ROI of it.
-
Hello, may i know what is the model of usb camera you use?
-
I think it’s an OV2710 from ELP
-
Hello, just bought an UP squared running the Pentium processor in hope of it being able to provide the needed processing power to record video at 1080p @ 30fps , we intend to install Windows 10 IoT core on it. we tried this with a Raspberry Pi 3 but the results were shaky at the best. Any ideas on what to expect or how to insure i can get the camera to record properly ?
Using the following cam :
https://www.amazon.com/ELP-2-8-12mm-Varifocal-2-0megapixel-Android/dp/B00SPBWM0M/ref=sr_1_34?m=A1X8N7RHCK4F35&s=merchant-items&ie=UTF8&qid=1509448822&sr=1-34