SAME CAMERA SAME DRIVERS LOW FPS USING OPENCV UPSQUARED VS LAPTOP WITH i7

Options
theodoros p
theodoros p New Member Posts: 24
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?

Comments

  • WereCatf
    WereCatf New Member Posts: 201
    Options
    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.
  • Russell
    Russell New Member Posts: 20
    Options
    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)
  • theodoros p
    theodoros p New Member Posts: 24
    Options
    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...
  • Kurt
    Kurt New Member Posts: 146 ✭✭
    Options
    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?
  • Russell
    Russell New Member Posts: 20
    Options
    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.
  • theodoros p
    theodoros p New Member Posts: 24
    edited December 2017
    Options
    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.
  • Winson
    Winson New Member Posts: 1
    Options
    Hello, may i know what is the model of usb camera you use?
  • theodoros p
    theodoros p New Member Posts: 24
    Options
    I think it’s an OV2710 from ELP
  • VNEXT
    VNEXT New Member Posts: 1
    Options

    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