OpenCV vs OpenVX for embedded system

13,465

Solution 1

From the project's own website:

OpenVX can be used directly by applications or to accelerate higher-level middleware, such as the popular OpenCV open source vision library[...]

enter image description here

... which seems pretty clear to me - you can use OpenVX directly or as support for OpenCV.

However it is also clear that OpenVX is currently vapourware - it exists only as a specification and a set of header files (no actual library).

The provisional release of the specification enables developers and implementers to provide feedback before specification finalization, which is expected within six months.

The above quote is from a helpfully undated page, but was originally in a press-release of November 19th 2013. So it may now be near completion as a specification, but perhaps a long way from code complete.

Also to be used there will need to be OpenVX support for RPi's GPU which may be a bigger barrier to use on RPi until some third party implements it.

Solution 2

Just to update this question with a bit more relevant info a year later for 2015. OpenVX is absolutely, definitely not now vapourware:-) There is a reference sample implementation and drivers are being rolled out by manufacturers for other chipsets.

And, whereas it is not yet fully accelerated, you can indeed get OpenVX onto a Raspberry Pi - as per the instructions here (which includes discussion/links on possibly making it faster). Bottom line with the Pi is that image processing is intensive irrespective of the libraries used and ultimately dictated by how "accessible" the Broadcom GPU chip is...

Solution 3

As mentioned on OpenVX's main page, OpenVX has a new role now. (compare to clifford 's answer at year 2014)

Now, OpenVX is targeted at low-power, real-time applications, we can't find the picture which implies OpenVX is a base component of Opencv any more either.

An compare chart pointed out their different scope at present:

  • OpenCV: Very wide 1000s of imaging and vision functions Multiple camera APIs/interface
  • OpenVX: Tight focus on core hardware accelerated functions for mobile vision – but extensible Uses external/native camera API
Share:
13,465
KamikazeStyle
Author by

KamikazeStyle

Updated on August 06, 2022

Comments

  • KamikazeStyle
    KamikazeStyle almost 2 years

    I want to make a image recognition program for rasberry pi. I started in OpenCV, however just discovered OpenVX, a hardware accelerator for OpenCV. Being that speed and efficiency are important on an embedded system I'm curious on how to take advantage of this new technology. Do I have to port over my code to OpenVX or is it a program that runs in conjunction with my OpenCV program?

  • Prabindh
    Prabindh almost 10 years
    OpenVX is definitely not vapourware, Nvidia already announced a pre-release VX software stack based on CUDA, at their Tech conference.
  • Clifford
    Clifford almost 10 years
    @prabindh : That's not for RPi, and "announced" and "pre-release" sound like typical vapourware marketing to me! Announcing a release and actually releasing are not the same thing. Is it in the hands of developers yet (outside of Khronos and Nvidia)? You say it was announced, but post a link - I can fine no mention of it anywhere. It will probably arrive at some point, but not to the extent that KamikazeStyle should be concerned about it for his RPi development quite yet.
  • Prabindh
    Prabindh almost 10 years
    Agreed, it is not for RPi.
  • Atul Kulkarni
    Atul Kulkarni over 7 years
    As on Dec 4 2016, the link you mentioned is broken. It would help if you could update it.
  • timlukins
    timlukins about 7 years
    I have put a copy of the instructions (almost 2 years old now) here instead for posterity: github.com/timlukins/openvx-pi