1.一种基于摄像头的体感识别方法,包括以下步骤:
A、启动摄像头;
B、摄像头摄取体感动作原始图像,并将摄取的体感动作原始图像传递给感兴趣区域设定单元;
C、识别模块将体感动作原始图像与体感动作库文件进行匹配,得出识别结果,并将识别结果显示在显示模块;
其中的步骤C包含以下几个步骤:
C1、感兴趣区域设定单元将体感动作原始图像位于感兴趣区域内的部分裁剪,并将裁剪的图像传递给体感识别单元;
C2、体感识别单元将从感兴趣区域设定单元接收到的图像进行皮肤色度检测和局部特征点提取;
C3、体感识别单元将提取到的局部特征点通过描述子转化为特征向量;
C4、体感识别单元将所述特征向量与体感动作库文件内的各个体感动作的特征向量进行匹配,得出识别结果;
C5、体感识别单元将所述识别结果所在的感兴趣区域的位置和大小反馈至感兴趣区域设定单元;
C6、体感识别单元将识别结果发送至显示模块进行显示;
其中的步骤C2中所述局部特征点提取的方法包括:
a、通过肤色检测后,体感特征识别模块会将接收到的图像进行蒙版处理;
b、以源图像的中心为圆心做n个同心圆,n即为特征数,n大于3,小于7,最大的同心圆半径为圆心到源图像边界的距离rm,n个同心圆的半径依次为,r1,r2,……,rn,且满足此时在以r1为半径的圆上,等距的寻找360个点,标记为p1,
p2,……,p360,其值为该点所在位置的像素的灰度值,同时设置数列f1,f2,……,f360来表示这360个点的特征,其中
s.t.i∈[2,360]
另,
对于任意点Px,若其fx值为1,表示该点Px 为从背景到身体的过渡点,若fx值为2,表示该点Px 为从身体到背景的过渡点;
c、将360个点中对应的f值为1的点整理为一个序列l1,l2,……,lm1,其中m1为f值为1的点的个数,该序列中元素的值为其所对应的点在p序列中的编号,将360个点中对应的f值为
2的点整理为一个序列 其中m2表示值为2的点的数目;
d、设置数列angle1,angle2,……,anglem,其中anglei=l`i-li,i∈[1,m],其中anglei即为第i个肤色角度,m即为肤色角度的个数,同理设置数列angle`1,angle`2,…,angle`m,其中angle`i=li-l`i-1,i∈[2,m],其中angle`i即为第i个非肤色角度;然后将angle序列和angle`序列合起来作为第一个特征值,同理,依次在半径为r2,r3,……,rn的圆上做相同的操作,即可得到第二个、第三个一直到第n个特征值;
e、最后将这n个特征值合起来作为该次采集到的图像的体感动作特征值,即局部特征点。
2.根据权利要求1所述的一种基于摄像头的体感识别方法,其中步骤C4中得出的识别结果为某个体感动作。
3.根据权利要求1所述的一种基于摄像头的体感识别方法,步骤C4包含以下几个步骤:
C41、体感识别单元将所述特征向量与体感动作库文件内各个体感动作的特征向量进行肤色角度个数距离的计算,计算式子如下
disangleNum=∑i∈[1,n]丨ci-fci丨2
其中,n为体感动作库中的某个体感动作所具有的特征数,ci及fci分别为这次采集到的图像所具有的第i个特征的肤色角度个数及标准体感动作第i个特征所具有的肤色角度个数,如果disangleNum小于给定的阈值,阈值大于3,小于15,则认为其可能与该体感动作吻合,并将该吻合的体感动作进行记录;
C42、体感识别单元将特征向量与步骤C41筛选出的标准体感动作的特征向量进行距离计算,公式如下:
disangle=∑i∈[1,n]∑j∈[1,m]丨aij-faij丨2
其中n为体感动作库中的C41筛选出的标准体感动作所具有的特征数,m则为其肤色角度个数,aij及faij则分别为这次采集到的图像所具有的及标准体感动作的第i个特征下第j个肤色角度的值;如果disangle小于给定的阈值,阈值大于3,小于15,则认为其可能与该体感动作吻合,并将该吻合的体感动作进行记录;
C43、体感识别单元将特征向量与前两部筛选出的标准体感动作的特征向量进行非肤色角度的匹配,其计算距离的公式如下:
disnonAngle=∑i∈[1,n]∑j∈[1,m]丨naij-fnaij丨2
其中n为体感动作库中该体感动作所具有的特征数,m则为其非肤色角度个数,naij及fnaij分别为图像所具有的及标准体感动作的第i个特征下第j个非肤色角度的值,当所有的非肤色角度的距离都计算完毕后,选取其中距离最短的标准体感动作,将其设置为这次的匹配结果并将其传送给结果合成单元。
4.根据权利要求1所述的一种基于摄像头的体感识别方法,步骤C6包含以下几个步骤:
C61、体感识别单元将识别结果发送至结果合成单元;
C62、结果合成单元将接收到的识别结果所在的感兴趣区域在体感动作原始图像上标示出,并在体感动作原始图像中识别结果所在的感兴趣区域上标注出识别结果的代码;
C63、结果合成单元将体感动作原始图像发送至移动设备的显示屏进行显示。
5.根据权利要求1所述的一种基于摄像头的体感识别方法,其特征在于,所述感兴趣区域的设置方法为:第一次设置感兴趣区域时,默认感兴趣区域覆盖整个采集到的图像,之后每次设置时,会根据体感识别单元反馈的所述识别结果所在的感兴趣区域的位置和大小进行调整。
一种基于摄像头的体感识别系统和方法\n技术领域\n[0001] 本发明涉及一种体感识别系统和方法,具体涉及一种基于摄像头的体感识别系统和方法。\n背景技术\n[0002] 现有的体感识别技术有以下几种:\n[0003] (1)应用于游戏的AIWI手机体感识别技术:应用于游戏的AIWI手机体感识别技术是基于加速传感器(感应重力)、距离感应器及三轴陀螺仪等硬件设备去感应手机在物理空间上的运动,包括运动速度、加速度、轨迹等物理量,来模拟手机持有者的大幅度运动,并基于这些数据设计一些运动类游戏。\n[0004] (2)应用于微软的Kinect及Xbox设备的体感识别技术:应用于微软公司的 kinect及Xbox360等设备的体感识别技术,是通过设备自带的摄像头来采集输入数据,并通过分析输入的图像数据,来进行体感识别活动。\n[0005] 现有的体感识别技术的缺点:\n[0006] (1)应用于游戏的AIWI手机体感识别技术,由于是基于对手机运动轨迹的识别,故其无法把手机的运动和人体体感动作的变化分离,比如模拟弹钢琴;其识别的准确度不高,细微的运动无法识别。\n[0007] (2)应用于微软公司的kinect及Xbox360等设备的体感识别技术,缺点是成本过高,且携带不够灵活,且计算量过大不适合移植于移动端的平台。\n发明内容\n[0008] 本发明的目的是提供一种的基于摄像头的体感识别系统。\n[0009] 本发明的目的还在于提供一种基于摄像头的体感识别方法。\n[0010] 本发明第一方面提供一种基于摄像头的体感识别系统:包括摄像头,所述基于摄像头的体感识别系统还包括识别模块,所述识别模块用于识别摄像头摄取的体感动作的类别。\n[0011] 基于摄像头的体感识别系统还包括用于显示识别模块传来的识别结果的显示模块。\n[0012] 识别模块包括感兴趣区域设定单元、体感识别单元,感兴趣区域设定单元经过体感识别单元接至显示模块。\n[0013] 识别模块还包括结果合成单元,感兴趣区域设定单元经过体感识别单元、合成单元接至显示模块。\n[0014] 本发明的另一方面提供一种基于摄像头的体感识别方法,包括以下步骤:\n[0015] A、启动摄像头;\n[0016] B、摄像头摄取体感动作原始图像,并将体感动作原始图像传给识别模块;\n[0017] C、识别模块将体感动作原始图像与体感动作库文件进行匹配,得出识别结果,并将识别结果显示在显示模块。\n[0018] 所述步骤B为:\n[0019] 摄像头摄取体感动作原始图像,并将摄取的体感动作原始图像传递给感兴趣区域设定单元。\n[0020] 步骤C包含以下几个步骤:\n[0021] C1、感兴趣区域设定单元将体感动作原始图像位于感兴趣区域内的部分裁剪,并将裁剪的图像传递给体感识别单元;\n[0022] C2、体感识别单元将从感兴趣区域设定单元接收到的图像进行皮肤色度检测和局部特征点提取;\n[0023] C3、体感识别单元将提取到的局部特征点通过描述子转化为特征向量;\n[0024] C4、体感识别单元将所述特征向量与体感动作库文件内的各个体感动作的特征向量进行匹配,得出识别结果;\n[0025] C5、体感识别单元将所述识别结果所在的感兴趣区域的位置和大小反馈至感兴趣区域设定单元;\n[0026] C6、体感识别单元将识别结果发送至显示模块进行显示。\n[0027] 其中步骤C4中得出的识别结果为某个体感动作。\n[0028] 步骤C4包含以下几个步骤:\n[0029] C41、体感识别单元将所述特征向量与体感动作库文件内各个体感动作的特征向量进行肤色角度个数距离的计算,计算式子如下\n[0030] disangleNum=∑i∈[1,n]丨ci-fci丨2\n[0031] 其中,n为体感动作库中的某个体感动作所具有的特征数,ci及fci分别为这次采集到的图像所具有的第i个特征的肤色角度个数及该标准体感动作第i个特征所具有的肤色角度个数,如果disangleNum小于给定的阈值,阈值大于3,小于15,则认为其可能与该体感动作吻合,并将该吻合的体感动作进行记录; C42、体感识别单元将特征向量与步骤C41筛选出的标准体感动作的特征向量进行距离计算,公式如下:\n[0032] disangle=∑i∈[1,n]∑j∈[1,m]丨aij-faij丨2\n[0033] 其中n为体感动作库中的该体感动作所具有的特征数,m则为其肤色角度个数,aij及faij则分别为这次采集到的图像所具有的及标准体感动作的第i个特征下第j个肤色角度的值。如果disangle小于给定的阈值,阈值大于3,小于15,则认为其可能与该体感动作吻合,并将该吻合的体感动作进行记录;\n[0034] C43、体感识别单元将特征向量与前两部筛选出的标准体感动作的特征向量进行非肤色角度的匹配,其计算距离的公式如下:\n[0035] disnonAngle=∑i∈[1,n]∑j∈[1,m]丨naij-fnaij丨2\n[0036] 其中n为体感动作库中该体感动作所具有的特征数,m则为其非肤色角度个数,naij及fnaij分别为图像所具有的及标准体感动作的第i个特征下第j个非肤色角度的值。当所有的非肤色角度的距离都计算完毕后,选取其中距离最短的标准体感动作,将其设置为这次的匹配结果并将其传送给结果合成单元。步骤C6包含以下几个步骤:\n[0037] C61、体感识别单元将识别结果发送至结果合成单元;\n[0038] C62、结果合成单元将接收到的识别结果所在的感兴趣区域在体感动作原始图像上标示出,并在体感动作原始图像中识别结果所在的感兴趣区域上标注出识别结果的代码;\n[0039] C63、结果合成单元将体感动作原始图像发送至移动设备的显示屏进行显示。所述感兴趣区域的设置方法为:第一次设置感兴趣区域时,默认感兴趣区域覆盖整个采集到的图像,之后每次设置时,会根据体感识别单元反馈的所述识别结果所在的感兴趣区域的位置和大小进行调整。\n[0040] 所述局部特征点提取的方法为:\n[0041] A、通过肤色检测后,体感特征识别模块会将接收到的图像进行蒙版处理;\n[0042] B、以源图像的中心为圆心做n个同心圆,n即为特征数,n大于3,小于7,最大的同心圆半径为圆心到源图像边界的距离rm,n个同心圆的半径依次为, r1,r2,……,rn,且满足此时在以r1为半径的圆上,等距的寻找360个点,标记为p1,\np2,……,p360,其值为该点所在位置的像素的灰度值,同时设置数列f1,f2,……,f360来表示这360个点的特征,其中\n[0043]\n[0044] s.t.i∈[2,360]\n[0045] 另,\n[0046]\n[0047] 对于任意点Px,若其fx值为1,表示该点Px 为从背景到身体的过渡点,若fx值为2,表示该点Px 为从身体到背景的过渡点;\n[0048] C、将360个点中对应的f值为1的点整理为一个序列l1,l2,……,lm1,其中m1为f值为\n1的点的个数,该序列中元素的值为其所对应的点在p序列中的编号,将360个点中对应的f值为2的点整理为一个序列 其中m2表示值为2的点的数目;\n[0049] D、设置数列angle1,angle2,……,anglem,,其中 i∈[1,m],其中 anglei即为第i个肤色角度,m即为肤色角度的个数,同理设置数列\n其中 其中 即为第 i个非肤色角度。然后将angle序列\n和angle`序列合起来作为第一个特征值,同理,依次在半径为r2,r3,……,rn的圆上做相同的操作,即可得到第二个、第三个一直到第n个特征值;\n[0050] E、最后将这n个特征值合起来作为该次采集到的图像的体感动作特征值,即局部特征点。\n[0051] 所述皮肤色度检测的方法为:\n[0052] A、将图像首先通过如下公式从rgb格式转化为YCbCr格式,\n[0053] Y=(0.299*R+0.587*G+0.114*B)\n[0054] Cb=((B-Y)*0.564+128)\n[0055] Cr=((R-y)*0.713+128),其中R,G,B分别表示像素的红,绿,蓝三个色度的值,对某一个像素点,如果它属于集合{(Y,Cb,Cr)丨Cb∈[129,78],Cr∈ [134,172]},则认为它是皮肤像素点;\n[0056] B、将图像的皮肤像素点提取完后,对图像进行降噪处理;\n[0057] C、对于任意点(X,Y),根据以下公式判断该点是否为皮肤:\n[0058] t(x,y)=(Not t(x-1,Y)AND Not t(X+1,y))OR(Not t(x,y-1)AND(x,y+1))。\n[0059] 本发明的技术方案中简单的体感动作识别算法计算量小,适合于难以提供大计算量的移动终端设备。\n[0060] 与“应用于游戏的AIWI手机体感识别技术”相比,本发明能够识别的范围更广,能够实现将人体的运动与手机的运动相分离,可应用与手势的识别,而“应用于游戏的AIWI手机体感识别技术”无法做到。\n[0061] 与“应用于微软公司的kinect及Xbox360等设备的体感识别技术”相比,本发明无需购买额外的设备,成本更低,且只要带着自己的手机即可实现“体感识别”的应用,携带非常方便。\n附图说明\n[0062] 图1为本发明实施例提供的一种基于摄像头的体感识别系统的框图。\n具体实施方式\n[0063] 下面通过具体实施例对本发明的技术方案进行详细说明。\n[0064] 实施例1\n[0065] 如图1所示,本实施例第一方面提供一种基于摄像头的体感识别系统:包括摄像头,所述基于摄像头的体感识别系统还包括识别模块,所述识别模块用于识别摄像头摄取的体感动作的类别。\n[0066] 基于摄像头的体感识别系统还包括用于显示识别模块传来的识别结果的显示模块。\n[0067] 识别模块包括感兴趣区域设定单元、体感识别单元,感兴趣区域设定单元经过体感识别单元接至显示模块。\n[0068] 识别模块还包括结果合成单元,感兴趣区域设定单元经过体感识别单元、合成单元接至显示模块。\n[0069] 本实施例另一方面提供一种基于摄像头的体感识别方法,包括以下步骤:\n[0070] A、启动摄像头;\n[0071] B、摄像头摄取体感动作原始图像,并将体感动作原始图像传给识别模块;\n[0072] C、识别模块将体感动作原始图像与体感动作库文件进行匹配,得出识别结果,并将识别结果显示在显示模块。\n[0073] 所述步骤B为:\n[0074] 摄像头摄取体感动作原始图像,并将摄取的体感动作原始图像传递给感兴趣区域设定单元。\n[0075] 步骤C包含以下几个步骤:\n[0076] C1、感兴趣区域设定单元将体感动作原始图像位于感兴趣区域内的部分裁剪,并将裁剪的图像传递给体感识别单元;\n[0077] C2、体感识别单元将从感兴趣区域设定单元接收到的图像进行皮肤色度检测和局部特征点提取;\n[0078] C3、体感识别单元将提取到的局部特征点通过描述子转化为特征向量;\n[0079] C4、体感识别单元将所述特征向量与体感动作库文件内的各个体感动作的特征向量进行匹配,得出识别结果;\n[0080] C5、体感识别单元将所述识别结果所在的感兴趣区域的位置和大小反馈至感兴趣区域设定单元;\n[0081] C6、体感识别单元将识别结果发送至显示模块进行显示。\n[0082] 其中步骤C4中得出的识别结果为某个体感动作。\n[0083] 步骤C4包含以下几个步骤:\n[0084] C41、体感识别单元将所述特征向量与体感动作库文件内各个体感动作的特征向量进行肤色角度个数距离的计算,计算式子如下\n[0085] disangleNum=∑i∈[1,n]丨ci-fci丨2\n[0086] 其中,n为体感动作库中的某个体感动作所具有的特征数,ci及fci分别为这次采集到的图像所具有的第i个特征的肤色角度个数及该标准体感动作第i个特征所具有的肤色角度个数,如果disangleNum小于给定的阈值,阈值大于3,小于15,则认为其可能与该体感动作吻合,并将该吻合的体感动作进行记录; C42、体感识别单元将特征向量与步骤C41筛选出的标准体感动作的特征向量进行距离计算,公式如下:\n[0087] disangle=∑i∈[1,n]∑j∈[1,m]丨aij-faij丨2\n[0088] 其中n为体感动作库中的该体感动作所具有的特征数,m则为其肤色角度个数,aij及faij则分别为这次采集到的图像所具有的及标准体感动作的第i个特征下第j个肤色角度的值。如果disangle小于给定的阈值,阈值大于3,小于15,则认为其可能与该体感动作吻合,并将该吻合的体感动作进行记录;\n[0089] C43、体感识别单元将特征向量与前两部筛选出的标准体感动作的特征向量进行非肤色角度的匹配,其计算距离的公式如下:\n[0090] disnonAngle=∑i∈[1,n]∑j∈[1,m]丨naij-fnaij丨2\n[0091] 其中n为体感动作库中该体感动作所具有的特征数,m则为其非肤色角度个数,naij及fnaij分别为图像所具有的及标准体感动作的第i个特征下第j个非肤色角度的值。当所有的非肤色角度的距离都计算完毕后,选取其中距离最短的标准体感动作,将其设置为这次的匹配结果并将其传送给结果合成单元。步骤C6包含以下几个步骤:\n[0092] C61、体感识别单元将识别结果发送至结果合成单元;\n[0093] C62、结果合成单元将接收到的识别结果所在的感兴趣区域在体感动作原始图像上标示出,并在体感动作原始图像中识别结果所在的感兴趣区域上标注出识别结果的代码;\n[0094] C63、结果合成单元将体感动作原始图像发送至移动设备的显示屏进行显示。所述感兴趣区域的设置方法为:第一次设置感兴趣区域时,默认感兴趣区域覆盖整个采集到的图像,之后每次设置时,会根据体感识别单元反馈的所述识别结果所在的感兴趣区域的位置和大小进行调整。\n[0095] 所述局部特征点提取的方法为:\n[0096] A、通过肤色检测后,体感特征识别模块会将接收到的图像进行蒙版处理;\n[0097] B、以源图像的中心为圆心做n个同心圆,n即为特征数,n大于3,小于7,最大的同心圆半径为圆心到源图像边界的距离rm,n个同心圆的半径依次为, r1,r2,……,rn,且满足此时在以r1为半径的圆上,等距的寻找360个点,标记为p1,\np2,……,p360,其值为该点所在位置的像素的灰度值,同时设置数列f1,f2,……,f360来表示这360个点的特征,其中\n[0098]\n[0099] s.t.i∈[2,360]\n[0100] 另,\n[0101]\n[0102] 对于任意点Px,若其fx值为1,表示该点Px 为从背景到身体的过渡点,若fx值为2,表示该点Px 为从身体到背景的过渡点;\n[0103] C、将360个点中对应的f值为1的点整理为一个序列l1,l2,……,lm1,其中m1为f值为\n1的点的个数,该序列中元素的值为其所对应的点在p序列中的编号,将360个点中对应的f值为2的点整理为一个序列 其中m2表示值为2的点的数目;\n[0104] D、设置数列angle1,angle2,……,anglem,,其中 其中\nanglei即为第i个肤色角度,m即为肤色角度的个数,同理设置数列\n其中 其中 即为第 i个非肤色角度。然后将angle序列\n和angle`序列合起来作为第一个特征值,同理,依次在半径为r2,r3,……,rn的圆上做相同的操作,即可得到第二个、第三个一直到第n个特征值;\n[0105] E、最后将这n个特征值合起来作为该次采集到的图像的体感动作特征值,即局部特征点。\n[0106] 所述皮肤色度检测的方法为:\n[0107] A、将图像首先通过如下公式从rgb格式转化为YCbCr格式,\n[0108] Y=(0.299*R+0.587*G+0.114*B)\n[0109] Cb=((B-Y)*0.564+128)\n[0110] Cr=((R-y)*0.713+128),其中R,G,B分别表示像素的红,绿,蓝三个色度的值,对某一个像素点,如果它属于集合{(Y,Cb,Cr)丨Cb∈[129,78],Cr∈ [134,172]},则认为它是皮肤像素点;\n[0111] B、将图像的皮肤像素点提取完后,对图像进行降噪处理;\n[0112] C、对于任意点(X,Y),根据以下公式判断该点是否为皮肤:\n[0113] t(x,y)=(Not t(x-1,Y)AND Not t(X+1,y))OR(Not t(x,y-1)AND(x,y+1))。\n[0114] 所述基于摄像头的体感识别系统还包括计时器,所述计时器用于设定摄像头的拍摄间隔时间。系统启动计时器,并向其传送开始计时信号。0.3秒(可调整的参数,视硬件设备的运算能力而定,本次试验中设为0.3秒)后,计时器会向移动设备的摄像头传递“拍摄”信号,并同时重置自己计时器内部的时间,等待下次所设定的时间结束后被触发。\n[0115] 当摄像头执行完拍摄功能后(拍摄的是一张图片),会将所采集到的原始图像帧传递给感兴趣区域(ROI,Region Of Interesting)设定单元(主要作用是筛选感兴趣区域)。\n在本系统中,第一次设置兴趣区域时,默认其覆盖整个采集到的图像,之后每次设置时,都会根据体感识别单元所传递的反馈信息 (体感动作原始图像所在的感兴趣区域)进行调整。感兴趣区域设定单元会将感兴趣区域内的图像进行裁剪并传递给体感识别单元。体感识别单元会将接收到的图像进行局部特征点提取,并通过特征描述子(descriptor)将其转化为特征向量,并与体感动作库进行匹配,通过计算与各体感动作原始图像之间的向量距离后,选取距离最短的体感动作作为此次识别的结果(识别结果是某个体感动作)。体感识别单元识别完毕后,会将此次所识别的体感动作所在的感兴趣区域反馈给感兴趣区域设定模块,方便其对感兴趣区域的修正,同时也会将结果(某个体感动作)发送给结果合成模块。\n结果合成模块会将接收到的体感动作所在感兴趣区域用红色矩形框在原始图像帧上圈出,并在感兴趣区域上标注出这次识别的结果为哪种体感动作,最后将处理完的合成结果发送至移动设备的显示屏进行显示。\n[0116] 当模块第一次被调用时,会载入来自服务器的体感动作库,对其进行分析后,从中读取体感动作的个数及各体感动作的特征(高维向量)。随后,当每次接收到来自感兴趣区域设定单元所传来的图像时,会对该图像进行皮肤色度检测及姿势特征提取,同时也会将包含体感动作的感兴趣区域的位置及大小信息检测出来,并反馈给感兴趣区域设定单元。\n[0117] 本发明能有效解决体感系统如何更有效的与android和IOS平台融合的问题。