发明内容
本发明要解决的技术问题是提供一种电子游戏控制装置,游戏玩家能够在不需要操控任何设备的情况下参与到游戏中;为此本发明还要提供一种电子游戏的控制方法。
为解决上述技术问题,本发明的电子游戏控制装置包括:摄像头,与摄像头相连接的游戏主机;所述摄像头用于拍摄人体动作图像并将该图像传送给游戏主机;其特征在于:所述游戏主机对图像进行跟踪和检测,定位出脸部和手部位置,通过连续地跟踪和检测逐帧图像的脸部和手部位置,计算出脸部和手部的移动方向,采用所述的脸部和/或手部的移动方向信息作为游戏的控制输入信号。
本发明的电子游戏的控制方法包括如下步骤:
步骤一、初始化;检测游戏主机上是否插有摄像头;如有,则对摄像头进行初始化,如没有,则提示游戏玩家将摄像头插入到游戏主机上;
步骤二、脸部初始位置检测;游戏玩家保持脸部端正,不倾斜,并在摄像头的镜头内某一位置保持10帧图像的时间;
检测出脸部初始位置区域后,截取位于脸部初始位置区域正中心,面积为脸部初始位置区域一半的区域作为参考肤色区域,同时记录下脸部初始位置区域的面积和长宽比例;
把参考肤色区域内的图像从RGB颜色空间转换到HSV颜色空间,统计出参考肤色区域内的色相分量H的分布;
步骤三、手部初始位置检测;将检测出脸部初始位置区域的整幅图像从RGB颜色空间转换到HSV颜色空间,寻找出整幅图像内色相分量H分布与参考肤色区域内的色相分量H分布相接近的区域,得到匹配处理过的二值图像;对匹配处理过的二值图像进行腐蚀,膨胀操作,得到手部初始位置的潜在区域;将手部初始位置的潜在区域按面积大小进行排序,剔除面积大于参考肤色区域面积的区域,以及排除脸部初始位置区域本身,剩下的分别位于脸部初始位置区域一左一右的2个面积较大的区域即为人体的左右手的初始位置;
步骤四、正常跟踪;跟踪算法将脸部和手部初始位置作为跟踪参考起点,在参考起点附近的相关区域进行肤色匹配,肤色最匹配的区域即为跟踪算法计算出来的当前帧图像内脸部和手部的位置;与此同时,检测算法进行整幅图像范围内的肤色匹配,所有整幅图像内色相分量统计信息和参考肤色区域内的色相分量统计信息在一定误差阈值内的区域都假定为潜在的手部和脸部位置;
如果跟踪算法计算出来的脸部和手部位置在检测算法中都有相应的区域与之对应,则将跟踪算法计算得出的脸部和手部位置信息作为当前帧图像的脸部和手部位置信息输出,并将当前帧图像的脸部和手部位置信息作为下一帧图像的脸部和手部位置跟踪的新的参考起点;
如果跟踪算法计算出来的脸部和手部位置在检测算法中无相应的区域与之对应,且跟踪算法返回的迭代信息表明此位置的迭代次数高于平均迭代次数一定阈值时,则对脸部和手部的位置进行更新;
利用跟踪和检测相结合的方法计算出脸部和手部的位置,通过逐帧图像连续计算脸部和手部的位置,单一帧的脸部和手部的位置即可转化为脸部和手部的空间移动方向信息,脸部和/或手部移动方向信息即可作为游戏控制的输入信号。
本发明为电子游戏提供了一种新的参与控制玩法,游戏玩家可以不需要借助键盘、鼠标或游戏手柄等游戏操控设备,直接利用脸部和手部的空间移动来控制游戏。在一些体感式游戏中,比如乒乓球、头部顶球、足球守门员等游戏,本发明能够使游戏玩家更加灵活、便捷、轻松自如地参与到游戏之中,并且在游戏中能随心所欲对游戏进行控制。
具体实施方式
参见图1所示,在一实施例中所述电子游戏控制装置包括摄像头2和游戏主机1。摄像头2必须是彩色摄像头;为了能够让人体(游戏玩家)3的所有动作都能在摄像头镜头范围之内,摄像头的分辨率最好能达到640×480,如LogiTech S7500;当然,摄像头的分辨率为320×240也是可以的。游戏主机1应当具有比较强的数据处理能力,如电脑。游戏主机1对与其连接的摄像头2捕获的人体动作图像进行跟踪和检测,识别出脸部和手部的位置,通过逐帧图像的脸部和手部位置处理,就可计算出脸部和手部的移动方向,这些移动方向信息即可作为游戏的输入控制信号。
参见图2,所述电子游戏控制装置计算出脸部和手部的移动方向,控制游戏的过程是:
(1)、初始化
系统开始工作前,首先检测游戏主机1上是否插有摄像头2;如有,则对摄像头2进行初始化,如没有,则提示游戏玩家将摄像头插入到游戏主机1上。
(2)、脸部初始位置检测
主要完成两个功能:A、识别出游戏玩家的脸部初始位置;B、根据识别出来的脸部初始位置区域统计出参考肤色的色相分量H(Hue色相)的分布。
脸部初始位置识别采用了经由一千多张脸部照片训练出来的脸部模板技术。在脸部初始位置识别过程中,游戏玩家必须保持脸部端正,不倾斜,并在摄像头的镜头内某一位置保持大约10帧图像的时间。在后续的正常跟踪状态下,为防止误捕捉,系统只在镜头内某一位置连续10帧图像的时间内都检测到有脸部图像存在,才认为此区域为游戏玩家的脸部位置区域。
在成功检测出脸部初始位置区域后,截取位于脸部初始位置区域正中心,面积为脸部初始位置区域一半的区域作为参考肤色区域,同时记录下脸部初始位置区域的面积和长宽比例。该脸部初始位置区域的面积和长宽比例,在后续的正常跟踪状态下,将作为判断游戏玩家脸部图像是否丢失的参考依据。截取脸部位置区域一半的区域作为参考肤色区域是为了将紧靠脸部轮廓附近的背景色干扰消除。把参考肤色区域内的图像从RGB颜色空间转换到HSV(也叫HSB)颜色空间,统计出参考肤色区域内的色相分量H的分布(或称为参考肤色H分布统计),用于后续正常跟踪状态下,脸部和手部移动位置的跟踪和检测的初始参照依据(参考起点)。
图3是对一幅脸部位置区域的图像截取出参考肤色区域,并统计出H(Hue色相),S(Saturation饱和度)和V(Brightness亮度)三个分量的分布示意图。从中可以很明显的看出色相分量H分布最窄,对该示例而言,分布范围为[0,40]的区域,而且主要是集中在[10,25]的区域。这意味着H分量对某一颜色的区分度最强,所以本发明的实施例中将H分量用于游戏玩家的脸部和手部移动位置的跟踪和检测(即游戏玩家的脸部和手部移动位置的跟踪和检测采用肤色匹配的方式实现)。
对于分辨率高,输出像素位数高的摄像头还可以采用H和V分量联合跟踪和检测的办法,这样可以极大的提高参考肤色区域的检测精确度。出于成本和对处理器处理能力要求的考虑,在本发明的实施例中仅采用色相分量H用于肤色跟踪和检测。
(3)、手部初始位置检测
在得到参考肤色区域内的色相分量H的分布后进行手部初始位置的检测。
将检测出脸部初始位置区域的整幅图像从RGB颜色空间转换到HSV颜色空间,寻找出整幅图像内色相分量H分布中与参考肤色区域内的色相分量H分布相接近的区域,该过程称为肤色区域检测过程。在肤色区域检测过程中,为排除背景噪声的干扰,使用了“闭合”处理技术。即对匹配处理过的二值图像先进行腐蚀(Erosion)操作,然后进行膨胀(Dilation)操作。这样便可处理掉那些零星的,面积比较小的,不连续的伪肤色区域。最后被保留下来的区域是手部初始位置的潜在区域。
将上述检测出来的手部初始位置的潜在区域按面积大小进行排序,剔除那些面积大于参考肤色区域面积的区域,以及排除脸部初始位置区域本身(即脸部整幅图像),剩下的分别位于脸部初始位置区域一左一右的2个面积较大的区域即可认定是人体的左右手的初始位置。
(4)、正常跟踪
在成功地检测出脸部和手部的初始位置后,系统即进入正常跟踪状态,该状态为系统主要的工作状态,系统绝大部分时间内都应工作于此状态下。在正常跟踪状态下,利用跟踪和检测相结合的方法计算出脸部和手部的位置。通过逐帧连续计算,单一帧的脸部和手部的位置即可转化为脸部和手部的空间移动方向信息,这些移动方向信息即可作为游戏控制的输入信号。
整个跟踪和检测算法的控制流程可参见图4。
跟踪算法把步骤(2)和步骤(3)计算得出的脸部和手部初始位置作为跟踪参考起点,在参考起点附近的相关区域进行肤色匹配,肤色最匹配的区域即为跟踪算法计算出来的当前帧图像内脸部和手部的位置。与此同时,检测算法进行整幅图像(即摄像头拍摄到的整个镜头内的图像)范围内的肤色匹配,所有整幅图像内色相分量H统计信息和参考肤色区域内的色相分量H统计信息在一定误差阈值内的区域都假定为潜在的手部和脸部位置。
检测算法中的误差阈值会随检测出来的区域个数做动态的自适应,如果检测出来的区域数大于3(正常情况下,检测出来的区域数应该为3,对应于脸部,左手和右手),则说明误差阈值门限偏低,需适当调高误差阈值门限;如果检测出来的区域数小于3,并且连续几帧内都是这样,则说明误差阈值门限偏高,需适当降低误差阈值门限。
如果跟踪算法计算出来的脸部和手部位置在检测算法中都有相应的区域与之对应,则说明跟踪算法计算得出的脸部和手部位置信息是正确的,可作为当前帧图像的脸部和手部位置信息输出,脸部和手部的跟踪参考位置也用新位置值进行替代,为下一帧的跟踪做好准备。也就是说,在本发明中并不采用固定的参考肤色,这样能很好的解决不同肤色人种、不同光照下的游戏玩家脸部、手部位置识别。
如果跟踪算法计算出来的脸部和手部位置在检测算法中无相应的区域与之对应,且跟踪算法返回的迭代信息表明此位置的迭代次数高于平均迭代次数一定阈值时,则说明跟踪算法已经跟丢了脸部或手部区域,必须做脸部和手部位置的更新。
因为脸部区域的图像面积比较大,在正常情况下是不会跟丢的。如果真出现跟丢的情况,则说明游戏玩家已经离开摄像头的镜头范围,系统进入步骤(5)“脸部重定位”。
手部位置的更新利用了检测算法所检测出来的区域信息。把检测算法所检测出来的区域按面积大小进行排序,然后逐一和跟丢前一帧的脸部或手部位置计算中心点位置差,把位置差最小且面积大于一定阈值的区域更新为现在的手部位置。
本发明采用跟踪和检测相结合的方式进行脸部和手部的位置定位,能弥补单一算法存在的缺陷和误差,极大地提高检测准确度。
(5)、脸部重定位
在系统的运行过程中,游戏玩家可能出于某种原因会暂时离开。游戏玩家离开后,运行中的脸部跟踪算法有2种可能:一是跟踪算法一直找不到脸部区域,大部分情况下都是发生这种可能;二是在脸部移出位置附近刚好有一块跟参考肤色比较接近的背景区域,这种情况下,跟踪算法会误认为此区域为脸部区域。此时,可以从区域面积和区域长宽比例来判定是否为真正的脸部。如果此区域面积大于步骤(2)所记录下来的脸部面积一定阈值或小于一定阈值后,或者区域的长宽比例与在步骤(2)所记录下来的脸部长宽比例相比较有较大差距时(即超过一定阈值),都可判定为脸部丢失。如果在连续的几帧图像内(比如10帧)都是这样的结果,可以判定游戏玩家已经离开,输出控制信息暂停游戏的执行,系统进入“脸部重定位”状态。
在进入“脸部重定位”状态后,系统会重启脸部识别。跟步骤(2)“脸部初始位置检测”一样,系统在镜头内某一位置连续10帧图像的时间都检测到脸部才认为此区域为脸部区域。检测成功后,如图2所示,系统重新进入步骤(4)“正常跟踪”状态,继续游戏的运行。
“脸部重定位”状态中的“脸部识别”与步骤(2)“脸部初始位置检测”中的“脸部识别”的区别在于,在成功检查出脸部区域后,不进行参考肤色区域内的色相分量H的分布统计。
本发明通过摄像头拍摄人体动作图像,由处理器(如电脑)实时识别出脸部和手部的移动方向,以此来参与体感式互动游戏或遥控电视机,机顶盒等近端设备;使游戏玩家可以不必借助鼠标、键盘或游戏手柄就可以参与到游戏的中,完成对游戏的控制。
本发明通过跟踪和检测联合算法,可以得出每一帧内脸部、左手和右手位置。通过计算脸部和左右手区域中心点的位置差,可以得出脸部和手部的移动方向。脸部和手部的移动方向信息便可作为游戏的控制输入信号。在具体的实际应用中,既可以利用单独的脸部移动信息,单独的左手或右手的移动信息,也可利用三者的不同组合信息。
以上通过具体实施方式和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。