[OpenCV实战]41 嵌入式计算机视觉设备选择
在计算机视觉领域中,不同的场景不同的应用程序需要不同的解决方案。在本文中,我们将快速回顾可用于在单板计算机(指所有的逻辑线路、定时线路、内部存储器和外部界面都包含在一块单独的印制板上的一种微算机)上提供嵌入式视觉的各种选项。
近年来,随着计算机视觉领域的巨大进步和廉价计算的可用性,计算机视觉正处于一个转折点,我们的设备开始从我们的汽车开始引起人们的注意。越来越多的计算机视觉算法正被部署到诸如无人机、安全摄像头、移动应用程序、零售分析等边缘应用案例中。
有许多流行的设备通常被早期采用者用于运行计算机视觉算法。然而,当涉及到工业应用时,长期生存能力成为一个非常重要的因素。本文分析了一些最适合计算机视觉的设备,并评估了如何为工业计算机视觉应用程序选择设备。
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等设备具有巨大的优势。下面将介绍用于计算机视觉用例的一些设备的列表:
Nvidia Jetson TX1
Nvidia Jetson TX1装有64位四核ARM Cortex-A57 CPU和256核Maxwell GPU,是嵌入式计算机视觉市场上功能最强大的设备之一。更令人印象深刻的是,它仅消耗10W的功率即可提供1 Teraflop 16FP性能。它的价格为495美元,有点贵,但是随着Nvidia的鼎力相助,您将拥有一个不断发展的生态系统,使其成为高端计算机视觉应用的正确选择。
Nvidia Jetson TK1
Nvidia Jetson TK1是Jetson TX1的前身,价格为192美元。如果您认为定价很奇怪,请再考虑一下。配备192核Kepler GK20a GPU,每个CUDA内核的定价为1美元,并且具有300 GigaFlops的性能。Tk1没有板载WiFi或蓝牙。但是,这些可以通过USB或mini-PCIe端口添加。
Raspberry Pi 4
树莓派是传统计算机视觉(通常使用OpenCV)的首选设备。其第四代Raspberry Pi 4可以输出全高清1080p的视频。Google不仅将赌注押在树莓派,还为其提供了Tensorflow 支持。Google活跃且不断发展的社区以及最近的兴趣使它成为计算机视觉的真正可行选择。
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上要好得多。
Orange Pi
在价格上,Orange Pi的硬件比Raspberry Pi更好。它也具有Raspberry Pi缺少的一些功能,例如SATA,千兆以太网,IR和麦克风。但是,由于缺乏生态系统和无法获得支持,这件本来不错的硬件却远离了计算机视觉社区。
ODROID-C2
由Hardkernel以39美元的价格出售,这是与Raspberry Pi的有力竞争者。它的内存是Raspi3的两倍,处理器也比Raspi3快得多。千兆位以太网和4K视频支持等功能使其优于Raspi3。软件的支持和社区的力量远不及Raspi。但是,此卡拥有一个虽小却热忱的社区,这始终是一个好兆头。ODROID-C2的另一个优点是它的易用性比Raspberry Pi更高。
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 嵌入式计算机视觉设备选择的更多相关文章
- OpenCV实战:人脸关键点检测(FaceMark)
Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author: Amusi Date: 2018-03-20 ...
- 嵌入式Linux设备驱动程序:用户空间中的设备驱动程序
嵌入式Linux设备驱动程序:用户空间中的设备驱动程序 Embedded Linux device drivers: Device drivers in user space Interfacing ...
- 嵌入式Linux设备驱动程序:发现硬件配置
嵌入式Linux设备驱动程序:发现硬件配置 Embedded Linux device drivers: Discovering the hardware configuration Interfac ...
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...
- [OpenCV实战]49 对极几何与立体视觉初探
本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识.对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实 ...
- 取消开机window 设备选择
问题:开机,出现window 设备选择,在win7 页面上会停留几秒.解决方案:win+R 输入 -msconfig 进入引导 把延迟改为3
- Jetty实战之 嵌入式Jetty运行Servlet
http://blog.csdn.net/kongxx/article/details/7230080 Jetty实战之 嵌入式Jetty运行Servlet 分类:JettyJava (19530) ...
- javacpp-opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(增加实时帧率计算方法)
javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...
- Jetty实战之 嵌入式Jetty运行web app
Jetty实战之 嵌入式Jetty运行web app 博客分类: 应用服务器 jettywar 转载地址:http://blog.csdn.net/kongxx/article/details/72 ...
随机推荐
- Podman容器基础(二)
Podman容器技术基础(二) 目录 Podman容器技术基础(二) 容器的使用 用户操作 用户配置文件 容器卷 容器的使用 运行一个容器 [root@cent1 ~]# podman pull ht ...
- TCP 序列号和确认号是如何变化的?
大家好,我是小林. 在网站上回答了很多人的问题,我发现很多人对 TCP 序列号和确认号的变化都是懵懵懂懂的,只知道三次握手和四次挥手过程中,ACK 报文中确认号要 +1,然后数据传输中 TCP 序列号 ...
- 《上传那些事儿之Nest与Koa》——文件格式怎么了!
转载自:juejin - 马睿不想说话 概要 本文主要针对在使用node作为服务端接口时,前端上传上传文件至node作为中转,再次上传至oss/cdn的场景.以及针对在这个过程中,需要对同一个文件进行 ...
- python字符串的一些操作
# 1.变量的多次赋值 print('1.变量的多次赋值') name = '小明' # 没有意义的 name = '小刚' # 对前面创建的变量名称进行覆盖 # 删除原来的数据,写入新的数据 pri ...
- JS 可编辑表格的实现
1.实现效果 用户点击语文,数学,英语部分的单元格,可以实现分数的编辑,总分也会随之变化.先看下效果,如图: 2.设计思路 先通过HTML5+CSS3绘制表格,添加input的样式和err提示动画. ...
- Python标准库之 xml.etree.ElementTree
Element类型是一种灵活的容器对象,用于在内存中存储结构化数据. 每个element对象都具有以下属性: 1. tag:string对象,表示数据代表的种类. 2. attrib:dictiona ...
- AR空间音频能力,打造沉浸式声音体验
随着元宇宙的兴起,3D虚拟现实广泛引用,让数字化信息和现实世界融合,目前大家的目光主要聚焦于视觉交互层面,为了在虚拟环境中更好的再现真实世界的三维空间体验,引入听觉层面必不可少,空间音频孕育而生. 空 ...
- csp2022第一轮游记
DAY -7? 学校没买桶装水!我一时半会不去打水,真的渴.果不其然开始咳嗽了.DAY -1 隔壁班同学主动申请停课了,我也跟来复习,这天主要的成果是把选择题错误控制到2-3题,顺便整理了一点笔记. ...
- layui文件上传
//前端代码 <div class="layui-form-item"> <label class="layui-form-label"> ...
- 树莓派蓝牙rfcomm协议通信
修改配置文件 手机使用 "蓝牙串口" 软件,树莓派上修改文件/etc/systemd/system/dbus-org.bluez.service ExecStart=/usr/li ...