本发明涉及互联网技术领域,尤其涉及一种体感动作识别方法、装置以及系统。
背景技术:
体感游戏(英文:motionsensinggame)顾名思义:用身体去感受的电子游戏。突破以往单纯以手柄按键输入的操作方式,体感游戏是一种用户通过肢体动作变化来进行(操作)的新型电子游戏。
目前的体感游戏方式通常都需要专门的体感游戏机,通过深度摄像头采集画面中用户的肢体动作变化从而识别用户的动作,无论是游戏终端还是深度摄像头均非常的昂贵,给体感游戏的推广带来了极大的限制。
技术实现要素:
有鉴于此,本发明实施例提供一种体感动作识别方法、装置以及系统,可通过获取移动终端的运动传感数据,识别用户通过移动终端执行的体感动作。
为了解决上述技术问题,本发明实施例提供了一种体感动作识别方法,所述方法包括:
获取移动终端的运动传感数据,所述运动传感数据包括加速度传感数据或陀螺仪传感数据;
根据所述移动终端的运动传感数据获取用户动作特征数据;
将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
相应地,本发明实施例还提供了一种体感动作识别装置,包括:
传感数据获取模块,用于获取移动终端的运动传感数据,所述运动传感数据包括加速度传感数据或陀螺仪传感数据;
动作特征获取模块,用于根据所述移动终端的运动传感数据获取用户动作特征数据;
动作识别模块,用于将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
相应地,本发明实施例还提供了一种移动终端,所述移动终端包括:
运动传感器,用于采集移动终端的运动传感数据,其中所述运动传感数据包括加速度传感数据或陀螺仪传感数据;
通信模块,用于将所述运动传感数据发送至体感动作识别装置,以使所述体感动作识别装置根据所述移动终端的运动传感数据获取用户动作特征数据,并将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
相应地,本发明实施例还提供了一种体感动作识别系统,包括体感动作识别装置和至少一个移动终端,其中:
所述移动终端用于通过内置的传感器采集移动终端的运动传感数据,并将所述运动传感数据发送至所述体感动作识别装置,其中所述运动传感数据包括加速度传感数据或陀螺仪传感数据;
所述体感动作识别装置用于接收所述移动终端发送的所述运动传感数据,根据所述移动终端的运动传感数据获取用户动作特征数据;将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
本实施例中的体感动作识别装置通过获取移动终端的运动传感数据,将从中提取得到的用户动作特征数据与已知动作特征数据进行比较,从而将相似的已知动作特征数据对应的已知动作确定为移动终端当前执行的体感动作,从而可以通过移动终端配合体感动作识别装置实现各类体感识别反馈和游戏过程,极大的降低了体感应用的体验门槛,让更多的用户可以感受体感应用带来的方便和体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种体感动作识别系统的架构示意图;
图2是在图1所示体感动作识别系统架构下的体感动作识别方法的流程示意图;
图3是本发明实施例中移动终端执行的体感动作的示意图;
图4是本发明实施例中移动终端执行的另一体感动作的示意图;
图5是本发明实施例中移动终端执行的另一体感动作的示意图;
图6是本发明另一实施例中的体感动作识别系统的架构示意图;
图7是在图6所示体感动作识别系统架构下的体感动作识别方法的流程示意图;
图8是本发明实施例中的一种体感动作识别装置的结构示意图;
图9是本发明实施例中的传感数据获取模块的结构示意图;
图10是本发明实施例中的动作识别模块的结构示意图;
图11是本发明实施例中体感动作识别装置的一个硬件实体结构示意图;
图12是本发明实施例中的一种移动终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例中的一种体感动作识别系统的架构示意图,如图所示包括体感动作识别装置和至少一个移动终端,其中:
所述移动终端用于通过内置的传感器采集移动终端的运动传感数据,并将所述运动传感数据发送至所述体感动作识别装置,其中所述运动传感数据包括加速度传感数据或陀螺仪传感数据。
本发明实施例中提及的移动终端可以包括手机、平板电脑、电子阅读器、穿戴式智能设备等,本实施例中的体感动作识别装置可以实现在个人电脑、平板电脑、电子阅读器、笔记本电脑、车载终端等用户终端中,移动终端与体感动作识别装置之间可以建立无线数据传输通道用以发送所述移动终端的运动传感数据,所述无线数据传输通道可以例如wifi、蓝牙或移动通信网络(例如2/3/4/5g)。
所述体感动作识别装置用于接收所述移动终端发送的所述运动传感数据,根据所述移动终端的运动传感数据获取用户动作特征数据;将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
以下结合图2详细介绍在图1所示体感动作识别系统架构下的体感动作识别方法流程:
s201,移动终端通过内置传感器采集移动终端的运动传感数据,其中所述运动传感数据包括加速度传感数据或陀螺仪传感数据。
具体实现中,所述内置传感器可以包括加速度传感器或陀螺仪,还可以包括距离传感器、方向传感器等,可以获取移动终端相应的运动传感数据。
在可选实施例中,所述采集到的移动终端的运动传感数据可以包括至少一个时间窗内采集到的多组运动传感数据,即移动终端可以以时间窗为单位采集在该时间窗内移动终端的运动传感数据,例如在宽度为0.5秒的一个时间窗内采集到以下加速度数据:
(x1,y1,z1),
(x2,y2,z2),
(x3,y3,z3),
.
.
.
.
(x50,y50,z50),其中xn,yn,zn是传感器在相互垂直的三个指定方向上的加速度值。
s202,移动终端对所述运动传感数据进行滤波去噪处理。
由于加速度传感器或陀螺仪传感器获取到的原始运动传感数据往往存在一些抖动和噪声,因此在可选实施例中,移动终端可以首先对原始的传感器数据进行处理,采用低通滤波等方式进行滤波去噪处理,这样能够提高体感动作识别装置后续的动作相似度的判定精度,同时也能减小网络流量。
需要指出的是,该步骤为可选,即移动终端也可以将传感器获取到的原始运动传感数据发送至体感动作识别装置。
s203,移动终端将所述结果滤波去噪处理的运动传感数据发送至体感动作识别装置。
具体实现中,移动终端可以通过建立与体感动作识别装置之间的无线数据传输通道,从而通过所述无线数据传输通道接收所述移动终端发送的运动传感数据。具体的,移动终端中可以运行一个进程与体感动作识别装置建立socket连接,采用tcp(transmissioncontrolprotocol,传输控制协议)协议进行数据通信。
在可选实施例中,建立上述无线数据传输通道的方式可以为:移动终端通过扫描体感动作识别装置在所在终端屏幕上显示的二维码的方式获取体感动作识别装置的网络信息,并根据获取到的体感动作识别装置的网络信息将移动终端的网络发送给体感动作识别装置从而建立双方的无线数据传输通道。在其他可选实施方式中,移动终端或或体感动作识别装置可以通过网络信息广播搜索的方式获取另一方的网络信息,还可以为通过中间网络服务器的中转获取另一方的网络信息,从而根据另一方的网络信息向另一方发送自身的网络信息,从而建立双方的无线数据传输通道。
进而在可选实施例中,移动终端向体感动作识别装置发送的运动传感数据可以携带该移动终端的终端标识,用于区别于其他移动终端发送的运动传感数据,这样如图1所示有不止一个移动终端连接至体感动作识别装置,体感动作识别装置就可以根据运动传感数据携带的终端标识分别进行处理。
s204,体感动作识别装置根据所述移动终端的运动传感数据获取用户动作特征数据。
在一种实施方式中,体感动作识别装置根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,获取所述移动终端在各时间窗内的动作特征向量,从而得到动作特征向量集。
所述动作特征向量可以包括多种用来表征移动终端在该时间窗内的执行的动作的特征,例如可以包括各个传感数据分量的均值、标准差或各传感数据分量之间的相关系数,以前文采集到的加速度数据为例,x轴上加速度分量的均值的计算方式可以为:
标准差的计算方式可以为:
不同传感数据分量之间的相关度的计算方式可以为:
以此类推可以得到10~20种不同的动作特征,这样我们在单个时间窗内采集到的移动终端的运动传感数据根据不同的运动特征就能得到一个n维的特征向量(λ1,λ2,λ3,...,λn),其中n为使用的运动特征的种类数。根据一个时间窗内的运动传感数据可以得到一个动作特征向量,根据多个时间窗的运动传感数据得到的动作特征向量就能组成一个特征向量集,可以理解为一个特征值的矩阵m*n,m为采样的时间窗个数,n为特征值数
进而可选的,为了降低后续的比较运算复杂度,体感动作识别装置还可以对得到的上述个n维的特征向量(λ1,λ2,λ3,...,λn)进行pca降维处理,从而将特征向量集的维度降到4-6左右,经过降维后的特征向量集仍能保存动作90%以上的特征。
在另一种实施方式中,体感动作识别装置根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,获取移动终端在各时间窗内的运动轨迹数据。
即体感动作识别装置根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算移动终端在时间窗内的相对位置的变化,从而得到移动终端在各时间窗内的运动轨迹数据。例如图3所示移动终端执行的体感动作,体感动作识别装置可以根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算得到移动终端的运动轨迹为来回的弧形轨迹;而如图4所示移动终端执行的体感动作,体感动作识别装置可以根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算得到移动终端的运动轨迹为一个圆形轨迹;而如图5所示移动终端执行的体感动作,体感动作识别装置可以根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算得到移动终端的运动轨迹为一个z形轨迹。而在可选实施例中,体感动作识别装置可以使用至少一个运动矢量组成的运动矢量集合代表移动终端在各时间窗内的运动轨迹数据,其中的每个运动矢量可以表征移动终端在各时间窗内的不同采集时间点上的运动轨迹的相对方向。
在可选实施例中,所述时间窗的时长可以为预设的定值,例如0.5~1秒,也可以为体感动作识别装置通知所述移动终端,移动终端按照体感动作识别装置的要求提供时间窗内移动终端的运动传感数据。而体感动作识别装置在进行识别过程中基于的运动传感数据中对应的时间窗的数目,可以是体感动作识别装置与移动终端预先约定的额定数目,例如3-5个,也可以是体感动作识别装置根据当前需要用户执行的体感动作对应的时间窗的数目决定的,例如体感动作识别装置当前提示用户执行一个较为简单的挥手动作(如图3所示),该挥手动作的标准动作所需的时间窗数目是2或3,那么体感动作识别装置就可以基于当前获取到的2-3个时间窗内移动终端的运动传感数据进行后续的体感动作识别,而若体感动作识别装置当前提示用户执行一个较为复杂的组合动作(例如先执行图4所示的画圈动作,再执行一次图5所示的z型挥动),这一组动作对应的标准动作所需的时间窗的数目是8-10,那么体感动作识别装置就可以基于当前获取到的8-10个时间窗内移动终端的运动传感数据进行后续的体感动作识别。
s205,体感动作识别装置将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
具体实现中,体感动作识别装置可以使用距离度量法或相似性度量法计算当前获取的用户动作特征数据与预设的至少一个已知动作特征数据之间的相似度,进而将相似度最高的已知动作特征数据对应的已知动作作为移动终端当前执行的体感动作。
若所述用户动作特征数据为获取所述移动终端在至少一个时间窗内的动作特征向量组成的动作特征向量集,则所述预设的至少一个已知动作特征数据包括至少一个已知动作的动作特征向量集,体感动作识别装置将当前获取到的动作特征向量集与预设的至少一个已知动作特征向量集进行比较,从而将与当前获取到的动作特征向量集之间相似度最高的已知动作特征向量集对应的已知动作确定为移动终端当前执行的体感动作。
两个特征向量之间的距离可以通过欧式距离算法、明科夫斯基距离算法等算法计算得到,例如:
例如设n维的特征向量x=(x1,x2,...,xn),y=(y1,y2,...,yn),欧式距离的计算如下:
例如设n维的特征向量x=(x1,x2,...,xn),y=(y1,y2,...,yn),明科夫斯基距离的计算可以如下:
计算出每个维度上判定动作和标准动作特征向量的距离并进行累加可以得到两者之间的相似度。
而两个特征向量之间的相似度可以通过余弦相似度算法求得。例如设n维的特征向量a=(a1,a2,...,an),b=(b1,b2,...,bn),两个特征向量之间的余弦相似度算法可以如下:
若所述用户动作特征数据为获取所述移动终端在至少一个时间窗内的运动轨迹数据,则所述预设的至少一个已知动作特征数据包括至少一个已知动作的运动轨迹数据,体感动作识别装置将当前获取到的运动轨迹数据与预设的至少一个已知动作的运动轨迹数据进行比较,从而将与当前获取到的运动轨迹数据之间相似度最高的已知动作的运动轨迹数据对应的已知动作确定为移动终端当前执行的体感动作。
所述运动轨迹数据之间的相似度,具体可以根据两个运动轨迹的图形相似度或形状相似度作为两个运动轨迹数据之间的相似度。而若使用至少一个运动矢量组成的运动矢量集合代表移动终端在各时间窗内的运动轨迹数据,则可以将当前获取到的移动终端的运动矢量集合与预设的至少一个已知动作的运动轨迹数据对应运动矢量集合之间的距离或相似度作为当前获取到的移动终端的用户动作特征数据与已知动作特征数据之间的相似度,具体可以参考上述提及的欧式距离算法、明科夫斯基距离算法或余弦相似度算法。
而在可选实施例中,体感动作识别装置还可以根据预设的至少一个已知动作特征向量集以及多个训练动作特征向量集训练得到动作特征分类器,进而将当前获取到的动作特征向量集输入所述动作特征分类器,从而将与当前获取到的动作特征向量集之间相似度最高的已知动作特征向量集对应的已知动作确定为移动终端当前执行的体感动作。所述动作特征分类器可以例如支持向量机(svm,supportvectormachine)分类器、神经网络分类器等,通过输入一定数量的各个已知动作对应的训练动作特征向量集,即可以训练得到分类效果达到要求的动作特征分类器。在通过动作特征分类器在所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作后,可以再根据上述使用距离度量法或相似性度量法等计算方式获取当前的体感动作的用户动作特征数据与对应的已知动作的已知动作特征数据之间的相似度,不再需要与其他已知动作的已知动作特征数据分别进行比较,从而极大幅度的减少了体感动作识别装置的计算量。
s206,体感动作识别装置输出所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度。
具体的,体感动作识别装置可以根据所述已知动作对用户通过移动终端输入的体感动作进行动作反馈,例如结合当前的游戏进程场景进行游戏动作反馈、动作评分或动作记录等,其中可以根据所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度进行反馈。示例性的如体感跳舞游戏,在体感动作识别装置通过所在终端向用户播放跳舞游戏标准动作的视频时,接收用户通过移动终端执行的动作的用户动作特征数据并识别得到对应的已知动作,若识别得到的已知动作与当前播放的标准动作对应的已知动作不同,则可以向用户提示体感动作未执行正确的反馈,若识别得到的已知动作与当前播放的标准动作对应的已知动作相同,则可以根据所述体感动作与对应的已知动作之间的相似度对用户当前执行的体感动作进行评价或评分,如根据相似度的数值进行评分,相似度90%则评分为90分,相似度60%则评分为60分,或相似度达到相应阈值则给出对应的评价等级,例如相似度90%则为excellent,相似度80%则为good,等等。
进而在可选实施例中,体感动作识别装置还可以将所述移动终端当前执行的体感动作对应的已知动作的动作标识与所述移动终端的终端标识关联输出。用于区别于根据不同移动终端发送的运动传感数据识别得到的体感动作,这样如图1所示有不止一个移动终端连接至体感动作识别装置,体感动作识别装置就可以根据运动传感数据携带的终端标识分别进行处理得到不同移动终端执行的体感动作,这时也就可以将其与对应移动终端的终端标识关联输出。
本实施例中的体感动作识别装置通过获取移动终端的运动传感数据,将从中提取得到的用户动作特征数据与已知动作特征数据进行比较,从而将相似的已知动作特征数据对应的已知动作确定为移动终端当前执行的体感动作,从而可以通过移动终端配合体感动作识别装置实现各类体感识别反馈和游戏过程,极大的降低了体感应用的体验门槛,让更多的用户可以感受体感应用带来的方便和体验。
图6是本发明另一实施例中的体感动作识别系统的架构示意图,如图所示本实施例中包括至少两个移动终端,本发明的体感动作识别装置运行于其中的一个移动终端1中,而移动终端1自身可以同时作为用户手持输入体感动作的移动终端和作为识别用户通过移动终端进行的体感动作的体感动作识别装置,同时还可以通过获取其他移动终端(例如图6中所示的移动终端2)的运动传感数据并进行识别从而识别用户通过其他移动终端进行的体感动作,而体感动作识别装置识别其他移动终端进行的体感动作的逻辑与前文结合图1和图2中所示的实现逻辑类似,本实施例中不再赘述,本实施例仅对体感动作识别装置识别自身所在移动终端进行的体感动作的具体过程进行描述,包括如图7所示的流程:
s701,体感动作识别装置获取移动终端的运动传感数据,所述运动传感数据包括加速度传感数据或陀螺仪传感数据。
本实施例中,为移动终端上运行的体感动作识别装置获取自身所在的移动终端的运动传感数据,所述运动传感数据为移动终端内置的运动传感器,所述内置传感器可以包括加速度传感器或陀螺仪,还可以包括距离传感器、方向传感器等,可以获取移动终端相应的运动传感数据。所述体感动作识别装置可以通过调用移动终端的传感器硬件相关api(applicationprogramminginterface,应用程序编程接口)接口获取到运动传感器采集到的运动传感数据。
在可选实施例中,所述采集到的移动终端的运动传感数据可以包括至少一个时间窗内采集到的多组运动传感数据,即移动终端可以以时间窗为单位采集在该时间窗内移动终端的运动传感数据。
在可选实施例中,由于加速度传感器或陀螺仪传感器获取到的原始运动传感数据往往存在一些抖动和噪声,因此在可选实施例中,体感动作识别装置可以对原始的传感器数据进行处理,如采用低通滤波等方式进行滤波去噪处理,这样能够提高体感动作识别装置后续的动作相似度的判定精度。
进而在可选实施例中,体感动作识别装置在获取自身所在移动终端的运动传感数据时可以携带该移动终端的终端标识,用于区别于其他移动终端发送的运动传感数据,这样如图6所示有其他移动终端连接至体感动作识别装置所在的移动终端,体感动作识别装置就可以根据运动传感数据携带的终端标识分别进行处理自身所在移动终端的运动传感数据和其他移动终端的运动传感数据。
s702,体感动作识别装置根据所述移动终端的运动传感数据获取用户动作特征数据。
s703,体感动作识别装置将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较。
s704,体感动作识别装置将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
本实施例中的步骤s702-s704与前文实施例中的s204-s205相同,即本实施例中的体感动作识别装置根据所述移动终端的运动传感数据识别得到移动终端当前执行的体感动作的方式与前文实施例相同,本实施例中不再赘述。
s705,体感动作识别装置输出所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度。
具体实现中,体感动作识别装置可以在所在移动终端输出所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度,还可以通过移动终端与其他终端的通信,将所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度发送至其他终端,例如数字电视或笔记本电脑上为用户当前作出的体感动作进行反馈。
本实施例中的体感动作识别装置通过获取移动终端的运动传感数据,将从中提取得到的用户动作特征数据与已知动作特征数据进行比较,从而将相似的已知动作特征数据对应的已知动作确定为移动终端当前执行的体感动作,从而可以通过移动终端配合体感动作识别装置实现各类体感识别反馈和游戏过程,极大的降低了体感应用的体验门槛,让更多的用户可以感受体感应用带来的方便和体验。
图8是本发明实施例中的一种体感动作识别装置的结构示意图,如图所示本发明实施例中的体感动作识别装置至少可以包括:
传感数据获取模块810,用于获取移动终端的运动传感数据,所述运动传感数据包括加速度传感数据或陀螺仪传感数据。
具体实现中,所述移动终端的运动传感数据可以为移动终端的内置传感器获取得到的,所述内置传感器可以包括加速度传感器或陀螺仪,还可以包括距离传感器、方向传感器等,可以获取移动终端相应的运动传感数据。
在可选实施例中,所述采集到的移动终端的运动传感数据可以包括至少一个时间窗内采集到的多组运动传感数据,即移动终端可以以时间窗为单位采集在该时间窗内移动终端的运动传感数据。所述移动终端的运动传感数据可以携带该移动终端的终端标识,用于区别于其他移动终端发送的运动传感数据,这样如图1所示有不止一个移动终端连接至体感动作识别装置,体感动作识别装置就可以根据运动传感数据携带的终端标识分别进行处理。
在可选实施例中,体感动作识别装置可以实现在所述移动终端内部,即如图6所示的场景架构中,体感动作识别装置可以通过调用移动终端的传感器硬件相关api(applicationprogramminginterface,应用程序编程接口)接口获取到自身所在移动终端的运动传感器采集到的运动传感数据。
在另一可选实施例中,体感动作识别装置与移动终端分处不同的用户终端,例如图1所示的场景架构中,移动终端与体感动作识别装置之间可以建立无线数据传输通道用以发送所述移动终端的运动传感数据,所述无线数据传输通道可以例如wifi、蓝牙或移动通信网络(例如2/3/4/5g)。
在该实施例中,如图9所示传感数据获取模块810可以进一步包括:
传输通道建立单元811,用于与所述移动终端建立无线数据传输通道;
具体实现中,传输通道建立单元811可以通过建立与移动终端之间的无线数据传输通道,从而通过所述无线数据传输通道接收所述移动终端发送的运动传感数据。具体的,移动终端中可以运行一个进程与体感动作识别装置建立socket连接,采用tcp协议进行数据通信。
在可选实施例中,建立上述无线数据传输通道的方式可以为:移动终端通过扫描体感动作识别装置在所在终端屏幕上显示的二维码的方式获取体感动作识别装置的网络信息,并根据获取到的体感动作识别装置的网络信息将移动终端的网络发送给体感动作识别装置从而建立双方的无线数据传输通道。在其他可选实施方式中,移动终端或或体感动作识别装置可以通过网络信息广播搜索的方式获取另一方的网络信息,还可以为通过中间网络服务器的中转获取另一方的网络信息,从而根据另一方的网络信息向另一方发送自身的网络信息,从而建立双方的无线数据传输通道。
传感数据接收单元812,用于通过所述无线数据传输通道接收所述移动终端发送的运动传感数据。
动作特征获取模块820,用于根据所述移动终端的运动传感数据获取用户动作特征数据。
在一种实施方式中,动作特征获取模块820根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,获取所述移动终端在各时间窗内的动作特征向量,从而得到动作特征向量集。
所述动作特征向量可以包括多种用来表征移动终端在该时间窗内的执行的动作的特征,例如可以包括各个传感数据分量的均值、标准差或各传感数据分量之间的相关系数。
在另一种实施方式中,动作特征获取模块820根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,获取移动终端在各时间窗内的运动轨迹数据。
即动作特征获取模块820根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算移动终端在时间窗内的相对位置的变化,从而得到移动终端在各时间窗内的运动轨迹数据。例如图3所示移动终端执行的体感动作,动作特征获取模块820可以根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算得到移动终端的运动轨迹为来回的弧形轨迹;而如图4所示移动终端执行的体感动作,动作特征获取模块820可以根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算得到移动终端的运动轨迹为一个圆形轨迹;而如图5所示移动终端执行的体感动作,动作特征获取模块820可以根据采集到的所述移动终端在至少一个时间窗内的多组运动传感数据,计算得到移动终端的运动轨迹为一个z形轨迹。而在可选实施例中,动作特征获取模块820可以使用至少一个运动矢量组成的运动矢量集合代表移动终端在各时间窗内的运动轨迹数据,其中的每个运动矢量可以表征移动终端在各时间窗内的不同采集时间点上的运动轨迹的相对方向。
在可选实施例中,所述时间窗的时长可以为预设的定值,例如0.5~1秒,也可以为体感动作识别装置通知所述移动终端,移动终端按照体感动作识别装置的要求提供时间窗内移动终端的运动传感数据。而动作特征获取模块820在进行识别过程中基于的运动传感数据中对应的时间窗的数目,可以是体感动作识别装置与移动终端预先约定的额定数目,例如3-5个,也可以是体感动作识别装置根据当前需要用户执行的体感动作对应的时间窗的数目决定的,例如体感动作识别装置当前提示用户执行一个较为简单的挥手动作(如图3所示),该挥手动作的标准动作所需的时间窗数目是2或3,那么动作特征获取模块820就可以基于当前获取到的2-3个时间窗内移动终端的运动传感数据进行后续的体感动作识别,而若体感动作识别装置当前提示用户执行一个较为复杂的组合动作(例如先执行图4所示的画圈动作,再执行一次图5所示的z型挥动),这一组动作对应的标准动作所需的时间窗的数目是8-10,那么动作特征获取模块820就可以基于当前获取到的8-10个时间窗内移动终端的运动传感数据进行后续的体感动作识别。
动作识别模块830,用于将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
具体实现中,动作识别模块830可以使用距离度量法或相似性度量法计算当前获取的用户动作特征数据与预设的至少一个已知动作特征数据之间的相似度,进而将相似度最高的已知动作特征数据对应的已知动作作为移动终端当前执行的体感动作。
若所述用户动作特征数据为获取所述移动终端在至少一个时间窗内的动作特征向量组成的动作特征向量集,则所述预设的至少一个已知动作特征数据包括至少一个已知动作的动作特征向量集,动作识别模块830将当前获取到的动作特征向量集与预设的至少一个已知动作特征向量集进行比较,从而将与当前获取到的动作特征向量集之间相似度最高的已知动作特征向量集对应的已知动作确定为移动终端当前执行的体感动作。
两个特征向量之间的距离可以通过欧式距离算法、明科夫斯基距离算法等算法计算得到。
若所述用户动作特征数据为获取所述移动终端在至少一个时间窗内的运动轨迹数据,则所述预设的至少一个已知动作特征数据包括至少一个已知动作的运动轨迹数据,动作识别模块830将当前获取到的运动轨迹数据与预设的至少一个已知动作的运动轨迹数据进行比较,从而将与当前获取到的运动轨迹数据之间相似度最高的已知动作的运动轨迹数据对应的已知动作确定为移动终端当前执行的体感动作。
所述运动轨迹数据之间的相似度,具体可以根据两个运动轨迹的图形相似度或形状相似度作为两个运动轨迹数据之间的相似度。而若使用至少一个运动矢量组成的运动矢量集合代表移动终端在各时间窗内的运动轨迹数据,则动作识别模块830可以将当前获取到的移动终端的运动矢量集合与预设的至少一个已知动作的运动轨迹数据对应运动矢量集合之间的距离或相似度作为当前获取到的移动终端的用户动作特征数据与已知动作特征数据之间的相似度,具体可以参考上述提及的欧式距离算法、明科夫斯基距离算法或余弦相似度算法。
而在可选实施例中,动作识别模块830如图10所示进一步还可以包括:
分类器训练单元831,用于根据预设的至少一个已知动作特征向量集以及多个训练动作特征向量集训练得到动作特征分类器。
所述动作特征分类器可以例如支持向量机(svm,supportvectormachine)分类器、神经网络分类器等,分类器训练单元831通过输入一定数量的各个已知动作对应的训练动作特征向量集,即可以训练得到分类效果达到要求的动作特征分类器。
动作识别单元832,用于将当前获取到的动作特征向量集输入所述动作特征分类器,从而将与当前获取到的动作特征向量集之间相似度最高的已知动作特征向量集对应的已知动作确定为移动终端当前执行的体感动作。
在通过动作特征分类器在所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作后,动作识别模块830可以再根据上述使用距离度量法或相似性度量法等计算方式获取当前的体感动作的用户动作特征数据与对应的已知动作的已知动作特征数据之间的相似度,不再需要与其他已知动作的已知动作特征数据分别进行比较,从而极大幅度的减少了动作识别模块830的计算量。
在可选实施例中,体感动作识别装置还可以包括:
动作识别输出模块840,用于输出所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度。
具体的,动作识别输出模块840可以根据所述已知动作对用户通过移动终端输入的体感动作进行动作反馈,例如结合当前的游戏进程场景进行游戏动作反馈、动作评分或动作记录等,其中可以根据所述体感动作对应的已知动作的动作标识以及所述体感动作与对应的已知动作之间的相似度进行反馈。示例性的如体感跳舞游戏,在体感动作识别装置通过所在终端向用户播放跳舞游戏标准动作的视频时,接收用户通过移动终端执行的动作的用户动作特征数据并识别得到对应的已知动作,若识别得到的已知动作与当前播放的标准动作对应的已知动作不同,则动作识别输出模块840可以向用户提示体感动作未执行正确的反馈,若识别得到的已知动作与当前播放的标准动作对应的已知动作相同,则可以根据所述体感动作与对应的已知动作之间的相似度对用户当前执行的体感动作进行评价或评分,如根据相似度的数值进行评分,相似度90%则评分为90分,相似度60%则评分为60分,或相似度达到相应阈值则给出对应的评价等级,例如相似度90%则为excellent,相似度80%则为good,等等。
进而在可选实施例中,动作识别输出模块840还可以将所述移动终端当前执行的体感动作对应的已知动作的动作标识与所述移动终端的终端标识关联输出。用于区别于根据不同移动终端发送的运动传感数据识别得到的体感动作,这样如图1所示有不止一个移动终端连接至体感动作识别装置,体感动作识别装置就可以根据运动传感数据携带的终端标识分别进行处理得到不同移动终端执行的体感动作,这时动作识别输出模块840也就可以将其与对应移动终端的终端标识关联输出。
本实施例中的体感动作识别装置通过获取移动终端的运动传感数据,将从中提取得到的用户动作特征数据与已知动作特征数据进行比较,从而将相似的已知动作特征数据对应的已知动作确定为移动终端当前执行的体感动作,从而可以通过移动终端配合体感动作识别装置实现各类体感识别反馈和游戏过程,极大的降低了体感应用的体验门槛,让更多的用户可以感受体感应用带来的方便和体验。
这里需要指出的是,上述体感动作识别装置可以实现为pc这种电子设备,还可以为如pad,平板电脑,手提电脑这种便携电子设备,不限于这里的描述,可以为实现各单元功能而合并为一实体或各单元功能分体设置的电子设备,体感动作识别装置至少包括用于存储数据的数据库和用于数据处理的处理器,可以包括内置的存储介质或独立设置的存储介质。
其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、中央处理器(cpu,centralprocessingunit)、数字信号处理器(dsp,digitalsingnalprocessor)或可编程逻辑阵列(fpga,field-programmablegatearray)实现;对于存储介质来说,包含操作指令,该操作指令可以为计算机可执行代码,通过所述操作指令来实现上述本发明实施例如图2或7所示的体感动作识别流程中的各个步骤。
体感动作识别装置作为硬件实体的一个示例如图11所示。所述装置包括处理器1101、存储介质1102以及至少一个外部通信接口1103;所述处理器1101、存储介质1102以及通信接口1103均通过总线1104连接。
体感动作识别装置中的处理器1101可以调用存储介质1102中的操作指令执行以下流程:
获取移动终端的运动传感数据,所述运动传感数据包括加速度传感数据或陀螺仪传感数据;
根据所述移动终端的运动传感数据获取用户动作特征数据;
将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
这里需要指出的是:以上涉及体感动作识别装置的描述,与前文体感动作识别方法的描述是类似的,同方法的有益效果描述,不做赘述。对于本发明体感动作识别装置实施例中未披露的技术细节,请参照本发明方法实施例的描述。
相应的,本发明实施例还提供了一种移动终端,主要实现于如图1或图6所示的体感动作识别系统架构,例如为图1中的移动终端1或移动终端2,或图6中的移动终端,4,如图12所示本发明实施例中的移动终端可以包括:
运动传感器1210,用于采集移动终端的运动传感数据,其中所述运动传感数据包括加速度传感数据或陀螺仪传感数据。
具体实现中,所述运动传感器可以包括加速度传感器或陀螺仪,还可以包括距离传感器、方向传感器等,可以获取移动终端相应的运动传感数据。
在可选实施例中,所述采集到的移动终端的运动传感数据可以包括至少一个时间窗内采集到的多组运动传感数据,即移动终端可以以时间窗为单位采集在该时间窗内移动终端的运动传感数据。
通信模块1220,用于将所述运动传感数据发送至体感动作识别装置,以使所述体感动作识别装置根据所述移动终端的运动传感数据获取用户动作特征数据,并将当前获取的用户动作特征数据与预设的至少一个已知动作特征数据进行比较,从而将所述至少一个已知动作特征数据对应的已知动作中确定一个已知动作为移动终端当前执行的体感动作。
具体实现中,通信模块1220可以通过建立与体感动作识别装置之间的无线数据传输通道,从而通过所述无线数据传输通道接收所述移动终端发送的运动传感数据。具体的,移动终端中可以运行一个进程与体感动作识别装置建立socket连接,采用tcp(transmissioncontrolprotocol,传输控制协议)协议进行数据通信。
在可选实施例中,通信模块1220建立上述无线数据传输通道的方式可以为:移动终端通过扫描体感动作识别装置在所在终端屏幕上显示的二维码的方式获取体感动作识别装置的网络信息,并根据获取到的体感动作识别装置的网络信息将移动终端的网络发送给体感动作识别装置从而建立双方的无线数据传输通道。在其他可选实施方式中,移动终端或或体感动作识别装置可以通过网络信息广播搜索的方式获取另一方的网络信息,还可以为通过中间网络服务器的中转获取另一方的网络信息,从而根据另一方的网络信息向另一方发送自身的网络信息,从而建立双方的无线数据传输通道。
进而在可选实施例中,通信模块1220向体感动作识别装置发送的运动传感数据可以携带该移动终端的终端标识,用于区别于其他移动终端发送的运动传感数据,这样如图1所示有不止一个移动终端连接至体感动作识别装置,体感动作识别装置就可以根据运动传感数据携带的终端标识分别进行处理。
在可选实施例中的移动终端还可以包括,
去噪模块1230,用于对所述运动传感数据进行滤波去噪处理。
由于加速度传感器或陀螺仪传感器获取到的原始运动传感数据往往存在一些抖动和噪声,因此在可选实施例中,可以通过去噪模块1230对原始的传感器数据进行处理,采用低通滤波等方式进行滤波去噪处理,这样能够提高体感动作识别装置后续的动作相似度的判定精度,同时也能减小网络流量。
所述通信模块1220向所述体感动作识别装置发送的是经过滤波去噪处理的运动传感数据。
本发明实施例中的移动终端在获取到自身的运动传感数据后,通过与体感动作识别装置之间的无线数据传输通道发送所述移动终端的运动传感数据,让体感动作识别装置识别用户使用移动终端执行的体感动作,从而可以通过移动终端配合体感动作识别装置实现各类体感识别反馈和游戏过程,极大的降低了体感应用的体验门槛,让更多的用户可以感受体感应用带来的方便和体验。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。