具体实施方式
下面将参照图1至图14来描述根据本发明的实施方式的信息处理设备100。
根据本实施方式的信息处理设备100具有手势输入功能,用来输入与由手200做出的手势对应的数据(包括指令、命令等),这些手势比如作为对象的用户的手200的运动、形状或方向。信息处理设备100是普通的计算设备。在信息处理设备100中,通过前面提到的手势输入功能而输入的数据例如由任意的应用软件处理。
如图1所示,信息处理设备100包括操作器1、相机2以及显示器3。操作器1包括键盘、鼠标和/或类似物。操作器1根据用户的操作输入向信息处理设备100输入数据,比如各种命令。
相机2包括成像元件,比如CCD(电荷耦合设备)或CMOS(互补金属氧化物半导体)传感器。例如,相机2捕获信息处理设备100的用户的手200的图像,作为位于视野中的对象。该用户通过由手200做出的各种手势来输入各种数据,手200的形状或运动在相机2的视野内变化。
显示器3包括LCD(液晶显示器)等。显示器3显示与正被信息处理设备100执行的应用软件有关的图像。此外,显示器3持续地或者响应于预先确定的操作而显示手势输入支持窗口3W。选择目标S(比如菜单项、文件或图标)以及选择光标C被显示在手势输入支持窗口3W中。
图2绘出了信息处理设备100的功能构造。信息处理设备100包括相机接口4、显示接口5、存储器6和控制器7,以及上面描述的操作器1、相机2和显示器3。操作器1、相机接口4、显示接口5、存储器6和控制器7以允许数据在它们之间传递的方式而通过总线8彼此连接。此外,相机2连接至相机接口4,显示器3连接至显示接口5。
相机接口4通过总线8向控制器7输入与由相机2所捕获的图像对应的图像数据。显示接口5向显示器3输入由控制器7输入的图像数据。
存储器6包括比如RAM(随机存取存储器)或硬盘的存储设备,并存储比如程序的各种类型的数据。存储器6存储与由相机2捕获的图像对应的图像数据。存储器6能够存储各种格式的图像数据。例如,存储器6存储帧单元形式的图像数据。
此外,存储器6存储用于识别由手200做出的手势(各个方面,比如运动、形状以及方向)的参考数据。例如,用于识别手200的形状的参考数据是模式数据等,为此手的形状已经被转换为数据。用于识别手200的运动的参考数据例如是,与每单位时间的手200的重心的运动量有关的数据,或者模式数据,为此当手200移动时重心的轨迹已经被转换成数据,或者类似的事物。存储器6存储与数据(包括指令、命令等)相关联的参考数据。
如图3所示,基于参考数据识别的由手200做出的手势,例如是手200的向上、向下、向左、或者向右运动。与此运动相关联的命令例如是,用于沿该运动的方向移动光标C的命令,或者用于使屏幕沿该运动的方向滚动的命令。例如,如果手200已经向上移动,则光标C向上移动。此外,如果手200已经移动至右侧,则光标C移动至右侧。
此外,如图4A到4C所示,基于参考数据识别的由手200做出的手势是手200的各种形状,这些形状根据食指指向方向而不同。与这些形状相关联的命令例如是,用于沿食指指向方向移动光标的命令,或者用于使屏幕沿食指指向方向滚动的命令。例如,在图4A中,由于食指指向方向是左,光标C向左移动。在图4B中,因为食指指向方向是上,光标C向上移动。在图4C中,因为食指指向方向是右,光标C向右移动。
此外,如图5A至5C所示,基于参考数据识别的由手200做出的手势是手200的形状,这些形状因伸出手指的数量而不同。与这些形状相关联的命令例如是,用于输入与伸出手指的数量匹配的数字数据的命令。在图5A中,由于伸出手指的数量是一,因此输入“1”。在图5B中,由于伸出手指的数量是二,因此输入“2”。在图5C中,由于伸出手指的数量是三,因此输入“3”。
控制器7包括处理器等。控制器执行存储在存储器6中的程序以便执行数据处理。控制器7执行普通数据处理,并且还执行与手势输入功能有关的数据处理。控制器7包括图像输入器71、提取器72、确定器73、识别器74以及输入器75。
图像输入器71输入其中已捕获作为对象的用户的图像数据。图像输入器71以帧单元的形式处理与由相机2捕获的图像对应的图像数据,并使得图像数据被存储于存储器6中。
提取器72提取与由图像输入器71输入的图像数据中所包括的用户的手对应的区域。为了提取与用户的手对应的区域,提取器72执行如下的图像数据处理。首先,提取器72设置包围运动区域的矩形,该运动区域是从由图像输入器71输入的图像数据中的帧之间的差异数据获得的。
更具体地说,提取器72查看存储器6,计算当前处理的帧单元的图像数据和先前紧接着的帧单元的图像数据之间的差异数据,并取得与运动区域对应的图像数据。
接着,为了提取运动区域,提取器72将与取得的图像数据对应的图像二值化。图6绘出了二值化的图像中的运动区域201。如果在二值化的图像上每个白色像素周围的八个相邻的像素值都大于预先设定的阈值,则提取器72就扩大该白色像素区域。通过这么做,提取器72执行用于连接和扩大白色区域的扩展处理。此外,如果在二值化的图像上每个黑色像素周围的八个相邻的像素值都小于预先设定的阈值,提取器72就缩小黑色像素区域。通过这么做,提取器72执行用于移除构成噪声的黑点的缩减处理。通过这种方式,提取器72从图像数据中指定运动区域202,如图7所示。此外,当运动区域202被指定,提取器72设置包围该运动区域202的最小的矩形区域203,如图8所示。
接着,提取器72基于包括在通过扫描矩形区域203的内部获得的运动区域202中的线段的长度,指定与用户的手腕对应的区域。例如,提取器72获取所设置的矩形区域203相对于图像平面的垂直方向的倾斜方向。提取器72沿矩形区域203的纵向方向,从图像平面的顶部至底部扫描与该倾斜方向正交的直线,并获得与运动区域202重叠的线段的长度,作为手200的宽度204。如图9所示,在取得最大的宽度205后,具有最小宽度206的所获得的宽度204的位置被指定为与手200的手腕对应的区域。
接着,提取器72基于与用户的手腕对应的所指定的区域,提取与用户的手200对应的区域。例如,提取器72在矩形区域203内从与手腕对应的所指定的区域中提取在位于图形平面顶部的白色像素区域,作为与用户的手对应的区域207。
这里,提取器72计算组成与用户的手对应的区域207的白色像素的每个X坐标和Y坐标的平均值,作为与用户的手对应的区域207的重心208。所计算出的重心208如图9所示。提取器72使所计算出的重心208与图像数据相关联地被存储于存储器6中。
确定器73确定与由提取器72提取的与用户的手对应的区域2072是否处于静止状态。例如,确定器73基于由提取器72提取的区域207的重心208的运动量,确定与用户的手对应的区域207是否处于静止状态。更具体地,确定器73查看存储器6,并根据先前处理所得的重心(Xt-1,Yt-1)和当前处理所得的重心(Xt,Yt)来计算运动量。这里,如果运动量以M表示,则确定器73能够通过M={(Xt-Xt-1)2+(Yt-Yt-1)2}1/2计算出运动量M。
确定器73比较计算出的运动量M和预先确定的阈值Dth。如果运动量M小于或等于阈值Dth,确定器73确定手是处于静止状态;如果运动量M大于阈值Dth,则确定手在移动。
如果确定器73确定与用户的手对应的区域207处于静止状态,则识别器74识别由提取器72提取的与用户的手对应的区域207的形状。否则,如果确定器73确定用户的手不处于静止状态,识别器74识别由提取器72提取的与用户的手对应的区域207的运动。将在下文描述通过识别器74对与用户的手对应的区域207的形状的识别。
识别器74指定指尖在由提取器72提取的与用户的手对应的区域中的位置,并基于所指定的指尖位置,识别与用户的手对应的区域207的形状。例如,首先,识别器74通过在由提取器72提取的区域207上执行细化处理来指定指尖的位置。细化处理是用于将二值化的图像转换成具有一个像素宽度的细化图像的处理。细化处理是用于强调被捕获的对像的几何特征的处理。利用比如Hilditch、Tamura、或Zhang-Suen算法的任意算法来执行细化处理是可能的。例如,如图10所示,识别器74通过以一定方式执行该处理来获得细化的图像209,该方式使得由提取器72提取的区域207的单一中心像素得以保留。
识别器74基于由提取器72提取的与用户的手对应的区域207中的预先确定的位置的长度,通过估计指尖和重心之间的距离来指定指尖的位置,该重心是根据由提取器72提取的与用户的手对应的区域207计算出来的。例如,一个人的手的宽度与手指的长度相关联。因此,识别器74利用由提取器72提取的手200的宽度204来估计到指尖的距离。首先,如图11所示,识别器74设定源自重心208的特定的半径r1和r2(r2>r1),以及特定的角度θ1和θ2(θ2>θ1)。识别器74接下来在由已经设定的r1,r2,θ1和θ2所包围的扇形范围内搜索从重心208的位置延伸越过固定距离或更大距离的细化图像209的梢端,并且将找到的梢端作为指尖位置211。
应该注意到,半径r1和r2例如通过从距重心208的位置的最大宽度204中减去预先确定的长度Δr来确定。此外,扇形范围是用来限制在其中实施指尖位置211搜索的区域以便增加搜索处理的速度,允许使用用来限制搜索在其中实施的区域的其他技术。备选地,允许从重心208的位置搜索全部范围而不限制搜索在其中实施的区域。应该注意到,在图11中,绘出了指定食指的指尖的示例,然而,同样存在指定多个指尖的情况。
在对与用户的手对应的区域207的运动进行识别时,识别器74查看(refer to)存储器6,并基于重心位置的运动历史(Xt-n,Yt-n),...(Xt-1,Yt-1),(Xt,Yt),识别与用户的手对应的区域207的运动。这里,允许识别器74计算与指定的指尖对应的坐标的运动量。
输入器75输入与由识别器74识别的形状或运动相关联的数据。例如,输入器75查看存储器6,并输入与由识别器74识别的手200的形状相关联的命令。输入器75将参考数据和与包括指定的指尖位置211的手200的形状对应的数据进行比较,并且,如果手200的形状与由参考数据识别的手的形状相匹配,输入器75输入与该参考数据相关联的命令。例如,在命令为使光标C移动的情况下,输入器75将光标C运动指令输入至显示器3。因此,显示器3的手势输入支持窗口3W中的光标C移动。
在手200的运动被识别器74识别的情况下,例如,如果手200向上移动,输入器75向显示器3输入用于向上移动光标C的指令。因此,显示器3的手势输入支持窗口3W中的光标C向上移动。
接下来,描述了由信息处理设备100进行的输入处理的流程。信息处理设备100能够执行多种应用软件。为了向应用软件进行输入,正如下面描述的,在用户通过手势执行输入的情况下,除来自操作器1的输入处理之外,信息处理设备100实现的输入处理。
控制器7例如以时间分割(time-divided)的方式重复地执行图12中绘出的输入处理。应该注意到,允许控制器7以一定的方式配置以便随着输入处理的开始一起显示手势输入支持窗口3W,或者利用手势或来自输入器1的输入来切换手势输入支持窗口3W的显示和不显示。
图像输入器71将图像数据输入到控制器7(步骤S1)。接着,提取器72提取运动区域201(步骤S2)。然后,提取器72提取与用户的手对应的区域207(步骤S3)。提取器72计算与用户的手对应的区域207的重心208(步骤S4)。
确定器73计算重心208的运动量(步骤S5)。然后,确定器基于重心208的运动量来确定与用户的手对应的区域207是否处于静止状态(步骤S6)。
如果与用户的手对应的区域207处于静止状态(步骤S6:是),识别器74执行细化处理(步骤S7)。然后,识别器74通过指定指尖位置211来识别手200的形状(步骤S8)。如果手200的形状与参考数据不匹配(步骤S9:否),控制器7返回到步骤S1。否则,如果手200的形状确实与参考数据匹配(步骤S9:是),则输入器75输入与由识别器74识别的手200的形状相关联的命令(步骤S10)。然后,控制器7结束该输入处理。
否则,如果与用户的手对应的区域207不处于静止状态(步骤S6:否),识别器74计算重心208的运动量,并识别用户的手的运动(步骤S11)。然后,如果手200的运动与参考数据不匹配(步骤S9:否),控制器7返回步骤S1。如果手200的运动确实与参考数据匹配(步骤S9:是),输入器75输入与由识别器74识别的手200的运动相关联的命令(步骤S10)。然后,控制器7完成输入处理。
正如上面详细描述的,根据当前实施方式的模式的信息处理设备100,确定手200是否是静止的,并且如果处于静止状态,基于手200的形状输入数据。因此,有可能最大限度地防止由于不静止的手200的图像中的残留图像导致的识别准确性的下降以及随之产生的错误输入。而且,由于使用了静止的手200的图像,手200的区域能够被准确地识别,因此需要较小的处理载荷,并且有可能最大限度地防止外部噪声的影响以及随之产生的错误输入。因此,用户能够以很高的准确性输入数据。
应该注意到,在本实施方式中,识别器74以一定方式配置以便通过在由提取器72提取的区域207中指定指尖位置211来识别与用户的手对应的区域207的形状。由此,能够将与手对应的区域207从图像数据中适当地修剪(clip),因此有可能使捕获的并非手200的图像等的噪声的影响在最大程度上得到抑制。此外,由于指尖是手势输入中经常移动的位置,通过准确地指定指尖位置211,有可能输入多种数据。
此外,在本实施方式的模式中,识别器74以一定方式配置以便通过在由提取器72提取的区域207上实施细化处理来指定指尖位置211。由于细化处理,图像的几何特征变得更容易捕获,因此有可能以很高的准确性指定指尖位置211。而且,由于细化处理,图像被转换为线,因此有可能减低所处理的数据量,并提高处理的速度。
应该注意到,在本实施方式的模式中,识别器74以一定方式配置以便基于由提取器72提取的区域207内的手的宽度204,通过估计从由提取器72提取的区域207的重心208到指尖的距离来指定指尖位置211。因为手的宽度和到梢端的手指的长度通常相关联,有可能通过一个人的手的大小准确地估计指尖位置211。
而且,在本实施方式的模式中,确定器73以一定方式配置以便基于由提取器72提取的区域207的重心208的运动量,确定用户的手200是否处于静止状态。通过这么做,有可能以高的准确度确定手200是否处于静止状态。
应该注意到,在本实施方式中,识别器74以一定的方式配置以便,如果由确定器73确定用户的手200不处于静止状态,则识别由提取器72提取的区域207的运动,并且输入器75以一定方式配置以便输入与由识别器74识别的运动相关联的命令。因此,因为还有可能通过手200的运动来输入数据,而不仅仅是手的形状,能够通过手势输入的数据的类型有可能增加。结果,由于很多类型的数据能够通过手势来输入,改善了用户的便利性。
此外,在本实施方式的模式中,提取器72以一定方式配置以便设置包围运动区域202的矩形区域203,该运动区域202是根据由图像输入器71输入的图像数据中各帧之间的差异数据获得,以便基于运动区域202中所包括的线段长度,指定与用户的手腕对应的区域,该线段长度通过扫描矩形区域203的内部获得,以及基于与用户的手腕对应的所指定的区域,提取与用户的手200对应的区域207。通过这么做,提取器72能够准确地提取手200的区域。此外,所捕获的不同于手200的图像等的噪声的影响能够被最大程度地抑制。
应该注意到,如图13所示,允许显示器3以一定的方式配置以便在手势输入支持窗口3W中显示与由图像输入器71输入的图像数据对应的图像。通过这么做,由于用户能够在确认由手200做出的手势的同时实现操作输入,用户能够更加可靠地输入数据。
应该注意到,在该实施方式的模式中,如果手200不处于静止状态,基于手200被识别的运动输入数据,以及如果手200处于静止状态,基于手200被识别的形状输入数据。然而,本发明并不限于此。
例如,允许确定器73以一定方式配置,以便从时间T间隔的帧单元的图像数据中的、手200的重心208的移动量L获得运动速度V(=L/T)。在这种情况下,如果运动速度V大于第一阈值V1,识别器74基于手200的运动输入数据。此外,如果运动速度V介于第一阈值V1和第二阈值V2之间(V1>V>V2),识别器74基于手200的运动和手200的形状和方向的组合输入数据。此外,如果运动速度V小于第二阈值V2(V2>V;换句话说,基本上停止的状态),识别器74基于手200的形状和方向输入数据。也是通过这种方式,手200的姿势能够以高精确度被识别,并且数据可以被适当地输入。应该注意,为速度提供三个或更多的阈值是允许的。
此外,用于提取与用户的手200对应的区域207的方法,用于计算重心208的方法,以及用于指定指尖位置211的方法等等,不限于前述提及的实施方式的模式。例如,关于与用户的手200对应的区域207,允许提取图像内具有特定颜色(皮肤颜色)的部分。此外,为了提取与用户的手200对应的区域207,例如,允许提取器41设置包括所指定的运动区域202的最小的矩形区域212,以如图14所示的方法。在这种情况下,允许提取器72从重心208在图像平面的顶端提取白色像素区域,作为与用户的手对应的区域207。此外,用于确定是否存在手200的运动的技术也是任意的。例如,允许获得与运动或速度的量关联的值,而无须获得运动或速度的实际量,并且允许该值与参考值进行比较,类似的技术也是被允许的。
此外,例如,在关于指尖位置211的规定中,如图14所示,允许识别器74在构成图像的像素中,将从重心208在图像平面的顶端距离重心208最远(具有大的距离)的像素的位置作为指尖位置211。
此外,在图12的步骤S10中,输入器75已输入了与由识别器74识别的手200的形状或运动相关联的命令。并不局限于此,允许输入器75使与所识别的手200的形状或运动对应的数据存储在存储器6中,并且查看存储器6以及协同其他的处理来输入命令等,该其他的处理比如为通过操作器1实施的操作输入。
在该实施方式的模式中,给出了提供相机2的配置方式的示例,然而,同样允许本发明应用于如下的系统中,其中由相机2捕获的图像数据通过数据通信的方式接收或者通过记录介质取得,或者其他方式,并且图像数据被处理。
应该注意到,由手200做出的手势,比如图3到图5C中绘出的手200的运动或形状都是示例,手势并不局限于此。
允许本实施方式的模式的信息处理设备100通过专门的系统实现,或者通过通常的计算机系统实现。例如,允许在计算机可读记录介质上存储并分发用于执行上述操作的程序,以及允许通过在计算机上安装来配置输入设备100并执行前述的处理。而且,允许使在比如互联网的网络上的服务设备中提供的硬盘设备上进行存储,并例如将其下载到计算机中。此外,允许通过OS(操作系统)与应用软件的协同工作来实现上面描述的功能。在这种情况下,允许仅在介质中存储和分发OS以外的部分,并且允许将这些部分被下载到计算机上。
作为记录程序的记录介质,有可能使用如下计算机可读记录介质,比如USB存储器、软盘(flexible disk)、CD、DVD、蓝光光盘(注册商标)、MO、SD卡、记忆棒(注册商标)以及磁盘、光盘、磁光盘、半导体存储器、或者磁带。此外,有可能使用在系统或设备中通常固定使用的存储介质,比如硬盘或SSD(固态驱动器)。
在不背离本发明宽泛的精神以及范围的情况下,本发明有可能具有各种实施方式的模式和修改。而且,前面提及的实施方式的模式是用来描述本发明,而并非限制本发明的范围。换言之,本发明的范围是由权利要求的范围表示的,而并非实施方式。在权利要求的范围内以及与权利要求的范围相当的发明的意思范围内实现的各种修改被认为落入本发明的范围之内。
前面提及的实施方式的模式中的一些或全部还有可能被描述为如下的附录,但是并不局限于下面的附录。
(附录1)
一种信息处理设备,包括:
图像输入器,该图像输入器输入图像数据,在该图像数据中已经捕获了对象(subject);
提取器,该提取器提取与由图像输入器输入的图像数据中所包括的该对象的手对应的区域;
确定器,该确定器确定与由提取器提取的对象的手对应的区域是否处于静止状态;
识别器,如果与该对象的手对应的区域由确定器确定为处于静止状态,识别与由提取器提取的该对象的手对应的区域的形状;以及
输入器,输入与由识别器识别的形状相关联的数据。
(附录2)
根据附录1所述的信息处理设备,其中
该识别器指定指尖在与由提取器提取的该对象的手对应的区域中的位置,并基于所指定的指尖的位置识别与该对象的手对应的区域的形状。
(附录3)
根据附录2所述的信息处理设备,其中
该识别器通过在与由提取器提取的该对象的手对应的区域上实施细化处理来指定指尖的位置。
(附录4)
根据附录2或3所述的信息处理设备,其中
基于与由提取器提取的该对象的手对应的区域内的预先确定的位置的长度,识别器通过估计指尖与重心之间的距离来指定指尖的位置,该重心是根据与由提取器提取的该对象的手对应的区域而计算。
(附录5)
根据附录1至4中任意一项所述的信息处理设备,其中
确定器在基于与由提取器提取的该对象的手对应的区域的重心的运动量,确定该对象的手是否处于静止状态。
(附录6)
根据附录1至5中任意一项所述的信息处理设备,其中
如果由确定器确定该对象的手不处于静止状态,则识别器识别与由提取器提取的该对象的手对应的区域的运动,并且
输入器输入与由识别器识别的运动相关联的数据。
(附录7)
根据附录1至6中任意一项所述的信息处理设备,其中
提取器设置包围运动区域的矩形,该运动区域根据由图像输入器输入的图像数据中的帧之间的差异数据而获得,基于运动区域中所包括的线段长度,指定与该对象的手腕对应的区域,该线段长度通过扫描矩形的内部获得,以及基于与该对象的手腕对应的所指定的区域,提取与该对象的手对应的区域。
(附录8)
根据附录1至7中任意一项所述的信息处理设备,进一步包括显示器,显示与由图像输入器输入的图像数据对应的图像。
(附录9)
一种信息处理方法,包括:
图像输入步骤,用于输入图像数据,在该图像数据中已经捕获了对象;
提取步骤,用于提取与包括于在图像输入步骤中所输入的图像数据中的该对象的手对应的区域;
确定步骤,用于确定与在提取步骤中提取的该对象的手对应的区域是否处于静止状态;
识别步骤,用于如果与该对象的手对应的区域在确定步骤中被确定为处于静止状态,识别与在提取步骤中提取的该对象的手对应的区域的形状;以及
输入步骤,用于输入与在识别步骤中识别的形状相关联的数据。
(附录10)
一种记录有程序的记录介质,该程序使计算机充当:
图像输入器,该图像输入器输入图像数据,在该图像数据中已经捕获了对象;
提取器,该提取器提取与由图像输入器输入的图像数据中所包括的该对象的手对应的区域;
确定器,该确定器确定与由提取器提取的对象的手对应的区域是否处于静止状态;
识别器,如果与该对象的手对应的区域被确定器确定为处于静止状态,该识别器识别与由提取器提取的该对象的手对应的区域的形状;以及
输入器,该输入器输入与由识别器识别的形状相关联的数据。
本发明基于2011年4月28日提交的日本专利申请2011-102529。该日本专利申请2011-102529的整个说明书、专利权利要求的范围以及附图被并入本说明书作为参考。
工业实用性
本发明适用于利用对象的手势来输入数据的信息处理设备、信息处理方法以及记录介质。
附图标记列表
1 操作器
2 相机
3 显示器
3W 手势输入支持窗口
3i 窗口
4 相机接口
5 显示器接口
6 存储器
7 控制器
8 总线
71 图像输入器
72 提取器
73 确定器
74 识别器
75 输入器
100 信息处理设备
200 手
201、202 运动区域
203、212 矩形区域
204 宽度
205 最大宽度
206 最小宽度
207 与用户的手对应的区域
208 重心
209 细化的图像
201 扇形区域
211 指尖位置