要点
1.随着处理器、图像传感器、存储器和其它半导体器件的性能提高、成本下降与功耗减小,开发人员正针对各种系统形状因数和价格点,评估为它们增加嵌入视觉功能的情况。
2.传统基于图像传感器的设计可以支持很多嵌入视觉实现,但对于深度识别要求,通常需要一个3D图像传感器子系统。
3.深度映射的常见方法是立体传感器阵列,它将两个摄像头“固定”起来;结构光法是将一个预设的光模式投射到屏幕做分析;而飞行时间法则是通过投射光经过的时间(从源到物体,再返回传感器)计算出距离。
看一下你正在做的设计,或者更省事一点,看一下你的周边,你很可能会发现摄像机正在盯着你,甚至不止一台。图像传感器和它配套的图像处理器正在各种电子产品中日益普及。
例如,现在几乎不可能买到一款不带摄像头的笔记本电脑,而越来越多的一体机、专用计算机显示器,甚至电视机中都包含了摄像头。智能手机与平板电脑也更多地配上了图像传感器,通常前后都有,有时甚至采用“立体”配置以获取三维图像。甚至在便携媒体播放器和汽车内也能看到摄像头的存在。
丰富的应用
设计中增加摄像头的基本理由一般是实现基本的图像捕捉,尤其是静像、录像以及视频会议。但由于已经有很多图像构建块,软件与系统开发者也充分将它们用于更多新的用途,如根据内容识别含义,根据判读的信息采取动作。
例如在汽车应用中,先进的分析系统并不是简单地将后视摄像头捕捉的视频送到LCD屏幕上,它还会警告驾驶员在车后探测到了某个物体,更先进的系统甚至能紧急刹车以避免撞车的发生。
在汽车两侧和周围很多位置还可以安装更多的摄像头,用以提醒驾驶者,先进的实现还会采取措施,以避免无意的变道或与前方物体的碰撞。它们还可以解析出道路标志的含义,对驾驶者提出超速或可能发生碰撞的警告。摄像头能够实现对收音机和其它汽车子系统的手势界面控制,从而减少驾驶者的分心,它们可以发现正在打盹、发短信或做着其他分神的事的驾驶者,让他们把全部注意力放回道路上。
智能手机、平板电脑、计算机和电视用前置摄像头可完成不同功能。它们可以警告用户距离显示器过近或过远,或姿势不好。它们可以确保有人坐在显示器前时,显示屏背光一直亮着,而当人走开时,显示屏背光自动关闭。在这些例子和其它消费电子应用中,手势界面扮演着越来越重要的角色(如在游戏机中),它为传统的按钮按键、触摸板或鼠标的操作提供了一种补充(虽然不是替代)。
正面的摄像头可以用于监控呼吸,它量度胸腔的起伏节奏,并且通过探测血流引起的面部颜色微小的周期性变化测出心律。它可以监控眼球的移动,警告一个人喝酒过多了。它可以判断出一个出现在系统前的人是授权用户,自动为其登录,并装入特定账户的程序与设置。而后置摄像头则可以采用增强现实的手段,为某个物体或场景的普通视图提供额外的信息。
这些是嵌入视觉的典型例子,这个发展迅速的应用类型已扩展到专用功能设备,如监控系统和生产线检查设备等。有些情况下,过去是由运行PC操作系统的计算机执行视觉分析工作,但这种方法成本高、笨重、功耗大,并且不可靠。在其它一些情况下,任一或所有这些因素都会导致不可能实现视觉功能。
现在,由于处理器、图像传感器、存储器和其它半导体器件的性能提高、成本下降及功耗减小,开发人员可以针对各种系统规模和价格点,评估嵌入视觉的能力,这也提升了对越来越强健的图像子系统的需求。
距离还是分辨率
多年来, 消费数码相机市场的动力一直是“像素越多越好”的心态,由于这些图像传感器有大规模的批量,因而价格较低,所以也进入了很多嵌入视觉系统。但近年来,这种过分简单化选择策略的局限性已经越来越明显。
首先,消费者日益发现,除非他们要把照片放大打印到一整面墙那么大,或对源照片做严格的剪裁,否则根本不需要高分辨率的图像,高分辨率照片要占用庞大的存储空间。另外,现代相机拍出的高噪声照片或经人为修补的照片,揭示出了越来越高的分辨率的缺陷。
传感器尺寸必须保持很小以维持性价比,这是消费电子系统的一个重要特性。当制造商硬性在传感器中塞入更多像素时,可想而知,必须缩小单个像素的尺寸。在确定的时间量下,越小的像素获得的光子数越少,因此降低了光敏感度。这样不仅降低了相机的低光性能,同时也对系统动态范围产生了负面影响。后处理工作只能部分地补偿这种损失,通常是只采用运动修补和其它折中方法。
讽刺地是,嵌入视觉应用的需求倾向于采用较通用摄影更低的分辨率。例如,微软公司Kinect中使用的红外和可见光图像传感器都是VGA(640×480像素)分辨率的类型,而视觉外设只将QVGA(320×240像素)的深度图像传送给连线的游戏机或PC。
鉴于现代传感器中可用像素已经过剩,有些供应商转而采用非传统Bayer RGB模式的滤波器阵列方案,将多余像素用于提高光灵敏度和彩色精度(图1)。额外的(和改变的)滤波器颜色据说能提高全谱段上的单像素插值结果,而单色(或无滤波器)像素可以进入更多光线,付出的代价是没有了彩色识别能力(参考文献1)。
图1,Bayer传感器模式以一位柯达图像科学家的名字命名,它保留了数字影像应用中的滤波器阵列方法(a)。更多现代方案则以一种随机方式增加了绿色光谱像素,以提高可见光频谱中这一最重要部分的细节(b),使用减色(代价是需要更多的后期处理),以提高滤波器的光传输能力(c),甚至为像素混合体增加无滤波器的单色像素(d)。
莱卡相机公司的最新数码相机将滤波器的变通做到了极致,它用自己的无滤波器单色图像传感器,仅捕捉黑白图像(图2a)。但即使在高ISO设置下,其照片锐度也获得了评论家们的支持。
图2,Leica公司的M Monochrom要价8000美元,只能捕捉到黑白图像,但评测者们都盛赞该相机的清晰度与低照度下的性能(a)。诺基亚808 PureView智能手机包含有一个超强的4100万像素图像传感器,用于实现数字变焦,以及集簇像素的光学收集能力(b)。索尼开发的名为背照的传感器设计技术,它将像素互连接线改到光电二极管背后,从而改善了每像素填充因素比(c)。
同时, 诺基亚公司的8 0 8PureView智能手机嵌入了一只4100万像素的图像传感器, 但缺省情况下只输出800万像素或更低分辨率的图像(图2b和参考文献2)。808PureView会根据数字变焦设置,将多个像素组合成为不同尺寸的簇,从而省掉了复杂、昂贵和笨重的光学变焦结构,并将实际的单像素光子收集能力提高了很多倍,改善了低光照下的性能。
索尼公司开发了一种称为背照的传感器设计技术(图2c)。撇开实现细节不谈,该技术是将像素间的连线布放到像素光电二极管的后面,从而改善了传感器单像素的填充因数(即感光面积占总面积的百分比),因此也提高了低光照性能。
深度识别
基于传统图像传感器的设计可以支持很多嵌入视觉实现。例如,它可以帮助解析基本手势,以及处理基本的面部探测与识别工作,通常也适用于光学字符识别功能。但是,它可能无法明确地探测出复杂的手势,如针对摄像头的进退运动(3D),因为手势被严格限制在垂直和水平面上(2D)。更常见的是,它不能完全分辨一个物体的整体,即深度;例如,它无法轻松区分出是真脸还是该人的照片。对于这类深度识别的需求,通常需要有一个3D图像传感器子系统(参考文献3)。
无论哪种3D传感器实现,常见的输出就是深度图,这是一个图像阵列,其中每个像素数据项(有时为了人类判读目的而要做附加的彩色编码)都代表着传感器与传感器前方某点之间的距离(图3)。每个深度图帧通常都配合一个由普通2D图像传感器捕捉的相应帧,两个帧要相互做视差校正,因为两台摄像头所处位置不同。
图3,无论采用哪种3D摄像头技术, 都能给出一个物体的深度图(a)。像HTC EVO 3-D智能手机这样的设备也可以用于3D嵌入视觉用途,该手机的立体传感器阵列主要用于捕捉3D静像和频图像(b)。微软的Kinect(c)采用的是结构光方法,测深的方法是在投影仪的前方投射一个知的红外光模式,然后分析它所看到椭圆的形状与方向(d)。
有一种常用的判断深度方法是使用一个立体传感器阵列,它是按照类似一对人眼的结构,布放两个图像传感器。图像SoC像人类的大脑和眼睛一样,处理传感器从不同视点对一个物体的视图,从而评判出物体与传感器阵列之间的距离。在多视图几何应用中,可以将双传感器扩展至多传感器。双传感器方案通常有最低的成本、最小的功耗、最小的外形,如果设计中已经有多个传感器用于3D静像摄像和视频捕捉,则这种方案更有吸引力。
有一种立体影像实现是分立的“双眼”方案,实现方法是将两个摄像头“拴”在一起。虽然从硬件角度看,这是最直接的概念,但所需要的软件支持则比较复杂。打个比方,把两辆摩托车用一个公共轴连接起来,也成不了一辆汽车。摄像头需要做校正才能得到可靠的图像配准,经常有这种情况,摄像机阵列或物体在运动,此时必须做帧的同步。
还有一种方法,可以将两只图像传感器装在单只SoC或多片芯封装内,通过一个总线输出联合数据流。这种完全集成化方案的优点是便于控制和帧同步。更紧密的集成改善了校正工作,从而获得更好的立体影像结果,即增强的深度感知能力和更快的图像处理速度。
投影方案
结构光(Structured light)是第二种常见3D传感器方法,也是微软Kinect中使用的技术,它是将预设的光模式投射在一个屏幕上,以供分析之用。结构光方法的3D传感器方案采用一个投影仪来建立光模式,并有一个摄像头用于探测结果。
Kinect的投影仪是采用的红外光,使用的是x和y方向上不同焦距的散射镜。镜片后的一个红外激光器将一个包含大量点的图像投射出去,图像变换成椭圆,其特定的形状与方向取决于每种情况下物体离镜片的距离。
结构光的优点在于,它有精密的细节分辨率和高精度,尤其是在暗光环境下,此时主要针对可见光谱的传感器就很难捕捉到恰当的图像。与立体传感器方案相比较,结构光的软件算法也更简单,虽然光点云的处理可能会有接近于立体视觉的大计算量。
不过,结构光技术依赖于红外光,至少Kinect证明了这点,这意味着该技术在室外工作会有问题,室外环境下,太阳光中的红外辐射将破坏性地干扰投影仪的光线。另外,投影仪既昂贵又笨重,消耗功率可观,并大量发热; 事实上,Kinect专门为此而做了一个风扇(参考文献4)。必要的定制投影镜片又增加了总的物料成本。
飞行时间(Time of flight)是第三种常见的3D传感器实现方法。与结构光一样,飞行时间摄像头包括一个图像传感器、一只镜片和一个有源发光源。但采用飞行时间方法时,摄像头会根据投射光从光源到投影仪,再回到图像传感器的时间,得出范围或距离(参考文献5)。发光源一般可以是一只脉冲激光器或调制光束,具体取决于设计采用的图像传感器类型。
集成了数字时间计数器的图像传感器通常带有脉冲激光束,正如包括快门的距离选通传感器。对于后者,快门以投影仪投射脉冲光束的速度开闭。因此,每个图像传感器像素所“看到”的光通量就与脉冲传输的距离有关,这就是从传感器到物体的距离。带相位探测器图像传感器的飞行时间设计则采用了调制波束源。波束的强度随时间而改变,因此测量进入光的相位,就间接地得到了“飞行时间”的距离。
飞行时间摄像头在汽车应用中很常见,例如行人探测和驾驶员辅助,并且在机器人产品中也很普遍。它们还在军事、国防与航空领域有较丰富的应用史。所需要的图像处理软件比较简单,因此要比立体摄像头结构的必备软件更有实时能力,虽然飞行时间技术对环境照射干扰和多次反射的敏感性多少会使算法复杂化。
飞行时间方案的帧速率可以非常高,达到每秒60帧,用立体影像设置难以达到这个速度,但其分辨率通常相对较低。并且与结构光技术相比,需要的时间飞行光投影仪带来了成本、功耗(及散热)、尺寸以及重量上的缺陷。
联盟促进设计成功
嵌入视觉技术能够让电子产品更加智能且有响应能力,因此对用户比以往更有价值。该技术能为现有产品增加有助益的特性,为硬件、软件、半导体和系统制造商提供了崭新的市场。
嵌入视觉联盟(The EmbeddedVision Alliance)是去年夏天组成的一个全球技术开发人员与供应商的组织,它为工程师提供各种必要的工具,以加快这种潜能向实际的转化。该联盟的使命是提供实用教育、信息及洞见,帮助工程师们将嵌入视觉功能加到产品中。