基于光流的倾斜传感器
2020-01-14

基于光流的倾斜传感器

描述了一种方法,用于确定运动的可移动相机的运动描述,从而确定到应用程序的用户输入(640)。该方法可以包括从运动的可移动相机捕捉一系列图像(610),和对出现系列图像中的静止特征进行比较。可以对系列图像进行光流分析,以确定运动的可移动相机的运动描述(620)。基于所确定的运动,可以确定到应用程序的用户输入(640),和,应用程序可以例如通过更新应用程序的用户接口,对用户输入进行响应。

Description

征。在本实施例中,由于静止背景通常比任何一个移动对象都大,因此假设该最有效的一组特征是静止背景。在其他实施例中,最有效的一组特征可以被假设为已知的真实世界的参考对象,如在相机指向用户的实施例中的用户面部。无论使用什么样的假设,都可以通过选择平行和幅值相等的、在图像中跨过最大面积和/或具有最大特征计数的流矢量,来确定最有效的一组特征。一旦已经确定了最有效的一组特征,就可以通过将与该最有效的一组特征具有不平行或幅值不相等的流矢量的特征舍去来分段运动的对象。对相机运动的附加自由度(例如,围绕Z轴旋转)的估算是可选的,和,是否对附加自由度进行估算可以取决于手持设备的可用计算能力。处理700确定相机的运动(750)。可以使用包括用于一系列图像中的经过匹配的和没有被分段出去的每个特征的光流矢量的光流场,确定相机运动。可以根据由光流矢量代表的、相机视野中的特征的明显速度来计算相机运动。用于静止特征的流矢量的幅值和方向与相机运动有关,并被用于对相机运动进行估算。例如,在静止场景中,可以使用下式来近似相枳』旋转:Vxi=Mx+Mz*Ri*cos(Thetai)Vyi=My+Mz*Ri*sin(Thetai)式中,Vxi和Vyi代表特征i的流矢量的分量Mx、My、Mz代表相才几S走转Ri和Thetai代表图像中,按照极坐标的特征位置,和根据测量确定。在已知少量分布充分的特征的情况下,可以对未知的Mx、My、Mz进行估算。确定的旋转(即Vxi和Vyi)可以被直接用于控制应用程序,或者,在已知相机知识和镜头特性的情况下,可以将已经确定的旋转转换到真实世界的单位(度)。在另一个实施例中,由于用户通常不使相机围绕Z轴旋转和该用户通常是静止的,因此假设围绕Z轴的旋转和沿着X、Y和Z轴的平移不明显。在该实施例中,围绕静止场景中的X轴和Y轴的相机旋转可以被简单地估算为所有特征的流矢量的平均值。由于仅围绕X轴和Y轴的旋转将导致近似平行和幅值相似的流矢量,因此所有流矢量的平均值将代表对所有流矢量的比较。在一个例子中,围绕静止场景中的X轴和Y轴的相机旋转可以被估算为所有特征流矢量的加权平均值。在加权平均值中,将每个流矢量的改变(influence)乘以置信分数。结果是,置信度高(例如,匹配良好)的流矢量比置信度低(例如,匹配较差或可疑)的流矢量对结果的影响大。处理700可选择地计算相机的累积运动(760)。图7中的操作760的虚线框表示该操作是可选的。通过跟踪已确定的相机运动,可以计算所述累积运动。可以计算序列相机图像的累积运动,以确定该设备相对于初始位置的位置。但是,会相对快地从图像到图像地构成误差。为了帮助减小构成误差,在计算流场的过程中,可以存储特征的全部路移的全部运动矢量。当相机运动受到限制从而在整个跟踪过程中多个子组特征始终保留在相机的视野中时,这可能是特别有用的。例如,铅笔尖可以是图像中的特征。当相机运动到其中铅笔尖保留在图像中的区域上方时,如果存储了代表该铅笔尖的特征的原始位置,则通过比较代表铅笔尖的特征的当前位置与代表铅笔尖的特征的原始位置,可以计算相机的累积运动。由于每个路径一般持续许多相机帧,因此,该误差累积将慢于简单计算帧之间的累积运动。在已知自初始图像开始检测的所有特征的情况下,不保证该组全部特征路径包括在进行跟踪的整个持续时间内走过的路径。例如,如上面建议的,对象(如铅笔尖)可以离开相机的视野。但是,该组全部特征路径将很可能包括相互分离但彼此相关且与开始(第一次检测到/进入相机视野)和结束(最后检测到/退出相机视野)时刻重叠的多个路径。(时间上)重叠的路径的组合可以被用于累积定位多个特征相对于初始位置的位置。例如,铅笔尖可以是图像中的特征,但是,铅笔的橡皮可能不出现在图像中。当相机运动时,代表铅笔尖的特征运动过整个图像并被跟踪。在后面的图像中,相机可以以下述的方式运动,即,铅笔的橡皮已经进入视野,和铅笔尖和铅笔的橡皮都是在该图像内被跟踪的特征。随着进一步运动,铅笔尖可能离开该图像,但是,代表该铅笔的橡皮的特征可能仍然存在并被跟踪。由于铅笔尖和铅笔橡皮同时为图像中的特征,因此,处理器可以计算铅笔橡皮相对于铅笔尖的相对位置。因此,使用(l)代表铅笔橡皮的特征的当前位置,(2)铅笔橡皮相对于铅笔尖的相对位置,以及(3)在铅笔尖离开相机视野之前存储的铅笔尖的路径,处理器可以确定橡皮的全部路径。然后,处理器可以使用橡皮的全部路径对相机的累积运动进行跟踪,和断定相机的初始位置。

当铅笔橡皮离开图像时,可以使用另外的特征重复这个技术,以便继续对相机的累积运动进行跟踪。使用这种相关的但是分开的特征可以使误差积累比使用单独的特征路径的误差积累慢得多。使用处理700例如可以计算:相机运动、相对于初始位置和/或方位的相机位置和/或方位,每个量都在两个和六个(包含)自由度之间。按照少于六个自由度对相机运动进行估算是假设了沿着六个自由度中的一个或多个自由度的运动被固定。例如,如果预期用户站或坐在一个位置和不使设备围绕z轴旋转,则可能两个自由度(围绕X轴和Y轴的旋转)是适当的,如果预期用户站或坐在一个位置,则可能三个自由度(围绕所有三个轴的旋转)是适当的,而如果预期用户迂回走动,则可能六个自由度(关于所有三个轴旋转并平移)是适当的。应用程序可以在任何时候,或者在例如会议、游戏、阶段开始时,或者当用户要求时,对用于累积位置计算的初始位置进行重新设置。尽管按照图像相关单元(image—d印endentunit)对这些进行了计算,但是,在已知相机镜头的知识的情况下,可以将它们转换为真实世界单位(即,角度)。图像相关单元可以以与相机图像有关的像素为单位,而真实世界单位可以以角度(用于旋转)以及英寸或厘米(用于平移)为单位。在将图像相关单元转换为真实世界单位的一个实施例中,将方位简单地乘以代表图像尺寸(即像素)内的视野(即角度)的因数。图8A-8C示出了用户操作配备有相机的手持设备810,手持设备810包括^L配置为,例如,#1行图6中示出的处理600和图7中示出的处理700的处理器(没有示出)。该处理器可以被配置为执行具有显示接口的应用程序,如游戏。参看图8A,由坐姿用户820手持设备810。对于附属于手持娱乐设备(如照相电话)的相机而言,不能保证相机运动是没有平移的纯旋转。但是,如果场景中的对象离相机足够远,由于旋转对特征的流矢量幅值的影响大于平移,因此平移对光流的影响不明显。在示出的例子中,设备810的相机830面对距离相机约l米的地板。在这种情况下,相机旋转1度可以与相机平移17cm引起的光流速度的幅值相似。在这种情况下,故意使照相电话倾斜的用户不太可能使手机平移超过几厘米。因此,为了通过旋转设备来以必要的精度控制游戏,可以将平移的作用忽略,和可以将光流假设为纯旋转的结果,这是由于用户必须将设备平移异乎寻常大的距离才能生成明显的误差。因此,用

户820可以通过旋转该设备,给在配备有相机的手持设备810上执行的应用程序提供用户输入。参看图8B,由站立用户840手持设备810。在本例中,用户840相对静止地站立,设备810的相机830面对地板。与坐姿用户的情况相似,到地板的距离足够远,以至相4几的平移可以忽略,和,用户840可以通过旋转配备有相机的手持设备810,给应用程序提供用户输入。参看图8C,由站立用户860手持配备有相机的手持设备850。在本例中,配备有相机的手持设备850的相机870面对用户的面部。当相机870指向用户面部,和面部组成了相机图像的有效部分时,对旋转的测量将与用户860有关,使得用户860能够在步行或者以其他方式迂回移动的同时,对配备有相机的手持设备850进行操作。这是由于在用户860移动时,用户面部不相对于配备有相机的手持设备850移动。由于与静止背景相比,用户面部成为最有效对象,因此,相对于用户860,对配备有相机的手持设备850的运动进行测量。因此,用户860的步行运动不被检测为设备的运动,和不影响对用户输入的^^测。确定用户输入以控制诸如游戏的应用程序的用户接口是一个已经描述过的应用程序。但是,也可以实现其他的应用程序。具体地说,应用程序可以控制已经被物理地耦合有相机的设备的其他方面或特性。例如,可以使用防盗的安全应用程序,从而当检测到设备的运动和警报还没有被激活时,激活该设备的报警信号。此外,可以实现音量控制应用程序,借此,当用户使照相电话远离他或她的耳朵而倾斜时,可以增加照相电话的音量。这里描述的处理600和700以及各种其他实施例、特性、技术等大部分可以通过在设备上运行的操作系统,以软件实现。软件与来自相机的数据接口,和与诸如计算机显示器、电视机或集成在设备中的LCD之类的显示设备接口。固件和硬件可以结合软件使用,或者代替软件。如根据公开内容显而易见的,这里所描述的实施例、特性和技术以及它们的各种变化和组合都可以用运行于一个或多个各种设备上的操作系统或独立应用程序或实用程序来实施。移动电话、个人数字助理(PDA)以及其他便携式设备提供了许多实施例,这是由于其用户接口的尺寸一般受到限制,和,通常难以对这种设备的用户接口进行控制。例如,实施例可以包括黑莓(Blackberry)设备、电子管理器

出的运动,用户可以将可检测的运动告知相机,以产生对应用程序的用户接口进行控制的用户输入。图6为处理600的流程图,处理600用于确定设备的运动描述,从而确定到应用程序的用户输入。在一个实施例中,在具有附属相机的手持娱乐设行处理600,和对相机视野的旋转的测量被用于控制在该手持娱乐设备上运行的游戏或应用程序。所迷旋转的测量可以被用于提供与倾斜传感器相似的输入。此外,由于倾斜的方向和幅值都可以被测量,因此可以提供"模拟"控制。模拟控制趋向于提供更精细的控制,而对于许多玩游戏的风格来说,最好是数字"控制。在实施图6所示的处理600的过程中,运动的可移动相机捕捉数字图像(610)。例如,捕捉图像(610)可以包括例如在相机运动的时间周期内捕捉一系列图像的数字表示。处理器依据所捕捉的图像确定相机的运动表示(620)。处理器例如可以将在时间上最近获得的图像与较早获得的图像进行比较以确定这一系列图像中静止特征的位置的变化,从而估算该相机运动。处理器可以使用以上讨论的光流处理。以下参看图7,对确定运动描述62Q进行更详细的讨论。此外,在接口设备上提供到应用程序的用户接口(630)。用户接口可以与可移动相机分开(例如,使用无线通信),或者,可以被物理地耦合到包括可移动相机的设备或集成在其中(例如,集成在照相电话100中的显示接口111)。用户接口可以包括用于应用程序如游戏的可视显示,用户可以使用它进行互动。用户接口还可以包括被配置为响应于用户输入产生声音的扬声器。例如,用户接口可以包括被配置为产生表示接受对动作进行触发的运动的声音。基于所确定的相机运动确定到应用程序的用户输入(640)。可以与该相机运动对应的自动方式来确定用户输入。在一个实施例中,应用程序可以将相机的运动和位置乘以一个因数,以调节"灵敏度",其中,用户可以预编程或选择该因数。"灵敏度"确定了用户必须将设备倾斜或移动多少才能实现用户输入,诸如在游戏的虚拟环境中人物的移动。例如,只有当相^L的运动大到足以满足"灵敏度"的级别时,才可以检测和确定用户输入(即,小且不明显的运动可以被忽略,和不导致确定的用户输入)。在使用"灵敏度"的场合,

可以确定粒子的数量和/或它们的动能。粒子可以被^^莫拟引力所吸引,从而粒子被镶嵌在虚拟环境中。虚拟环境可以包括图像或对象,和,粒子可以被镶嵌在对象的顶部。在这种应用程序的一个版本中,粒子代表雪。可选择地,该应用程序可以以电子贺卡(例如,圣诞卡)的形式进行分发。在这种应用程序的一个版本中,以选^^的颜色显示粒子(例如,沙艺)。在这个应用程序中,着色的粒子可以镶嵌在图案中。图7示出了使用光流确定运动的相机的运动描述的处理700的流程图。尽管可以使用稠密流场算法,但是,可以按照六个自由度,和在预计用更少的自由度进行近似的应用程序的情况下,对相机运动进行描述。因此,良好分布的稀疏特征集足以按照变化的自由度,对相机运动进行;险测和估算,和,可以将良好分布的稀疏特征集用于减少处理工作量。在减少了处理工作量的情况下,在某些实施例中,可以实时地对图像进行捕捉和处理。在一个实施例中,良好分布的稀疏特征集足以按照六个自由度对相机运动进行估算。在稀疏光流中,可以只为图像内的视觉可分辨的特征生成流矢量。这些特征可以遍布整个图像。在良好分布的特征集中,特征遍布整个图像,使得在图像的每个区域内至少有一个特征(与此相反,例如,所有特征聚集在图像的一个角落里)。因此,不需要用稠密流场对图像的所有区域中的运动进行描述,如果特征分布良好,稀疏集可以起同样作用。在稀疏光流中,可能需要良好分布的特征集。例如,将围绕Y轴的旋转(图W)与沿着X轴的平移(图4A)进行比较。如果特征分布不佳,例如,所有特征都沿着图像的底部分布,则所有的流矢量都将具有相似的方向和长度,和,沿着X轴的平移与围绕Y轴的旋转将难以区分。本发明的某些实施例用少于六个的自由度对运动进行近似,在这种情况下,假设某个特定自由度是可以忽略并将其忽略。当自由度减少时,对良好分布特征的要求也将放宽。例如,在一个实施例中,可以通过对围绕X轴和Y轴的相机旋转进行描述同时忽略围绕Z轴的旋转以及沿着X、Y和Z轴的平移对相机运动进行近似。由于这种假设,在其中所有特征都沿着图像底部的前述例子中相机运动可以被假设为与围绕Y轴的旋转效果相同,这是因为假设沿着X轴的平移不明显。处理700包括提取特征(710)。在对从运动的可移动相机捕捉的一系列图像进行分析的过程中,特征提取处理被应用于通过相机获得的每个图像。特征提取处理只需要从任意图像中提取稀疏特征集。找到之后的特征通常包括拐角和边缘。在设备一般运行的许多环境中,都能找到拐角和边缘。拐角和边缘对动态光线级别反应明显,如果设备在室外运行,则这一点很重要。此外,对于在图像中进行检测,对拐角和边缘特征进行计算相对廉价。提取拐角和边缘的方法是众所周知的。提取特征之后,处理700比较多个图像,以便使不止一个图像所共有的特征相匹配(720)。例如,流场计算处理使当前相机图像的特征与前一个相机图像的对应特征匹配。为了使特征匹配,将当前相机图像的每个特征与前一个相机图像的特征子组进行比较。该子组是依据近似度和特征的特性(例如,方向以及拐角的对比度)选择的。在具体实施例中,需要进行比较的特征的数量少有助于使对设备的计算要求最小。在一个实施例中,使用先前的流场对在前相机图像特征的当前图像位置进行预测(除了没有可用的先前流场的第一帧以外)。基于到预测位置的距离、特征特性的相似性以及相对于该组所有可能匹配的匹配唯一性所生成的得分,选择一对一的匹配。得分是一个标量值,和表示置信度的测量。为了保证一对一匹配,基于其得分减去基于包括多对特征之一的其他可能匹配得分的处罚对可能的对进行分类。将具有足够得分(置信度)的匹配加入流场。利用所述流矢量记录所述得分(置信度),以备后用。在其他实施例中,为了减少计算需求,匹配特征的操作可以包括首先分析靠近该特征的块,或者,首先尝试匹配位于较较低分辨率处的特征,和,持续地增加分辨率,直到找到了匹配或者已经比较了最高分辨率图像为止。例如,可以应用每十个图像取一个图像的金字塔法。例如,通过将图像分段为块,和生成一个代表每个块的像素值(例如,通过求块内的像素平均值),十取一生成低分辨率版本的图像(称为金字塔的一级)。由于低分辨率版本的图像要分析的像素较少和要搜索的区域较小,因此可以减少处理需求。一旦已经在低分辨率下找到结果,则可以使用在低分辨率下找到的结果,按照较高的分辨率对图像进行分析,从而抑制搜索。例如,如果在一个或多个特定的低分辨率区域中找到特征匹配,则可以对那些特定的低分辨率区域进行搜索,寻找较高分辨率的特征。在匹配多个特征之后,处理700确定用于每个特征的流矢量(730)。一个实施例通过计算当前相机图像中特征的位置相对于它在前一个相机图像中的

出的运动,用户可以将可检测的运动告知相机,以产生对应用程序的用户接口进行控制的用户输入。图6为处理600的流程图,处理600用于确定设备的运动描述,从而确定到应用程序的用户输入。在一个实施例中,在具有附属相机的手持娱乐设行处理600,和对相机视野的旋转的测量被用于控制在该手持娱乐设备上运行的游戏或应用程序。所迷旋转的测量可以被用于提供与倾斜传感器相似的输入。此外,由于倾斜的方向和幅值都可以被测量,因此可以提供"模拟"控制。模拟控制趋向于提供更精细的控制,而对于许多玩游戏的风格来说,最好是数字"控制。在实施图6所示的处理600的过程中,运动的可移动相机捕捉数字图像(610)。例如,捕捉图像(610)可以包括例如在相机运动的时间周期内捕捉一系列图像的数字表示。处理器依据所捕捉的图像确定相机的运动表示(620)。处理器例如可以将在时间上最近获得的图像与较早获得的图像进行比较以确定这一系列图像中静止特征的位置的变化,从而估算该相机运动。处理器可以使用以上讨论的光流处理。以下参看图7,对确定运动描述62Q进行更详细的讨论。此外,在接口设备上提供到应用程序的用户接口(630)。用户接口可以与可移动相机分开(例如,使用无线通信),或者,可以被物理地耦合到包括可移动相机的设备或集成在其中(例如,集成在照相电话100中的显示接口111)。用户接口可以包括用于应用程序如游戏的可视显示,用户可以使用它进行互动。用户接口还可以包括被配置为响应于用户输入产生声音的扬声器。例如,用户接口可以包括被配置为产生表示接受对动作进行触发的运动的声音。基于所确定的相机运动确定到应用程序的用户输入(640)。可以与该相机运动对应的自动方式来确定用户输入。在一个实施例中,应用程序可以将相机的运动和位置乘以一个因数,以调节"灵敏度",其中,用户可以预编程或选择该因数。"灵敏度"确定了用户必须将设备倾斜或移动多少才能实现用户输入,诸如在游戏的虚拟环境中人物的移动。例如,只有当相^L的运动大到足以满足"灵敏度"的级别时,才可以检测和确定用户输入(即,小且不明显的运动可以被忽略,和不导致确定的用户输入)。在使用"灵敏度"的场合,

相机视野的平移将引起光流,因此,流矢量取决于3D场景的几何关系(深度)。在相机正在进行平移的静止场景中,流矢量的幅值将取决于对象到相机200的距离、即深度,和,特征会被更靠近相机的对象遮挡或暴露。在光流场430中示出了相机在对场景420进行成像时沿着X轴方向410平移所引起的光流矢量。当相机200沿X轴方向410向左平移时,在一系列图像中捕捉的静止对象(例如,场景420中的树和山)呈现出沿着由光流场430中示出的光流矢量表示的方向向右移动。如由存在于光流场430中的流矢量的幅值差异所示,更靠近相机20Q的对象比远离相机200的对象呈现出移动更大的距离。因此,用于平移的流矢量的长度取决于正在成像的对象相对于相机200的深度。例如,由于树440是最靠近相机的对象,因此代表树440的流矢量的幅值最大。可以基于所计算的光流场430检测沿着X轴210的平移。参看图4B,相机200被示出为沿着矢量450表示的方向,沿Z轴230平移。在光流场460中示出了相机沿着Z轴方向450平移所引起的光流矢量。当相机200沿Z轴方向450平移时,在一系列图像中捕捉的静止对象出现沿着由光流场460中示出的光流矢量表示的方向运动。确切地说,当相机200沿着Z轴方向450朝向该相机捕捉一系列图像时正在被捕捉的对象运动时,存在于这一系列图像中的静止对象出现沿着从该图像中心延伸的径线向外的运动。因此,可以实现从该图像中心沿径向向外延伸的流矢量的光流场460。基于所计算的光流场46Q,可以检测沿着Z轴230的平移。尽管没有示出,但是,除了流矢量将与Y轴220平行以外,相机200沿着Y轴220的平移应该产生与图4A所示相似的光流场。图5A-5F示出了用户可以使用他或她的手告知运动的可移动相机的运动的例子。具体地说,图5A和5B示出了移动电话510,它包括在移动电话510下侧的相机520。手持移动电话510的用户可以将他或她的手腕向后530(图5C)或向前540(图5D)伸展,以实现移动电话510和相机520围绕X轴旋转。用户向后530(图5C)伸展他或她的手腕的运动,是沿着可以产生图3A所示的光流场320的方向围绕X轴的用户运动的例子。此外,手持移动电话510的用户可以将他或她的手腕顺时针550(图5E)或逆时针560(图5F)扭转,以实现移动电话510和相机520围绕Y轴旋转。用户顺时针550(图5E)扭转他或她的手腕的运动,是沿着可以产生图3B所示的光流场340的方向围绕Y轴的用户运动的例子。例如,使用图5C-5F中示

机的设备中。运动的可移动相机可以;波物理地耦合到移动电话。可以自动方式执行对运动描述的确定,和,可以包括一个或多个幅值和方位的确定。确定运动的描述还可以包括使用光流。确定运动的可移动相机的运动描述可以包括计算运动中可移动相机在两个或三个自由度中的旋转。确定运动的可移动相机的运动描述还可以包括计算运动的可移动相机的平移。确定运动的可移动相机的运动描述可以包括计算运动的可移动相机相对于运动的可移动相机的初始位置的运动。可以使用应用程序重置所述运动的可移动相才几的初始位置。确定运动的可移动相机的运动描述可以包括确定被捕捉到图像内的特征的运动,和,基于所述特征的运动确定可移动相机的运动。可以基于已经确定的特征运动将所述特征分段为一组相对于真实世界的参考帧移动的运动特征。分段运动特征可以包括选择一组覆盖最大面积的特征,和忽略没有被选择的特征。分段运动特征还可以包括忽略不具有与有效组特征相似方向和幅值的特征。确定运动的描述可以包括从捕捉到的图像中提取多个特征,和比较所述图像,以匹配在不止一个图像中出现的特征。通过计算当前图像中的特征的位置相对于前一个图像中的特征的位置的位移,可以确定用于匹配特征的流矢量。根据为匹配特征所确定的流矢量,确定可移动相机的运动。从捕捉到的图像中提取多个特征可以包括对若干拐角和若千边缘中的至少一个进行检测。比较所述图像以匹配特征可以包括首先比较靠近另一个图像中该特征的已知位置的图像块。比较所述图像以匹配特征还可以包括首先比较低分辨率处的图像,和,无论是否找到匹配,比较较高分辨率的图像。根据流矢量确定可移动相机的运动的步骤可以包括通过对按照图像相关单元确定的运动进行转换,按照真实世界单位,确定可移动相机的运动。捕捉图像可以包括捕捉序列图像。确定运动的可移动相机的运动描述可以包括确定用于该序列图像内第一子组图像中可见的第一特征的运动。确定运动的可移动相机的运动描述还可以包括确定用于该序列图像内第二子组图像中可见的第二特征的运动,第二子组与第一子组部分重叠,和第二特征与第一特征具有固定的物理关系,其中,即使第一特征在所有的第二子组图像中不可见,第二特征的运动仍然基于与第一特征相关的运动。基于已经确定的与第一和第二特征相关的运动,可以确定运动的可移动相机的运动描述。用户输入可以复制倾斜传感器功能,和对应用程序中的对象的倾斜、应用程序中的球的运动、应用程序中的运输工具的调整功能、应用程序中的对象的靶向功能、应用程序中的对象的导航功能、应用程序中有关节人物的移动或者粒子仿真应用程序中的粒子移动进行控制。当确定的运动的幅值大于阈值幅值时,可以确定所述用户输入。所述应用程序可以包括游戏、跟踪应用程序以及安全应用程序中的至少一个。按照另一个一般方面,便携式电话机包括相机和显示器,它们中的每一个都集成形成在电话机中。电话机还包括处理设备,被物理和通信地耦合到所述相机和显示器。电话机还包括计算机可读介质,被物理和通信地耦合到处理设备。计算机可读介质包括用于使处理设备至少执行下列操作的指令:(1)接收从相机捕捉的图像,(2)基于所接收的图像确定电话机的运动描述,(3)在显示器上提供到应用程序的用户接口,(4)基于电话机的运动描述,以自动方式确定到应用程序的用户输入,和,(5)将用户输入^是供给应用程序。上述一般方面的实施例可以包括各种附加特性。例如,计算机可读介质为处理设备的经过集成的一部分。即使这里,例如,只以单个方式进行了描述,但是,可以以各种方式实现各个方面、实施例和特性。例如,使用方法、设备、用于执行方法的设备、程序或其他指令集、包括程序或其他指令集的设备、计算机可读介质中或者传播信号中的一个或多个,可以实现各个方面、实施例和特性。例如,计算机可读介质或传播信号可以包括指令、软件、图像和其他数据。各个方面、实施例和特性还可以包括附加部件,例如,相机。在附图和以下描述中,对一个或多个实施例的细节进行阐述。通过该描述和附图和根据权利要求,其他的特性将是明显的。附图说明图1示出了被配置为确定运动描述和几乎所确定的运动控制用户接口的照相电话的例子。图2示出了相机以及用于定义相机运动的轴系统的例子。图3A示出了相机以及由于相机围绕X轴旋转所导致的光流矢量的例子。图3B示出了相机以及由于相机围绕Y轴旋转所导致的光流矢量的例子。图3C示出了相机以及由于相机围绕Z轴旋转所导致的光流矢量的例子。图4A示出了相机以及由于沿着X轴平移所导致的光流矢量的例子。图4B示出了相机以及由于沿着Z轴平移所导致的光流矢量的例子。图5A和5B示出了手持移动电话的用户的例子,该移动电话包括在移动电话下侧的相机。图5C和5D示出了人手围绕X轴旋转包括相机的移动电话的运动的例子。图5E和5F示出了人手围绕Y轴旋转包括相机的移动电话的运动的例子。图6是用于确定设备的运动描述以确定到应用程序的用户输入的处理的例子的流程图。图7是用于确定运动相机的运动描述的处理的例子的流程图。图8A示出了坐姿用户手持配备有相机的手持设备的例子。图8B示出了站姿用户手持配备有相机的手持设备的例子。图8C示出了在相机指向用户的情况下,站姿用户中手持配备有相机的手持设备的例子。具体实施方式提供了一种用于确定运动的可移动相机的运动描述以便确定到应用程序的用户输入的技术。一种技术包括从运动的可移动相机中捕捉一系列图像,和比较存在于该一系列图像中的静止特征。特征可以包括图像中的对象、图像内对象的任一部分和/或图像内的对象的拐角或边缘。对这一系列图像执行光流分析,以确定运动的可移动相机的运动描述。基于所确定的运动,确定到应用程序的用户输入,和,该应用程序例如通过更新该应用程序的用户接口响应所述用户输入。参看参看图1来描述一种系统,在该系统中,来自嵌入到诸如照相电话100的手持娱乐设备中的相机的序列图像的光流被用于确定该手持设备的运动,以作为例如控制游戏或应用程序的手段。照相电话100包括用户接口110,被配置为允许用户与该设备互动。用户接口110包括例如显示接口111、小键盘112、麦克风113和扬声器114。显示接口111给用户提供可视显示,可以表示与照相电话的状态有关的信息,或者提供用于应用程序的视觉接口,所述应用出使诸如是被结构为在该照相电话上执行的游戏。小键盘112包括

征。在本实施例中,由于静止背景通常比任何一个移动对象都大,因此假设该最有效的一组特征是静止背景。在其他实施例中,最有效的一组特征可以被假设为已知的真实世界的参考对象,如在相机指向用户的实施例中的用户面部。无论使用什么样的假设,都可以通过选择平行和幅值相等的、在图像中跨过最大面积和/或具有最大特征计数的流矢量,来确定最有效的一组特征。一旦已经确定了最有效的一组特征,就可以通过将与该最有效的一组特征具有不平行或幅值不相等的流矢量的特征舍去来分段运动的对象。对相机运动的附加自由度(例如,围绕Z轴旋转)的估算是可选的,和,是否对附加自由度进行估算可以取决于手持设备的可用计算能力。处理700确定相机的运动(750)。可以使用包括用于一系列图像中的经过匹配的和没有被分段出去的每个特征的光流矢量的光流场,确定相机运动。可以根据由光流矢量代表的、相机视野中的特征的明显速度来计算相机运动。用于静止特征的流矢量的幅值和方向与相机运动有关,并被用于对相机运动进行估算。例如,在静止场景中,可以使用下式来近似相枳』旋转:Vxi=Mx+Mz*Ri*cos(Thetai)Vyi=My+Mz*Ri*sin(Thetai)式中,Vxi和Vyi代表特征i的流矢量的分量Mx、My、Mz代表相才几S走转Ri和Thetai代表图像中,按照极坐标的特征位置,和根据测量确定。在已知少量分布充分的特征的情况下,可以对未知的Mx、My、Mz进行估算。确定的旋转(即Vxi和Vyi)可以被直接用于控制应用程序,或者,在已知相机知识和镜头特性的情况下,可以将已经确定的旋转转换到真实世界的单位(度)。在另一个实施例中,由于用户通常不使相机围绕Z轴旋转和该用户通常是静止的,因此假设围绕Z轴的旋转和沿着X、Y和Z轴的平移不明显。在该实施例中,围绕静止场景中的X轴和Y轴的相机旋转可以被简单地估算为所有特征的流矢量的平均值。由于仅围绕X轴和Y轴的旋转将导致近似平行和幅值相似的流矢量,因此所有流矢量的平均值将代表对所有流矢量的比较。在一个例子中,围绕静止场景中的X轴和Y轴的相机旋转可以被估算为所有特征流矢量的加权平均值。在加权平均值中,将每个流矢量的改变(influence)乘以置信分数。结果是,置信度高(例如,匹配良好)的流矢量比置信度低(例如,匹配较差或可疑)的流矢量对结果的影响大。处理700可选择地计算相机的累积运动(760)。图7中的操作760的虚线框表示该操作是可选的。通过跟踪已确定的相机运动,可以计算所述累积运动。可以计算序列相机图像的累积运动,以确定该设备相对于初始位置的位置。但是,会相对快地从图像到图像地构成误差。为了帮助减小构成误差,在计算流场的过程中,可以存储特征的全部路移的全部运动矢量。当相机运动受到限制从而在整个跟踪过程中多个子组特征始终保留在相机的视野中时,这可能是特别有用的。例如,铅笔尖可以是图像中的特征。当相机运动到其中铅笔尖保留在图像中的区域上方时,如果存储了代表该铅笔尖的特征的原始位置,则通过比较代表铅笔尖的特征的当前位置与代表铅笔尖的特征的原始位置,可以计算相机的累积运动。由于每个路径一般持续许多相机帧,因此,该误差累积将慢于简单计算帧之间的累积运动。在已知自初始图像开始检测的所有特征的情况下,不保证该组全部特征路径包括在进行跟踪的整个持续时间内走过的路径。例如,如上面建议的,对象(如铅笔尖)可以离开相机的视野。但是,该组全部特征路径将很可能包括相互分离但彼此相关且与开始(第一次检测到/进入相机视野)和结束(最后检测到/退出相机视野)时刻重叠的多个路径。(时间上)重叠的路径的组合可以被用于累积定位多个特征相对于初始位置的位置。例如,铅笔尖可以是图像中的特征,但是,铅笔的橡皮可能不出现在图像中。当相机运动时,代表铅笔尖的特征运动过整个图像并被跟踪。在后面的图像中,相机可以以下述的方式运动,即,铅笔的橡皮已经进入视野,和铅笔尖和铅笔的橡皮都是在该图像内被跟踪的特征。随着进一步运动,铅笔尖可能离开该图像,但是,代表该铅笔的橡皮的特征可能仍然存在并被跟踪。由于铅笔尖和铅笔橡皮同时为图像中的特征,因此,处理器可以计算铅笔橡皮相对于铅笔尖的相对位置。因此,使用(l)代表铅笔橡皮的特征的当前位置,(2)铅笔橡皮相对于铅笔尖的相对位置,以及(3)在铅笔尖离开相机视野之前存储的铅笔尖的路径,处理器可以确定橡皮的全部路径。然后,处理器可以使用橡皮的全部路径对相机的累积运动进行跟踪,和断定相机的初始位置。