在计算机视觉领域中,不同的场景不同的应用程序需要不同的解决方案。在本文中,我们将快速回顾可用于在单板计算机(指所有的逻辑线路、定时线路、内部存储器和外部界面都包含在一块单独的印制板上的一种微算机)上提供嵌入式视觉的各种选项。

近年来,随着计算机视觉领域的巨大进步和廉价计算的可用性,计算机视觉正处于一个转折点,我们的设备开始从我们的汽车开始引起人们的注意。越来越多的计算机视觉算法正被部署到诸如无人机、安全摄像头、移动应用程序、零售分析等边缘应用案例中。

有许多流行的设备通常被早期采用者用于运行计算机视觉算法。然而,当涉及到工业应用时,长期生存能力成为一个非常重要的因素。本文分析了一些最适合计算机视觉的设备,并评估了如何为工业计算机视觉应用程序选择设备。

1 简介

1.1 深度学习与传统计算机视觉

通常,基于深度学习的算法鲁棒性强且功能强大,并且可以针对大多数用例使用现实环境中的噪声和变化。然而,他们需要大量的计算能力,通常由一个良好的Nvidia GPU连接到一个良好的CPU提供。这不仅昂贵,而且在很多情况下,不可能将GPU连接到嵌入式系统。但是,随着Nvidia发布Jetsons进行边缘计算,这种情况正在迅速改变。此外,一些研究人员和初创公司正在寻求在CPU上进行深度学习。

1.2 性能考量

根据您的用例,设备的性能可能至关重要,也可能并不重要。性能要求可能相差很大。请考虑以下两种情况:(a)在繁忙的机场限制区域内分析安全摄像机的镜头,(b)对零售商店中的访客进行人口统计分析。在方案(b)中,您可以仅以每秒5帧(FPS)的速度运行算法,但是在方案(a)中,较高的FPS至关重要。方案(a)也对准确性提出了更高的要求。了解这些性能要求是针对您的用例使用合适的设备的关键。

1.3 社区支持

在过去的几年中,计算机视觉取得了巨大的进步,并且发展非常迅速。仍在编写新的框架,发布新的网络和数据集,并以前所未有的速度设计新的芯片。
如下图所示,这个生态系统每年都在改写自己,而您不想被失败者困住。

社区和大型组织的支持通常会决定赢家。从这个角度来看,Raspberry Pi,Jetson Tk1和Tx1等设备具有巨大的优势。社区支持/大型组织的吸引力将成为决定获胜者的关键因素。从这个角度来看,Raspberry Pi,Jetson Tk1和Tx1等设备具有巨大的优势。下面将介绍用于计算机视觉用例的一些设备的列表:

  1. Nvidia Jetson TX1
    Nvidia Jetson TX1装有64位四核ARM Cortex-A57 CPU和256核Maxwell GPU,是嵌入式计算机视觉市场上功能最强大的设备之一。更令人印象深刻的是,它仅消耗10W的功率即可提供1 Teraflop 16FP性能。它的价格为495美元,有点贵,但是随着Nvidia的鼎力相助,您将拥有一个不断发展的生态系统,使其成为高端计算机视觉应用的正确选择。

  2. Nvidia Jetson TK1
    Nvidia Jetson TK1是Jetson TX1的前身,价格为192美元。如果您认为定价很奇怪,请再考虑一下。配备192核Kepler GK20a GPU,每个CUDA内核的定价为1美元,并且具有300 GigaFlops的性能。Tk1没有板载WiFi或蓝牙。但是,这些可以通过USB或mini-PCIe端口添加。

  3. Raspberry Pi 4
    树莓派是传统计算机视觉(通常使用OpenCV)的首选设备。其第四代Raspberry Pi 4可以输出全高清1080p的视频。Google不仅将赌注押在树莓派,还为其提供了Tensorflow 支持。Google活跃且不断发展的社区以及最近的兴趣使它成为计算机视觉的真正可行选择。

  4. Beagleboard: BeagleBone Black
    BeagleBone Black在物联网应用中很受欢迎。与具有单个26针接头连接器(可用作8个GPIO引脚或串行总线)的Raspberry Pi相比,Beaglebone Black具有两个48插槽接头连接器,可用于几乎无限的I / O硬件。它还包括许多模拟I / O引脚,使其可以连接到各种现成的Raspberry Pi不能使用的传感器硬件。BeagleBone Black价格翻倍且性能不佳,不是计算机视觉的理想选择,因为视频解码,3D渲染和常规GUI性能在Raspberry Pi 3上要好得多。

  5. Orange Pi
    在价格上,Orange Pi的硬件​​比Raspberry Pi更好。它也具有Raspberry Pi缺少的一些功能,例如SATA,千兆以太网,IR和麦克风。但是,由于缺乏生态系统和无法获得支持,这件本来不错的硬件却远离了计算机视觉社区。

  6. ODROID-C2
    由Hardkernel以39美元的价格出售,这是与Raspberry Pi的有力竞争者。它的内存是Raspi3的两倍,处理器也比Raspi3快得多。千兆位以太网和4K视频支持等功能使其优于Raspi3。软件的支持和社区的力量远不及Raspi。但是,此卡拥有一个虽小却热忱的社区,这始终是一个好兆头。ODROID-C2的另一个优点是它的易用性比Raspberry Pi更高。

  7. Banana Pi
    Banana Pi与Raspberry Pi价格差不多。但是,Raspberry Pi周围的生态系统使得不值得尝试在Banana Pi上进行计算机视觉。

注意:还有更多类似Intel Edison的设备更适合于IoT用例,因此在本文中被忽略。Arduino开发板是另一种非常流行的设备,许多业余爱好者和学生在其上运行一些计算机视觉算法。但是,我们认为Arduino由于其较低的技术规格(特别是非常低的RAM可用性)而更适合物联网,而不适合于计算机视觉。此外,还没有包括Movidius这样的解决方案提供商。

2 结论

总而言之,Raspberry Pi,Jetson TK1和Jetson TX1明显领先于当今,拥有庞大的社区和公司。ODROID-C2是一匹黑马,可以替代Raspberry Pi。尽管如此,这个市场还处于新生阶段,有太多的大公司仍在努力在这个市场上有所作为。

实际上就个人经历而言,以深度学习为代表的人工智能技术最近遇到大挫折,深度学习存在许多瓶颈问题,计算机视觉技术也没有大的进展。现在工业应用上以caffe框架居多,实际也是云端/PC端/android端较多,嵌入式开发看看华为海思,英伟达的设备。树莓派搞搞研究挺好的,工业应用成本过高,其他的设备不建议使用。

3 参考

https://www.learnopencv.com/embedded-computer-vision-which-device-should-you-choose/

[OpenCV实战]41 嵌入式计算机视觉设备选择的更多相关文章

  1. OpenCV实战:人脸关键点检测(FaceMark)

    Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author:    Amusi Date:       2018-03-20 ...

  2. 嵌入式Linux设备驱动程序:用户空间中的设备驱动程序

    嵌入式Linux设备驱动程序:用户空间中的设备驱动程序 Embedded Linux device drivers: Device drivers in user space Interfacing ...

  3. 嵌入式Linux设备驱动程序:发现硬件配置

    嵌入式Linux设备驱动程序:发现硬件配置 Embedded Linux device drivers: Discovering the hardware configuration Interfac ...

  4. 嵌入式Linux设备驱动程序:编写内核设备驱动程序

    嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...

  5. [OpenCV实战]49 对极几何与立体视觉初探

    本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识.对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实 ...

  6. 取消开机window 设备选择

    问题:开机,出现window 设备选择,在win7 页面上会停留几秒.解决方案:win+R 输入 -msconfig 进入引导 把延迟改为3

  7. Jetty实战之 嵌入式Jetty运行Servlet

    http://blog.csdn.net/kongxx/article/details/7230080 Jetty实战之 嵌入式Jetty运行Servlet 分类:JettyJava (19530)  ...

  8. javacpp-opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(增加实时帧率计算方法)

    javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...

  9. Jetty实战之 嵌入式Jetty运行web app

    Jetty实战之 嵌入式Jetty运行web app 博客分类: 应用服务器 jettywar  转载地址:http://blog.csdn.net/kongxx/article/details/72 ...

随机推荐

  1. Oracle导出和导入

    导出 exp exp 用户名/密码@实例名 file=导出的dmp文件存放路径 l og=导出日志存放路径 exp hr/123456@orcl file= C:\Users\Administrato ...

  2. Azure Kubernetes(AKS)部署及查看应用资源

    简介 上一篇文章讲解了如何使用Azure DevOps持续部署应用到Azure Kubernetes上.但是部署是否成功?会不会遇到什么问题?项目运行中是否会出现问题?我们该怎么样查看这些问题,并且对 ...

  3. linux操作系统运行一个java程序并外网访问

    (一)安装jdk 1.新建文档java  : mkdir java 2.进入java并且下载jdk     下载jdk : wget --no-check-certificate --no-cooki ...

  4. LcdToos如何在线调屏PORCH参数

    在点屏过程中,我们会经常碰到画面对不齐现象,在这种情况下需要多次尝试修调屏的PORCH参数来使画面显示正常:通常的做法是修改完PORCH参数下载到PG,点亮看效果,这种方法无疑效率很低,对于现象的表现 ...

  5. 从源码入手探究一个因useImperativeHandle引起的Bug

    今天本来正在工位上写着一段很普通的业务代码,将其简化后大致如下: function App(props: any) { // 父组件 const subRef = useRef<any>( ...

  6. iptables规则查询

    iptables规则查询 之前在iptables的概念中已经提到过,在实际操作iptables的过程中,是以"表"作为操作入口的,如果你经常操作关系型数据库,那么当你听到" ...

  7. 谷歌拼音输入法扩展API开发指南

    为了帮助开发者在谷歌拼音输入法的基本输入功能基础上,开发和定义更丰富的扩展输入功能,谷歌拼音输入法提供了以Lua脚本编程语言为基础的输入法扩展API.利用输入法扩展API,开发者可以编写自定义的输入功 ...

  8. JavaScript 默认参数、动态参数、剩余参数

    默认参数: <script> function selet(num, max) { console.log(num + max); } selet(1, 5); </script&g ...

  9. python中的if条件语句

    # 如果...就... # 1. print('1.') if 1+1 == 2: print('1+1是等于2的') print('1+1还是等于2的') print('1+1就等于2的') # 2 ...

  10. select中DISTINCT的应用-过滤表中重复数据

    在表中,一个列可能会包含多个重复值,有时也许希望仅仅列出不同(distinct)的值. DISTINCT 关键词用于返回唯一不同的值. SQL SELECT DISTINCT 语法 SELECT DI ...