将闪光映射到光源的制作方法

文档序号:10540910阅读:188来源:国知局
将闪光映射到光源的制作方法
【专利摘要】本文公开的技术提供了用于将反射离开对象的闪光映射到负责该闪光的光源的各实施例。本文公开的各实施例能够通过用相机捕捉仅仅若干图像来正确地将闪光映射到光源。在用光源的不同图案照明对象的同时,捕捉每一图像。还可确定无闪光图像。无闪光图像是其中闪光已经通过图像处理技术被移除的图像。
【专利说明】将闪光映射到光源
[0001 ] WS
[0002] 闪光是光源从对象的反射。例如,当来自光源的光反射离开某人的眼睛时,闪光可 以在相机所捕捉的图像中被检测到。闪光可以被分析以执行诸如确定对象的3D几何形状之 类的功能。如果对象是人的眼睛,则确定描述人正注视的方向的3D向量是可能的。存在分析 闪光的许多其它应用,诸如对象识别、高速运动跟踪、以及生产线控制。
[0003] 挺塗
[0004] 本发明的技术提供了用于将闪光映射到光源的各种实施例。将闪光正确映射到负 责该闪光的光源在能够执行诸如确定对象的3D几何形状之类的功能方面是有用的。还可确 定无闪光图像。无闪光图像是其中闪光已经通过图像处理技术被移除的图像。具有无闪光 图像在帮助标识对象的各元素(诸如人眼的瞳孔)方面可以是有用的。
[0005] -个实施例包括一种将闪光映射到光源的方法,该方法包括以下操作。用光源的 图案照明对象。该图案包括其中光源的第一光源打开的第一图案以及其中第一光源关闭的 第二图案。在用对应图案照明对象的同时,对象的图像在相机处被捕捉。所捕捉的多个图像 中的闪光被分析。基于该分析,闪光被映射到造成该闪光的光源。
[0006] -个实施例是一种系统,该系统包括多个光源、相机以及与该多个光源和相机处 于通信的逻辑。该逻辑被配置成控制光源来用多个光源的图案来照明对象。该图案包括其 中光源的第一光源打开的第一图案以及其中第一光源关闭的第二图案。光源中的每一个光 源针对这些图案中的至少一个图案是关闭的并且针对这些图案中的至少一个图案是打开 的。该逻辑被配置成在用对应的不同图案照明对象的同时在相机处捕捉对象的图像。该逻 辑被配置成分析作为用图案照明对象的结果所捕捉到的图像中的闪光。该逻辑被配置成基 于该分析将闪光映射到造成该闪光的光源。
[0007] -个实施例是一种包括以下操作的方法。用多个光源的图案照明眼睛。该图案包 括其中光源的第一光源打开的第一图案以及其中第一光源关闭的第二图案。光源中的每一 个光源针对这些图案中的至少一个图案是关闭的并且针对这些图案中的至少一个图案是 打开的。在用对应图案照明眼睛的同时,眼睛的图像在相机处被捕捉。所捕捉的多个图像中 的闪光被分析。基于该分析,闪光被映射到造成相应闪光的光源。基于该闪光来确定眼睛注 视方向。
[0008] 提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本 概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求 保护的主题的范围。
[0009] 附图简述
[0010] 图1示出各实施例可在其中实施的示例环境。
[0011] 图2是将闪光映射到光源的过程的一个实施例的流程图。
[0012] 图3A是描绘混合现实显示系统的一个实施例的示例组件的框图。
[0013] 图3B示出定位成在实现在一副眼镜中的混合现实显示设备上面对每一相应眼睛 的、用于每个眼睛的注视检测系统中的相应注视检测元件的集合的位置的示例性安排。
[0014] 图3C示出定位成在实现在一副眼镜中的混合现实显示设备上面对每一相应眼睛 的、用于每个眼睛的注视检测系统中的相应注视检测元件的集合的位置的另一示例性布 置。
[0015] 图3D示出由该副眼镜定位成面对每一相应眼睛的、用于每个眼睛的注视检测系统 中的相应注视检测元件的集合的位置的又一示例性安排。
[0016] 图4A是可以用于本公开所述的各实施例的透视、近眼、混合现实显示单元的硬件 和软件组件的一个实施例的框图。
[0017] 图4B是与透视、近眼显示单元相关联的处理单元的硬件和软件组件的一个实施例 的框图。
[0018] 图5是将闪光映射到光源并且生成无闪光图像的过程的一个实施例的流程图,该 过程包括在每次关闭一个光源。
[0019] 图6A是其中在捕捉对应于N个不同图案的N个图像的同时能够将闪光映射到多达 2N-2个光源的过程的一个实施例的流程图。
[0020] 图6B和图6C示出用于确定在图6A的过程期间执行的合适操作的示例。
[0021 ]图7是细化无闪光图像的过程的流程图。
[0022]图8是除了将闪光映射到光源之外还能够执行的进一步处理的过程的流程图。
[0023]图9是示出在人的眼睛聚焦的注视点处相交的注视向量的示例的俯视图。
[0024]图10是可用于实现各实施例的计算系统的一个实施例的框图。
[0025] 详细描述
[0026] 本文公开的技术提供了用于将反射离开对象的闪光映射到造成相应闪光的光源 的各实施例。将闪光正确映射到相应的光源在能够执行诸如确定对象的3D几何形状之类的 功能方面是有用的。根据对象的2D图像来确定3D几何形状是可能的。然而,正确地将闪光映 射到它们相应的光源可能是具有挑战性的。一个挑战在于对象可能正在移动。作为一个示 例,人的眼睛可能正在相当快速地移动。因此,具有能够非常快速地执行以减少与运动伪像 相关联的问题的技术可能是有益的。
[0027] 本文公开的各实施例能够在用相机捕捉仅仅若干图像的同时正确地将闪光映射 到光源。在一个实施例中,在用光源的不同图案照明对象的同时,捕捉每一图像。以下讨论 进一步的细节。
[0028]还可确定无闪光图像。无闪光图像是其中闪光已经通过图像处理技术被移除的图 像。具有无闪光图像在帮助标识对象的各元素方面可以是有用的。例如,人的眼睛的瞳孔能 够更容易地通过无闪光图像来定位。根据各个实施例,无闪光图像可以根据用于将闪光映 射到光源的相同的所捕捉的图像来确定,可能具有一个附加图像。
[0029] 图1示出各实施例可在其中实施的示例环境。一般来说,光源107照明对象101,同 时相机105捕捉包含闪光的图像。闪光是由于光源107导致的离开对象101的反射。在一个实 施例中,闪光被映射到造成该闪光的光源107。作为一个非限制性示例,五个所描绘的五个 光源107中的每一个光源可引起单独的闪光。因而,系统可唯一地将每一个闪光映射到其相 应的光源107。
[0030] 在一个实施例中,光源107是发光二极管(LED)。在一个实施例中,光源107发射红 外(IR)光。光源107可以按照使得光源107的大部分(或全部)会将闪光反射到相机105的方 式来放置。在一个实施例中,光源107基本上相对于对象101在位置上是固定的。注意到,对 象101能够稍稍移动,诸如在人眼移动中。在一些实施例中,光源107、对象101和相机105被 固定(或至少基本上固定)在绝对位置中。在一些实施例中,光源107对于对象101和/或相机 105的相对位置被固定(或至少基本上固定)。然而,绝对位置可以大幅改变。例如,人可能正 在行走,同时佩戴着包含光源107以及相机105的装置。
[0031] 控制电路系统103被配置成控制光源107。在一个实施例中,光源107被打开或关闭 以创建某种照明图案。针对每一种图案,单独的图像被相机105捕捉。控制电路系统103能够 将相机105的操作与照明图案同步以便捕捉每一图案的图像。控制电路系统103能够控制每 一图像的曝光。如果不同图案得到不同的照明等级,则这可能是有用的。例如,一个图案可 使所有光源107打开,而另一图案可使一个或多个光源107关闭。
[0032] 控制电路系统103(或其它逻辑)分析图像以将闪光映射到光源107。控制电路系统 103可以是硬件和/或软件的任何组合。例如,由控制电路系统103实现的逻辑的全部或一部 分可以通过执行处理器上的处理器可执行指令来实现。
[0033] 如所提及的,对象101可以是相对于相机105静止的,或者相对于相机105稍稍移 动。相机105可以是高速相机,从而使得所捕捉的图像之间的运动被保持为较小。在一个实 施例中,一个图像是在所有光源107打开("全开图像")的情况下被捕捉的。控制电路系统 103能够使用这一全开图像在空间上同步不同图像中的各个特征(诸如闪光)。换言之,闪光 可能由于对象101与相机105和/或造成该闪光的光源107之间的轻微运动而在不同图像中 出现在略微不同的像素位置中。控制电路系统103用于作出纠正从而使得闪光对于所有图 像而言在统一的像素位置中。
[0034] 在一个实施例中,对象101是眼睛(例如,人眼)。在此类实施例中,闪光可被用于生 成眼睛几何形状的重构,诸如角膜球体。眼睛注视可以基于眼睛几何形状来确定。这也可被 称为确定3D眼睛向量。然而,注意到,针对闪光的许多其它应用是可能的,诸如对象识别、高 速运动跟踪、以及生产线控制。因而,对象101不必是眼睛。
[0035] 图2是将闪光映射到光源107的过程201的一个实施例的流程图。将对图1的系统作 出参考;然而,将理解,过程201不限于图1的系统。
[0036] 在步骤203中,用光源107照明对象101。例如,控制电路系统103控制光源107以用 某些图案照明对象101。图案由哪些光源打开以及哪些光源(如果存在)关闭来定义。例如, 一个图案使所有光源107打开。另一图案恰恰使光源107之一关闭而所有其余光源107打开。 可能存在针对每一个光源107的"一个打开"图案。还有另一图案可使得两个或更多个光源 107打开而剩余光源关闭。
[0037] 在一些实施例中,各图案包括其中第一光源107打开的第一图案以及其中第一光 源107关闭的第二图案。作为一个示例,在第一图案中,所有光源107都打开。然而,在第二图 案中,仅第一光源107关闭一一其余光源107打开。图5描述了这一技术的一个实施例。然而, 注意到这仅仅是一个示例。另一示例是第一图案使第一光源107打开并且一个或多个其它 光源107关闭。接着,在第二图案中,第一光源107以及零个或多个其它光源107关闭。图6A描 述了这一技术的一个实施例。
[0038] 在一些实施例中,每一个光源107针对这些图案中的至少一个图案是关闭的并且 针对这些图案中的至少一个图案是打开的。这可包括对于给定图案恰恰一个光源107关闭, 针对每一光源存在一个这样的图案。图5描述了这一技术的一个实施例。这还可包括对于给 定图案两个或更多个光源关闭。图6A描述了这一技术的一个实施例。
[0039]在步骤205中,控制电路系统103使得相机105在用对应图案照明对象101的同时捕 捉图像。即,可以针对每一图案捕捉一个图像。在一个实施例中,相机105是高速相机105从 而使得可以在非常短的时间段上捕捉图像。可能期望在对象101没有移动很多的时间段中 捕捉图像。某些移动量可以被处置。
[0040] 在步骤207中,图像中的闪光被分析。这可以由控制电路系统103或其它逻辑来执 行。该分析可涉及对某些图像执行一组操作,该组操作被设计成检测光源107中的特定光源 107的闪光。即,知晓的是,作为这些操作的结果被检测到的无论一个或多个闪光映射到该 特定光源107。被选择以供处理的具体图像可取决于哪个光源107正被处理。同样,对图像执 行的具体操作可取决于什么图案被用于照明对象101以及哪个光源107正被处理。
[0041] 在一个实施例中,步骤207包括比较一个图像与另一图像之间的差别。作为一个示 例,用恰恰一个光源107关闭所捕捉的图像可以与当所有光源107打开所捕捉的图像作比 较,以寻找用恰恰一个光源107关闭所捕捉的图像中丢失的闪光。在一个实施例中,步骤207 包括计算全开图像与仅一个光源107关闭的图像之间的逐像素的差别图像。下文结合图5的 讨论来讨论进一步的细节。
[0042]在一个实施例中,步骤207包括对一个或多个图像执行逐像素最小值以产生"最小 值图像"。这可以用于其中第一光源107打开的一组图像。在一个实施例中,步骤207包括对 一个或多个图像执行逐像素最大值以产生"最大值图像"。这可以用于其中第一光源107关 闭的一组图像。在一个实施例中,步骤207包括计算逐像素差别图像,逐像素差别图像是从 最小值图像中减去最大值图像的逐像素无符号饱和减除操作。下文结合图6A的讨论来讨论 进一步的细节。
[0043]在步骤209中,基于步骤207的分析,闪光被映射到光源107。在一些实施例中,步骤 207的分析产生包含映射到当前正被分析的光源107的任何闪光的图像。尽管步骤209的措 辞为将闪光映射到光源,但将理解,闪光可以通过步骤207中的合适分析被映射到所有光源 107〇
[0044]在讨论进一步细节之前,现在将讨论一示例设备和应用。一示例应用是注视检测。 注视有时被称为从用户眼睛到用户正在看的(真实或虚拟)对象的视线。各实施例不限于这 一示例设备或这一示例应用。
[0045]图3A是描绘带有注视确定的混合现实显示系统的一个实施例的示例组件的框图。 系统10包括作为通过线6与处理单元4进行通信的近眼、头戴式显示设备2的透视显示设备。 在其他实施例中,头戴式显示设备2通过无线通信来与处理单元4进行通信。处理单元4可以 采取各种实施例。在一些实施例中,处理单元4是可以佩戴在用户的身体(例如,在所示示例 中的腕)上或置于口袋中的分开的单元,并且包括用于操作近眼显示设备2的计算能力中的 大部分能力。处理单元4可以与一个或多个计算系统(图3A中未描绘)无线地(例如,WiFi、蓝 牙、红外、或其他无线通信手段)通信。在其他实施例中,处理单元4的功能可被集成在显示 设备2的软件和硬件组件中。
[0046]头戴式显示设备2(在一个实施例中它是带镜架115的眼镜的形状)被佩戴在用户 的头上,使得用户可以透视显示器(在该示例中该显示器被实现为用于每一只眼睛的显示 光学系统14),并且从而具有对该用户前方的空间的实际直接视图。框架115提供用于将该 系统的各元件保持在原位的支承体以及用于电连接的管道。在该实施例中,镜架115提供了 便利的眼镜架作为下面进一步讨论的系统的各元件的支撑体。在其他实施例中,可以使用 其他支承结构。这样的结构的示例是帽舌或护目镜。镜架包括用于搁置在用户的每只耳朵 上的镜腿或侧臂。镜腿102表示右侧镜腿的一实施例。镜架的鼻梁104包括用于记录声音并 向处理单元4传送音频数据的话筒110。在一个实施例中,处理单元4单元是移动设备的一部 分,移动设备诸如智能蜂窝电话。移动设备5的一些其他示例是膝上型计算机或笔记本计算 机以及上网本计算机。处理单元4也可以是台式机或其它计算系统。
[0047]图3B示出位于在嵌入一副眼镜中的近眼、混合现实显示系统上面对每个相应眼睛 的每个眼睛的注视检测系统中的相应注视检测元件集合的位置的示例性安排。表现为每个 眼睛的镜片的是每个眼睛的显示光学系统14,例如14r和141。显示光学系统包括透视透镜, 如普通眼镜一样,但还包含用于将虚拟内容与透过透镜看到的实际且直接的真实世界视图 无缝地融合的光学元件(例如,反射镜、滤光器)。显示光学系统14具有一般处于透视透镜中 心的光轴,其中光一般被校准来提供无失真视图。例如,在眼睛护理专业人员使一副普通眼 镜适合于用户的脸部时,目标是该眼镜在每一瞳孔与相应镜片的中心或光轴相对准的位置 处落在用户的鼻子上,从而通常使得校准光到达用户的眼睛以得到清晰或无失真的视图。 [0048]在图3B的示例中,至少一个传感器的检测区域139r、1391与其相应显示光学系统 14r、141的光轴相对准,使得检测区域139r、1391的中心捕捉沿着光轴的光。如果显示光学 系统14与用户的瞳孔对准,则相应传感器134的每一检测区域139与用户的瞳孔相对准。检 测区域139的反射光经由一个或多个光学元件传送到相机的实际图像传感器134,在该示例 中传感器134由处于镜架115内部的虚线示出。
[0049] 在一个示例中,通常也被称为RGB相机的可见光相机可以是所述传感器,并且光学 元件或光引导元件的示例是部分透射且部分反射的可见光反射镜。可见光相机提供用户的 眼睛的瞳孔的图像数据,而IR光电探测器152捕捉闪光,闪光是频谱的IR部分中的反射。如 果使用可见光相机,则虚拟图像的反射可以出现在该相机所捕捉的眼睛数据中。图像过滤 技术可被用于按需移除虚拟图像反射。IR相机对眼睛上的虚拟图像反射是不敏感的。IR光 电检测器152可被用于捕捉来自对象101的闪光的相机105的一个实现。然而,作为IR光电检 测器152的补充或替代,其它传感器可被用于捕捉闪光。
[0050] 在其他示例中,至少一个传感器134是IR辐射可被定向到的IR照相机或位置敏感 检测器(PSD)。例如,热反射表面可传递可见光,但反射IR辐射。从眼睛反射的IR辐射可以来 自照明器153、其他IR照明器(未示出)的入射辐射或者来自从眼睛反射的环境IR辐射。照明 器153是被用于照明对象101的光源107的一个实施例。
[00511 在一些示例中,传感器134可以是RGB和IR相机的组合,并且光学引导元件可包括 可见光反射或转向元件和IR辐射反射或转向元件。在一些示例中,相机可以是小型的,例如 2毫米(mm)乘2mm。这样的相机传感器的示例是0mnivision0V7727。在其他示例中,相机可以 足够小(例如Omnivision 0V7727),例如使得图像传感器或相机134能以显示光学系统14的 光轴或其他位置为中心。例如,相机134可被嵌入在系统14的镜片中。另外,可以应用图像过 滤技术来将相机混合到用户视野中以减轻对用户的任何干扰。
[0052] 在图3B的示例中,有四组照明器153,照明器153与光电检测器152配对并由屏障 154分开以避免照明器153所生成的入射光与在光电检测器152处接收到的反射光之间的干 扰。为了在附图中避免不必要的混乱,附图标记就被示出了代表性的一对。每一照明器可以 是生成大约预定波长的窄光束的红外(IR)照明器。光电检测器中的每一个可被选择来捕捉 大约该预定波长的光。红外还可以包括近红外。因为照明器或光电检测器可能存在波长漂 移或者关于波长的微小范围是可接受的,所以照明器和光电检测器可以具有与要生成或检 测的波长有关的容限范围。在传感器是IR相机或IR位置敏感检测器(PSD)的实施例中,光电 检测器可以是附加数据捕捉设备并且也可被用来监视照明器的操作,例如波长漂移、波束 宽度改变等。光电检测器还可提供闪光数据,其中可见光相机作为传感器134。
[0053]图3C示出定位成在配备在一副眼镜中的混合现实显示设备上面对每一相应眼睛 的、用于每个眼睛的注视检测系统中的相应注视检测元件的集合的位置的示例性布置。在 该实施例中,两组照明器153和光电检测器152对位于显示光学系统14周围的每一镜架部分 115的顶部附近,并且另两组照明器和光电检测器对位于每一镜架部分115的底部附近,以 示出照明器之间的几何关系并因此示出它们生成的闪光之间的几何关系的另一示例。闪光 的这一安排可以提供与垂直方向上的瞳孔位置有关的更多信息。
[0054]图3D示出由该副眼镜定位成面对每一相应眼睛的、用于每个眼睛的注视检测系统 中的相应注视检测元件的集合的位置的又一示例安排。在该示例中,传感器134r、1341与其 相应显示光学系统14r、141的光轴成一直线或与其对准,但在镜架115上位于系统14下方。 另外,在一些实施例中,相机134可以是深度相机或包括深度传感器。在该示例中,存在照明 器153和光检测器152的两个集合。
[0055]图4A是可以用于本公开所述的各实施例的透视、近眼、混合现实显示单元的硬件 和软件组件的一个实施例的框图。图4B是描述处理单元4的各组件的框图。在这一实施例 中,近眼显示设备2接收来自处理单元4的关于虚拟图像的指令并将传感器信息提供回处理 单元4。处理单元4(其组件在图4B中描绘)将接收显示设备2的传感器信息。基于这一信息, 处理单元4将确定在何处以及在何时向用户提供虚拟图像并相应地将指令发送给显示设备 2的控制电路136。
[0056] 注意,图4A的各组件中的一些(例如,面向物理环境的相机113、眼睛相机134、可变 虚拟焦距调整器135、光电检测器接口 139、微显示器120、照明设备153(即照明器)、耳机 130、温度传感器138)以阴影示出,以指示这些设备中的每一个至少有两个一一头戴式显示 设备2的左侧至少一个以及右侧至少一个。图4A示出与电源管理电路202通信的控制电路 200。控制电路200包括处理器210、与存储器214(例如D-RAM)进行通信的存储器控制器212、 相机接口 216、相机缓冲器218、显示驱动器220、显示格式化器222、定时生成器226、显示输 出接口 228、以及显示输入接口 230。在一个实施例中,控制电路220的所有组件都通过一个 或多个总线的专用线路彼此进行通信。在另一实施例中,控制电路200的每个组件都与处理 器210通信。
[0057]相机接口216提供到两个面向物理环境的相机113和每一眼睛相机134的接口,并 且将从相机113、134接收到的相应图像存储在相机缓冲区218中。显示驱动器220将驱动微 显示器120。显示格式化器222可以向执行该增现实系统的处理的一个或多个计算机系统 (例如4、12、210)的一个或多个处理器提供与被显示在微显示器120上的虚拟图像有关的信 息。定时生成器226被用于为该系统提供定时数据。显示输出228是用于将来自面向物理环 境的相机113和眼睛相机134的图像提供给处理单元4的缓冲区。显示输入230是用于接收诸 如要在微型显示器120上显示的虚拟图像之类的图像的缓冲。显示输出228和显示输入230 与作为到处理单元4的接口的带接口 232进行通信。
[0058]电源管理电路202包括电压调节器234、眼睛跟踪照明驱动器236、可变调整器驱动 器237、光电检测器接口 239、音频DAC以及放大器238、话筒预放大器和音频ADC 240、温度传 感器接口 242、以及时钟生成器244。电压调节器234通过带接口 232从处理单元4接收电能, 并将该电能提供给头戴式显示设备2的其他组件。照明驱动器236例如经由驱动电流或电压 来控制照明设备153以大约预定波长或在某一波长范围内操作。音频DAC和放大器238接收 来自耳机130的音频信息。话筒前置放大器和音频ADC 240提供用于话筒110的接口。温度传 感器接口 242是用于温度传感器138的接口。电源管理单元202还向三轴磁力计132A、三轴陀 螺仪132B以及三轴加速度计132C提供电能并从其接收回数据。电源管理单元202还向GPS收 发机144提供电能并从中接收数据和向其发送数据。
[0059] 可变调整器驱动器237向调整器135提供例如驱动电流或驱动电压等控制信号以 移动微显示器部件173的一个或多个元件来达到通过在控制电路13或处理单元4、5或中枢 计算机12或这两者的处理器210中执行的软件计算得到的聚焦区域的位移。在扫过一定范 围的位移并且因此扫过一定范围的聚焦区域的实施例中,可变调整器驱动器237从定时生 成器226、或者可替代地从时钟生成器244接收定时信号,以便以所编程的速率或频率来操 作。
[0060] 光电检测器接口 239执行来自每一光电检测器的电压或电流读数所需的任何模数 转换,经由存储器控制器212以处理器可读的格式来将该读数存储在存储器中,并且监视光 电检测器152的操作参数,如温度和波长准确度。
[0061]图4B是与透视、近眼显示单元相关联的处理单元4的硬件和软件组件的一个实施 例的框图。图4B示出与电源管理电路307进行通信的控制电路306。控制电路304包括中央处 理单元(CPU)320,图形处理单元(GPU)322,高速缓存324,RAM 326,与存储器330(例如,D-RAM)进行通信的存储器控制器328,与闪存334(或其他类型的非易失性存储)进行通信的闪 存控制器332,经由带接口 302和带接口 232与透视、近眼显示设备2进行通信的显示输出缓 冲区336,经由带接口 302和带接口 232与近眼显示设备2进行通信的显示输入缓冲区338,与 用于连接到话筒的外部话筒连接器342进行通信的话筒接口 340,用于连接到无线通信设备 346的PCI express接口,以及USB端口348〇
[0062]在一个实施例中,无线通信组件346可包括启用Wi-Fi的通信设备、蓝牙通信设备、 红外通信设备等。USB端口可以用于将处理单元4对接到另一计算设备,以便将数据或软件 加载到处理单元4上以及对处理单元4进行充电。在一个实施例中,CPU 320和GPU 322是用 于确定在何处、何时以及如何向用户的视野内插入虚拟图像的主负荷设备。
[0063] 电源管理电路306包括时钟生成器360,模数转换器362,电池充电器364,电压调节 器366,透视、近眼显示器电源376,以及与温度传感器374进行通信的温度传感器接口 372 (位于处理单元4的腕带上)。到直流转换器362的交流电连接到充电插孔370以用于接收AC 供电并为该系统产生DC供电。电压调节器366与用于向该系统提供电能的电池368进行通 信。电池充电器364被用来在从充电插孔370接收到电能之际(通过电压调节器366)对电池 368进行充电。设备电源接口 376向显示设备2提供电能。
[0064]图5是涉及每次关闭一个光源107的将闪光映射到光源107的过程500-个实施例 的流程图。过程500是图2的过程201的一个实施例。这一过程500还描述了可如何生成无闪 光图像。在步骤502中,通过例如控制电路系统103打开所有光源107。
[0065]在步骤504中,在所有光源107正在照明对象101的同时,相机105捕捉图像。这一 "全开"图像可被用于帮助细化并且在空间上同步结果。例如,对象101和/或相机105和/或 光源107可能正在移动,其中闪光在所捕捉的图像中的位置可能存在轻微差别。
[0066]在步骤506中,在所有光源107打开的情况下捕捉到的图像被复制到正在作业的无 闪光图像。由于此时所有光源107都打开,所以在正在作业的无闪光图像中将存在闪光。在 过程500期间,正在作业的无闪光图像得到更新以从中移除闪光,直到它变成无闪光。
[0067]在步骤508中,正被处理的光源107的计数器("L")被初始化为"1"。控制随后传递 到步骤512。步骤512 - 522涉及处理光源107之一,它将被称为光源"L"。即,步骤512 - 522可 以针对每一光源107被执行一次。在步骤512中,所有光源107除了光源L被打开。换言之,创 造一个使光源L关闭而使其余光源打开的图案。在步骤514中,在对象101正如步骤512中所 述地被照明的同时,由相机105捕捉图像。这一图像将被称为"闪光L"图像。
[0068]在步骤516,正在作业的无闪光图像通过计算当前正在作业的无闪光图像与闪光L 图像的逐像素最小值来更新。这具有移除与关闭的光源L相关联的闪光的效果。
[0069] 在步骤518中,基于所有光源打开的图像与当前闪光L图像之间的逐像素差别来生 成"差别L图像"。在一个实施例中,无符号饱和减除操作被执行。在此类操作中,闪光L图像 可以从全开图像中被减除。这可被表达为以下:Diff(A,B),其中A是全开图像,而B是闪光L 图像。替换地,这可以被表达为Max(0,A-B)。因而,通过此类操作,如果正从图像A中的对应 像素减除的图像B中的给定像素的结果得到小于零的值(下溢),则该值针对该像素被设置 为0。如所提及的,这些操作在逐像素的基础上被执行。
[0070] 在步骤520中,差别L图像被分析以检测映射到光源L的闪光。注意到,每个光源107 存在一个以上的闪光是可能的。这种情况可能发生的一种方式是对象是人眼而人正佩戴眼 镜的情况。另一种可能性是来自给定光源107的光反射离开相机和巩膜两者并且回到相机 105,从而得到两个闪光。步骤518 - 520实际上可以将光源L关闭的图像与全开图像作比较 以确定光源L关闭的图像中哪个闪光丢失。
[0071] 在步骤522中,差别L图像中所有检测到的闪光被记录为映射到光源L。步骤524递 增光源的计数器。控制随后传递到步骤510。在步骤510中,控制逻辑103确定是否存在更多 要处理的光源107。如果是,则控制传递到步骤512以处理下一光源107。如果否,则过程500 接着去往步骤526,其中正在作业的无闪光图像被标记为最终的无闪光图像。过程500随后 结束。注意到,当过程500结束时,所有光源107将被关闭一次(所有其它光源107打开的情况 下)。
[0072] 如先前所提及的,全开图像可用于细化结果,以及图像中的特征的空间同步。注意 到,在过程500中,在每一光源L已经被处理之后,对照全开图像的细化/同步可被立即执行。 闪光可如何在空间上被同步的一个示例是通过取如在各个图像中检测到的闪光位置,并且 围绕"全开"图像中的该位置运行局部峰值分析算法以细化到该闪光的位置(如果它移动过 的话)。类似的办法可以被采用以细化"无闪光"图像分析的结果。由于"无闪光"图像是多个 图像的组合,运动可将显著误差引入未经同步的结果。
[0073] 图5的过程500描述了其中n+1个图像被用于将闪光映射到"n"个光源107的一个实 施例。即,存在"全开"图案以及其中针对每一光源107的仅光源107关闭的图案。
[0074] 不要求每个光源107存在至少一个图像以便将闪光映射到光源107。可以使用较少 的图像。在一个实施例中,N个图像可被用于将闪光映射到2 N_ 2个光源。例如,三个图像可被 用于将闪光映射到多达六个光源107。作为另一示例,四个图像可被用于将闪光映射到多达 14个光源。作为另一示例,两个图像可被用于将闪光映射到2个光源。
[0075] 图6A是其中在捕捉对应于N个不同图案的N个图像的同时能够将闪光映射到多达 2N-2个光源的过程600的一个实施例的流程图。过程600还描述了可如何生成无闪光图像。 过程600是过程201的一个实施例。
[0076]在步骤602中,图案计数器("S")被初始化为"1"。这一模式计数器是针对将被用于 照明对象101的N个不同的光源图案。在步骤604中,作出所有图案是否已经被用于照明对象 101的判断。即,图案计数器"S"与图案数目"N"作比较。假定所有图案尚未被使用,控制传递 到步骤606。
[0077]在步骤606中,控制电路系统103根据当前图案将光源107设为打开或关闭。出于讨 论的目的,这将被称为"二元图案S"。在一个实施例中,将有总数为N个二元图案。
[0078]在步骤608中,在当前图案照明对象101的同时,由相机105捕捉图像。出于讨论的 目的,这将被称为"序列"S。"在图6A的进一步讨论之前,将讨论二元图案的一些示例。
[0079] 作为一个简单示例,光源107的总数可以是2。在这一情形中,两个二元图案可被用 于将闪光映射到两个光源107。因而,在这一示例中,两个图像被捕捉。
[0080] 表1示出了可如何使用两个二元图案将闪光映射到两个光源107。在图案A中,光源 L1关闭而光源L2打开。在图案B中,光源L1打开而光源L2关闭。不要求"全开"图案将闪光映 射到两个光源,但作为一种可能的附加图案被示出。
[0081 ]表格 I 光源 图案A 图案B 全开
[0082] L1 关闭 打开 打开 L2 打开 关闭 打开
[0083]作为一个略微复杂的示例,光源的总数可以是6。在这一情形中,三个二元图案可 被用于将闪光映射到六个光源107。因而,在这一示例中,三个图像被捕捉。表1I示出三个图 像可如何被如着以将闪光映射到六个光源(L1 一L6)。在这一表中,"0"意味着针对该图案光 源关闭,而"1"意味着针对该图案光源打开。
[0084]表1I 光源 图案A图案B图案C 全开 L1 0 0 1 1 L2 0 10 1 L3 0 1 1 1 L4 10 0 1
[0085] LS 1 0 1 1 L6 110 1 L7* 1 1 1 0 L8* 1 1 1 0 L 浐 1 1 1_0
[0086] 光源L7-L9不是必需的。这些是用于附加照明的光源。然而,在这一示例中,这些是 "无法检测"的光源。无法检测的光源是其闪光不被映射的光源。如表中所述,使用光源L7 - L9的一个后果是将总是有六个光源打开,这意味着照明强度可以统一。
[0087]过程600中的一个选项是生成无闪光图像。步骤610 - 614可以可任选地被执行以 生成无闪光图像。在步骤610中,判断无闪光图像是否已经被初始化。如果否,则控制传递到 步骤612以通过将序列S图像复制到无闪光图像来初始化无闪光图像。
[0088]另一方面,如果无闪光图像已经被初始化,则控制传递到步骤614。在步骤614中, 无闪光图像通过计算当前无闪光图像与序列S图像的逐像素最小值来更新。
[0089] 在任一情况下,过程600接着继续到步骤616以递增二元图案的计数器。控制接着 传递到步骤604以判断是否存在要被用于照明对象101的更多二元图案。当所有二元图案已 经被使用时,控制传递到步骤618。在步骤618 - 636中,所捕捉的图像被处理以将闪光映射 到光源107。这些步骤针对每一个光源107被单独地执行。注意到,各个步骤可以并行执行, 因为图像已经在步骤606 - 608中被捕捉。
[0090] 在步骤618中,光源107数目的计数器被初始化为"1"以指示闪光要被映射到光源 107中的第一光源。步骤620是用于确定所有光源107已经被处理的测试。如果否,则控制传 递到步骤622。简言之,步骤622和624将步骤608中捕捉的每一个图像放置在两个集合之一 (S1或S2)中。集合S1是针对当前光源打开的所有图像。集合S2是针对当前光源关闭的所有 图像。因而,在步骤622中,光源L打开的所有二元图案图像被置于集合S1中。在步骤624中, 光源L关闭的所有二元图案图像被置于集合S2中。
[0091] 以下将用于解说。回头参考表1I,将讨论处理光源L1的示例。对于图案C,光源L1是 打开的。因而,当图案C被用于照明对象101时所捕捉的图像将被置于集合S1。对于图案A和 B,光源L1是关闭的。因而,当图案A和B被用于照明对象101时所捕捉的图像将被置于集合 S2。类似的推理适用于表1I中的其它光源L2 - L6。注意到,表1I仅仅是二元图案的一个示 例,也可使用其它图案。
[0092] 继续该流程,在步骤626中,通过计算集合S1中的所有图像的逐像素最小值来计算 "S1最小值图像"。在来自表1I针对光源L的示例中,集合S1中仅存在一个图像(即C图像)。因 而,集合S1中的所有图像的逐像素最小值将是该图像。然而,注意到,对于光源L3,存在两个 其中L3是打开的图案。因而,对于光源L3,当图案B和C被使用时所捕捉的图下功能将被置于 集合S1中。对于这一示例,步骤622因而在图案B和图案C被用于照明对象107时所捕捉的两 个图像之间执行逐像素最小值。
[0093]在步骤626中,通过计算集合S2中的所有图像的逐像素最大值来计算"S2最大值图 像"。再次参考表1I中的光源L1的示例,当图案A和B被用于照明对象101时所捕捉的图像被 置于集合S2中。对于这一示例,这一步骤626在图案A和B被用于照明对象101时所捕捉的图 像之间执行逐像素最大值。对于一些光源107,诸如光源L3,集合S2中可能仅存在一个图像。 [0094]表1II示出对于其中三个二元图案被用于将闪光映射到六个光源L1-L6的示例而 言闪光可如何出现在各个图像中的示例。"1"指示闪光位置处的亮像素。"〇"指示闪光位置 处的正常像素。换言之,"1"指示造成闪光的光源107打开,而"0"指示造成闪光的光源107关 闭。
[0095] 表1II 图像 G1 G2 G3 G4 G5 G6 G7-G9^
[0096] A. 0 0 0 1 1 1 1 B. 0 110 0 1 1 C: 10 10 10 1
[0097] 全开 111111 Q
[0098] 在表1II中,G7-G9指的是由于可任选的光源L7 - L9引起的闪光。回忆一下,出于创 建附加照明的目的,这些光源在捕捉图像A - C时是打开的。然而,根据各实施例,闪光G7 - G9未被检测出。
[0099]表1V示出对于其中三个二元图案被用于将闪光映射到六个光源L1 一 L6的示例而 言闪光可如何出现在各个最小值和最大值图像中的示例。表1V可以通过对表1II的值应用 恰适的操作来导出。例如,Min(A,B)仅在A图像和B图像都亮时才具有亮像素。换言之,当图 像A或B中的任一者具有正常像素时,Min(A,B)图像为正常。如所提及的,根据各实施例,闪 光G7-G9未被检测出。
[0100] 表1V 最小值/最大值 G1 G2 G3: G4 G5 G6 G7-G9* Mln(A,B) 0 0 0 0 0 1 1 Max(A,B) 0 111 1 1 1 Min(A.C) 0 0 0 0 1 0 1
[0101] Max(A.C) 10 11 1 1 1 Min(B,C) 0 0 1 0 0 0 1 Max(B,C) 1110 1 1 1 Min(A.B,C.全部) 0 0 0 0 0 0 0
[0102] 继续该过程流,在步骤630中计算逐像素差别图像"Diff L"。逐像素差别图像可以 基于S1最小值图像和S2最大值图像之间的逐像素饱和减除来计算。具体地,在一个实施例 中,S2最大值图像从S1最小值图像中被减除。
[0103] 这一操作可被表达为以下:Diff (A,B),其中A是S1最小值图像而B是S2最大值图 像。替换地,这可以被表达为Max(0,A-B)。因而,通过此类操作,如果正从图像A中的对应像 素减除的图像B中的给定像素的结果得到小于零的值(下溢),则该值针对该像素被设置为 〇。如所提及的,这些操作在逐像素的基础上被执行。
[0104] 在步骤6 3 2中,D i f f L图像被分析以检测映射到光源L的闪光。在一个实施例中, Diff L中对应于映射到光源L的闪光的像素将具有比Diff L图像中的其余像素大得多的值 (例如,更亮)。换言之,在一个实施例中,其它像素将一般地具有〇左右的值。
[0105] 表V示出对于其中三个二元图案被用于将闪光映射到六个光源L1 一 L6的示例而言 计算逐像素差别图像如何允许闪光被映射到光源的示例。在表V中,"1"对应于亮像素,而破 折号对应于闪光位置处的近乎黑色像素。例如,表V示出闪光G1(对应于光源L1)应当 出现在逐像素差别图像Diff(C,Max(A,B))*。
[0106] 塾 Diff_G1 02. G3 G4 G5 Q6 G7-G9 DifT(Min(A,B) e) ----- 1 - Diff(C.Max(A,B)) 1 ----- -
[0107] DifT(Min(A,C)-B) - - - - 1 - - Diff(B.Max(A,C)) - 1 - - - - - DifT(Min(B.C) a) - - 1 - - - - Diff(A.Max(B,C)) ^ - 1 - - -
[0108] 查看表V中的信息的另一方式是它示出了可如何找到闪光候选。例如,闪光6候选: Diff (Min (A,B),C)等等。为了进一步解说,针对来自表1的示例,闪光候选可以如下被定位。 回忆一下,表1示出了可如何使用两个二元图案将闪光映射到两个光源。闪光1候选是Diff (B,A)。闪光2候选是Diff (A,B)。
[0109]在步骤634中,在Diff L图像中被检测到的一个或多个闪光被记录为被映射到光 源L。控制接着传递到步骤636以递增光源计数器,从而使得可通过重复步骤620 - 634来处 理下一光源107。最终,所有光源107被处理(步骤620 =否)。在处理所有光源107之后,过程 600结束。
[0110]注意到,图6A的过程600可允许比图5的过程500更少的图像被捕捉。这降低了要被 曝光于照明的对象1〇1(例如,人)的整体曝光。这还通过允许相机104关闭达更长时间段以 及不要求光源107打开得如此之多来节省功率。
[0111] 图6A的过程600还可降低第一图像和最后一个图像之间的时间距离。如果期望,这 可允许增加的照明曝光。还可能降低算法在相机107上运行的速度。
[0112] 以下描述了针对表1I的示例二元序列可如何被导出的细节。即,这是对于其中三 个二元图案(及对应的图像)被用于将闪光映射到六个光源的示例。各个原理可延及其它情 形,诸如两个二元图案用于两个光源以及四个二元图案用于14个光源。
[0113] 步骤1是选择要使用的二元图案数目。在该示例中,使用了三个二元图案。
[0114] 步骤2是列举使用那么多二元位的所有数字。在这一示例中,使用三个二元位的数 字被列举:〇〇〇、〇〇1、〇1〇、〇11、1〇〇、1〇1、11〇、111。
[0115] 步骤3是删除第一个数字和最后一个数字。即,全"0"和全"1"的情形不被使用。
[0116] 步骤4是根据剩余数字的每一有效位来定义光源的二元图案。在该示例中,二元图 案是:000111、011001、101010。注意到,二元图案的这一序列在表11中被描绘。出于讨论的 目的,三个二元图案的这一序列将按顺序被称为A、B和C。
[0117] 注意到,该序列中的每一闪光可使用AND(与)以及"AND NOT(与非)"运算来导出。 对于给定的图像,MIN(最小值)运算可代替AND来使用。同样地,DIFF(a,b)运算可代替"AND NOT"来使用。
[0118] 还注意到41勵勵!'"81勵腸1'"(:也可被写为41冊勵1'"(8 01?〇。在给定的图 像上,MAX(最大值)运算可代替0R(或)运算来使用。
[0119] 图6B的示例和6B将被用于进一步解说。图6B示出了对于"001000"的示例。该示例 示出多个等效表达式,它们以运算符"AND"以及"AND NOT"来表达。如上所讨论的,MIN运算 可代替AND来使用。因而,MIN(B,C)运算可被使用。如上所讨论的,DIFF(a,b)运算可代替 "AND NOT来使用。"因而,0正?(六,1^(8,〇)运算可被使用。注意到,图68描绘了对应于表¥ 中针对G3的那些运算的运算。
[0120] 图6C示出了对于"000100"的示例。该示例示出多个等效表达式,它们以运算符 "AND"、"0R"以及"AND NOT来表达。"如上所讨论的,MAX运算可代替0R运算来使用。因而,MAX (B,C)运算可被使用,如所描绘的。如上所讨论的,DIFF(a,b)运算可代替"AND NOT来使用。" 因而,0正?以,1^乂(8,〇)运算可被使用,如所描绘的。注意到,图6(:描绘了对应于表¥中针对 G4的那些运算的运算。
[0121] 类似的分析可以被执行以导出表V中针对其它闪光的操作。以上阐述了 N个图像 (对应于N个二元图案)在理论上可如何被用于检测2N-2个唯一的闪光到光源的映射。如上 所提及的,该分析可延及其它情形。
[0122] 在一个实施例中,对象101可以用不期望被映射到闪光的光源来照明。在图6A的流 程中,这对应于其中光源107对于所有二元图案总是打开的示例。例如,表1I中的光源L7 - L9是不可检测的。注意到,此类光源107不适"可检测光源"。也就是说,步骤622-634不被用 于将闪光映射到针对步骤606 - 608中使用的所有二元图案而言是打开的光源107。此处,这 被称为"不可检测"光源107。
[0123] 在捕捉全开图像时,这些不可检测光源107可被关闭。注意到,在捕捉全开图像时, 不要求使这些不可检测光源107关闭。在捕捉全开图像时这些不可检测光源107被保持关闭 的情况下,可以对确定无闪光图像作出附加细化。这一细化可以在图6A的过程中的任何时 间被作出。例如,可以在初始化无闪光图像(步骤612)之前、在无闪光图像用每一序列图像 来更新(在步骤614已经针对最后一次被执行之后)之后、或者在这两个事件之前被作出。
[0124] 图7是细化无闪光图像的过程700的流程图。这可以结合图6A中产生无闪光图像来 使用,如刚刚所描述的。控制电路系统103可执行这一过程。在步骤702中,所有可检测光源 107被打开。使用来自表1I的示例,光源L1 一L6被打开,而光源L7 - L9被保持关闭。在步骤 704中,在可检测光源107被打开的同时,使用相机107来捕捉全开图像。
[0125] 在步骤706中,作出无闪光图像是否已经被初始化的判断。在一个实施例中,这一 初始化发生在图6A的步骤612中。如果否,则无闪光图像通过将全开图像复制到无闪光图像 来被初始化。
[0126] 另一方面,如果无闪光图像已经被初始化(步骤706 =是),则控制传递到步骤710。 在步骤710中,无闪光图像通过计算当前无闪光图像与全开图像的逐像素最小值来被更新。 对无闪光图像的进一步处理在图6A中描述。
[0127] 图8是除了将闪光映射到光源107之外还能够执行的进一步处理的过程800的流程 图。在步骤802中,所步骤的图像使用所有图像的最小值来组合以生成无闪光图像。步骤802 的示例先前结合过程500和过程600来描述。例如,在捕捉到新的闪光L图像时,步骤516重复 地计算逐像素最小值。在过程600中,在捕捉到新的序列S图像时,步骤614重复地计算逐像 素最小值。
[0128] 在步骤802中,无闪光图像被用于分析对象101。无闪光图像具有没有光反射的良 好照明的优点,从而允许更好的输入数据以供分析固有特性,诸如瞳孔位置。瞳孔位置对于 3D眼镜注视重构而言是关键输入元素。无闪光图像可被用于其它目的,诸如虹膜的生物测 定映射。
[0129] 在步骤806中,全开图像被用于细化结果。这已经在先前作为空间同步/细化来讨 论。这可以结合过程201、500或过程600来使用。
[0130] 在步骤808中,3D几何形状重构使用各个结果和经校准的非固有特性来执行。3D几 何形状重构的一个示例是确定人眼的3D几何形状以及确定眼睛注视。这在下面进一步描 述。这可以基于经校准的非固有特性,它们是不一定从图像中导出的数据。
[0131] 一个示例先前被描述为将闪光映射到六个光源107。例如,在步骤606 - 608中,三 个不同的二元图案可以被使用,如表1I中所描述的。在一些情形中,可能期望将闪光映射到 附加光源。通过在步骤606 - 608中使用四个不同的二元图案/图像,闪光可以被映射到最多 14个光源107。然而,当使用四个二元图案时,计算复杂性可能显著增大。
[0132] -个实施例包括混合办法。例如,使用三个图案来将闪光映射到六个光源107的技 术可以与使用两个图案来将闪光映射到两个光源107的技术相组合。这得到能够使用四个 图案来将闪光映射到八个光源107。
[0133] 作为另一示例,使用三个图案来将闪光映射到六个光源107的技术可以与使用三 个图案来将闪光映射到六个光源107的技术相组合。这得到能够使用五个图案来将闪光映 射到12个光源107。
[0134] 现在将讨论使用四个图案来将闪光映射到八个光源的前一示例。表VI示出可被使 用的四个二元图案。每一二元图案由被标记为图像A、B、C或D的列来描述。在这一示例中,光 源L1 一 L8是可检测光源。光源L9 一 L12不是必需的。这些是不可检测光源,它们可被用于附 加照明。注意到,对于每一图像,八个光源打开,从而得到统一的照明强度。
[0135] 表VI LS 图像A涵像B面像C:圈像D全开 LI 0 0 1 1 1 L2 0 1 0 〇 1
[0136] L3 〇 1 1 D 1 L4 1 0 0 〇 1 L5 1 0 1 1 1 L6 1 1 0 〇 1 L7 1 110 1 L8 a 0 0 1 1 L9 1 1 1 1 0
[0137] L10 1 I 1 1 0 LI 1 1 1 1 1 0 LI 2 1 I 1 1 0
[0138] 闪光候选可以如表VII中所描绘的那样被找到。即,表VII描述了可被应用于所捕 捉的图像以将闪光映射到光源的合适的运算。注意到,该表反映了用于使用三个二元图案 来将闪光映射到六个光源以及使用两个二元图案来将闪光映射到两个光源的技术的组合。
[0139] 表VII 闪光._: 闪)t 1 Diff{C,Max(A,B)) 闪光 2 Diff(B,Max(A,C)) 闪光 3 Diff{Min(B,C),A)
[0140] 闪光 4 DifT(A,Max(B,〇) 闪光 5 Diff{Min(A,C),B 闪光 6 DifT(Min(A,B),C) 闪光 7 Diff(C,D) 闪光 8
[0141] 对于闪光的一种可能的使用情形是在眼睛注视重构中。以下是这能够如何被达成 的概览。具有相机105和多个光源107的固定设置被设立和校准。校准涉及确定光源107(例 如,LED)和相机投射点的绝对或相对位置。在一些情形中,视野内的对象101也可能需要校 准。取决于完整系统的几何形状,相对定位可能代替绝对定位来起作用。
[0142] 系统可被用于重构主体的眼睛注视。由于预期的人眼的高速运动,一般使用高速 相机和精确控制电路系统。一旦诸如在系统的视野内,控制电路系统103以预定图案加入光 源107,并且一个接一个地取得多个图像,每一图像对应于不同的二元图案。
[0143] 所捕捉的图像被递送到处理器以供分析,并且处理器使用本文所述的算法来检测 每一闪光并且将每一闪光匹配到其光源107。闪光位置和映射在之后的3D分析和眼睛注视 重构中被使用。
[0144] 图9示出确定眼睛注视的附加细节。图9是示出在用户眼睛聚焦的注视点处相交的 注视向量的示例的俯视图。基于Gullstrand示意眼模型示出了每只眼睛的眼球1601、160r 的模型。对于每只眼睛,眼球160被建模成具有旋转中心166的球,并且包括也被建模成球且 具有中心164的角膜168。角膜随着眼球旋转,并且眼球的旋转中心166可被当作固定点。角 膜覆盖虹膜170,瞳孔162处于虹膜170的中心。在这个示例中,在各个角膜的表面172上是闪 光174和176。
[0145] 从旋转中心166穿过角膜中心164到瞳孔162而形成的轴178是眼睛的光轴。注视向 量180有时被称为从小凹穿过瞳孔中心162延伸的视线或视轴。小凹是位于视网膜中大约 1.2度的小的区域。在图9的实施例中计算得到的光轴与所述视轴之间的角度偏移具有水平 和垂直分量。水平分量距光轴上达5度,并且垂直分量在2和3度之间。在许多实施例中,光轴 被确定,并且通过用户校准确定的小型校正被应用以获得被选作注视向量的所述视轴。对 于每一用户,小的虚拟物体可由显示设备在不同的水平和垂直位置处的多个预先确定的位 置中的每一位置处来显示。在物体在每一位置处的显示过程中,可以计算每一眼睛的光轴, 并且光线被建模成从该位置延伸到用户眼睛中。具有水平和垂直分量的偏移角度可以基于 必须如何移动光轴以与所建模的光线相对准来确定。从不同的位置处,与水平或垂直分量 的平均偏移角可被选作要被应用于每一计算出的光轴的小型校正。在一些实施例中,仅水 平分量被用于偏移角校正。
[0146] 在图9所示的实施例中,传感器检测区域139与眼镜架115内的每一显示光学系统 14的光轴相对准。在该示例中,相应的图像传感器是能够捕捉表示分别由镜架115左侧的照 明器153a和153b生成的闪光1741和1761的图像数据和表示分别由照明器153c和153d生成 的闪光174r和176r的数据的相机。
[0147] 透过显示光学系统(镜架115中的141和14r),用户的视野包括现实物体190、192和 194以及虚拟物体182、184和186。在该示例中,左眼的角膜1681旋转到右侧或朝向用户的鼻 子,并且右眼的角膜168r旋转到左侧或朝向用户的鼻子。两个瞳孔都注视虚拟物体186。来 自每个眼睛中心的注视向量1801和180r进入虚拟物体186所处的Panum汇合区域lgSaPanum 汇合区域是像人类视觉那样的双眼观察系统中的单视觉的区域。注视向量1801和180r的相 交指示用户正在看虚拟物体186。
[0148] 对于透视、混合现实显示设备,注视向量被确定以标识三维用户视野中的注视点, 该用户视野包括通常不在计算机控制下的现实物体以及由某一应用所生成的虚拟物体。注 视向量可在10英尺远的物体处、或实际上无限远的距离处相交。以下附图简要地讨论了用 于确定3D用户视野的各实施例。
[0149] 对面向前方的图像数据的引用是指来自一个或多个面向前方的相机(如图3A中的 相机113)的图像数据。在这些实施例中,在相机位于与每个显示光学系统14的光轴142的相 对小的偏移量处时,面向前方的相机113的视野近似用户的视野。偏移可以在图像数据中被 纳入考虑。
[0150] 图10描绘了计算设备的示例框图。计算设备可被用于实现控制电路系统103和/或 处理器4的全部或一部分。计算设备可被用于执行本文描述的各种算法的全部或一部分,包 括但不限于过程201、500、600、700和800。在处理单元259上执行的指令可以经由外围接口 233控制相机105和光源107。
[0151] 计算系统1000包括通常包括各种有形计算机可读存储介质的计算机241。这可以 是能由计算机访问的任何可用介质,而且包括易失性和非易失性介质、可移动和不可移动 介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存 储器(R0M)223和随机存取存储器(RAM)260。基本输入/输出系统224(BI0S)包括如在启动时 帮助在计算机内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM 260通常 包含处理单元259可立即访问和/或当前正在操作的数据和/或程序模块。图形接口 231与 GPU 229通信。还提供了操作系统225、应用程序226、其他程序模块227和程序数据228。
[0152] 计算机也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质,例 如,读写不可移动、非易失性磁性介质的硬盘驱动器238,读写可移动、非易失性磁盘254的 磁盘驱动器239,以及读写诸如⑶ROM或其他光学介质之类的可移动、非易失性光盘253的 光盘驱动器240。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失 性有形计算机可读存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固 态RAM、固态ROM等等。硬盘驱动器238通常由例如接口 234之类的不可移除存储器接口连接 至系统总线221,而磁盘驱动器239和光盘驱动器240通常由例如接口 235之类的可移除存储 器接口连接至系统总线221。
[0153] 驱动器以及它们相关联的计算机存储介质为计算机提供了对计算机可读指令、数 据结构、程序模块,及其他数据的存储。例如,硬盘驱动器238被描绘为存储了操作系统258、 应用程序257、其他程序模块256、以及程序数据255。注意,这些组件可与操作系统225、应用 程序226、其它程序模块227和程序数据228相同,也可与它们不同。在此给操作系统258、应 用程序257、其他程序模块256、以及程序数据255提供了不同的编号,以说明至少它们是不 同的副本。用户可以通过诸如键盘251和指示设备252(通常称为鼠标、跟踪球或触摸垫)之 类的输入设备向计算机输入命令和信息。其它输入设备可以包括话筒261、操纵杆、游戏手 柄、圆盘式卫星天线、扫描仪等等。这些以及其它输入设备通常通过耦合到系统总线的用户 输入接口 236连接到处理单元259,但也可通过诸如并行端口、游戏端口或通用串行总线 (USB)之类的其它接口和总线结构来连接。监视器242或其他类型的显示设备也经由诸如视 频接口 232之类的接口连接至系统总线221。除监视器之外,计算机还可以包括可以通过外 围接口 233连接的诸如扬声器244和打印机243之类的其他外围设备。
[0154] 计算机可使用至一个或多个远程计算机,如远程计算机246的逻辑连接在网络化 环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他 常见的网络节点,通常包括上文相对于计算机所描述的许多或全部元件,但是只描绘了存 储器存储设备247。逻辑连接包括局域网(LAN)245和广域网(WAN)249,但也可以包括其他网 络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
[0155] 当在LAN联网环境中使用时,计算机通过网络接口或适配器237连接到LAN245。当 在WAN联网环境中使用时,计算机通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其它手段。调制解调器250可以是内置的或外置的,可经由用户输入接口 236 或其它适当的机制连接到系统总线221。在网络化环境中,相对于计算机所描绘的程序模块 或其部分可被存储在远程存储器存储设备中。远程应用程序248驻留在存储器设备247上。 应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其它手 段。
[0156] 该计算环境可包括其上具体化了计算机可读软件的有形计算机可读存储设备或 装置,该计算机可读软件用于对至少一个处理器进行编程来执行此处描述的方法。有形计 算机可读存储设备可包括,例如,组件222、234、235、230、253和254中的一个或多个。此外, 计算系统的一个或多个处理器可以提供如本文所述的处理器实现的方法。GPU 229和处理 单元259是处理器的示例。
[0157] 附图中示出的示例计算机系统包括计算机可读存储介质的示例。计算机可读存储 介质也是处理器可读存储介质。这样的介质可包括以用于存储诸如计算机可读指令、数据 结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和 不可移动介质。计算机存储介质包括,但不限于,1^、1^』£?1^、高速缓存、闪存或其他存 储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、记忆棒或卡、磁带盒、磁带、媒体驱 动器、硬盘、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机访问的 任何其他介质。
[0158] 尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利 要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是 作为实现权利要求的示例形式公开的。
【主权项】
1. 一种将闪光映射到光源的方法,包括: 用多个光源的图案照明对象; 在用对应的图案照明所述对象的同时在相机处捕捉所述对象的多个图像,其中每一个 光源针对多个所捕捉的图像中的至少一个图像是关闭的并且针对多个所捕捉的图像中的 至少一个图像是打开的; 分析所述多个所捕捉的图像中的闪光,包括从针对每一个光源所捕捉的图像中的一个 或多个图像计算最小值图像,从针对每一个光源所捕捉的图像中的一个或多个图像计算最 大值图像,以及基于针对每一个光源的最小值图像和最大值图像来计算针对该光源的差别 图像;以及 将闪光映射到造成所述闪光的光源,所述映射基于每一光源的差别图像。2. 如权利要求1所述的方法,其特征在于,所述分析闪光和所述映射包括: 确定光源中的第一光源的最小值图像,所述最小值图像是所有其中第一光源打开的图 像的逐像素最小值; 确定光源中的第一光源的最大值图像,所述最大值图像是所有其中第一光源关闭的图 像的逐像素最大值; 计算第一光源的差别图像,所述差别图像是从第一光源的最小值图像减除第一光源的 最大值图像的逐像素无符号饱和减除运算;以及 将第一光源的差别图像中的闪光映射到第一光源。3. 如权利要求2所述的方法,其特征在于,进一步包括: 对于除了第一光源之外的多个光源中的每一个光源: 重复确定最小值图像、确定最大值图像、计算差别图像、以及将差别图像中的闪光映射 到相应的光源。4. 如权利要求3所述的方法,其特征在于,使用比光源少的所捕捉的图像来将闪光映射 到它们相应的光源。5. 如权利要求1所述的方法,其特征在于,进一步包括: 将作业中的图像确定为所捕捉的图像中的第一个所捕捉的图像; 对于多个所捕捉的图像中的其余图像,基于作业中的图像和所捕捉的图像之间的逐像 素最小值来更新作业中的图像;以及 将最终的作业中的图像确定为无闪光图像。6. 如权利要求1所述的方法,其特征在于,进一步包括: 基于所述多个所捕捉的图像的组合来生成无闪光图像,包括对所述多个所捕捉的图像 执行逐像素最小值。7. 如权利要求1所述的方法,其特征在于,进一步包括: 基于所述闪光来确定所述对象的3D几何形状。8. 一种系统,包括: 多个光源; 相机;以及 与所述多个光源和所述相机处于通信的逻辑,所述逻辑被配置成: 控制所述光源以用所述多个光源的图案来照明对象,每一个光源针对至少一个图案是 关闭的并且针对至少一个图案是打开的; 在用对应的不同图案照明所述对象的同时在所述相机处捕捉所述对象的多个图像; 分析作为用图案照明所述对象的结果的多个所捕捉的图像中的闪光,包括被配置成从 针对每一个光源所捕捉的图像中的一个或多个图像计算最小值图像,从针对每一个光源所 捕捉的图像中的一个或多个图像计算最大值图像,以及基于针对每一个光源的最小值图像 和最大值图像来计算针对该光源的差别图像的逻辑;以及 基于每一光源的差别图像将闪光映射到负责所述闪光的光源。9. 如权利要求8所述的系统,其特征在于,被配置成分析闪光并且映射闪光的逻辑包括 被配置成进行以下操作的逻辑: 确定光源中的第一光源的最小值图像,所述最小值图像是所有其中第一光源打开的图 像的逐像素最小值; 确定光源中的第一光源的最大值图像,所述最大值图像是所有其中第一光源关闭的图 像的逐像素最大值; 计算第一光源的差别图像,所述差别图像是从第一光源的最小值图像减除第一光源的 最大值图像的逐像素无符号饱和减除运算;以及 将第一光源的差别图像中的闪光映射到第一光源。10. 如权利要求9所述的系统,其特征在于,所述逻辑被进一步配置成: 对于除了第一光源之外的多个光源中的每一个光源: 重复确定最小值图像、确定最大值图像、计算差别图像、以及将差别图像中的闪光映射 到相应的光源。
【文档编号】G06T7/00GK105900141SQ201480072590
【公开日】2016年8月24日
【申请日】2014年12月24日
【发明人】D·尼, J·埃尔德里奇, R·哈韦利克, R·博斯科维奇, C·梅, G·施奈德, D·尼耶姆切维奇, D·尼斯特
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1