通过检测图像中的圆形物体操作计算装置制造方法

文档序号:6534432阅读:208来源:国知局
通过检测图像中的圆形物体操作计算装置制造方法
【专利摘要】在此披露了一种用于操作计算装置的方法。处理由该计算装置的图像捕获装置捕获的场景的一个或多个图像。该场景包括运动中的并且具有圆形形状的感兴趣的物体。通过检测对应于该感兴趣的物体的圆形物体来处理该一个或多个图像。在该一个或多个图像中基于该圆形物体的相对位置确定位置信息。实现利用从该圆形物体的该相对位置确定的该位置信息的一个或多个过程。
【专利说明】通过检测图像中的圆形物体操作计算装置
[0001]发明背景
[0002]随着移动计算装置的改进,用户能够将他们的装置用于各种各样不同的目的。用户不仅可以例如操作智能手机来打电话和浏览互联网,而且用户可以使用他或她的智能手机来执行各种各样不同的任务。

【专利附图】

【附图说明】
[0003]在附图中以举例而非限制的方式来展示本文的披露,并且其中相同的参考号指代相同的元件,并且在附图中:
[0004]图1在实施例下展示了一种用于操作计算装置的示例系统;
[0005]图2根据实施例展示了一种用于操作计算装置的示例方法;
[0006]图3A至图3B在实施例下展示了处理图像的示例;以及
[0007]图4在实施例下展示了一种用于操作计算装置的系统的示例硬件图。

【具体实施方式】
[0008]本文所描述的实施例提供了一种可以检测图像中的一个或多个圆形物体(例如,球、具有球形外壳的自驱动装置)并且追踪所检测到的一个或多个圆形物体的计算装置。该计算装置可以将这些所检测到的圆形物体作为输入用于在该计算装置上执行一个或多个操作或过程。
[0009]根据某些实施例,一个或多个图像(包括实时视频的帧)可接收自该计算装置的图像捕获装置。该计算装置可以对一个或多个应用进行操作或以使用该图形捕获装置的组件的一种或多种方式进行操作以接收视频输入。该视频输入可以是场景和/或该图像捕获装置的透镜聚焦于或朝向的该场景中的物体。例如,该场景可包括运动中的并且具有圆形形状的感兴趣的物体。
[0010]实施例提供了该计算装置来接收多个图像以检测这些图像中的一个或多个中的一个或多个圆形物体(对应于一个或多个感兴趣的物体)。在图像中描绘的圆形物体例如可对应于具有至少一个圆形形状或部分圆形形状的外壳或结构的感兴趣的物体,如椭圆形、卵形、圆盘形、球形等。感兴趣的物体可对应于例如包括在场景(例如图像捕获装置检测到的视觉输入)内的球、圆形物体、柱状物体、或具有球形外壳的自驱动装置等。在某些示例中,自驱动装置可被改良(例如后期装配)成包括圆形或球形方面(例如将圆形物体附接到该自驱动装置或将乒乓球放入远程控制的卡车的车厢中)。该计算装置可处理这些图像中检测到的这些物体并将其作为输入用于在该计算装置上执行一个或多个操作或过程。
[0011 ] 在某些实施例中,这些所接收到的图像中的每一个可被单独地处理以便检测一个或多个圆形物体。该计算装置可一起或单独地使用一种或多种检测技术,以便检测该一个或多个圆形物体。根据一个或多个实施例,这些检测技术可包括基于该圆形物体的尺寸使用图像过滤器及检测算法。此外,这些检测技术可被用于基于该一个或多个图像中的一个或多个圆形物体的相对位置确定该一个或多个圆形物体的位置信息。检测图像中的一个或多个圆形物体可使得该计算装置能够跟踪该一个或多个圆形物体的运动、以及运动的速率和/或加速度。
[0012]当检测到这些所接收到的图像中的一个或多个圆形物体时,该计算装置可将所检测到的一个或多个圆形物体及对应位置信息作为输入用于执行附加操作或过程。在一个实施例中,该计算装置可调整包括所检测到的圆形物体的这些图像并且在显示装置上呈现这些经调整的图像。在其他实施例中,该计算装置可将所检测到的圆形物体作为输入用于控制所检测到的物体(例如作为远程装置)。
[0013]根据一个或多个实施例,该图像捕获装置可区别于并且独立于在该一个或多个图像中检测该一个或多个圆形物体的计算装置。该图像捕获装置及该计算装置可彼此无线地通信以便使得该计算装置能够从该图像捕获装置接收该一个或多个图像。记录装置(如视频捕获装置)还可独立于该计算装置并且与其无线地通信。在其他实施例中,这些装置可以是一个装置的一部分或者一起合并为一个装置。
[0014]本文所描述的实施例还提供由该记录装置和/或该图像捕获装置和/或该计算装置执行的这些操作和/或过程以在不同的时间并以不同的顺序(例如按时间移动)执行。
[0015]本文所描述的一个或多个实施例提供由计算装置执行的方法、技术和动作是以编程方式执行的或者被作为计算机实现的方法执行。如本文所使用的,以编程方式指的是通过使用代码或计算机可执行指令。这些指令可被存储于该计算装置的一个或多个存储器资源中。以编程方式执行的步骤可以是或者可以不是自动的。
[0016]可以使用系统的程序化模块或组件实现本文所描述的一个或多个实施例。程序化模块或组件可包括能够执行一个或多个阐明的任务或功能的程序、子例程、程序的一部分、或软件组件或硬件组件。如本文所使用的,模块或组件可存在于独立于其他模块或组件的硬件组件上。可替代地,模块或组件可以是其他模块、程序或机器的共享的元件或过程。
[0017]本文所描述的某些实施例通常可要求使用计算装置,包括处理和存储器资源。例如,本文所描述的一个或多个实施例可在诸如数字照相机、数字摄像机、桌上型计算机、蜂窝或智能电话、个人数字助手(PDA)、膝上型计算机、打印机、数字相框、及平板计算机装置的计算装置上整体地或部分地实现。存储器、处理及网络资源全都可与本文所描述的任何实施例的创建、使用或执行(包括与任何方法的执行或与任何系统的实现)相关联使用。
[0018]此外,本文所描述的一个或多个实施例可通过使用可由一个或多个处理器执行的指令来实现。这些指令可在计算机可读介质上承载。下面的附图示出和描述的机器提供了用于实现本发明的实施例的指令可在其上被承载和/或执行的处理资源和计算机可读介质的示例。具体地,本发明的实施例示出的很多机器包括一个或多个处理器和用于保持数据和指令的各种形式的存储器。计算机可读介质的示例包括永久存储器存储装置,诸如个人计算机或服务器上的硬盘驱动器。计算机存储介质的其他示例包括便携式存储单元,如CD或DVD单元、闪速存储器(如智能电话、多功能装置或平板计算机上携带的)、以及磁存储器。计算机、终端、网络使能的装置(例如移动装置,如手机)是利用处理器、存储器和存储在计算机可读介质上的指令的机器和装置的示例。此外,实施例可以用计算机程序或者能够承载此类程序的计算机可用载体介质的形式实现。
[0019]系统描述
[0020]图1展示了实施例下一种用于操作计算装置的示例系统。诸如相对于图1描述的系统可在例如具有集成图像捕获组件的移动多功能计算装置(例如智能手机、平板计算机装置)上实现。在变体中,系统100可以在笔记本计算机、膝上型计算机或其他计算装置上实现,这些装置可在控制或操作照相机来跟踪移动物体的环境中进行操作。
[0021]在图1的示例中,系统100进行操作以处理图像输入以便动态地检测圆形物体,如移动中的物体。所检测到的圆形物体可以是移动中的和/或在计算装置控制下的装置的外壳的一部分。根据所描述的某些示例,该圆形物体被检测为编程过程的一部分,在该过程中与该圆形物体集成的装置被控制在运动中或操作中。在变体中,该圆形物体作为编程过程的一部分被检测出处于运动中,在该过程中该物体的出现被用来生成其他编程过程,诸如将运动中的圆形物体用作输入的增强现实。相应地,系统100可以检测与运动中的感兴趣的物体对应的圆形物体。此类物体的检测可提供输入以使得该计算装置能够执行其他操作,诸如控制感兴趣的物体,或者将感兴趣的物体的表示集成到该计算装置上显示的增强现实中。
[0022]再进一步地,系统100可对描绘包括感兴趣的物体的场景的多个图像进行量纲分析。具体地,系统100可执行量纲分析以便确定感兴趣的物体距该图像捕获装置和/或该计算装置的距离。为此目的,在一个示例中,可由系统100的组件在图像中高效地检测和处理圆形物体。
[0023]在一个实施例中,系统100包括物体检测110、图像调整130、用户界面(UI)组件140、装置控制150及无线通信(WCOM) 160。系统100的这些组件组合起来以从图像捕获装置接收多个图像并且自动地处理这些图像以检测这些图像中描绘的一个或多个圆形物体。可使用一种或多种检测技术来处理每个图像,这样使得这些所检测到的物体可被处理成输入用于在该计算装置上执行一个或多个操作。
[0024]根据实施例,物体检测110还可包括子组件,诸如图像过滤112、梯度检测120及图像标记122。这些部件可以组合起来以使得物体检测110可检测和跟踪多个图像中描绘的一个或多个物体。
[0025]该计算装置可操作一个或多个应用和/或以一种或多种不同的方式操作。在一个实施例中,系统100可响应于用户执行或启动将由图像捕获装置检测到的视觉输入用于执行一个或者多个过程的应用或程序(例如游戏应用或装置校准设置程序)而操作。物体检测I1可以从该图像捕获装置接收视觉输入114(诸如图像输入),以在一个或多个图像中检测一个或多个圆形物体。例如,图像捕获装置(例如集成照相机)可以(例如从该透镜指向的无论什么视野和/或一个或多个物体)接收和捕获场景。视觉输入114可以是以图像序列的形式或者通过视频输入(例如以每秒30-60帧连续捕获的多个图像)。
[0026]在某些实施例中,该计算装置接收的这些图像的预览可提供在该计算装置的显示装置上。例如,视觉输入114还可提供在Π组件140上,这样使得Π组件140生成所接收的视觉输入114的预览图像(以及该预览图像可呈现的一个或多个特征,例如放大或缩小特征、捕获图像特征)。该显示装置(例如触敏显示装置)可呈现该图像捕获装置当前指向的场景的动态地变化的实时图像。此图像可包括该场景中具有圆形特性(例如具有圆形外壳或该外壳的一部分)的一个或多个感兴趣的物体。用户还可通过按下捕获按钮或触发器或者通过使用另一个用户界面特征(例如轻击触敏显示器上提供的“捕获图像”图形特征)来捕获和存储该场景的一个或多个图像。
[0027]根据某些实施例,物体检测110可单独地处理单独图像以检测感兴趣的物体。具体地,这些感兴趣的物体可被指定成与特定形状匹配,诸如半球形或球形(或其他球形部分)。对于每个通过视觉输入114接收的图像,物体检测110可操作图像识别软件和/或其他图像处理方法,以检测感兴趣的物体的圆形指定特性。例如,物体检测110可扫描单独捕获的图像的像素,以检测对应于球形、半球形或其他变体的圆形物体(取决于指定的圆形特性)。
[0028]物体检测110可一起或单独地使用不同的检测技术,以便在单独图像中检测一个或多个圆形物体。在一个实施例中,物体检测I1的图像过滤112可以接收一个或多个图像并且向这些所接收的图像中的每一个应用过滤器,诸如灰度过滤器。将灰度过滤器应用到该图像可将该图像的每个像素转换成一种灰色(例如基于强度信息)。图像过滤112可以为梯度检测120和图像标记122提供每个所接收的图像的灰度图像116。一旦处于灰度中,经训练的物体检测器可以为潜在对应于感兴趣的物体的圆形物体扫描灰度像素。灰度过滤器的使用促进了快速图像物体检测以使得感兴趣的物体在运动中时进行那个物体的实时检测。
[0029]在某些实施例中,这些感兴趣的物体可包括附加特性以便于其对应的跟踪。例如,感兴趣的物体的圆形特性可进一步与附加特征组合,诸如其他结构视觉地标、颜色亮度(例如白色、银色、黄色等)、照明、或表面图案。通过举例,感兴趣的物体可以颜色明亮(例如白色),并且将灰度过滤器用于这些经处理的输入图像上可以产生对于相同场景的其他部分可具有比其他像素更浅的灰色的物体。在一个实施例中,这些灰度图像116可提供给梯度检测120和图像标记122,它们使用一种或多种图像处理方法(例如应用一个或多个算法),以在每一个灰度图像116中检测该一个或多个圆形物体。
[0030]再进一步地,在变体中,关于感兴趣的物体的已知(或者预先确定的)信息可被用于进行物体检测。例如,用户可以提供对应于感兴趣的物体的视觉标记的输入126。此类输入126可包括例如通过输入机制(例如使用一个或多个按钮、或触敏显示屏)该一个或多个圆形物体的估计尺寸(例如半径或直径)以及该一个或多个物体的颜色。在其他变体中,用户可以提供对应于触敏显示器上的圆形手势的输入126,以便如显示器上呈现的那样指示该物体的近似尺寸。在其他示例中,关于该一个或多个圆形物体的信息可存储在该计算装置的存储器中。梯度检测120可使用已知信息以便在这些图像中的每一个中检测该一个或多个圆形物体。
[0031]在一个实施例中,梯度检测120可处理这些灰度图像116的单独像素(或某些像素)以便确定针对这些单独像素的对应梯度。特定像素的梯度可以基于周围像素,包括紧邻的像素。梯度对应于具有方向的矢量,该方向上像素的亮度级增加。例如,一个像素的亮度级低于该梯度的方向上其他像素的亮度级或者比其黯淡。图像标记122实现的逻辑针对每个像素的确定的梯度标记了在等于该一个或多个圆形物体的半径(例如实际半径、曲率半径)的距离内该梯度的方向上的一个点。例如,用户可以(通过用户输入126)指示待检测的圆形物体具有特定尺寸或近似像素长度的半径。例如,近似像素长度可被设置为二十个像素。在其他示例中,可基于先前存储的关于图像中圆形物体的尺寸的信息假定或预先确定近似像素长度。使用所确定的梯度,针对每个像素,图像标记122可在具有最高亮度级的梯度的方向上那个特定像素的二十个像素距离内标记一个点。这可代表该圆形物体的中心或中间。基于该多个标记(例如针对灰度图像116的每个像素的标记),物体检测110可以假定具有多个标记的图像的区域对应于该圆形物体的中心并且可以确定该一个或多个圆形物体在每个灰度图像116 (如果存在任何图像的话)中的地点或位置。所确定的该圆形物体的位置信息可以与该图像相关。
[0032]梯度检测120还可以在确定灰度图像116中的每个像素的梯度时访问(可以存储于数据库中或列于计算装置的存储器资源中的)参数。例如参数可包括亮度阈值和梯度阈值。如果相邻像素(在特定像素的半径距离内远离该特定像素的方向上的像素)未示出亮度的渐增模式,亮度阈值可以指示梯度检测120忽视计算针对那个特定像素的梯度。在另一个示例中,如果相邻像素在远离特定像素的方向上未示出亮度级上足够强的变化,梯度阈值可指示梯度检测120忽视计算针对该特定像素的梯度。针对未计算梯度的像素,图像标记122将不提供标记。
[0033]在另一个实施例中,物体检测110可应用圆形物体的不同半径以便在这些灰度图像116中检测该圆形物体。由于梯度检测120和图像标记122可以处理灰度图像116中的每个单独像素,物体检测110假定对于每个灰度图像116而言用于检测圆形物体的半径可以根据该图像的区域而不同。由于该图像捕获装置相对于一个或多个圆形物体的角度、定向、距离及定位,该一个或多个圆形物体可取决于其与用户的远近在尺寸上发生变化。物体检测110可以接收关于该图像捕获装置的定向和定位的信息(例如该图像捕获装置的透镜指向或聚焦于何处)以确定图像中一个给定像素是否代表与用户或用户的脚更近的地面或地板,或者该像素是否代表与用户更远(例如与地平线更近)的点。物体检测110进一步假定,如果图像中一个特定的点代表与用户更近的区域,那么在那个点处或在其附近的圆形物体在图像中通常将比该圆形物体与用户更远时更大。因此,对于代表与用户更近的区域的点,当标记那个点的梯度的方向上的区域时图像标记122可以应用更大的半径(因为假定在图像中待检测的圆球更大)。
[0034]对于代表与用户更远的区域的点,在那个点处或在其附近的圆形物体通常在图像中看上去更小。因此,在确定该给定点代表与用户更远的区域后,图像标记122可在标记针对那个点的梯度的方向上的区域时应用更小的半径(例如十个像素长度而不是二十个像素长度)。以此方式,物体检测110还可以确定该圆形物体是否在一个或多个方向上移动,因为该圆形物体对于图像序列中的每个图像而言可以在尺寸上变得更大(例如如果它正在靠近用户)或在尺寸上变得更小(例如如果它正在远离用户)。
[0035]例如,基于计算装置的加速计和/或其他传感机制,计算装置可检测其相对于地面的位置。此外,计算装置可确定图像捕获装置提供的一个或多个图像的地平面和地平线。基于所确定的信息,如果用户握持计算装置的方式使得例如图像捕获装置的透镜指向与她更近的区域,计算装置可以增大正被检测的圆形物体的半径(例如尺寸)。另一方面,如果用户握持计算装置的方式使得图像捕获装置的透镜指向与用户更远的区域(例如离近距更远的距离),正被检测的圆形物体的半径可被降低。
[0036]如所讨论的,针对每个所确定的梯度(针对每个像素),图像标记122可以在等于该一个或多个圆形物体的半径的距离内该梯度的方向上标记一个点(例如图像中或图像上的地点)。以此方式,图像标记122可以在变化的半径内在具有最高亮度级的梯度的方向上标记一个点,而不是用户指示待检测的圆形物体具有一定的半径。该半径可取决于计算装置的图像捕获装置的透镜是否指向与用户更近或更远的区域而进行变化。
[0037]在某些实施例中,该一个或多个圆形物体的估计尺寸可被自动地配置和/或存储于计算装置的存储器资源中。例如,圆形物体可以是具有与用户的计算装置配对或无线地连接的圆形外壳(例如球形外壳)的自驱动装置。关于用户的自驱动装置的信息可存储于计算装置的存储器资源中。
[0038]物体检测110还可取决于用户输入126应用不同类型的过滤器。在某些实施例中,图像过滤112可取决于物体检测110检测到的一个或多个感兴趣的圆形物体的颜色应用其他类型的过滤器。如果感兴趣的物体的颜色是例如黑色的,用户可以提供指示球的颜色的输入126。
[0039]物体检测110可以在一个或多个图像中检测一个或多个圆形物体并且还提供对应于所检测到的物体的信息。关于这些所检测到的物体的信息可包括物体的颜色、尺寸、形状(例如椭圆形或球形)、物体相对于图像的位置等。在一个实施例中,关于所检测到的一个或多个物体的信息可存储于计算装置的存储器资源中。
[0040]根据一个或多个实施例,系统100将从该一个或多个图像中检测到的一个或多个物体(包括该一个或多个物体的位置信息)作为输入用于在计算装置上执行一个或多个操作或过程。在图1的示例系统中,物体检测110可以将关于所检测到的物体和这些图像(例如物体检测到的图像124)的信息提供给图像调整130和装置控制150。例如,图像调整130可以作为游戏应用的一部分进行操作或者与其连同操作。
[0041]在某些实施例中,系统100可以基于这些物体检测到的图像124确定感兴趣的物体正在移动。例如,按照时间(例如按照顺序)对应于不同实例的两个或更多个图像可包括对应于场景中感兴趣的物体的圆形物体。在两个或更多个图像的第一图像中,该圆形物体可在相对于那个图像的第一位置处被检测到。在该顺序中的下一个图像中,该圆形物体可在相对于那个图像的第二位置处被检测到。由于在不同图像中所检测到的圆形物体的位置处的变化,装置控制150和/或图像调整130可以确定该圆形物体正在移动(或已经移动)。在其他示例中,感兴趣的圆形物体可以处于固定位置但在适当的地方旋转。可以在该一个或多个图像中检测该旋转的圆形物体。
[0042]再进一步地,从图像输入中检测到的圆形物体可被转化成针对与图像描绘有关的给定参考系的坐标数据。此坐标参考系可被转化成真实世界坐标系以便观察和/或预测关于感兴趣的物体的位置相关信息。考虑到来自图像捕获装置的物体的深度可以从该物体的描绘的量纲分析中确定,感兴趣的物体的位置因此可以从该物体的图像描绘中进行映射。除位置信息,感兴趣的物体的速率可以从该物体的图像描绘的参考系中确定为映射到感兴趣的真实世界物体的确定坐标系。
[0043]在另一个示例中,具有圆形特性的感兴趣的物体可放置于具有已知高度的物体上而非地面或地板上(例如在咖啡桌上或在远程控制的玩具卡车上)。使用关于感兴趣的物体的已知(或预先确定的)信息及已知高度,物体检测I1可确定该一个或多个图像中该物体的更加精确的位置。此外,基于该信息(诸如已知信息和高度)及这些坐标系,图像调整130可提供将在显示装置上渲染的尺寸上精确(相对于感兴趣的物体的实际地点及图像捕获装置的位置)的图像。
[0044]例如,图像调整130可以处理这些物体检测到的图像124以便动态地调整图像的至少一部分。图像调整130还可以访问一套用于映射坐标参考系及真实世界坐标系的规贝U,这样使得这些被渲染的调整图像可相对于真实世界场景在尺寸上是精确的。这些规则可对应于真实世界参数。在某些示例中,如果不希望尺寸上精确的演绎,可通过例如用户输入改变这些真实世界参数。
[0045]图像调整130还可以在计算装置的存储器资源中存储经调整的图像132。这使得用户能够访问该存储器资源以便稍后查看任何所存储的经调整图像132。在其他实施例中,系统100可以使得能够对这些图像进行附加处理用于执行其他操作。图像调整130例如可以访问先前处理的图像并且执行对这些图像的附加调整。在某些变体中,物体检测110和/或图像调整130执行的这些过程可在所存储的图像上执行,而不是“直播”或实时地执行。因此,例如,物体检测110和图像调整130所描述的这些过程可以可选地相对于这些图像被捕获和/或存储时按时间移动。
[0046]在其他示例中,图像调整130可以用图形图像(例如字符、动物、某个除球之外的其他物体)动态地覆盖或替代图像中所检测到的圆形物体,或者实时地改变所检测到的圆形物体的图像本身(例如改变圆形物体的颜色,或者扭曲该圆形物体)。经调整的图像132可提供给Π组件140,这样使得计算装置的用户可以在显示装置上看到包括被调整的所检测到的物体的渲染内容。UI组件140还可生成可以呈现于计算装置的显示装置上的一个或多个特征。如所描述的,在某些示例中,所渲染的调整内容可以相对于实际感兴趣的物体的位置及图像捕获装置的位置是尺寸上精确的。
[0047]例如,用户可以观看直播体育赛事(例如儿童在公园踢足球)并将她的计算装置的透镜指向场地。所接收到的视觉输入114可包括图像捕获装置检测到的多个图像的帧。物体检测110可以在图像序列中的每一个中(例如球的位置在每个图像中可以不同,因为球在移动)检测圆形物体(对应于感兴趣的物体,例如足球)。图像调整130可以通过对球进行突出显示或者在球周围提供一个环并且向UI组件140提供这些图像来处理所检测到的物体(例如所检测到的足球)。用户然后能够在计算装置的显示装置上看到这些经调整的图像132 (带有任何附加特征)。
[0048]在其他实施例中,装置控制150可以处理这些物体检测到的图像124以便为远程装置提供一个或多个控制。例如,所检测到的圆形物体可以是与用户的计算装置配对或无线地连接的自驱动装置。用户可以在计算装置的显示装置上看到包括所检测到的圆形物体(例如用户的自驱动装置)的所接收到的视觉输入114的表示。用户则可以通过向装置控制150提供用户输入152(例如,触敏显示屏上的触摸输入)在触敏显示屏上与该自驱动装置的显示表示进行交互。
[0049]装置控制150接收物体检测到的图像124以及用户输入152以确定生成哪些类型的控制信息154。基于通过物体检测到的图像124接收到的对应于所检测到的圆形物体的信息,可以通过例如在显示屏的特定地点上检测用户输入152并且确定该地点对应于该图像上所检测到的圆形物体来确定控制信息154。例如,用户可以轻击自驱动装置的显示表示以使其例如旋转,或者在一个方向上轻击并拖拽他的或她的手指以使得自驱动装置相应地移动。控制信息154提供在WCOM 160上,这样使得该信息可提供给远程装置。
[0050]例如,装置控制150在该一个或多个物体检测到的图像124中确定所检测到的圆形物体的位置(例如所检测的圆形物体相对于该图像的位置)。当用户在自驱动装置的表示上提供了输入或者执行了手势(例如在触敏显示器上将表示拖拽到右侧)时,装置控制150可以确定该手势相对于参照物的路径(例如自驱动装置的显示表示的原位置),并将该手势转化成用于以类似方式移动自驱动装置的控制信号。这些控制信号可提供给自驱动装置以使得自驱动装置相应地移动。
[0051]WCOM 160用于在系统100与其他外部装置(例如远程装置或用户的自驱动装置)之间交换数据。在一个实施例中,WCOM 160可以实现各种不同的协议,如蓝牙通信协议、无线通信协议、红外通信协议等。控制信息154可被无线地通信给该远程装置(例如自驱动装置)以使得自驱动装置执行对应于用户命令的指定动作。
[0052]在某些实施例中,装置控制150可以提供用于校准该远程装置的一个或多个组件(或用于校准计算装置的一个或多个组件)的控制信息154。例如,感兴趣的圆形物体(例如用户的自驱动装置)可以具有一个或多个陀螺仪。随着时间的过去,由于陀螺仪漂移,该陀螺仪可能需要校准。通过使用这些物体检测到的图像124,装置控制150可以检测例如自驱动装置是否在移动,或者它是否是静止的,并且提供(包括校准信息的)控制信息154以通过WCOM 160传输到自驱动装置。基于检测自驱动装置的移动线及这些物体检测到的图像124,装置控制150可以校准自驱动装置的陀螺仪。在一个实施例中,装置控制150还可以从自驱动装置接收装置信息162,包括关于自驱动装置的这些组件的当前信息(包括关于陀螺仪的实时信息)。装置控制150可以将此信息用于校准自驱动装置的陀螺仪。以此方式,系统100可被用于消除陀螺仪漂移。
[0053]类似地,还可使用所检测到的圆形物体校准计算装置的该一个或多个陀螺仪。例如,当该圆形物体被确定为静止时,装置控制150可以通过将所检测到的圆形物体用作参照点来校准计算装置的陀螺仪。
[0054]物体检测110还可以为计算装置的其他组件或系统和/或为远程装置(图1未示出)提供物体检测到的图像118用于附加处理。其他组件可以将这些所检测到的圆形物体处理为输入用于执行其他操作。
[0055]根据一个或多个实施例,还可以从远离计算装置的图像捕获装置处提供系统100所接收到的视觉输入114。例如,图像捕获装置可以独立于计算装置。图像捕获装置可以检测和/或捕获场景并且将视觉输入114传输到计算装置(例如使用电线或无线地)。系统100可以在例如从图像捕获装置无线地接收视觉输入114时通过WCOM 160接收视觉输入114。系统100然后可以从接收自远程图像捕获装置的这些图像中检测一个或多个圆形物体并且基于所处理的所检测到的物体执行附加操作。
[0056]在另一个实施例中,系统100可以接收这些图像(例如来自实时视频的帧)并且然后在一段时间后处理这些图像(例如检测一个或多个圆形物体和/或调整这些图像)。例如,图像捕获装置提供的视觉输入114可以在物体检测110检索或接收视觉输入114用于处理之前首先存储于计算装置的存储器资源中。物体检测110可以响应于用户输入126进行该处理(由此使得视觉输入114从该存储器资源中被物体检测110检索或接收)。在其他实施例中,系统100甚至可以在这些图像被动态地处理之后执行附加处理。例如,在图像调整130首次处理这些物体检测到的图像124之前,稍后,图像调整130可以执行附加处理以向UI组件140提供不同的调整图像132。以此方式,用户可以在不同的时间查看不同的调整图像132(例如带有不同图形图像覆盖的调整图像)。
[0057]在某些示例中,系统100中所描述的这些组件中的某些可以作为单独的组件或者作为相同组件的一部分而被提供。例如,物体检测I1及图像调整130可以作为相同组件的一部分而被提供。在另一个示例中,物体检测110及装置控制150可以作为相同组件的一部分而被提供。在其他实施例中,系统100中所描述的这些组件可以作为装置操作系统的一部分或者作为一个或多个应用的一部分(例如作为照相机应用、远程装置控制应用、或者游戏应用的一部分)而被提供。可以用照相机应用(例如软件)和/或图像捕获装置的硬件实现逻辑。
[0058]在某些示例中,感兴趣的物体可以可替代地具有可进行尺寸和图像分析的其他预定义的形状,以在一个或多个图像中检测物体。例如,系统100可以利用其他物体检测和/或图像处理技术来检测具有非圆形形状的形状的物体,如训练用于检测具有特定二维形状的物体的分类器(例如具有矩形形状或三角形形状)。物体检测110可检测其他预定义的形状以将关于那个物体的图像的尺寸信息转化成真实世界中的空间和/或位置信息。
[0059]作为补充或替代,本文所描述的示例还可用于相邻物体分析。在相邻物体分析中,可以基于其与感兴趣的物体的已知空间关系确定关于与感兴趣的物体相邻的物体的位置信息。例如,感兴趣的物体可以是坦克车,其中可在一个或多个图像中确定坦克车的位置。还可以使用相邻物体分析跟踪坦克车装配的枪支。
[0060]再进一步地,可以在给定场景的一个或多个图像中同时跟踪(例如具有圆形或球形形状的)多个感兴趣的物体。感兴趣的物体可以在移动中或是静止的。物体检测I1可以检测多个感兴趣的物体连同每个被跟踪的物体的位置信息。相对于其他被跟踪的物体,每个被跟踪的物体的位置可被用于确定这些感兴趣的物体中间的其他感兴趣的物体或点。例如,可在图像中检测和跟踪多个球形物体以确定一个点云,目的是为了确定可能靠近这些跟踪的物体中的一个或多个的其他物体的位置。
[0061]方法论
[0062]图2根据实施例展示了一种用于操作计算装置的示例方法。如图2的实施例所描述的方法可以使用例如图1的实施例所描述的组件实现。相应地,对图1的元件进行参照目的是为了展示用于执行所描述的步骤或子步骤的适当元件或组件。
[0063]计算装置可以从其图像捕获装置接收多个图像(步骤200)。该多个图像可对应于图像捕获装置的透镜所指向或聚焦的场景的视觉输入。在某些实施例中,图像输入可对应于图像捕获装置所提供的实时视频(子步骤202)。实时视频可包括每秒(例如每秒30帧)检测和/或捕获到的很多帧(其中每个帧可以是一个图像)。
[0064]这些图像中的每一个可以被单独地处理以在这些图像中检测一个或多个圆形物体(步骤210)。计算装置可以对图像识别软件和/或其他图像处理方法进行操作以在每个图像中检测该一个或多个圆形物体。图像中的圆形物体可对应于存在于场景中的并且具有圆形外壳特性的感兴趣的物体。在一个实施例中,可通过应用已知的用于确定一个或多个感兴趣的物体的信息来检测该一个或多个圆形物体(子步骤212)。已知信息可以是用户提供的或者可以是预先配置和/或存储于计算装置的存储器资源中。
[0065]根据一个或多个实施例,已知信息可以包括该一个或多个感兴趣的物体的尺寸(子步骤214)。该一个或多个圆形物体的尺寸可对应于该物体的半径(或者例如椭圆形的半径)或该物体的直径、或者在某些情况下相对于显示装置的屏幕尺寸的相对尺寸。可通过使用关于该一个或多个圆形物体的尺寸信息在这些图像中的每一个中检测该一个或多个圆形物体,如圆形物体的半径或直径(例如以像素长度为单位)。此外,已知信息可包括与计算装置相对于地平面的定位对应的信息(子步骤216)。基于计算装置的透镜所指向的定向、方向、及位置,该一个或多个圆形物体可被确定为尺寸上更小(相对于屏幕尺寸)或尺寸上更大。在这种情况下,该圆形物体的半径或直径可在尺寸上动态地变化。如在图1中所讨论的,可以例如通过应用陀螺仪过滤器在每个图像中检测到圆形物体。此外,还可以确定该圆形物体的信息(如该圆形物体相对于该图像的位置信息)。
[0066]通过在这些图像中检测一个或多个圆形物体,计算装置可以将该一个或多个所检测到的物体及该一个或多个所检测到的物体的位置信息作为输入用于在计算装置上执行一个或多个操作或过程(步骤220)。例如,计算装置可以通过生成覆盖或通过用模仿该一个或多个圆形物体在这些图像中的移动的图形特征代替该图像中的所检测到的一个或多个圆形物体来对这些图像进行调整以用于在显示装置上进行显示(子步骤222)。此类图形调整可以对将真实世界场景用作游戏的一部分的游戏应用有用。
[0067]在一个实施例中,该覆盖还可以是具有三维特性的图形特征。该图形特征可被渲染为这些显示图像的一部分,这样使得它与所检测到的圆形物体的三维性及移动相一致。例如,如果该圆形物体旋转180度,所覆盖的图形特征还可以以类似特征旋转。
[0068]计算装置还可以将该一个或多个所检测到的物体处理为输入用于无线地控制该一个或多个所检测到的物体(例如自驱动装置)(子步骤224)。例如,用户可以在显示装置上对包含自驱动装置的表示的图像进行操控以便控制真正的自驱动装置(例如感兴趣的物体)以一定的速度向一定的方向移动。用户还可以轻击触敏显示器上的目标地点以便使得自驱动装置向该目标地点移动。在另一个实施例中,该一个或多个检测到的物体可被作为输入用于基于现实物体在用户及该现实圆形物体周围对图像进行投影或显示(子步骤226)。该一个或多个检测到的圆形物体还可被用于对所检测到的圆形物体的一个或多个组件进行校准(子步骤228)。
[0069]将该一个或多个所检测到的物体处理为输入的其他应用可包括在球类运动中跟踪球、或者将球和/或圆盘用作标记或固定参考点(例如框标)。例如,这些圆盘在该一个或多个图像中可被用作用于放置其他物体的参考点或测量点。此外,其他应用包括将该一个或多个所检测到的物体用于空间映射或导航。点、物体位置、航途基准点等全部可以是在很长一段时间内对应于具体地点的给定虚拟地点。计算装置可以向所检测到的圆形物体提供关于该圆形物体的地点和位置的信息,这样使得该圆形物体(例如自驱动装置)可以测量它自己向目标地点的进度并且将本身导航到地点。在其他应用中,基于该一个或多个所检测到的圆形物体,可以通过从该一个或多个图像中选择(例如在显示屏上轻击)这些物体的地点来计算具有已知高度的物体的绝对位置。
[0070]图3A至图3B展示了实施例下一个已处理的图像的示例。如图3A至图3B的实施例所描绘的,可以使用例如图1的实施例所描述的组件实现显示装置上提供的示例用户界面特征。相应地,对图1的元件进行参照目的是为了展示用于执行所描述的步骤或子步骤的适当元件或组件。
[0071]图3A展示了包括圆形或球形物体(例如球)的表示的场景的图像。该圆形物体可处于运动中。然而,由于图3A展示了例如图像序列中的单个图像,该圆形物体被描绘为是静止的。计算装置可以在显示装置上将此类图像作为正在由计算装置的图像捕获装置检测和/或捕获的东西的预览的一部分来提供。
[0072]在计算装置在该多个图像中检测到圆形物体以及圆形物体的地点或位置时,所检测到的圆形物体可以作为输入用于执行一个或多个附加操作。在一个实施例中,可以通过视觉地改变所检测到的圆形物体来调整该一个或多个图像。例如,用户可以操作计算装置来玩游戏(例如操作游戏应用)。在图3B中,可以通过用另一个图形图像(例如龙)作为游戏的一部分覆盖或替代所检测到的圆形物体来调整包括所检测到的圆形物体的图像。随着球形物体实时地并且在现实世界中移动,所接收到的图像序列还将球描绘为正在移动。
[0073]可以处理这些图片中的每一个以检测该球形物体,并且可以将所检测到的球形物体处理为输入,这样使得在计算装置的显示装置上,所显示的龙也相应地移动。在某些变体中,可以动态地调整所渲染的这些图像。例如,可响应于触发(如用户输入或正在向特定地点或者另一个感兴趣的物体附近移动的感兴趣的物体)而将龙的图形图像动态地变成蜥蜴的图形图像。
[0074]作为补充或替代,计算装置(如执行图1的系统100的装置)可以检测图像中的多个圆形物体并且跟踪该多个圆形物体的位置和/或移动,而另一个计算装置控制感兴趣的物体。在某些实施例中,处理这些图像以检测一个或多个圆形物体的图像捕获信息和/或计算装置可独立于并且不同于控制感兴趣的物体的移动的计算装置,如圆形或球形自驱动装置。再进一步地,在一个变体中,基于计算装置上所检测并跟踪的物体渲染的内容(例如图形覆盖)可被基于另一个计算装置提供的一个或多个触发或输入而动态地改变。
[0075]例如,在游戏环境中,多个用户可以彼此交互,其中第一用户使用第一计算装置控制感兴趣的物体的移动,而第二用户和第三用户跟踪感兴趣的物体并且渲染其对应计算装置上的内容。第四用户可以使用第四计算装置来控制该第二及第三用户的装置上显示什么内容(例如,动态地调整显示什么图形图像来代替所检测到的物体)。例如,在一个实现方式中,该第二用户可以跟踪感兴趣的物体并且查看与该第三用户的计算装置上所渲染的内容不同的渲染内容(例如,基于该第四用户控制向单独用户显示什么内容)。这些计算装置可以通过无线通信协议(如蓝牙或W1-Fi)彼此通信。
[0076]在另一个使用示例中,具有对应计算装置的多个用户可以检测并跟踪十个感兴趣的物体,包括一个或多个自驱动装置。对于一个或多个感兴趣的物体的控制可在这些用户之间传递。
[0077]硬件图
[0078]图4展示了本文所描述的实施例可在其上实现的计算机系统的示例硬件图。例如,在图1的情况下,可以使用如图4所描述的计算机系统实现系统100。在一个实施例中,计算装置400可对应于移动计算装置,如能够进行电话、消息传送及数据服务的蜂窝装置。此类装置的示例包括用于蜂窝载体、数字照相机、或膝上型计算机及台式计算机(例如个人计算机)的智能电话、手机或平板计算机装置。计算装置400包括处理资源(例如一个或多个处理器)410、存储器资源420、显示装置430、一个或多个通信子系统440 (包括无线通信子系统)、输入机制450、及照相机组件460。显示装置430可以是还可从用户处接收输入的触敏显示装置。在一个实施例中,这些通信子系统440中的至少一个通过数据通道和语音通道发送和接收蜂窝数据。
[0079]这些处理资源410被配置有软件和/或其他逻辑以执行实施例所描述的一个或多个过程、步骤及其他功能,如图1至图3以及在应用的别处所描述的。这些处理资源410被配置成实现系统100 (如图1所描述的),其指令和数据存储于这些存储器资源420中。例如,用于执行物体检测(包括图像过滤、梯度检测、图像标记)的指令、图像调整、Π组件、及装置控制可存储于计算装置400的这些存储器资源420中。
[0080]这些存储器资源410可以执行用于进行物体检测和用于接收已由图像捕获装置的透镜和/或其他组件460捕获的图像(通过视觉输入462)的指令。在该一个或多个图像中检测到一个或多个圆形物体之后,这些处理资源410可以执行用于使得所调整的图像412在显示装置430上呈现的指令。这些处理资源410还可以执行指令以通过这些通信子系统440为远程装置提供装置控制414。
[0081]在某些实施例中,这些处理资源410可以执行并且操作各种不同的应用和/或功能,例如首页或开始屏幕、应用启动页面、信息传送应用(例如SMS信息传送应用、电子邮件应用、頂应用)、电话应用、游戏应用、日历应用、文件应用、网络浏览器应用、钟表应用、照相机应用、媒体浏览应用(例如用于视频、图像、音频)、社交媒体应用、财务应用、及装置设置。
[0082]本文所描述的实施例预期推及本文所描述的独立于其他概念、观点或系统的单独元件和概念,并且实施例包括本申请中任何地方所列举的元件的组合。虽然本文参照附图详细描述了实施例,但应理解本发明并不限制于这些精确实施例。同样地,许多修改和变化对于本领域从业人员而言将是明显的。相应地,旨在由以下权利要求书及其等效物对本发明的范围进行定义。此外,或者单独地或者作为实施例的一部分描述的特定特征预期可以与其他单独描述的特征或者其他实施例的一部分进行结合,即时其他特征和实施例并未提及该特定特征。因此,描述组合的缺乏不应该使得发明人排除对此类组合的权利进行要求。
【权利要求】
1.一种用于操作计算装置的方法,该方法由一个或多个处理器执行并且包括: 处理由该计算装置的一个图像捕获装置捕获的一个场景的一个或多个图像,该场景包括一个运动中的并且具有一个特有的圆形形状的感兴趣的物体,其中,处理该一个或多个图像包括检测一个对应于该感兴趣的物体的圆形物体; 在该一个或多个图像中基于该圆形物体的相对位置确定位置信息;以及 实现利用从该圆形物体的该相对位置确定的该位置信息的一个或多个过程。
2.如权利要求1所述的方法,其中,实现该一个或多个过程包括在该计算装置的一个显示器上基于所确定的位置信息显示该感兴趣的物体的表示。
3.如权利要求1所述的方法,其中,该感兴趣的物体对应于一个具有一个圆形结构特征的自驱动装置。
4.如权利要求3所述的方法,其中,该自驱动装置是球形的。
5.如权利要求1所述的方法,其中,检测该圆形物体包括将一个过滤器应用到该一个或多个图像中的每一个。
6.如权利要求5所述的方法,其中,该过滤器是一个灰度过滤器,并且其中,应用该过滤器包括为该一个或多个图像中的每一个生成一个灰度图像。
7.如权利要求6所述的方法,其中,检测该圆形物体包括为该一个或多个灰度图像中的每一个的某些像素确定梯度,该梯度包括一个具有一个方向的矢量,该方向上一个像素的亮度级低于该方向上一个或多个其他像素的亮度级。
8.如权利要求7所述的方法,其中,检测该圆形物体包括,针对每个像素,在该梯度的方向上的那个像素的定义距离内标记一个点,并且基于多个标记点在该一个或多个灰度图像中确定该圆形物体的位置。
9.如权利要求1所述的方法,其中,实现该一个或多个过程包括调整在其中检测到该圆形物体的该一个或多个图像的至少一部分。
10.如权利要求9所述的方法,其中,调整该一个或多个图像的至少一部分包括生成一个图形特征来覆盖该圆形物体。
11.如权利要求1所述的方法,其中,该圆形物体对应于一个可由该计算装置无线地控制的自驱动装置,并且其中,实现该一个或多个过程包括(1)确定该自驱动装置的一个参考点,(11)使得一个用户能够与一个触敏显示器上的该圆形物体的显示表示进行交互,以及(111)基于该参考点控制该圆形物体的运动。
12.如权利要求11所述的方法,其中,实现该一个或多个过程包括对该圆形物体的一个或多个组件进行校准。
13.一种存储指令的非瞬态计算机可读介质,在由一个处理器执行时这些指令使得该处理器: 处理由该计算装置的一个图像捕获装置捕获的一个场景的一个或多个图像,该场景包括一个运动中的并且具有一个特有的圆形形状的感兴趣的物体,其中,处理该一个或多个图像包括检测一个对应于该感兴趣的物体的圆形物体; 在该一个或多个图像中基于该圆形物体的相对位置确定位置信息;以及 实现利用从该圆形物体的该相对位置确定的该位置信息的一个或多个过程。
14.如权利要求13所述的非瞬态计算机可读介质,其中,这些指令使得该处理器通过将一个灰度过滤器应用到该一个或多个图像中的每一个来检测该圆形物体,并且其中,这些指令使得该处理器为该一个或多个图像中的每一个生成一个灰度图像。
15.如权利要求14所述的非瞬态计算机可读介质,其中,这些指令使得该处理器通过为该一个或多个灰度图像中的每一个的某些像素确定梯度来检测该圆形物体,该梯度包括一个具有一个方向的矢量,该方向上一个像素的亮度级低于该方向上一个或多个其他像素的亮度级。
16.如权利要求15所述的非瞬态计算机可读介质,其中,这些指令使得该处理器通过针对每个像素在该梯度的方向上的那个像素的定义距离内标记一个点并且基于多个标记点在该一个或多个灰度图像中确定该圆形物体的位置来检测该圆形物体。
17.如权利要求13所述的非瞬态计算机可读介质,其中,该感兴趣的物体对应于一个具有一个圆形结构特征的自驱动装置。
18.如权利要求16所述的非瞬态计算机可读介质,其中,该圆形物体对应于一个可由该计算装置无线地控制的自驱动装置,并且其中,这些指令使得该处理器通过以下方式实现该一个或多个过程:(1)确定该自驱动装置的一个参考点,(11)使得一个用户能够与一个触敏显示器上的该圆形物体的显示表示进行交互,以及(111)基于该参考点控制该圆形物体的运动。
19.如权利要求18所述的非瞬态计算机可读介质,其中,这些指令使得该处理器实现该一个或多个过程,包括对该圆形物体的一个或多个组件进行校准。
20.一种移动计算装置,包括: 一个图像捕获装置; 一个存储器;以及 一个耦合到该图像捕获装置及该存储器的处理器,该处理器: 处理由该计算装置的一个图像捕获装置捕获的一个场景的一个或多个图像,该场景包括一个运动中的并且具有一个特有的圆形形状的感兴趣的物体,其中,处理该一个或多个图像包括检测一个对应于该感兴趣的物体的圆形物体; 在该一个或多个图像中基于该圆形物体的相对位置确定位置信息;以及 实现利用从该圆形物体的该相对位置确定的该位置信息的一个或多个过程。
【文档编号】G06K9/32GK104428791SQ201380034822
【公开日】2015年3月18日 申请日期:2013年5月14日 优先权日:2012年5月14日
【发明者】波罗·法布里齐奥 申请人:澳宝提克斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1