随着PC、手机和互动游戏的出现,电脑视觉才走进消费性电子产品而为普通大众所熟悉。最近几年AI和微处理器的发展,更是极大地推动了电脑视觉在各个应用领域的发展,尤其是嵌入式视觉(Embedded Vision),引起了业界的特别关注。

HAL 9000是英国科幻小说与同名电影《太空漫游》(Space Odyssey)中的虚拟人物,它是一种具有人工智慧(AI)的启发式程式设计演算法电脑,透过一个光学镜头与太空船机组人员对话沟通(这算是电脑视觉的最高阶应用场景了);他的职责是维护整个飞船系统的正常运作,但他可以与人对话和下棋、识别语音和脸部表情、解释和表达情感,甚至可以读懂人的嘴唇动作。科技发展到今天,AI机器人也只是实现了HAL所具有的一些基本功能,电脑视觉技术的难度由此可见一斑。

什么是嵌入式视觉?

电脑视觉是利用数位处理和智慧演算法来解释影像或视讯所包含资讯的意义,以据此做出决策。虽然电脑视觉在学术界和实验室已经有几十年的历史了,但除了科幻电影和国防/太空等特殊领域外,它鲜为人知。随着PC、手机和互动游戏的出现,电脑视觉才走进消费性电子产品而为普通大众所熟悉。最近几年AI和微处理器的发展,更是极大地推动了电脑视觉在各个应用领域的发展,尤其是嵌入式视觉(Embedded Vision),引起了业界的特别关注。

嵌入式视觉就是在嵌入式系统中采用电脑视觉技术,比如汽车ADAS整合多个摄影机以感知周围环境,提供半自动甚至全自动化的驾驶功能。Google和百度等网际网路巨擘最新发表的、配备萤幕的智慧音箱也是嵌入式视觉的具体应用展现。

市场研究机构Tractica的资料预测,从2016到2025年,嵌入式视觉应用的硬体、软体和服务市场将以25%的速度成长,到2025年规模将达到262亿美元,其中视讯安防、汽车自动/辅助驾驶、AR/VR,以及工厂自动化等应用将是嵌入式视觉成长最快和规模最大的细分市场(参考图1)。

forum.jpg


图1 2016~2025年,嵌入式视觉应用的硬体、软体和服务市场将以25%的速度成长。

可以毫不夸张地说,凡是有人机互动的场景,都有嵌入式视觉发挥的空间。虽然不像PC和手机那样作为独立的人机互动产品而成为划时代的技术创新,但嵌入式视觉技术在AI和IoT

时代将比PC和手机更为普遍,几乎无孔不入。从这个意义上来看,嵌入式视觉将成为划时代的产品。

那么,推动嵌入式视觉快速发展的驱动力是什么呢?

嵌入式视觉的三大元件

一个具备电脑视觉功能的嵌入式系统主要包括摄影机和感测器、视觉处理器、软体和演算法,以及记忆体和网路介面等元件。过去5年来,微处理器晶片的设计(异质运算多核心SoC)和制造(从14nm缩小到7nm)都有极大的进步,带来了运算处理性能的大幅提升,特别是专用处理器的出现,为海量的影像和视讯资料处理提供了硬体保障。

与此同时,AI和神经网路逐渐替代传统的视觉演算法、云端运算的普及,以及各种深度学习框架和软体发展工具的出现都在驱动着神经网路执行视觉处理任务的性能提升。因此,高性能专用处理器和深度学习演算法是推动嵌入式视觉技术和应用快速发展的主要动力。当然,高解析度感测器,特别是3D感测器的发展也起着不可忽视的作用。

CPU、GPU、DSP、FPGA还是专属AI晶片?

一个典型的电脑视觉处理流程示意图如图2所示,处理器一般都会专门针对软体处理任务负荷的运算密集部分进行最佳化。虽然通用型CPU仍然是使用最为广泛的视觉处理器,但增加GPU作为CPU的辅助处理器已经成为嵌入式视觉设计的标准做法。除了通用型GPU外,DSP和FPGA也是比较受视觉应用设计工程师欢迎的辅助处理器。

forum.jpg


图2 典型的电脑视觉处理流程。

通用型CPU、GPU、DSP、FPGA和新兴的专用深度学习处理器在进行视觉处理时各有优劣,选择哪种类型要看具体应用需求而定。虽然很多电脑视觉演算法都可以在桌上型PC处理器上执行,却难以满足嵌入式系统对功耗和尺寸的严格要求。从电脑指令集架构来看,CPU类型包括x86、Arm和MIPS等RISC,以及最近两年开始流行的RISC-V。

通用型CPU一般比较适合处理如下任务:启发式 演算法、复杂的决策、网路访问、使用者介面、储存管理和系统整体控制等。CPU的硬体架构是为了更广泛的运算应用,并没有专门为加速深度学习运算而最佳化,因此需要与专用的处理器配合才能获得更好的视觉处理性能。

高性能GPU具有极强的海量平行运算能力,可以对电脑视觉流程中的影像画素资料进行快速平行处理。虽然GPU主要用于云端运算平台的资料中心和高性能运算领域,但在智慧型手机的应用处理器中也越来越常看到GPU核心特性。GPU的记忆体架构和平行运算硬体架构非常适合深度学习的训练和推理运算,在要求嵌入式视觉和3D处理的系统设计中,GPU是不可或缺的部分,可以协助通用型CPU一起处理很多种类型的电脑视觉演算法。然而,在嵌入式应用中,特别是对功耗、尺寸和成本比较敏感的IoT智慧终端机和边缘运算设备中,GPU的高功耗和高成本是其在嵌入式视觉中难以普及的挑战。

DSP比较擅长处理串流媒体资料,因为其汇流排和结构都专门针对高速资料处理进行了最佳化,这种架构使其成为处理来自感测器的影像和视讯串流资料的理想解决方案。但是,DSP一般无法单独使用,因为它在处理通用的运算任务时效率不高。因此,DSP一般会跟RISC处理器配对构成异质运算环境以加速视讯输入和电脑视觉演算法的处理。

据CEVA的AI战略资深总监Yair Siegel称,在执行视觉演算法、获取视觉输入讯号并对其进行处理方面,专门设计的视觉DSP和AI处理器具有更高的性能和功效(性能/mW)。由于这类视觉引擎专注于特定领域,用于视觉和AI的工具及程式库应当是最先进的,以提供良好的开发人员体验。

FPGA提供了一种灵活的硬体加速可程式设计方案,可以快速将软体迁移到硬体。不像CPU那样执行多执行绪任务需要争抢运算资源,FPGA可以同时加速电脑视觉流程的多个部分。FPGA架构在加速深度学习运算方面和GPU类似,其优点是灵活性和适应性强,功耗也低,但缺点是效率不高,开发工具链相比GPU稍微欠缺,开发门槛稍高。此外,对于嵌入式应用来说,其成本需要进一步降低才能为大众市场所接受。

深度学习专用处理器

嵌入式视觉联盟创始人暨总裁Jeff Bier与EE Times分享了该产业组织所做的最新2019年电脑视觉开发人员调查报告。在用于视觉处理的各种处理器类型中,CPU仍是使用最多的处理器,但GPU的使用普及仍在继续成长,而FPGA和DSP等辅助处理器的使用有所下降。特别引人注目的是,有1/3的接受调查者已经在使用专用的深度学习处理器了,而这种处理器在几年前压根都不存在(参考图3)。

forum.jpg


图3 嵌入式视觉联盟的2019调查报告显示,使用专用深度学习处理器的开发者达到32%。

目前业界已经出现各种专用视觉处理器,可以高效、轻松地开发视觉和AI演算法。比如在汽车应用领域,Mobileye的EyeQ3、EyeQ4和正在开发中的EyeQ5;特斯拉(Tesla)最近发表的全自动驾驶(FSD)电脑;Nividia DRIVE Xavier晶片,以及欧洲AIMotive的AiWare自动驾驶晶片等。

在视讯安防领域,中国大陆四大AI演算法公司之一上海依图率先推出了专门针对视讯分析处理的QuestCore晶片;此外还有大疆无人机中使用的神经网路处理器,可用于障碍物检测和避免碰撞。这些专用视觉处理器使得神经网路能够在终端设备上执行基本的AI任务。

嵌入式视觉硬体平台的未来趋势及挑战

Siegel认为,在AI处理器市场,有些相互冲突的趋势可以同时发展。比如,一方面有些专用处理器的性能更加强大,而同时很多高效、低成本和低功耗的处理器也备受欢迎。特斯拉和Nvidia正在推动超过100TOPS的高性能处理器,以便能够平行处理更复杂的神经网路。而另一方面,消费者对价格的压力推动着消费类电子产品的成本持续下降,例如Google、亚马逊(Amazon)和百度都有售价200美元及更低的智慧音箱,这意味着这些装置内部的AI处理器成本应该是10美元或更低。这些趋势将会重合,我们将看到针对不同需求和应用场景的各种规模的处理器晶片。

性能/功耗比、尺寸和拥有权总成本将是嵌入式视觉处理器需要持续应对的难题,但一个明显的趋势是对延迟的要求,因为越来越多的AI应用要求低延迟甚至即时解决方案,赛灵思(Xilinx)工业/医疗/科学市场发展总监Chetan Khona如是说。开发者一直都在为其新一代产品设计寻求灵活、紧凑、低延迟、低功耗和高性能的开发平台;Xilinx SoC具有很好的灵活性及自我调整性,比较适合嵌入式视觉应用,可以为开发者提供可扩展的嵌入式HW/SW方案。

Arm中国一位负责周易AI平台的开发人员认为,在嵌入式场景里进行深度学习应用开发需要全新的硬体和软体发展工具,例如具备深度学习加速器的晶片、适应深度学习场景的编译器、框架和作业系统等。但是全新的软硬体工具开发需要几年时间才能成熟完善,在这之前开发者将不得不在工具缺乏的情况下开发应用,面对各种各样的问题,比如硬体算力达不到场景需求、满足算力需求的晶片功耗成本过高、模型和晶片的双重碎片化导致移植开发工作效率低下,以及缺乏可重用的演算法库导致开发效率低等。

他预计在2020年之前,绝大多数嵌入式视觉场景仍然使用传统的Arm晶片做深度学习开发。开发者遇到的主要困难是缺乏嵌入式前端的轻量快速部署平台、对CPU/GPU算力的深度挖掘,以及部署后采用量化运算的精度控制等。Arm中国与OPEN AI LAB联合开发的周易Tengine框架、HCL运算库和量化训练工具就是针对部署、算力和精准度这三大问题,配合搭载Arm处理器的传统嵌入式晶片,希望成为嵌入式视觉开发人员的深度学习部署平台。

感测器

新的成像应用蓬勃发展,正在推动着嵌入式视觉在各个应用领域的普及。对于嵌入式视觉系统的设计人员和开发厂商而言,更小的尺寸、重量、功耗和成本(简称SWaP-C)是对各种元件供应商的持续要求。由于影像感测器会直接影响嵌入式系统的效能和设计,在大规模应用中扮演着重要角色。

来自Teledyne e2v的Marie-Charlotte Leclerc在一篇技术文章中指出,要降低影像感测器模组的成本,首先要缩小感测器画素尺寸。因为,画素尺寸越小,在一个晶圆上就可以切割出更多的裸片来。例如,Teledyne e2v的Emerald 5M感测器把画素尺寸减小至2.8μm,让S口(M12)镜头能够用于500万画素全域快门感测器上,可以带来直接的成本节省。入门级的M12镜头价格约为10美元,而较大尺寸的C口或F口镜头成本要贵10~20倍。

除了光学最佳化,感测器介面的选择也间接影响视觉系统的成本。MIPI CSI-2介面最初是由MIPI联盟为行动产业开发的,它已被大多数系统整合厂商广泛采用,并已开始在工业市场流行开来,因为它可以直接与SoC或系统级模组(SOM )整合。具有MIPI CSI-2介面的CMOS影像感测器无需任何中间转换器桥,即可直接将资料传输到嵌入式系统的主机SoC或SOM,从而节省了成本和PCB空间。在基于多感测器的嵌入式系统(如360度全景系统)中,这一优势更为突出。

CCD还是CMOS?

归功于智慧手机及其他消费类电子产品的普及,CMOS影像感测器现已占据90%以上的市场。然而,针对某些特殊应用,CCD感测器的脉冲原理方式可以获得比CMOS感测器更理想的应用特性,ADI系统应用工程经理李佳对此做了详细阐述。

CCD感测器成像能获得更小的画素,在同样解析度下,光学靶面小,便于镜头的轻巧设计,对于手机等便携应用产品来说外形尺寸是关键指标之一。CCD感光度高,特别是在940nm波段有较好的表现,可应用于室外强光,这对于室外人脸识别、行动支付等应用场景很重要。

CCD的全域曝光优势还可以测量快速移动的目标,基于CCD感测器测量距离可以达到强光下>10公尺,这对于像运动物体中远距离的避障等应用来说非常关键。基于CCD成像的脉冲式原理可以在单帧下运算出深度资讯,这对于那些基于深度资讯的人体动作识别、手势控制、物体外形扫描等应用来说非常关键。ADI的ToF方案主要采用CCD感测器。

此外,在科研和航空航太等领域,CCD还是占据着主导地位。Teledyne e2v业务拓展经理Tracy Da认为,这是由于CCD影像感测器已经有多年的积累验证,航空飞行模式对灵活性和扫描的严格要求是大批量生产的CMOS影像感测器无法满足的。虽然CMOS从技术上可以实现大部分功能,甚至某些特性强于CCD,但在相应专业领域的可靠性和方案验证仍需要很长时间才能追赶上CCD。

3D影像感测器

2D影像感测器在许多行业的大规模设备和相机中发挥了关键作用,因为它的成本较低,制造方式也比较透明。但是,与人类视觉相似的良好相机或机器视觉应该是3D形式。在考虑3D影像感测器时,需要权衡技术优势与批量生产技术的挑战。在技 术方面,3D感测器面临着应对各种场景(如阳光、黑暗短距离、远距离)和稳健性(遇到撞击后不需要硬体校准就可以继续工作)的挑战。有许多技术可以通过多个更复杂的感测器、左右两个感测器,或者在单个感测器上使用更复杂的软体来理解3D影像。

现有耳熟能详的3D成像方案就是iPhone X的人脸识别了,主要采用结构光配合2D影像感测器。此外,3D方案还有双目视觉、ToF感测器和Range Gating等技术,对于不同应用场景有不同的精准度要求。在手机等消费类市场,整体方案的体积和功耗是最大的挑战,后端演算法支援也是一个不小的难题。

艾迈斯(ams)现场应用工程师王镡认为,新兴的3D技术在消费和工业领域中都有很好的发展前景,比如在消费市场中的人脸识别,场景重建和AR/VR等,工业应用中的SLAM和机器视觉等。现有3D相机已经发展得较为成熟,但还缺少强大后端演算法支援,同时在介面和标准上也没有对应规范。

目前,ToF和结构光是许多3D相机首选的两个方案,它们在几乎所有相机设备中都具有许多优势和潜在用途。这两种技术的国内外供应商也不少,比如ams、ADI和英飞凌的ToF影像感测器都已量产,ST的结构光元件已经批量用于iPhone。

ToF影像感测器技术有较高的深度解析度(VGA)和强光下的抗干扰性能等主要优势,非常适合以下应用:

室内外的人脸识别;

手势控制和体征识别(比如手势互动控制、3D人流统计、3D Camera自动门);

物流快递货物体积扫描;

运动物体中远距离的避障(例如基于ToF的倒车影像防撞侦测、电子围栏)。

以vivo与ADI合作开发的ToF 3D超感应技术vivo NEX系列手机为例,ToF 3D立体摄影机大大提升了手机支付的安全性,丰富了美颜及其他便利功能。透过ToF红外线景深镜头,能更准确的识别使用者面部大量的立体特征,不仅可以实现解锁,更能实现「刷脸」支付。透过3D 脸部建模的方式,实现3D级别的捏脸效果,能细致的调整脸型。ToF相机还支援3D测量仪功能,用于测量物体尺寸。

软体和演算法

一直以来,电脑视觉应用依赖于高度专业化的电脑演算法,由经验丰富的开发人员专门针对某一特定应用领域或用户案例进行长时间的开发和更新。传统演算法的高门槛和专业化程度阻碍了电脑视觉技术的发展和应用普及,使得新的应用设计开发十分昂贵,且周期颇长。自2012年以来,AI和深度学习的出现降低了演算法建模和开发的门槛,大大释放了电脑视觉的潜能,吸引着越来越多的开发者和企业在其系统设计中嵌入视觉功能,使得基于电脑视觉的演算法、系统和应用更易于开发和规模化部署。

传统演算法和AI演算法?

在嵌入式视觉联盟的年度开发者调查中,87%的调查回应者表示已经或打算在其产品设计中采用深度学习神经网路来实现电脑视觉方面的功能。在软体发展平台和演算法方面,对于非神经网路的视觉演算法任务,最流行的软体语言是C++,使用最广的演算法库是开源的OpenCV、MATLAB和CUDA也有不少的用户。而对于采用深度学习的视觉演算法任务,Google的TensorFlow是最流行的神经网路创建、训练、评估和部署软体框架。

虽然传统演算法的入门门槛较高,需要对演算法细节了解较深,而且后续真正应用落地中还需要反覆调整参数,但是传统演算法能够专门针对具有良好品质的通用特征进行调整,其高度的专业化对开发厂商来说也是一种竞争优势。此外,有些非运算密集型应用,或者不太适合AI的应用领域,传统演算法仍会占据主导地位。

深度学习入门门槛较低,可基于经典网路进行迁移学习,但需要大量标签好的资料集,因为演算法性能和训练集大小成正比。但深度学习后续如需进一步精益求精,要求资料科学家具备深度学习网路的设计、剪枝和量化等能力。由于深度学习模型的难以解释性,其后续的门槛比传统演算法还要高。另外,深度学习训练时间较长,如果最终应用要求的讯框数较高,后续推理运算的最佳化仍需花较长的时间来最佳化模型,或者掌握不同硬体的开发工具。

传统演算法和AI演算法似乎有一个天然的冲突和竞争,但大多数演算法开发人员实际上是在传统电脑视觉演算法和神经网路之间进行混搭,以实现精确度和效率的最佳组合。

硬体最佳化的电脑视觉演算法

电脑视觉演算法的一个创新趋势是用硬体最佳化的演算法来替代通用的演算法。鉴于嵌入式视觉有很多处理器可供选择,演算法分析将会专注于在系统限制范围内最大化画素级别的处理能力。很多可程式设计元件供应商为此创建了标准电脑视觉库的最佳化版本,比如Nvidia将CUDA开源,并与OpenCV社区合作创建了可以由通用型GPU加速的演算法。MathWorks在其视觉系统工具箱中为很多电脑视觉演算法提供MATLAB功能/物件和Simulink模组,还可以让开发者针对特定的可程式设计架构开发自己的功能库。

NI的图形化程式设计软体LabVIEW与深度学习的主流程式设计语言Python融合,支援直接调用Python档,用户可以方便地利用NI的资料集和Python深度学习演算法库进行工程开发的创新探索。此外,赛灵思也以随插即用IP内核的形式为客户提供最佳化的电脑视觉库,以便在FPGA上开发硬体加速视觉演算法。

演算法及软体平台的未来趋势及挑战

嵌入式视觉应用开发者首先遇到的困难就是在CPU、GPU、FPGA和其他处理器中选择合适的嵌入式平台,不同的硬体平台及其相应的工具链完全不同,都需要重新学习和熟悉。再次,由于深度学习模型的难以解释性,模型调整和最佳化会缺乏方向,并且需要反覆尝试。

深度学习演算法需要非常高的运算能力,这个要求会持续成长并不断改变特征。嵌入式视觉平台需要在电池供电的低成本设备中应对这些问题。因此,开发人员面临的挑战不仅在于将大量运算功能塞入小型记忆体和廉价处理器中,而且还要能使这些功能在演算法发展过程中快速更新。一个良好的软体发展平台应该快速将新的研究网路移植到硬体上,并且最大限度地利用硬体。

MathWorks资深技术专家陈建平及其美国同事列出了开发者所面对的如下主要挑战:

1.深度学习最佳化:要确保程式码得到最佳化以充分利用处理器硬体性能,从而获得足够的推理引擎性能。例如,基于NvidiaGPU编写CUDA程式码的开发者可以透过自动调节、层融合,并利用Thrust和TensorRT等加速库来提升性能。

2.整合多种程式库和软体套件:对于每个要实现的专案目标,开发者都需要管理由晶片开发商提供的程式库、开源的软体套件,以及他们自己手写的程式码。而且需要单独维护、验证和完善不同目标的部署。

3.演算法和供应商Lock-in:一旦开发者确定使用某一家供应商的晶片组和演算法库,他基本就被锁定了,所编写的程式码很难转移到其他平台。

针对这些问题,MathWorks的因应措施是让开发者使用独立于目标的高阶MATLAB语言来设计自己的AI系统,然后利用程式码产生器针对不同的处理器和硬体平台自动创建目标布署。这样,无论是CPU、GPU、FPGA还是Arm处理器,深度学习推理以及讯号和影像处理都可以从容应对。

嵌入式视觉的三大应用

在嵌入式系统中添加视觉功能启动了传统的工业自动化、汽车电子和安防监控市场,甚至游戏、AR/VR和可穿戴设备等消费电子产品也迸发出新的活力。

工厂自动化

电脑视觉在工厂自动化领域通常被称为「机器视觉」,涉及的产业主要包括车辆制造、化学和制药、包装设备制造、机器人制造,以及半导体和电子产品制造和组装等。工厂自动化用到的机器视觉产品主要有以下部分:智慧感测器、智慧摄影机、机器视觉摄影机、影像撷取卡(frame grabber)、机器视觉照明和镜头,以及机器视觉软体等。

NI工业物联网/人工智慧行业经理郭翘认为,在工业中需要深度学习的场景大多是视觉应用,例如产线或工厂的缺陷检测、字元识别等。通常这种恶劣的环境不适合有风扇的嵌入式系统(GPU),待测物件的多变以及演算法的反覆运算开发通常也难以找到合适的专用晶片。

汽车电子

自动驾驶和ADAS是电脑视觉在汽车方面最热门的应用,然而,嵌入式视觉还可以安装在车内用来监控司机的驾驶状态。在车辆与周围环境的互动场景中,电脑视觉晶片和演算法可以实现偏离车道警告、防撞、自动倒车和泊车等功能。

电脑视觉在汽车上应用的目的不是让车代替人以实现自动驾驶,而是让汽车驾驶更安全。Siegel预测,汽车市场的焦点将是更智慧和更具辅助性的视觉设备,因此演算法需要预测和理解人类行为、关联背景和环境,更好地利用这些知识来相应地选择通知、反应和预测。这将需要更先进的网路范例,例如能够理解动作的递回神经网路(RNN),不仅要了解汽车前面有人,还要了解他要去的地方,以及何时进入汽车危险区域。

郭翘则预测,在汽车应用中,影像和视觉感测器融合的自动判别和决策,而不是仅仅基于摄影机的方案,才是未来发展的关键。他认为未来3~5年内,更多的提升是在软体工具链上,会有更多傻瓜式的工具降低对资料科学家的依赖,更方便的设计和最佳化深度学习网路。

安防监控

在传统的物理安防监控市场,涉及的主要视觉产品包括网路摄影机、编码器、网路视讯记录仪、DVR及其他智慧监控设备。最近几年,视讯监控市场出现了「低阶」分析现象,比如摄影机破坏检测和视讯移动检测,这些功能在很多安防终端设备上成了标配。

中国大陆安防市场已经相当成熟,华为海思、海康威视以及商汤等新老厂商都从不同的角度在这一市场拼杀,但一个共同的特点是大家都打AI牌,从AI相机、AI晶片到AI演算法,无论硬体还是软体都会植入AI功能。然而,这一市场的标准不统一,演算法成本昂贵等问题仍有待解决。专用视觉处理器和深度学习演算法也许可以协助推动这一庞大市场健康发展。