新闻中心

EEPW首页>嵌入式系统>设计应用> 嵌入式视觉技术--潜力巨大,有待开发

嵌入式视觉技术--潜力巨大,有待开发

作者: 时间:2016-09-12 来源:网络 收藏

具有CPU的GPU

GPU主要是用于3D图形,并且越来越多的用于实现其他功能,例如,视觉应用等。目前,个人计算机的GPU倾向于可编程,除了3D图形还能完成其他功能。这类GPU被称为“通用GPU”,或者“GPGPU”。 GPU有很强的并行处理能力。它们在个人计算机上是独一无二的。可以免费使用GPU软件开发工具,从GPGPU开始进行编程并不是很复杂。出于这些原因,在PC上第一次开发其计算机视觉算法的开发人员通常采用GPU作为并行处理引擎,他们出于仿真或者原型开发的目的,需要加速算法的执行。

GPU 紧密集成了通用CPU,有时候是在同一芯片上。然而,GPU芯片的一种局限是目前能够集成的CPU类型有限,而且支持这类集成的CPU操作系统也很有限。目前,可以提供设计用于智能电话和平板电脑等产品的低成本、低功耗GPU。但是,这些GPU一般不是GPGPU,因此,除了3D图形之外,将其用在其他应用中有很大的难度。

具有加速器以及CPU的数字信号

数字信号是专门用于信号处理算法和应用的微。对于视觉应用核心的信号处理等任务,这种专业化使得数字信号处理器的效率要远远高于通用CPU。而且,与其他类型的并行处理器相比,数字信号处理器相对比较成熟,使用起来更方便。

但是,虽然数字信号处理器在视觉算法上的性能和效率要高于通用CPU,但仍然难以提供足够的性能来满足算法要求。出于这一原因,DSP一般需要一个或者多个辅助协处理器。因此,视觉应用中一个典型的DSP芯片包括了CPU、数字信号处理器以及多个协处理器。这种异质结合能够产生很好的性能和很高的效率,但也难以编程。实际上,DSP供应商一般不支持用户对协处理器进行编程;而是让协处理器运行芯片供应商开发的软件函数库。

移动“应用处理器”

移动“应用处理器”是集成度非常高的芯片系统,一般主要设计用于智能电话,而不是其他应用。应用处理器通常包括高性能CPU内核,以及各种特殊的协处理器,例如,数字信号处理器、GPU、视频处理单元(VPU)、2D图形处理器,以及图像采集处理器等。

这些芯片专门针对电池供电应用进行了设计,因此,能效非常高。而且,由于围绕智能电话和平板电脑的应用越来越重要,因此,移动应用处理器一般有很强的软件开发基础支持平台,包括,低成本开发电路板、Linux和Android端口等。然而,正如前面章节对数字信号处理器的讨论,应用处理器中的专用协处理器一般不是用户可编程的,限制了它们在视觉应用中的发展。

具有CPU的FPGA

FPGA是灵活的逻辑芯片,可以在门级和模块级进行重新配置。这一灵活性使得用户能够随时实现定制满足应用需求的计算结构。它还支持选择满足应用需求的I/O接口和片内外设。能够定制计算结构,结合现代FPGA中大量的资源,同时实现了高性能和良好的性价比和能效比。

但是,使用FGPA实际上是硬件设计功能,而不是软件开发工作。一般在寄存器传送级(RTL)使用硬件描述语言(Verilog或者VHLD)来进行 FPGA设计,寄存器传送级是很低的抽象级。与使用本文讨论的其他类型的处理器相比,这使得FPGA设计非常耗时,成本也高。

虽然如此,使用FPGA越来越方便了,这是由多种因素造成的。首先,是所谓的“IP模块”库——可重用FPGA设计组件库,其功能越来越强大了。在某些情况下,这些库能够直接满足视觉算法要求。在其他一些应用中,它们还支持视频I/O端口或者扫描线缓冲等功能。而且,FGPA供应商及其合作伙伴提供了越来越多的参考设计——采用了FPGA的可重用系统设计,面向专业应用。最后,利用高级综合工具,设计人员使用高级语言,在FPGA中实现视觉和其他算法,而且效率越来越高。用户可以在FPGA中实现性能相对低一些的CPU。而且,在少量的应用中,FPGA制造商在器件中集成了高性能CPU。

传感器扮演什么角色?

很明显,图形传感器是技术的关键。图形传感器在近年来已变得比较不那么昂贵了,这主要可归功于行动电话普遍且大量且地采用了图形传感器。除了传统的图形传感器以外,许多视觉应用都可以利用各式各样的传感器。例如,3D传感器在微软Kinect的应用即其一例,3D传感器可说是许多应用的一大福音,因为有了3D影像后确实简化了一些视觉任务。

在深入探索嵌入式系统以前,必须先具备哪些电脑视觉知识呢?

大多数的嵌入式系统设计工程师并不了解技术具有什么样的能力。这是因为,一直到最近以前,在大多数的嵌入式系统中使用视觉技术仍不切实际;它毕竟还是太昂贵了。而今,为一系列广泛的各种系统进一步纳入视觉性能,在经济上已经变得较为可行了;因此,对于系统设计者而言,熟悉这项技术、并进一步了解这项技术能做些什么是相当重要的。

早期采用视觉技术的工程师们现在已经可以拿出一些令人惊喜的新产品和产品功能了。当然,工程师们不仅需要了解视觉技术能做什么,同时也要学会如何把视觉技术整合于自己的产品中。在这方面,目前虽然已经累积了一些庞大的出版文献可供参考,但其中绝大多数都是学术研究出版品,以及一些通常不适合协助工程师用于构建解决方案的文献。工程师们需要的是更实际的资讯,如指导方针、设计实例、架构图以及样本程式码等。

嵌入式视觉

系统开发平台

从头开始打造一款视觉系统或子系统,可说是一项庞大且复杂的工作。你必须从像影像传感器与处理器等这一类的基本元素开始,以及从无到有着手建立一种演算法。这对于资源的利用而言,并不是非常有效率的作法,特别是因为在视觉应用中还存在着不断周而复始出现的共同问题。

工程师们最好不要选择这种卷土重来的做法,他们应该能够针对特定应用的一些共同元素,重新使用业经验证的解决方案,然后再将自己的专才发挥在其设计独特之处。我个人认为,这意味着我们需要专门针对视觉应用的先进开发平台,例如,其中包括开发板以及合适的处理器、记忆体、I/O和图形传感器的视觉开发平台。同时还伴随有建置一个或多个视觉应用案例的应用软件。此外,这一视觉开发平台也提供了源代码,使工程师们能够参考这些范例应用立即开始工作,并对其设计进行修改,或添加所需的独特功能。



评论


相关推荐

技术专区

关闭