简体   繁体   English

OpenCV vs OpenVX for embedded system

[英]OpenCV vs OpenVX for embedded system

I want to make a image recognition program for rasberry pi. 我想为rasberry pi制作一个图像识别程序。 I started in OpenCV, however just discovered OpenVX, a hardware accelerator for OpenCV. 我从OpenCV开始,但刚刚发现OpenVX,一个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? 我是否必须将我的代码移植到OpenVX,或者它是一个与我的OpenCV程序一起运行的程序?

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[...] OpenVX可以直接被应用程序使用或加速更高级别的中间件,例如流行的OpenCV开源视觉库[...]

在此输入图像描述

... which seems pretty clear to me - you can use OpenVX directly or as support for OpenCV. ...这对我来说非常清楚 - 您可以直接使用OpenVX或支持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). 然而,很明显OpenVX目前是vapourware - 它仅作为规范和一组头文件存在(没有实际的库)。

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. 上面的引用来自一个有用的未注明日期的页面,但最初是在2013年11月19日的新闻稿中。所以它现在可能接近完成作为规范 ,但可能距离代码完成还有很长的路要走。

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. 另外要使用的还有OpenVX支持RPi的GPU,这可能是在RPi上使用的更大障碍,直到某些第三方实现它。

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. 只是为了更新这个问题一年后的2015年更相关的信息.OpenVX绝对,绝对不是现在的vapourware :-)有一个参考样本实现和驱动程序正在由其他芯片组的制造商推出。

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). 而且,虽然还没有完全加速,但你确实可以将OpenVX放到Raspberry Pi上 - 按照此处的说明 (其中包括可能使其更快的讨论/链接)。 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... Pi的底线是图像处理是密集的,无论使用哪个库,最终由Broadcom GPU芯片的“可访问性”决定......

As mentioned on OpenVX's main page , OpenVX has a new role now. 正如在OpenVX的主页上所提到 ,OpenVX现在有了新的角色。 (compare to clifford 's answer at year 2014) (与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. 现在,OpenVX针对低功耗,实时应用,我们无法找到暗示OpenVX不再是Opencv的基本组件的图片。

An compare chart pointed out their different scope at present: 比较图表指出了它们目前的不同范围:

  • OpenCV: Very wide 1000s of imaging and vision functions Multiple camera APIs/interface OpenCV:非常宽的1000个成像和视觉功能多个摄像机API /接口
  • OpenVX: Tight focus on core hardware accelerated functions for mobile vision – but extensible Uses external/native camera API OpenVX:专注于移动视觉的核心硬件加速功能 - 但可扩展使用外部/本机相机API

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM