本申请要求2012年11月8日提交的美国专利No.61/724,068的优先权和权益,该美国专利的全部公开通过引用被合并于此。另外,本申请要求美国专利申请(2012年3月7日提交的)No.13/414,485和(2012年12月21日提交的)13/724,357的优先权,并且还要求美国临时专利申请(2012年11月8日提交的)No.61/724,091和(2012年1月17日提交的)61/587,554的优先权和权益。前述申请全部内容都通过引用被合并于此。
具体实施方式
首先参考图1,该图图示了根据本发明实施例的用于捕获图像数据的系统100。系统100包括被耦接到图像分析系统106的一对照相机102,104。照相机102,104可以是任意类型的照相机,包括在可见光谱上敏感的照相机或者更典型的对受限波长谱带(例如红外(IR)或紫外谱带)有增强敏感性的照相机;更一般来说,这里的术语“照相机”指能够捕获对象的图像并且以数字数据的形式表示该图像的任意设备(或者设备的组合)。例如,不同于捕获二维(2D)图像的传统设备的线连传感器或线连照相机可以被利用。术语“光”一般被用于指任何电磁辐射,该电磁辐射可以在或不在可见光谱内,并且可以是宽带的(例如白光)或窄带的(例如单一波长或者窄谱带波长)。
数字照相机的核心是图像传感器,该图像传感器包含光敏感图片单元(像素)的网格。镜头将光聚焦到图像传感器的表面,并且当光以不同强度撞击像素时形成图像。每个像素将光转换为电荷(电荷的大小反映所检测到的光的强度),并且收集电荷使得其可以被测量。CCD和CMOS图像传感器两者都实现这个相同的功能,但是在信号被测量和传送的方式上是不同的。
在CCD中,来自每个像素的电荷被传输到将电荷转换为可测量电压的单一结构。这通过以下方式来实现,该方式即按“斗链”方式逐行然后逐列地将每个像素中的电荷顺序地移向其邻居一直到电荷到达测量结构为止。相比之下,CMOS传感器在每个像素位置处放置测量结构。测量结果直接从每个位置被传送到传感器的输出。
照相机102,104优选能够捕获视频图像(即按每秒至少15帧的固定速率的连续图像帧),但是不要求特定的帧速率。照相机102,104的能力对于本发明来说不是至关重要的,并且照相机在帧速率、图像分辨率(例如每个图像的像素)、颜色或强度分辨率(例如每个像素的强度数据的比特数)、透镜的焦距、景深等方面可以是变化的。一般来说,对于特定应用,能够聚焦在感兴趣的空间体积内的对象上的任何照相机都可以使用。例如,为了捕获在其它方面静止的人的手的运动,感兴趣的体积可以被限定为一边为大约一米的立方体。
系统100还包括一对光源108,110,这对光源可以被置于照相机102,104的任一侧并且由图像分析系统106控制。光源108,110可以是具有一般传统设计的红外光源,例如红外发光二极管(LED),并且照相机102,104可以对红外光敏感。滤色器120,122可以被放在照相机102,104的前面以滤出可见光,使得只有红外光被记录在照相机102,104所捕获的图像中。在其中感兴趣的对象是人的手或身体的一些实施例中,红外光的使用可以允许运动捕获系统在宽范围的光照情况下工作并且可以避免可能与将可见光引至其中人正在运动的区域中相关联的各种不便或干扰。但是,需要电磁谱的特定波长或区域。
应当强调之前的布置是代表性的而非限制性的。例如,激光器或其它光源可以代替LED被使用。对于激光器设置,附加的光学结构(例如透镜或漫射片)可以被用于加宽激光束(并且使其视场与照相机的视场相类似)。有用的布置还可以包括用于不同范围的短且宽角度照明器。光源通常是扩散光源而不是镜面反射点源;例如,具有光扩展封装的封装LED是合适的。
在操作中,照相机102,104定向为朝向感兴趣的区域112,感兴趣的对象114(在该示例中为手)和一个或多个背景对象116可以存在于感兴趣的区域112中。光源108,110被布置为照亮区域112。在一些实施例中,光源108,110中的一个或多个以及照相机102,104中的一个或多个被置于要被检测的运动下面(例如手运动要被检测的地方)运动发生的空间区域下方。这是最佳的位置,因为关于手所记录的信息量与其在照相机图像中所占用的像素数目成比例,当照相机相对于手的“指向”的角度尽可能地接近于垂直时手将占用更多的像素。因为对于用户来说将其手掌朝向屏幕是不舒服的,所以最佳位置为从底部向上看、从顶部向下看(这需要搭桥)或者从屏幕边框沿对角线向上或向下看。在向上看的情形中,比较不可能与背景对象(例如用户书桌上的混乱)混淆并且如果直接向上看,则与视场外的其它人混淆的可能性非常小(并且还通过不对脸部成像而提高了私密性)。可以例如为计算机系统的图像分析系统106可以控制光源108,110和照相机102,104的操作以捕获区域112的图像。基于所捕获的图像,图像分析系统106确定对象114的位置和/或运动。
例如,作为确定对象114的位置的步骤,图像分析系统106可以确定照相机102,104所捕获的各个图像的哪些像素包含对象114的部分。在一些实施例中,图像中的任意像素可以取决于该像素是否包含对象114的一部分而被归类为“对象”像素或“背景”像素。在使用光源108,110的情况下,将像素归类为对象或背景像素可以基于像素的亮度。例如,感兴趣的对象114与照相机102,104之间的距离(rO)被预期为小于背景对象116与照相机102,104之间的距离(rB)。因为来自光源108,110的光的强度按1/r2降低,所以对象114将比背景116更亮地被照亮,并且包含对象114的部分的像素(即对象像素)将相应地与包含背景116的部分的像素(即背景像素)更亮。例如,如果rB/rO=2,则对象像素将比背景像素大约亮四倍,这里假定对象114和背景116对来自光源108,110的光有类似的反射性,并且还假定区域112的整体照明(至少在照相机102,104所捕获的频带内)受光源108,110支配。对于适当选择的照相机102,104、光源108,110、滤色器120,122和常碰到的对象,这些假定一般都成立。例如,光源108,110可以是能够在窄频带内很强地发出辐射的红外LED,并且滤色器120,122可以被匹配到光源108,110的频带。因而,虽然人手或身体或者背景中的热源或其它对象可能发出一些红外辐射,但是照相机102,104的响应仍然可能受源自光源108,110并且被对象114和/或背景116反射的光的支配。
在该布置中,图像分析系统106可以通过向每个像素应用亮度阈值来快速且准确地区分对象像素与背景像素。例如,CMOS传感器或类似设备中的像素亮度可以在从0.0(暗)到1.0(完全饱和)的亮度级上被测量,介于中间的某些分级取决于传感器设计。通常由于所沉积的电荷或二极管电压,由照相机像素编码的亮度与对象的亮度标准地(线性地)成比例。在一些实施例中,光源108,110足够亮以使得从在距离rO处的对象反射的光产生1.0的亮度水平而在距离rB=2rO处的对象产生0.25的亮度水平。因而,对象像素可以基于亮度很容易地与背景像素区分开。此外,对象的边缘也可以基于相邻像素之间的亮度差异而很容易地被检测,允许每个图像内的对象的位置被确定。对来自照相机102,104的图像之间的对象位置做相关允许图像分析系统106确定对象114在3D空间中的位置,并且分析图像序列允许图像分析系统106利用传统的运动算法来重建对象114的3D运动。
应理解系统100是图示性的并且改变和修改都是可能的。例如,光源108,110被显示为被置于照相机102,104的任一侧。这可以便于实现如从两个照相机的角度来看的对对象114的边缘的照亮;但是,关于照相机和光源的特定布置不是所要求的。(其它布置的示例在下面被描述。)只要对象比背景明显靠近照相机,这里所描述的增强的对比度就可以被实现。
图像分析系统106(也被称为图像分析器)可以包括或由能够例如利用这里所描述的技术来捕获和处理图像数据的任意设备或设备成分构成。图2是实现根据本发明实施例的图像分析系统106的计算机系统200的简化框图。计算机系统200包括处理器202、存储器204、照相机接口206、显示器208、扬声器209、键盘210和鼠标211。
存储器204可以被用于存储要被处理器202执行的指令以及与指令的执行相关联的输入和/或输出数据。具体而言,存储器204包含控制处理器202的操作及其与其它硬件成分的交互的指令,这些指令从概念上被图示为下面将更详细描述的一组模块。操作系统引导低级别的基本系统功能的执行,例如存储器分配、文件管理和大规模存储设备的操作。操作系统可以为或者包括各种操作系统,例如Microsoft WINDOWS操作系统、Unix操作系统、Linux操作系统、Xenix操作系统、IBM AIX操作系统、Hewlett Packard UX操作系统、NovellNETWARE操作系统、Sun Microsystems SOLARIS操作系统、OS/2操作系统、BeOS操作系统、MACINTOSH操作系统、APACHE操作系统、OPENSTEP操作系统或者另外的操作系统平台。
计算环境还可以包括其它可移除/不可移除、易失性/非易失性计算机存储介质。例如,硬盘驱动可以向不可移除的非易失性磁介质读或写。磁盘驱动可以从可移除的非易失性磁盘读取或向其写入,并且光盘驱动可以从诸如CD-ROM或其它光介质之类的可移除的非易失性光盘读取或向其写入。可以被用在示例性操作环境中的其它可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM等。存储介质通常通过可移除或不可移除的存储器接口被连接到系统总线。
处理器202可以是通用微处理器,但是取决于实现方式,备选地可以是微控制器、外围集成电路元件、CSIC(用户专用集成电路)、ASIC(专用集成电路)、逻辑电路、数字信号处理器、诸如FPGA(现场可编程门阵列)之类的可编程逻辑设备、PLD(可编程逻辑设备)、PLA(可编程逻辑阵列)、RFID处理器、智能芯片或者能够实现本发明的过程的步骤的任何其它设备或设备的布置。
照相机接口206可以包括实现计算机系统200与诸如图1中所示的照相机102,104之类的照相机以及诸如图1的光源108,110之类的关联光源之间的通信的硬件和/或软件。因而,例如,照相机接口206可以包括照相机可以被连接到的一个或多个数据端口216,218,以及在将数据信号作为输入提供给在处理器202上执行的传统运动捕获(“mocap”)程序214之前修改从照相机接收到的数据信号(例如为了减少噪声或者对数据重新格式化)的硬件和/或软件信号处理器。在一些实施例中,照相机接口206还可以向照相机发送信号,例如以激活或者停用照相机、控制照相机设置(帧速率、图像质量、敏感性等)等等。这样的信号可以例如响应于来自处理器202的控制信号而被发送,所述控制信号可以反过来响应于用户输入或其它检测到的事件而生成。
照相机接口206还可以包括控制器217,219,光源(例如光源108,110)可以被连接到所述控制器。在一些实施例中,控制器217,219例如响应于来自处理器202的执行mocap程序214的指令向光源提供工作电流。在其它实施例中,光源可以从外部电源(未被示出)提取工作电流,并且控制器217,219可以生成用于光源的控制信号,例如指示光源被打开或关闭或者改变亮度。在一些实施例中,单一控制器可以被用于控制多个光源。
限定mocap程序214的指令被存储在存储器204中,并且这些指令在被执行时对从被连接到照相机接口206的照相机提供的图像进行运动捕获分析。在一个实施例中,mocap程序214包括各种模块,例如对象检测模块222和对象分析模块224;同样,这两个模块都是传统的并且在现有技术中被充分表征的。对象检测模块222可以分析图像(例如经由照相机接口206捕获的图像)以检测其中对象的边缘和/或关于对象的位置的其它信息。对象分析模块224可以分析对象检测模块222所提供的对象信息以确定对象的3D位置和/或运动。可以在mocap程序214的代码模块中实现的操作的示例在下面描述。存储器204还可以包括mocap程序214所使用的其它信息和/或代码模块。
显示器208、扬声器209、键盘210和鼠标211可以被用于方便实现与计算机系统200的用户交互。这些成分可以是具有一般传统设计的或者按需要被修改以提供任意类型的用户交互。在一些实施例中,利用照相机接口206和mocap程序214的运动捕获的结果可以被解读为用户输入。例如,用户可以执行利用mocap程序214分析的手势,并且该分析的结果可以被解读为对在处理器200上执行的某个其它程序(例如web浏览器、字处理器或其它应用)的指令。因而,作为演示,用户可以利用向上或向下扫动手势来“滚动”当前被显示在显示器208上的网页,利用旋转手势来提高或降低从扬声器209输出的音频的音量等等。
应当理解计算机系统200是图示性的并且可以进行改变和修改。计算机系统可以按各种形式因素来实现,包括服务器系统、台式机系统、膝上型计算机系统、平板计算机、智能电话或个人数字助理等等。特定的实现方式可以包括这里未被描述的其它功能,例如有线和/或无线网络接口、媒体播放和/或记录功能等等。在一些实施例中,一个或多个照相机可以被构建到计算机中,而不是作为单独的成分被提供。此外,图像分析器可以只利用计算机系统成分的子集来实现(例如作为具有合适的I/O接口以接收图像数据和输出分析结果的处理器执行程序代码、ASIC或固定功能数字信号处理器)。
虽然计算机系统200在这里参考特定模块被描述,但是应当理解这些模块是为了描述的方便而限定的而不是为了暗示关于组成部件的特定物理布置。此外,这些模块不需要对应于物理上不同的成分。就物理上不同成分被使用的程度而言,成分之间的连接(例如用于数据通信)根据需要可以是有线的和/或无线的。
处理器202对对象检测模块222的执行可以使处理器202操作照相机接口206来捕获对象的图像并且通过分析图像数据来区分对象像素与背景像素。图3A-3C是根据本发明的各个实施例可以得到的针对像素行的亮度数据的三个不同的图。虽然每个图图示了一个像素行,但是应当理解图像通常包含很多行像素,并且一行可以包含任意数目的像素;例如HD视频图像可以包括每行具有1920个像素的1080行。
图3A图示了其中对象具有单一横截面(例如穿过手掌的横截面)的针对像素行的亮度数据300。与对象相对应的区域302中的像素具有高亮度,而与背景相对应的区域304和306中的像素具有相对低得多的亮度。可以看出,对象的位置是很明显的,并且对象的边缘的位置(在308和310处)容易被识别。例如,具有高于0.5的亮度的任意像素可以被假定为对象像素,而具有低于0.5的亮度的任意像素可以被假定为背景像素。
图3B图示了其中对象具有多个不同的横截面(例如穿过张开的手的手指的横截面)的针对像素行的亮度数据320。与对象相对应的区域322,323和324具有高亮度,而与背景相对应的区域326-329中的像素具有低亮度。同样,简单的亮度阈值截止(例如在0.5处)足以区分对象像素与背景像素,并且对象的边缘可以很容易地被确定。
图3C图示了其中到对象的距离在像素行上变化(例如有两个手指伸向照相机的手的横截面)的针对像素行的亮度数据340。区域342和343对应于被伸出的手指并且具有最高亮度;区域344和345对应于手的其它部分并且亮度稍低;这可能部分由于远离部分由于被伸出的手指所投射的阴影。区域348和349为背景区域并且比包含手的区域342-345要暗得多。亮度的阈值截止(例如在0.5处)同样足以区分对象像素与背景像素。关于对象像素的进一步分析也可以被进行以检测区域342和343的边缘,提供关于对象的形状的更多信息。
应理解图3A-3C中所示的数据是图示性的。在一些实施例中,可能想要调节光源108,110的强度以使得在预期距离(例如图1中的rO)处的对象将被曝光过度-即,即使不是全部的对象像素也是很多个对象像素将被充分饱和到1.0的亮度水平。(对象的实际亮度可能实际上会更高。)虽然这可能也使背景像素更亮一点,但是光强度随距离的1/r2衰减仍然导致很容易在对象和背景像素之间进行区分,只要光强度不被设置为高到背景像素也达到饱和水平即可。如图3A-3C所图示的,使用在对象处被引导的光照来产生对象和背景之间的强烈对比允许使用简单且快速的算法来在背景像素与对象像素之间进行区分,这可能在实时运动捕获系统中特别有用。简化区分背景和对象像素的工作也可以将计算资源空闲出来用于其它运动捕获工作(例如重建对象的位置、形状和/或运动)。
现在参考图4,该图图示了根据本发明实施例的用于识别图像中的对象的位置的过程400。过程400可以例如在图1的系统100中实现。在框402处,光源108,110被开启。在框404处,一个或多个图像利用照相机102,104被捕获。在一些实施例中,来自每个照相机的一个图像被捕获。在其它实施例中,一系列图像从每个照相机中被捕获。来自两个照相机的图像可以在时间上紧密相关(例如同时到几毫秒以内)以使得来自两个照相机的相关图像可以被用于确定对象的3D位置。
在框406处,阈值像素亮度被应用以区分对象像素与背景像素。框406还可以包括基于背景和对象像素之间的过渡点识别出对象的边缘的位置。在一些实施例中,每个像素首先基于其是否超过阈值亮度截止值而被归类为对象或背景。例如,如图3A-3C中所示,在饱和水平0.5处的截止值可以被使用。一旦像素被归类,边缘可以通过找到背景像素与对象像素相邻接的位置而被检测。在一些实施例中,为了避免噪声伪影,在边缘的任一侧上的背景和对象像素的区域可以被要求具有特定的最小尺寸(例如2、4或8个像素)。
在其它实施例中,边缘可以在不首先将像素归类为对象或背景的情况下被检测。例如,Δβ可以被定义为相邻像素之间的亮度差异,并且在阈值以上的|Δβ|(例如按饱和量级来衡量为0.3或0.5)可以指示在相邻像素之间从背景到对象或者从对象到背景的过渡。(Δβ的符号可以指示过渡的方向。)在其中对象的边缘实际上在像素中间的一些情况下,可能存在具有在边界处的中间值的像素。这可以例如通过计算针对像素i的两个亮度值:βL=(βi+βi-1)/2和βR=(βi+βi+1)/2而被检测,其中像素(i-1)在像素i的左边而像素(i+1)在像素i的右边。如果像素i不靠近边缘,则|βL-βR|一般将接近零;如果像素靠近边缘,则|βL-βR|将更接近1,并且关于|βL-βR|的阈值可以被用于检测边缘。
在一些情况下,对象的一部分可能部分地遮住图像中的另一对象;例如,如果是手,手指可能部分地遮住手掌或另一手指。一旦背景像素已被消除,在对象的一部分部分地遮住另一对象的地方出现的遮盖边缘还可以基于亮度的更小但不同的变化而被检测。图3C图示了这样的部分遮盖的示例,并且遮盖边缘的位置是明显的。
被检测到的边缘可以被用于各种用途。例如,如之前所指出的,两个照相机所看到的对象的边缘可以被用于确定3D空间中的对象的近似位置。与照相机的光轴横切的2D平面中的对象的位置可以根据单一图像被确定,并且如果照相机之间的间隔已知,则来自两个不同照相机的时间相关图像中的对象的位置之间的偏差(视差)可以被用于确定到对象的距离。
此外,对象的位置和形状可以基于来自两个不同照相机的时间相关的图像中的对象边缘的位置而被确定,并且对象的运动(包括联结)可以根据对连续的图像对的分析而被确定。可以被用于基于对象的边缘的位置确定对象的位置、形状和运动的技术的示例在2012年3月7日提交的共同未决美国专利申请No.13/414,485中被描述,该美国专利申请的全部公开通过引用被合并于此。看到本公开的本领域技术人员将意识到基于关于对象的边缘的位置的信息确定对象的位置、形状和运动的其它技术也可以被使用。
根据上述’485申请,对象的运动和/或位置利用少量的信息被重构。例如,从特定制高点看到的对象的形状或轮廓的剪影可以被用于限定在各个平面中从所述制高点到对象的切线,这里被称为“切片”。利用少至两个不同的制高点,从制高点到对象的四条(或更多条)切线可以在给定的切片中被得到。根据这四条(或更多条)切线,可以确定切片中的对象的位置并且例如利用一个或多个椭圆形或其它简单的闭合曲线来近似得到对象在切片中的横截面。作为另一示例,在特定切片中的对象的表面上的点的位置可以被直接确定(例如利用飞时测距照相机),并且切片中的对象的横截面的位置和形状可以通过将椭圆或其它简单的闭合曲线适配到所述那些点而被近似得到。针对不同切片所确定的位置和横截面可以被相关以构建对象的3D模型,包括其位置和形状。一系列图像可以利用相同的技术分析以对对象的运动建模。具有多个单独联结构件的复杂对象(例如人手)的运动可以利用这些技术被建模。
更具体而言,xy平面内的椭圆可以用五个参数来表征:中心的x和y坐标(xC,yC)、长半轴、短半轴和旋转角度(例如长半轴相对于短半轴的角度)。仅仅利用四个切线,椭圆是不能被充分表征的。但是,尽管如此也可以用于估计椭圆的高效率过程涉及做出关于所述参数中的一个的初始工作设定(或“猜测”)并且当附加信息在分析期间被收集时重新做出设定。这个附加信息可以包括例如基于照相机和/或对象的属性的物理约束条件。在一些情况下,对象的四条以上的切线可以用于一些或全部切片,例如因为有两个以上的制高点可用。椭圆形横截面仍然可以被确定,并且在一些实例中,由于不需要设定参数值,该过程被稍微简化。在一些实例中,附加的切线可能带来额外的复杂度。在一些情况下,对象的少于四条的切线可以用于一些或全部切片,例如因为对象的边缘在一个照相机的视场的范围以外或者因为边缘未被检测到。具有三个切线的切片可以被分析。例如,利用来自适配到相邻切片(例如具有至少四条切线的切片)的椭圆的两个参数,针对椭圆和三条切线的方程系统被充分的确定使得其可以被解出。作为另一个选择,圆形可以被适配到三条切线;在平面中定义圆形只需要三个参数(中心坐标和半径),所以三条切线足以适配圆形。具有少于三条切线的切片可以被丢掉或者与相邻切片相组合。
为了从几何上确定对象是否对应于感兴趣的对象,一种方法是搜索限定对象的椭圆的连续体积并且丢掉几何上与对象基于椭圆的限定不一致的对象片段-例如太圆柱形或太直或太细或太小或太远的片段-并且丢掉这些片段。如果仍然有足够数目的椭圆来表征对象并且与感兴趣的对象一致,则对象因此而被识别,并且可以从帧到帧地被跟踪。
在一些实施例中,多个切片中的每个切片被单独分析以确定对象在该切片中的椭圆形横截面的尺寸和位置。这提供了初始的3D模型(具体而言是椭圆形横截面的层叠),该模型可以通过相关不同切片上的横截面而被改进。例如,预期对象的表面将具有连续性,并且不连续的椭圆可以相应地被扣除。进一步的改进可以例如基于与运动和变形的连续性相关的预期而将3D模型与其自身在时间上相关而被获得。重新参考图1和图2,在一些实施例中,光源108,110可以工作在脉动模式下而不是持续地开启。这可能是有用的,例如在光源108,110有能力在脉冲操作下而非稳态操作下产生更亮的光的情况下。图5图示了其中光源108,110按规律的时间间隔被脉冲激活的时间表,如502处所示。照相机102,104的快门可以被打开以在与光脉冲一致的时间处捕获图像,如504处所示。因而,感兴趣的对象可以在图像被捕获时的时间期间被明亮地照亮。在一些实施例中,对象的轮廓从对象的一个或多个图像中被提取,所述图像揭示从不同的制高点所看到的关于对象的信息。虽然轮廓可以利用多种不同的技术得到,但是在一些实施例中,轮廓是通过利用照相机来捕获对象的图像并且分析图像以检测对象边缘而被得到的。
在一些实施例中,光源108,110的脉冲激活可以被用于进一步增强感兴趣的对象与背景之间的对比度。具体而言,如果场景包含自身发光或者具有高反射性的对象,则在场景中的相关和不相关(例如背景)对象之间进行区分的能力可能被减弱。这个问题可以通过将照相机曝光时间设置为非常短的时段(例如100微秒或者更短)并且以非常高的功率(即5到20瓦或者在一些情况下达到更高的水平,例如40瓦)脉冲激活照明来解决。在这个时间段中,最常见的环境照明源(例如荧光灯)与这种很亮的短时段照明相比非常暗;就是说,按微秒来说,非脉动光源比曝光时间为毫秒或者更长时看起来更暗。在效果上,该方法提高了感兴趣的对象相对于其它对象(甚至是在相同的常见谱带内发光的那些对象)的对比度。因此,在这样的情况下通过亮度进行区分允许不相关的对象被忽略以用于图像重构和处理的目的。平均功率消耗也被降低;在针对100微秒20瓦的情况下,平均功率消耗在10毫瓦以下。一般来说,光源108,110被操作为在整个照相机曝光时段期间为开启状态,即脉冲宽度等于曝光时间并且与曝光时间协调。
也可以通过将光源108,110开启状态下所得到的图像与光源108,110关闭状态下所得到的图像相对比来协调光源108,110的脉冲激活。图6图示了其中光源108,110按如602处所示的规律的时间间隔被脉冲激活而照相机102,104的快门在604处所示的时间处被打开以捕获图像的时间表。在这种情况下,光源108,110对于每隔一个图像而言是“开启的”。如果感兴趣的对象与背景区域相比非常明显地靠近于光源108,110,则光强度上的差异对于对象像素而言要比对于背景像素而言更大。因此,比较连续图像中的像素可以帮助区分对象和背景像素。
图7是根据本发明实施例的用于利用连续图像识别对象边缘的过程700的流程图。在框702处,光源被关闭,并且在框704处,第一图像(A)被捕获。然后,在框706处,光源被开启,并且在框708处,第二图像(B)被捕获。在框710处,“差异”图像B-A例如通过从图像B中的相应像素的亮度值中减去图像A中的每个像素的亮度值而被计算。由于图像B是在有光的情况下被捕获的,所以预期B-A对于大多数像素来说将是正值。
差异图像被用于通过逐个像素地应用阈值或其它量值来在背景和前景之间进行区分。在框712处,阈值被应用于差异图像(B-A)以识别对象像素,(B-A)在阈值以上为与对象像素相关联,而(B-A)在阈值以下则是与背景像素相关联。然后,对象边缘可以通过识别对象像素与背景像素相邻接的地方而被限定,如上所述。对象边缘可以被用于诸如位置和/或运动检测的目的,如上所述。
在替代实施例中,对象边缘利用三个图像帧而非一对图像帧来识别。例如,在一个实现方式中,第一图像(图像1)在光源关闭的状态下得到;第二图像(图像2)在光源开启的状态下得到;并且第三图像(图像3)在光源再次关闭的状态下得到。然后两个差异图像,
图像4=abs(图像2-图像1)和
图像5=abs(图像2-图像3)
通过将像素亮度值相减而被定义。最终的图像(图像6)基于两个图像(图像4和图像5)被定义。具体而言,图像6中的每个像素的值是图像4和图像5中的两个相应的像素值中的较小值。换言之,图像6=就逐个像素而言的min(图像4,图像5)。图像6代表具有提高的准确性的差异图像并且其大部分像素将为正值。同样,阈值或其它量值可以就逐个像素被使用以区分前景和背景像素。
如这里所描述的基于对比度的对象检测可以被应用在其中感兴趣的对象被预期为与背景对象相比非常明显地靠近(例如距离减半)光源的任何情形中。一个这样的应用涉及将运动检测用作用户输入来与计算机系统交互。例如,用户可以指向屏幕或者做出其它手势,这些手势可以作为输入被计算机系统解释。
根据本发明实施例的包括运动检测器作为用户输入设备的计算机系统800在图8中被示出。计算机系统800包括台式机箱802,该台式机箱可以容纳计算机系统的各种成分,例如处理器、存储器、固定或可移除磁盘驱动、视频驱动器、音频驱动器、网络接口成分等等。显示器804被连接到台式机箱802并且被放置在用户可以看到的地方。键盘806被放置在用户的手容易到达的范围内。运动检测器单元808被放在键盘806附近(例如如图所示的键盘后面或者键盘的一侧),面向其中用户很自然地做出显示器804处所指示的手势的区域(例如在键盘上方和监视器前面的空间中的区域)。照相机810,812(可以与上述照相机102,104类似或相同)被布置为总体上向上指,并且光源814,816(可以与上述光源108,110类似或相同)被布置在照相机810,812的任一侧以照亮运动检测器单元808上面的区域。在典型的实现方式中,照相机810,812和光源814,816基本在同一平面上。这个配置防止可能例如与边缘检测相干扰的阴影的出现(光源如果被放置在照相机之间而非侧翼则可能出现这种情况)。未被示出的滤色器可以被放置在运动检测器单元808的顶部上面(或者刚好在照相机810,812的光圈上)以滤出在光源814,816的峰值频率附近的频带以外的所有光。
在所图示的配置中,当用户移动照相机810,812的视场中的手或其它对象(例如铅笔)时,背景将可能由天花板和/或各种安装在天花板上的装置构成。人的手可以在运动检测器808上方10-20cm处,而天花板可以是那个距离的五到十倍。因此,来自光源814,816的光照在人的手上将比在天花板上的强度大得多,并且这里所描述的技术可以被用于可靠地区分照相机810,812所捕获的图像中的对象像素与背景像素。如果红外光被使用,则用户将不会被光分散注意或打扰。
计算机系统800可以利用图1中所示的体系结构。例如,运动检测器单元808的照相机810,812可以将图像数据提供给台式机箱802,并且图像分析和后续的解释可以利用台式机箱802内所容纳的处理器及其它成分来执行。或者,运动检测器单元808可以包括处理器或其它成分以执行图像分析和解释的一些或全部步骤。例如,运动检测器单元808可以包括实现上述过程中的一个或多个过程以在对象像素与背景像素之间进行区分的(可编程的或固定功能的)处理器。在这种情况下,运动检测器单元808可以将被捕获图像的缩减表示(例如所有背景像素都被清零的表示)发送给台式机箱802以进一步分析和解释。不需要在运动检测器单元808内部的处理器与台式机箱802内部的处理器之间特别区分计算任务。
并不总是需要通过绝对亮度水平在对象像素与背景像素之间进行区分;例如,在具备关于对象形状的了解的情况下,亮度衰减的模式可以被利用以在即使不明确检测到对象边缘的情况下检测图像中的对象。在圆形对象(例如手和手指)上,例如,1/r2的关系产生在对象的中心附近的高斯或者近似高斯亮度分布;对由LED照亮并且相对于照相机垂直放置的圆柱成像得到具有对应于圆柱轴的明亮中心线且亮度向每一侧衰减(在圆柱周围)的图像。手指近似为圆柱形的,并且通过识别这些高斯峰值,可以即使在背景很近并且由于背景的相对亮度(由于接近或者背景可能主动发出红外光这一事实)而使得边缘不可看到的情况下也可以定位手指。术语“高斯”在这里被宽泛地用于表示具有负的二次导数的曲线。通常这样的曲线将是钟形状的并且对称的,但是也不一定;例如,在具有更高的对象镜面的情况下或者如果对象处于极端的角度,则该曲线可能沿特定方向歪斜。因此,如这里所使用的,术语“高斯”并不局限于明显符合高斯函数的曲线。
图9图示了根据本发明实施例的包括运动检测器的平板计算机900。平板计算机900具有外壳,该外壳的正表面包括由边框904包围的显示屏902。一个或多个控制按钮906可以被包括在边框904内。在外壳内,例如显示屏902后面,平板计算机900可以具有各种传统的计算机成分(处理器、存储器、网络接口等)。运动检测器910可以利用被安装在边框904内并且面向正表面以捕获位于平板计算机900前面的用户的运动的照相机912,914(例如与图1的照相机102,104相似或相同)和光源916,918(例如与图1的光源108,110相似或相同)来实现。
当用户移动照相机912,914的视场中的手或其它对象时,运动按上述方式被检测。在这种情况下,背景可能是在与平板计算机900大概25-30cm的距离处的用户自己的身体。用户可能将手或其它对象保持在与显示屏902较短距离处,例如5-10cm。只要用户的手比用户的身体非常明显地靠近(例如一半的距离)光源916,918,这里所描述的基于光照的对比度增强技术就可以被用于区分对象像素与背景像素。图像分析以及之后解释为输入手势可以在平板计算机内被进行(例如利用主处理器来执行操作系统或其它软件以分析从照相机912,914得到的数据)。用户因而可以利用3D空间中的手势与平板计算机900交互。
如图10中所示的护目镜系统1000也可以包括根据本发明实施例的运动检测器。护目镜系统1000可以例如结合虚拟现实和/或加强现实的环境而被使用。护目镜系统1000包括与传统眼镜类似的用户可佩戴的护目镜1002。护目镜1002包括目镜1004,1006,所述目镜可以包括小显示屏以向用户的左眼和右眼提供图像,例如虚拟现实环境的图像。这些图像可以由与护目镜1002通信的基础单元1008(例如计算机系统)提供或者经由有线或无线信道被提供。照相机1010,1012(例如与图1的照相机102,104类似或相同)可以被安装在护目镜1002的框架部分中以使得它们不会模糊用户的视线。光源1014,1016可以被安装在护目镜1002的框架部分中照相机1010,1012的任一侧。照相机1010,1012所收集的图像可以被传送至基础单元1008以进行分析并且解释为指示用户与虚拟或加强环境交互的手势。(在一些实施例中,通过目镜1004,1006呈现的虚拟或加强环境可以包括对用户的手的表示,并且该表示可以基于照相机1010,1012所收集的图像。)
当用户利用照相机1008,1010的视场中的手或其它对象做出手势时,运动按上述方式被检测。在这种情况下,背景可能是用户所在房间的墙壁,并且用户将最可能坐在或站在与墙壁的某个距离处。只要用户的手比用户的身体非常多地靠近(例如一半的距离)光源1012,1014,本文所描述的基于光照的对比度增强技术就可以便于实现区分对象像素与背景像素。图像分析以及之后解释为输入手势可以在基础单元1008内被进行。
应理解图8-10中所示的运动检测器实现方式是图示性的并且改变和修改都是可能的。例如,运动检测器或者其成分可以与诸如键盘或跟踪板之类的其它用户输入设备一起被组装在单一外壳内。作为另一示例,运动检测器可以被合并到笔记本计算机中,例如利用被构建到与笔记本键盘相同表面中(例如在键盘的一侧或者其前面或者其后面)的朝上的照相机和光源或者利用被构建在围绕笔记本计算机的显示屏的边框内的朝前的照相机和光源。作为另一示例,可佩戴的运动检测器可以被实现为例如不包括活动显示器或光学成分的头带或头戴件。
如图11中所示,运动信息可以被用作用户输入以控制根据本发明实施例的计算机系统或其它系统。过程1100可以例如在诸如图8-10中所示的那些计算机系统之类的计算机系统中被实现。在框1102处,图像利用运动检测器的光源和照相机而被捕获。如上所述,捕获图像可以包括利用光源来照亮照相机的视场以使得更靠近光源(和照相机)的对象比距离更远的对象更亮地被照亮。
在框1104处,被捕获的图像被分析以基于亮度的变化检测对象的边缘。例如,如上所述,这个分析可以包括将每个像素的亮度与阈值相比较,检测在相邻像素上从低水平到高水平的亮度的过渡,并且/或者对比在有和没有光源的光照的情况下所捕获的连续图像。在框1106处,基于边缘的算法被用于确定对象的位置和/或运动。这个算法可以例如是在以上所引用的’485申请中所描述的基于切线的算法中的任一种;其它算法也可以被使用。
在框1108处,手势基于对象的位置和/或运动被识别。例如,手势库可以基于用户的手指的位置和/或运动而被定义。“敲击”可以基于向显示屏伸出的手指的快速运动而被定义。“跟踪”可以被定义为伸出的手指在与显示屏大致平行的平面中的运动。向内捏可以被定义为两个伸出的手指更靠近地移向一起并且向外捏可以被定义为两个伸出的手指移动分开。扫动手势可以基于整个手沿特定方向(例如向上、向下、向左、向右)的移动而被定义并且不同的扫动手势可以基于伸出的手指的数目(例如一个、两个、全部)而被进一步定义。其它手势也可以被定义。通过将所检测到的运动与库相比较,与所检测的位置和/或运动相关联的特定手势可以被确定。
在框1110处,手势被解释为计算机系统可以处理的用户输入。特定的处理通常取决于当前在计算机系统上执行的应用程序以及那些程序怎样被配置以对特定输入做出响应的。例如,浏览器程序中的敲击可以被解释为选择手指正在指向的链接。字处理程序中的敲击可以被解释为将光标放在手指正在指向的位置处或者选择屏幕上可看到的菜单项或其它图形控制元件。特定的手势和解释可以按需要在操作系统和/或应用级被确定,并且不需要对任何手势做特定的解释。
整个身体的运动可以被捕获和用于类似的目的。在这样的实施例中,分析和重构有利地基本实时(在与人反应时间可相比的时间内)地发生,使得用户体验一种与设备的自然交互。在其它应用中,运动捕获可以被用于并非实时进行的数字呈现,例如用于计算机动画电影等;在这样的情况下,分析可以花费所需要的时间长度。
这里所描述的实施例通过利用光强度随距离的降低提供了在被捕获图像中的对象与背景之间的高效率区分。通过利用距离对象比背景要近得多(例如相差两倍或更多倍)的一个或多个光源明亮地照亮对象,对象与背景之间的对比度可以被提高。在一些实例中,滤色器可以被用于去除来自所想要的源以外的源的光。利用红外光可以减少可能出现在图像被捕获的环境中的来自可见光源的“噪声”或亮点并且还可以减少对用户(假定该用户不能看到红外光)的干扰。
上述实施例提供了两个光源,一个被放置在用于捕获感兴趣的对象的图像的照相机的任一侧。这个布置可能在位置和运动分析依赖对从每个照相机看到的对象的边缘的了解的情况下特别有用,因为光源将照亮那些边缘。但是其它布置也可以被使用。例如,图12图示了一种具有单个照相机1202和被置于照相机1202的任一侧的两个光源1204,1206的系统1200。这个布置可以被用于捕获对象1208的图像和对象1208相对于平面背景区域1210所投射的阴影。在该实施例中,对象像素和背景像素可以容易地被区分。此外,在假定背景1210距离对象1208不太远的情况下,在有阴影的背景区域中的像素与没有阴影的背景区域中的像素之间将存在足够的对比度以允许在这两者之间进行区分。利用对象及其阴影的图像的位置和运动检测算法在以上所引用的’485申请中被描述并且系统1200可以向这些算法提供输入信息,包括对象及其阴影的边缘的位置。
单个照相机的实现方式1200可受益于包括被置于照相机1202的镜头前面的全息衍射光栅1215。该光栅1215产生作为对象1208的重影和/或切线出现的条纹图案。具体而言当可分开时(即当重叠不太过分时),这些图案提供便于实现对象与背景区分的高对比度。参见例如DIFFRACTION GRATING HANDBOOK(Newport Corporation,Jan.2005;在http://gratings.newport.com/library/handbook/handbook.asp中可得到),该文档的全部公开通过引用被合并于此。
图13图示了具有两个照相机1302,1304和被置于照相机之间的一个光源1306的另一系统1300。系统1300可以捕获相对于背景1310的对象1308的图像。系统1300一般来说与图1的系统100相比用于边缘照明比较不可靠;然而不是所有用于确定位置和运动的算法都依赖于对对象边缘的准确了解。因此,系统1300可以在要求较低的准确性的情况下例如结合基于边缘的算法来使用。系统1300也可以结合不基于边缘的算法来使用。
虽然已针对特定的实施例描述了本发明,但是本领域技术人员将意识到各种修改都是可能的。照相机和光源的数目和布置可以被改变。照相机的性能,包括帧速率、空间分辨率和强度分辨率也可以按需要改变。光源可以工作在连续或脉冲模式下。这里所描述的系统提供了具有对象与背景之间的增强对比度的图像以便于实现两者之间的区分,并且这个信息可以被用于各种用途,其中位置和/或运动检测只是很多可能性中的一个。
用于区分对象与背景的阈值截止和其它具体标准可以针对特定照相机和特定环境被适配。如上所示,对比度被预期为随着比值rB/rO的增加而增加。在一些实施例中,系统可以在特定的环境下被校准,例如通过调节光源亮度、阈值标准等等。使用可以用快速算法实现的简单标准可以节省给定系统中的处理能力以用于其它用途。
任意类型的对象都可以是利用这些技术进行运动捕获的主体,并且实现方式的各个方面可以针对特定对象而被优化。例如,照相机和/或光源的类型和位置可以基于其运动要被捕获的对象的尺寸和/或其中运动要被捕获的空间而被优化。根据本发明实施例的分析技术可以被实现为用任何合适的计算机语言编写并且在可编程处理器上执行的算法。或者,这些算法中的一些或全部可以在固定功能的逻辑电路中被实现,并且这些电路可以利用传统的或者其它工具来设计和制造。
包括本发明的各种特征的计算机程序可以被编码在各种计算机可读存储介质上;合适的介质包括磁盘或磁带、诸如紧致磁盘(CD)或DVD(数字通用盘)之类的光存储介质、闪存以及能够以计算机可读的形式保存数据的任何其它非瞬态介质。被编码有程序代码的计算机可读存储介质可以与兼容设备一起被封装或者与其它设备分开提供。此外,程序代码可以被编码并且经由符合各种协议的有线光网络和/或无线网络(包括互联网)被传送,从而允许例如经由互联网下载进行分配。
因而,虽然已针对特定实施例描述了本发明,但是应理解本发明意在覆盖所附权利要求的范围内的所有修改和等同物。