运动状态识别方法和装置与流程

文档序号:12325886阅读:354来源:国知局
运动状态识别方法和装置与流程

本发明涉及云计算技术领域,特别是涉及一种运动状态识别方法和装置,以及涉及一种运动状态识别方法和装置。



背景技术:

由于都市人们无法集中一长段时间进行运动,只能抽出空隙时间进行少量的运动,或者,进行日常的一些零散的不定时的运动,例如,日常的一些短距离的步行等,因此,人们不容易估算出一天之内自己所进行的运动总量。

一些运动识别便携装置或者具备运动识别功能的智能移动终端应运而生,例如,计步器、智能手环、智能手表和智能手机等。

这些运动识别便携装置或智能移动终端可通过传感器检测到人体的运动,并通过一些相对简单的算法计算出运动的步数、里程和所消耗的热量等。由于便携装置和移动终端一般不具备高配置的计算资源和内存容量,其中的计算过程通常通过特定的电路来完成,不能进行一些复杂的计算过程,只能获取到较为粗略的计算结果而无法得到较为精确的计算结果。



技术实现要素:

基于此,有必要针对上述运动识别便携装置由于不具备高配置的计算资源和内存容量而导致计算结果不精确的问题,提供一种运动状态识别方法和装置。

一种运动状态识别方法,包括以下步骤:

收集运动识别终端本机的传感器按照预设频率检测到的运动物理量数据,获取检测到的运动物理量数据对应的时间戳,将所述运动物理量数据与对应的时间戳组合成数据对,将数据对按照时间戳的时间先后顺序进行排列形成运动数据序列;

检测当前是否与云端建立连接,若是,则每间隔预设时长上报已形成的且 还未上报的运动数据序列,否则,将运动数据序列存储为待上报的运动数据序列,当与云端建立连接时将待上报的运动数据序列上报到云端;

接收云端发送的运动识别结果数据,所述运动识别结果数据由云端结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到,运动识别结果数据包括一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

一种运动状态识别方法,包括以下步骤:

接收运动识别终端上报的多个运动数据序列,运动数据序列由多个数据对构成,所述数据对由运动识别终端的传感器按照预设频率检测到的运动物理量数据以及运动物理量数据对应的时间戳组合而成;

将所述多个运动数据序列进行汇集,形成所述运动识别终端对应的运动数据序列,汇集而成的所述运动识别终端对应的运动数据序列中的数据对按照时间戳的时间先后顺序进行排列;

结合预先训练的最新的运动模型对所述运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据,所述运动识别结果数据包括所述运动识别终端对应的运动数据序列包含的一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量;

向所述运动识别终端返回所述运动识别结果数据。

一种运动状态识别装置,包括:

运动数据序列生成模块,用于收集运动识别终端本机的传感器按照预设频率检测到的运动物理量数据,获取检测到的运动物理量数据对应的时间戳,将所述运动物理量数据与对应的时间戳组合成数据对,将数据对按照时间戳的时间先后顺序进行排列形成运动数据序列;

运动数据序列上报模块,用于检测当前是否与云端建立连接,若是,则每间隔预设时长上报已形成的且还未上报的运动数据序列,否则,将运动数据序列存储为待上报的运动数据序列,当与云端建立连接时将待上报的运动数据序 列上报到云端;

识别结果接收模块,用于接收云端发送的运动识别结果数据,所述运动识别结果数据由云端结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到,运动识别结果数据包括一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

一种运动状态识别装置,包括:

运动数据序列接收模块,用于接收运动识别终端上报的多个运动数据序列,运动数据序列由多个数据对构成,所述数据对由运动识别终端的传感器按照预设频率检测到的运动物理量数据以及运动物理量数据对应的时间戳组合而成;

运动数据序列汇集模块,用于将所述多个运动数据序列进行汇集,形成所述运动识别终端对应的运动数据序列,汇集而成的所述运动识别终端对应的运动数据序列中的数据对按照时间戳的时间先后顺序进行排列;

识别结果生成模块,用于结合预先训练的最新的运动模型对所述运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据,所述运动识别结果数据包括所述运动识别终端对应的运动数据序列包含的一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量;

识别结果返回模块,用于向所述运动识别终端返回所述运动识别结果数据。

上述运动状态识别方法和装置,根据运动识别终端本机的检测到的运动物理量数据形成运动数据序列,上报运动数据序列到云端,并进一步接收云端返回的结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到的运动识别结果数据;根据运动模型对运动数据序列进行识别可以得到较精确的运动识别结果,但是需要较高配置的计算资源和内存容量,而这一过程在云端完成,从而不需要运动识别终端具有高配置的计算资源以及内存容量也能获得较精确的运动识别结果;

而且,一般的,运动识别终端的特定版本的运动识别软件对应于固定的运 动模型,一旦运动识别终端上的运动识别软件的版本没有及时更新,则不能及时获取到更为精确的运动识别结果;上述运动状态识别方法和装置,利用云端的运动模型计算运动识别结果,而云端的运动模型可方便地进行更新,从而可避免因为运动识别终端的运动识别软件的过时而导致不能及时获取到更为精确的运动识别结果的问题。

上述运动状态识别方法和装置,从运动识别终端接收运动数据序列,结合预先训练的最新的运动模型对所述运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据;根据运动模型对运动数据序列进行识别可以得到较精确的运动识别结果,但是需要较高配置的计算资源和内存容量,而这一过程在云端完成,从而不需要运动识别终端具有高配置的计算资源以及内存容量也能获得较精确的运动识别结果;

而且,一般的,运动识别终端的特定版本的运动识别软件对应于固定的运动模型,一旦运动识别终端上的运动识别软件的版本没有及时更新,则不能及时获取到更为精确的运动识别结果;上述运动状态识别方法和装置,利用云端的运动模型计算运动识别结果,而云端的运动模型可方便地进行更新,从而可避免因为运动识别终端的运动识别软件的过时而导致不能及时获取到更为精确的运动识别结果的问题。

附图说明

图1A为一个实施例中可运行本申请从终端侧描述的运动状态识别方法的运动识别终端的部分结构框图;

图1B为一个实施例中可运行本申请从云端侧描述的运动状态识别方法的服务器的部分结构框图;

图2A为一个实施例中的从终端侧描述的运动状态识别方法的流程示意图;

图2B为另一实施例中的从终端侧描述的运动状态识别方法的流程示意图;

图3为又一实施例中的从终端侧描述的运动状态识别方法的流程示意图;

图4为一个实施例中的从终端侧描述的运动状态识别方法所包括的本地运 动识别结果数据计算展示的过程的流程示意图;

图5为一个实施例中的从云端侧描述的运动状态识别方法的流程示意图;

图6为一个实施例中的从云端侧描述的运动状态识别方法所包括的根据修正数据训练新的运动模型的过程的流程示意图;

图7为一个实施例中的从云端侧描述的运动状态识别方法所包括的个性化运动模型训练及个性化运动识别结果数据获取过程的流程示意图;

图8为一个实施例中的从云端侧描述的运动状态识别方法所包括的训练新的个性化运动模型的过程的流程示意图;

图9为一个实施例中运动识别终端与云端的识别服务器和模型训练服务器协作实现本申请所述的运动状态识别方法的流程示意图;

图10A为一个实施例中的运动状态装置的结构示意图;

图10B为一个实施例中的运动状态装置的结构示意图;

图11为另一实施例中的运动状态装置的结构示意图;

图12为又一实施例中的运动状态装置的结构示意图;

图13为再一实施例中的运动状态装置的结构示意图;

图14为一个实施例中的运动状态装置的结构示意图;

图15为另一实施例中的运动状态装置的结构示意图;

图16为又一实施例中的运动状态装置的结构示意图;

图17为再一实施例中的运动状态装置的结构示意图;

图18为其它一个实施例中的运动状态装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1A为一个实施例中可运行本申请从终端侧描述的运动状态识别方法的运动识别终端的部分结构框图。该运动识别终端可为智能手机、智能手环、智 能手表等任何具备运动识别功能的终端。如图1A所示,在一个实施例中,该终端包括通过系统总线连接的处理器、存储介质、网络接口、显示屏幕和输入机构;其中,输入机构根据用户操作触发相关指令,显示屏幕则将相关的信息展示给用户,网络接口用于与网络进行通信,传感器用于检测用于进行运动识别的运动物理量数据,存储介质中存储用于实现本申请从终端侧描述的运动状态识别方法的软件指令,处理器协调各部件的工作并执行这些指令以实现本申请从终端侧描述的运动状态识别方法。本领域技术人员可以理解,图1A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的运动识别终端的限定,具体的运动识别终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图1B为一个实施例中可运行本申请从云端侧描述的运动状态识别方法的服务器的部分结构框图。如图1B所示,在一个实施例中,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口;其中,网络接口用于与网络进行通信,内存用于缓存数据,存储介质中存储有操作系统、数据库以及用于实现本申请从云端侧描述的运动状态识别方法的软件指令,处理器协调各部件的工作并执行这些指令以实现本申请从云端侧描述的运动状态识别方法。本领域技术人员可以理解,图1B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

以下各实施例从终端侧描述一种运动状态识别方法,该方法可由运动识别终端运行。

如图2A所示,在一个实施例中,一种运动状态识别方法,包括以下步骤:

步骤S202,收集运动识别终端本机的传感器按照预设频率检测到的运动物理量数据,获取检测到的运动物理量数据对应的时间戳,将运动物理量数据与对应的时间戳组合成数据对,将数据对按照时间戳的时间先后顺序进行排列形成运动数据序列。

在一个实施例中,运动识别终端的传感器包括重力加速度传感器和陀螺仪传感器中的一种或两种。重力加速度传感器检测到的运动物理量数据包括作用于运动识别终端上的重力引起的重力加速度;陀螺仪传感器检测到的运动物理量数据包括运动识别终端沿一个轴或几个轴运动的角速度。

在一个实施例中,传感器可不间断的检测得到运动物理量数据。

在另一个实施例中,传感器可接收到运动识别启动指令时才开始检测得到运动物理量数据,并且在接收到运动识别结束指令时结束检测获取运动物理量数据。

在一个实施例中,可将接收到传感器发送的某一运动物理量数据对应的信号的时间作为该运动物理量对应的时间戳。

步骤S204,检测当前是否与云端建立连接,若是,则每间隔预设时长上报已形成的且还未上报的运动数据序列,否则,将运动数据序列存储为待上报的运动数据序列,当与云端建立连接时将待上报的运动数据序列上报到云端。

在一个实施例中,上述运动状态识别方法还包括以下步骤:检查当前是否处于可连接的通信网络,若是,则与云端建立连接。

若与云端建立连接,则每间隔预设时长上报已形成的且还未上报的运动数据序列,可有效防止运动数据序列在本地丢失。

步骤S206,接收云端发送的运动识别结果数据,运动识别结果数据由云端结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到,运动识别结果数据包括一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

运动识别结果数据中包含的每个时间段内的运动状态数据为同一运动类型的连续的运动对应的运动状态数据;而连续进行的同一类型的运动对应的运动状态数据在运动识别结果数据中对应于同一个时间段。

在一个实施例中,可按照预设时间间隔向云端拉取运动识别结果数据,例如一天一次;每次拉取的运动识别结果数据包含一个间隔内的运动识别结果数据。

在另一个实施例中,可在接收到运动识别结果数据浏览启动指令后,向云 端发送运动识别结果数据拉取请求,并接收云端响应运动识别结果拉取请求而发送的运动识别结果数据。

在一个实施例中,运动类型可包括:上楼梯、下楼梯、跑步、步行和骑自行车等。

如图2B所示,在一个实施例中,上述运动状态识别方法还包括:步骤S208,展示运动识别结果数据。

在一个实施例中,可通过用户界面以图表等各种形式展示运动识别结果数据。

在一个实施例中,可在识别结果展示界面中展示运动识别结果数据;

识别结果展示界面包含用于运动状态数据的修正数据的输入控件,其中,用于输入运动状态数据的修正数据的输入控件与该运动状态数据在所述识别结果展示界面中对应显示;

上述运动状态识别方法还包括以下步骤:

通过输入控件获取输入的某一时间段的运动状态数据的修正数据;

将该时间段的运动状态数据的修正数据上传到云端,使得云端将修正数据作为该时间段的运动数据序列对应的标记结果、以及根据该时间段的运动数据序列和所述标记结果组成的训练样本训练得到新的运动模型以及将用于识别运动数据序列的训练模型更新为新的运动模型。

图3示出了上述实施例的运动状态识别方法的一种执行流程。如图3所示,在一个实施例中,一种运动状态识别方法,包括以下步骤:

步骤S302,收集运动识别终端本机的传感器按照预设频率检测到的运动物理量数据,获取检测到的运动物理量数据对应的时间戳,将运动物理量数据与对应的时间戳组合成数据对,将数据对按照时间戳的时间先后顺序进行排列形成运动数据序列。

步骤S304,检测当前是否与云端建立连接,若是,则每间隔预设时长上报已形成的且还未上报的运动数据序列,否则,将运动数据序列存储为待上报的运动数据序列,当与云端建立连接时将待上报的运动数据序列上报到云端。

步骤S306,接收云端发送的运动识别结果数据,运动识别结果数据由云端 结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到,运动识别结果数据包括一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

步骤S308,在识别结果展示界面中展示运动识别结果数据,识别结果展示界面包含用于运动状态数据的修正数据的输入控件,其中,用于输入运动状态数据的修正数据的输入控件与该运动状态数据在识别结果展示界面中对应显示。

用于输入运动状态数据的修正数据的输入控件与该运动状态数据在识别结果展示界面中对应显示,从而可以指示哪一个输入控件用于修改哪一个运动状态数据。

在一个实施例中,用于输入某一运动状态数据的修正数据的输入控件即为显示该运动状态数据的控件。

在另一个实施例中,用于输入某一运动状态数据的修正数据的输入控件在该运动状态数据的显示位置旁与该运动状态数据并列对齐显示。

步骤S310,通过输入控件获取输入的某一时间段的运动状态数据的修正数据。

当输入控件被点击时,即可将光标定位到该输入控件的输入框内,输入控件进入字符编辑状态。

步骤S312,将该时间段的运动状态数据的修正数据上传到云端,使得云端将修正数据作为该时间段的运动数据序列对应的标记结果、以及根据该时间段的运动数据序列和该标记结果组成的训练样本训练得到新的运动模型以及将用于识别运动数据序列的训练模型更新为新的运动模型。

在一个实施例中,上述识别结果展示界面中还包括修正数据提交控件,当修正数据提交控件被点击时,进入步骤S312。

上述实施例中,用户可手动输入云端返回的运动状态数据对应的修正数据,例如,若云端返回的某一时间段的运动类型不准确,则可输入准确的运动类型,而若运动距离不准确,则可输入准确的运动距离。

上述实施例将某一时间段的运动状态数据的修正数据上传到云端,使得云 端可以根据修正数据训练更为准确的运动模型,从而得到更为精确的运动识别结果数据。

在一个实施例中,上述运动状态识别方法,还包括以下步骤:

检验形成的运动数据序列中是否存在散点序列,散点序列所包含的数据对小于预设数量,且散点序列中的数据对的时间戳与散点序列前后的数据对的时间戳间隔都超过第一阈值,过滤形成的运动数据序列中存在的散点序列。

在一个实施例中,可将运动数据序列中的第一个数据对作为基准点,检验基准点与其后续的预设数量的数据对的时间戳的间隔时间是否都小于第一阈值,若是,则以该后续的预设数量的数据对的最后一个数据对为基准点,重复上述检验,即检验基准点与其后续的预设数量的数据对的时间戳的间隔时间是否都小于第一阈值;若否,则获取基准点以及基准点后续的与基准点的时间戳的间隔时间小于第一阈值的数据对构成散点序列,并以散点序列后的第一个数据对作为基准点,重复上述检验。

偶然的少量的几个动作会形成散点序列,而这些散点序列对应的运动量可以忽略不计,因此过滤散点序列,可减少数据上传所占用的网络资源以及数据存储资源。

在一个实施例中,上述运动状态识别方法还包括本地运动识别结果数据计算展示的过程,如图4所示,在一个实施例中,该过程包括以下步骤:

步骤S402,获取运动识别启动指令以及获取运动识别结束指令,获取运动识别启动指令与运动识别结束指令发生时间之间的时间段内形成的运动数据序列。

在一个实施例中,运动识别启动指令可以由运动识别终端上的第一物理按钮触发,运动识别结束指令可由运动识别终端上的第二物理按钮触发。

在另一个实施例中,运动识别启动指令可以由运动识别终端所展示的用户界面中的第一控件触发,运动识别启动指令可以由运动识别终端所展示的用户界面中的第二控件触发。

步骤S404,根据本地预先设置的识别逻辑对运动识别启动指令与运动识别结束指令发生时间之间的时间段内形成的运动数据序列进行识别,得到对应的 本地运动识别结果数据。

在一个实施例中,识别逻辑以软件指令的形式存储在运动识别终端的存储介质中;在另一个实施例中,识别逻辑以电路形式设置在运动识别终端中。

在一个实施例中,本地运动识别结果数据包含运动识别启动指令与运动识别结束指令发生时间之间的时间段内的运动对应的以下运动状态数据的一种或两种:步数和消耗热量。

步骤S406,展示本地运动识别结果数据。

本实施例中,在运动识别终端未与云端建立连接时,可利用本地的识别逻辑对某一时间段的运动进行粗略的计算,得到相对简易的本地运动识别结果数据。

以下各实施例从云端侧描述一种运动状态识别方法,该方法可由云端的服务器运行。

如图5所示,在一个实施例中,一种运动状态识别方法,包括以下步骤:

步骤S502,接收运动识别终端上报的多个运动数据序列,运动数据序列由多个数据对构成,数据对由运动识别终端的传感器按照预设频率检测到的运动物理量数据以及运动物理量数据对应的时间戳组合而成。

步骤S504,将上述多个运动数据序列进行汇集,形成运动识别终端对应的运动数据序列,汇集而成的运动识别终端对应的运动数据序列中的数据对按照时间戳的时间先后顺序进行排列。

在一个实施例中,运动识别终端将终端标识与运动数据序列对应上报到云端。

云端可将同一终端标识对应的多个运动数据序列进行汇集。

步骤S506,结合预先训练的最新的运动模型对运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据,运动识别结果数据包括运动识别终端对应的运动数据序列包含的一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

云端训练的运动模型可属于决策树模型(Decision Tree Model)或朴素贝叶斯 模型(Naive Bayesian Model)等。

在一个实施例中,云端训练的运动模型可包括一个或多个运动模型,该一个或多个运动模型可识别或计算的运动状态数据覆盖运动识别结果数据中所包含的所有运动状态数据,其中,一个运动模型可识别或训练运动识别结果数据中所包含的所有运动状态数据中的一种或两种。

例如,运动识别结果数据中所包含的所有运动状态数据为:运动类型、步数、运动距离和消耗热量;云端训练的运动模型可包括用于识别运动类型的运动模型、用于计算步数的运动模型、用于计算运动距离的运动模型以及用于计算消耗热量的运动模型。

云端用于识别得到运动识别结果数据的运动模型根据特定的触发条件进行更新优化,以使得云端根据更加优化的运动模型识别得到更为精确的运动识别结果数据。

运动识别结果数据中包含的每个时间段内的运动状态数据为同一运动类型的连续的运动对应的运动状态数据;而连续进行的同一类型的运动对应的运动状态数据在运动识别结果数据中对应于同一个时间段。

步骤S508,向运动识别终端返回运动识别结果。

在一个实施例中,上述运动状态识别方法,还包括以下步骤:

对运动识别终端对应的运动数据序列进行分割得到多个子运动数据序列,使得一个子运动数据序列对应一个时间段内进行的同一种运动类型的连续运动,且一个时间段内进行的同一种运动类型的连接运动对应一个子运动数据序列;

步骤S506中结合预先训练的运动模型对所述运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据的步骤包括:结合预先训练的运动模型对分割得到的多个子运动数据序列进行识别,得到多个子运动数据序列所包含的时间段对应的运动识别结果数据。

在一个实施例中,可将运动识别终端对应的运动数据序列按照时间戳的连续性进行分割得到子运动数据序列,使得一个子运动数据序列对应于一个时间段内进行的连续运动。

可检验运动数据序列每两个相邻数据对的时间戳的间隔时间是否超过第四阈值,获取时间戳的间隔时间超过第四阈值的相邻两个数据对,以该两个数据对为参照点分割运动数据序列,使得该相邻两个数据对分属于不同的子运动数据序列。

进一步的,可提取各子运动数据序列中具有相同波峰波谷特征的连续数据对序列作为一个子运动数据序列;连续数据对序列的波峰波谷特征为连续数据对序列中的所有数据对对应的点构成的曲线的波峰波谷特征;其中,波峰波谷特征包括波峰出现频率、波谷出现频率、波峰平均值、波谷平均值、波峰波谷平均距离中的一种或两种以上;连续数据对序列指的是子运动数据序列中连续排列的数据对构成的序列,子运动数据序列中任意两个数据对之间包含的所有数据对以及该两个数据对,构成一个连续数据对序列。

在另一个实施例中,在将运动识别终端对应的运动数据序列按照时间戳的连续性进行分割得到子运动数据序列的步骤之后,可按照以下步骤对子运动数据序列进行分割:

(1):应用递归最小二乘法预测滤波器对子运动数据序列进行处理,设置递归最小二乘法自适应滤波器作为预测滤波器,调整延迟、滤波器阶数、遗忘因子、动态的更新滤波器系数因子。滤波器公式如下:

<mrow> <mover> <mi>d</mi> <mo>^</mo> </mover> <mrow> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>p</mi> </munderover> <msub> <mi>&omega;</mi> <mi>n</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mi>x</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>w</mi> <mi>n</mi> <mi>T</mi> </msubsup> <mi>X</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

表示期望预测得到的第n帧数据,X(n)=[x(n)x(n-1)...x(n-p)]T表示之前最近的p帧数据,wn=[ωn(0)ωn(1)...ωn(p)]T表示权重系数,p表示滤波器的阶数,上述(1)式表明第n帧数据是由前面p帧数据预测得到的。通过上式可以训练求得滤波器的系数因子wn

(2):当预测数据和原始数据明显不同时,说明存在不稳定点,分析得到的不稳定点,筛选得到分割点。

可计算两个相邻滤波器系数向量的欧氏距离,并保存为误差向量e(n)

e(n)=||w(n)-w(n-1)||2 (2)

w(n)表示通过RLS算法计算得到的第n时刻的滤波器系数向量。将得到的误差向量与预先定义的阈值相比较,超过阈值的点保存为分割点。

(3):按照分割点对子运动数据序列进行分割。

在一个实施例中,在步骤S506之前,上述运动状态识别方法,还包括以下步骤:

通过巴特沃斯低通滤波算法对运动数据序列进行降噪滤波。例如,通过十二阶巴特沃斯低通滤波算法对运动数据序列进行降噪滤波。

在一个实施例中,上述运动状态识别方法,还包括根据修正数据训练新的运动模型的过程,如图6所示,在一个实施例中,该过程包括以下步骤:

步骤S602,接收运动识别终端发送的某一时间段的运动状态数据的修正数据。

该修正数据在运动识别终端侧由用户输入,可以理解的,当某一时间段的运动状态数据不够精确时,用户可能对其进行修正。上述的修正数据可以认为是某一时间段对应的相对正确的运动状态数据。

步骤S604,将修正数据作为运动识别终端上述时间段的运动数据序列对应的标记结果,将上述时间段的运动数据序列与上述时间段的运动数据序列对应的标记结果组成训练样本。

在一个实施例中,运动识别终端将终端标识、时间段数据与修正数据对应上报的云端;云端可查找上报的终端标识和时间段数据对应的运动数据序列,将查找到的运动数据序列与对应的标记结果组成训练样本。

步骤S606,根据上述组成的训练样本训练得到新的运动模型。

在一个实施例中,可将上述组成的训练样本添加到已有运动模型训练所基于的训练样本集中,并根据新的训练样本集训练新的运动模型。

步骤S608,将用于识别运动识别终端发送的运动数据序列得到对应的运动识别结果数据的训练模型更新为新的运动模型。

虽然运动模型一般都是根据大量的具有正确标记结果的训练样本训练得到的,但是,训练样本中还是可能缺乏具有某种特征的训练样本,从而运动模型无法对具有该种特征的运动数据序列进行识别,或者识别得到的运动识别结果数据不够精确。

上述实施例中,将已有运动模型不能识别或者识别的结果不够精确的运动 数据序列及对应的相对正确的标记结果组成训练样本,该类训练样本有可能是已有运动模型训练所基于的训练样本中所缺乏的训练样本,根据该类训练样本进行训练得到新的运动模型,该新的运动模型有可能可以识别对应类型的运动数据序列或者可能可以获得更为精确的运动识别结果数据;该对应类型的运动数据序列与上述的不能识别或者识别的结果不够精确的运动数据序列具有某种共同的特征,新的运动模型一定程度上可以克服已有运动模型的缺陷。

在一个实施例中,上述运动状态识别方法,还包括个性化运动模型训练及个性化运动识别结果数据获取过程,如图7所示,在一个实施例中,该过程包括以下步骤:

步骤S702,将运动识别终端对应的运动识别结果数据中各个时间段的运动状态数据作为运动识别终端的相应时间段的运动数据序列对应的标记结果,将运动识别终端各个时间段的运动数据序列及其对应的标记结果组成运动识别终端对应的训练样本。

其中,一个时间段对应一个训练样本,即将一个时间段的运动状态数据作为运动识别终端该时间段的运动数据序列对应的标记结果,将运动识别终端该时间段的运动数据序列及其对应的标记结果组成运动识别终端对应的一个训练样本。

步骤S704,若接收到运动识别终端发送的某一时间段的运动状态数据的修正数据,则将对应时间段对应的训练样本的标记结果修正为该修正数据。

步骤S706,统计运动识别终端对应的训练样本的数量。

步骤S708,若运动识别终端对应的训练样本的数量超过第二阈值,则根据超过第二阈值数量的上述训练样本训练运动识别终端对应的个性化运动模型。

由于训练样本的数量不能过少,因此,当某一运动识别终端对应训练样本的数量超过第二阈值时,可训练该运动识别终端对应的个性化运动模型。

步骤S710,结合运动识别终端对应的个性化运动模型对运动识别终端对应的运动数据序列进行识别,得到对应的个性化运动识别结果数据,个性化运动识别结果数据包括运动识别终端对应的运动数据序列包含的一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动 距离和消耗热量。

不同用户进行同一运动形成的运动数据序列虽然具有一些共同的特征,但也具有一定程度上的因人而异的特征;上述实施例中,根据运动识别终端对应的训练样本训练得到运动识别终端对应的个性化运动模型,并根据个性化运动模型对运动识别终端对应的运动数据序列进行识别得到个性化运动识别结果数据,可获得针对使用运动识别终端的特定用户的更为精准的识别结果。

在一个实施例中,上述运动状态识别方法,还包括训练新的个性化运动模型的过程,如图8所示,在一个实施例中,该过程以下步骤:

步骤S802,统计运动识别终端对应的训练样本中除被训练过的训练样本之外的新增的数量。

步骤S804,若新增的数量超过第三阈值,则根据运动识别终端对应的所有训练样本训练运动识别终端对应的新的个性化运动模型。

步骤S806,将用于识别所述运动识别终端对应的运动数据序列得到对应的个性化运动识别结果数据的个性化训练模型更新为所述新的个性化运动模型。

一般而言,基于数量越多的训练样本训练得到的运动模型可获取相对更为精准的识别结果;上述实施例,根据运动识别终端对应的训练样本数量的增加而更新优化运动识别终端对应的个性化运动模型,从而可根据新的个性化运动模型识别得到更为精准的个性化运动识别结果数据。

以下结合一个具体的应用场景说明上述的从终端侧描述的运动状态识别方法以及从云端侧描述的运动状态识别方法。

图9为一个实施例中,运动识别终端与云端的识别服务器和模型训练服务器协作实现本申请所述的运动状态识别方法的示意图。

如图9所示:

(1.1)运动识别终端通过传感器检测运动物理量数据并形成运动数据序列。

(1.2)运动识别终端向识别服务器上报运动数据序列。

(1.3)识别服务器接收运动识别终端上报的运动数据序列,汇集运动识别终端上报的运动数据序列得到运动识别终端对应运动数据序列。

(1.4)识别服务器结合运动模型识别运动数据序列得到运动识别结果数据。

(1.5)识别服务器向运动识别终端返回运动识别结果数据。

(1.6)运动识别终端接收并展示识别服务器发送的运动识别结果数据。

(2.1)运动识别终端结合本地的识别逻辑对运动数据序列进行识别,得到对应的本地运动识别结果数据。

(2.2)运动识别终端展示本地运动识别结果数据。

(3.1)运动识别终端获取用户输入的某一时段的运动状态数据的修正数据。

(3.2)运动识别终端将该时间段的运动状态数据的修正数据上传到识别服务器。

(3.3)识别服务器接收修正数据,并根据修正数据组成训练样本。

识别服务器接收运动识别终端发送的某一时间段的运动状态数据的修正数据;将该修正数据作为该运动识别终端上报的该时间段的运动数据序列对应的标记结果,将该时间段的运动数据序列与该标记结果组成训练样本。

(3.4)识别服务器向模型训练服务器同步训练样本。

(3.5)模型训练服务器收集训练样本。

(3.6)模型训练服务器根据训练样本训练得到新的运动模型。

(3.7)模型训练服务器将识别服务器的用于识别运动识别终端对应的运动数据序列得到对应的运动识别结果数据的训练模型更新为新的运动模型。

如图10A所示,在一个实施例中,一种运动状态识别装置,包括运动数据序列生成模块1002、运动数据序列上报模块1004和识别结果接收模块1006,其中:

运动数据序列生成模块1002用于收集运动识别终端本机的传感器按照预设频率检测到的运动物理量数据,获取检测到的运动物理量数据对应的时间戳,将运动物理量数据与对应的时间戳组合成数据对,将数据对按照时间戳的时间先后顺序进行排列形成运动数据序列。

在一个实施例中,运动识别终端的传感器包括重力加速度传感器和陀螺仪传感器中的一种或两种。重力加速度传感器检测到的运动物理量数据包括作用 于运动识别终端上的重力引起的重力加速度;陀螺仪传感器检测到的运动物理量数据包括运动识别终端沿一个轴或几个轴运动的角速度。

在一个实施例中,传感器可不间断的检测得到运动物理量数据。

在另一个实施例中,传感器可接收到运动识别启动指令时才开始检测得到运动物理量数据,并且在接收到运动识别结束指令时结束检测获取运动物理量数据。

在一个实施例中,运动数据序列生成模块1002可将接收到传感器发送的某一运动物理量数据对应的信号的时间作为该运动物理量对应的时间戳。

运动数据序列上报模块1004用于检测当前是否与云端建立连接,若是,则每间隔预设时长上报已形成的且还未上报的运动数据序列,否则,将运动数据序列存储为待上报的运动数据序列,当与云端建立连接时将待上报的运动数据序列上报到云端。

在一个实施例中,上述运动状态识别装置还包括连接建立模块(图中未示出),用于检查当前是否处于可连接的通信网络,若是,则与云端建立连接。

若与云端建立连接,则每间隔预设时长上报已形成的且还未上报的运动数据序列,可有效防止运动数据序列在本地丢失。

识别结果接收模块1006用于接收云端发送的运动识别结果数据,运动识别结果数据由云端结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到,运动识别结果数据包括一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

运动识别结果数据中包含的每个时间段内的运动状态数据为同一运动类型的连续的运动对应的运动状态数据;而连续进行的同一类型的运动对应的运动状态数据在运动识别结果数据中对应于同一个时间段。

在一个实施例中,识别结果接收模块1006可按照预设时间间隔向云端拉取运动识别结果数据,例如一天一次;每次拉取的运动识别结果数据包含一个间隔内的运动识别结果数据。

在另一个实施例中,识别结果接收模块1006可在接收到运动识别结果数据浏览启动指令后,向云端发送运动识别结果数据拉取请求,并接收云端响应运 动识别结果拉取请求而发送的运动识别结果数据。

在一个实施例中,运动类型可包括:上楼梯、下楼梯、跑步、步行和骑自行车等。

如图10B所示,在一个实施例中,上述运动状态识别装置还包括识别结果展示模块1008,用于展示运动识别结果数据。

在一个实施例中,可通过用户界面以图表等各种形式展示运动识别结果数据。

在一个实施例中,运动识别结果数据展示于识别结果展示界面;本实施例中,识别结果展示模块1008用于在识别结果展示界面中展示运动识别结果数据;

识别结果展示界面包含用于运动状态数据的修正数据的输入控件,其中,用于输入运动状态数据的修正数据的输入控件与该运动状态数据在所述识别结果展示界面中对应显示;

本实施例中,如图11所示,上述运动状态识别装置还包括修正数据获取模块1102和修正数据上传模块1104,其中:

修正数据获取模块1102用于通过输入控件获取输入的某一时间段的运动状态数据的修正数据;

修正数据上传模块1104用于将该时间段的运动状态数据的修正数据上传到云端,使得云端将修正数据作为该时间段的运动数据序列对应的标记结果、以及根据该时间段的运动数据序列和所述标记结果组成的训练样本训练得到新的运动模型以及将用于识别运动数据序列的训练模型更新为新的运动模型。

用于输入运动状态数据的修正数据的输入控件与该运动状态数据在识别结果展示界面中对应显示,从而可以指示哪一个输入控件用于修改哪一个运动状态数据。

在一个实施例中,用于输入某一运动状态数据的修正数据的输入控件即为显示该运动状态数据的控件。

在另一个实施例中,用于输入某一运动状态数据的修正数据的输入控件在该运动状态数据的显示位置旁与该运动状态数据并列对齐显示。

当输入控件被点击时,即可将光标定位到该输入控件的输入框内,输入控 件进入字符编辑状态。

在一个实施例中,上述识别结果展示界面中还包括修正数据提交控件,当修正数据提交控件被点击时,修正数据上传模块1104将该时间段的运动状态数据的修正数据上传到云端。

上述实施例中,用户可手动输入云端返回的运动状态数据对应的修正数据,例如,若云端返回的某一时间段的运动类型不准确,则可输入准确的运动类型,而若运动距离不准确,则可输入准确的运动距离。

上述实施例将某一时间段的运动状态数据的修正数据上传到云端,使得云端可以根据修正数据训练更为准确的运动模型,从而得到更为精确的运动识别结果数据。

如图12所示,在一个实施例中,上述运动状态识别装置,还包括散点序列过滤模块1202,用于检验形成的运动数据序列中是否存在散点序列,散点序列所包含的数据对小于预设数量,且散点序列中的数据对的时间戳与散点序列前后的数据对的时间戳间隔都超过第一阈值,过滤形成的运动数据序列中存在的散点序列。

在一个实施例中,散点序列过滤模块1202可将运动数据序列中的第一个数据对作为基准点,检验基准点与其后续的预设数量的数据对的时间戳的间隔时间是否都小于第一阈值,若是,则以该后续的预设数量的数据对的最后一个数据对为基准点,重复上述检验,即检验基准点与其后续的预设数量的数据对的时间戳的间隔时间是否都小于第一阈值;若否,则获取基准点以及基准点后续的与基准点的时间戳的间隔时间小于第一阈值的数据对构成散点序列,并以散点序列后的第一个数据对作为基准点,重复上述检验。

偶然的少量的几个动作会形成散点序列,而这些散点序列对应的运动量可以忽略不计,因此过滤散点序列,可减少数据上传所占用的网络资源以及数据存储资源。

如图13所示,在一个实施例中,上述运动状态识别装置还包括阶段性运动数据序列获取模块1302、本地识别结果生成模块1304和本地识别结果展示模块1306,其中:

阶段性运动数据序列获取模块1302用于获取运动识别启动指令以及获取运动识别结束指令,获取运动识别启动指令与运动识别结束指令发生时间之间的时间段内形成的运动数据序列。

在一个实施例中,运动识别启动指令可以由运动识别终端上的第一物理按钮触发,运动识别结束指令可由运动识别终端上的第二物理按钮触发。

在另一个实施例中,运动识别启动指令可以由运动识别终端所展示的用户界面中的第一控件触发,运动识别启动指令可以由运动识别终端所展示的用户界面中的第二控件触发。

本地识别结果生成模块1304用于根据本地预先设置的识别逻辑对运动识别启动指令与运动识别结束指令发生时间之间的时间段内形成的运动数据序列进行识别,得到对应的本地运动识别结果数据。

在一个实施例中,识别逻辑以软件指令的形式存储在运动识别终端的存储介质中;在另一个实施例中,识别逻辑以电路形式设置在运动识别终端中。

在一个实施例中,本地运动识别结果数据包含运动识别启动指令与运动识别结束指令发生时间之间的时间段内的运动对应的以下运动状态数据的一种或两种:步数和消耗热量。

本地识别结果展示模块1306用于展示本地运动识别结果数据。

本实施例中,在运动识别终端未与云端建立连接时,可利用本地的识别逻辑对某一时间段的运动进行粗略的计算,得到相对简易的本地运动识别结果数据。

如图14所示,在一个实施例中,一种运动状态识别装置,包括运动数据序列接收模块1402、运动数据序列汇集模块1404、识别结果生成模块1406和识别结果返回模块1408,其中:

运动数据序列接收模块1402用于接收运动识别终端上报的多个运动数据序列,运动数据序列由多个数据对构成,数据对由运动识别终端的传感器按照预设频率检测到的运动物理量数据以及运动物理量数据对应的时间戳组合而成。

运动数据序列汇集模块1404用于将上述多个运动数据序列进行汇集,形成 运动识别终端对应的运动数据序列,汇集而成的运动识别终端对应的运动数据序列中的数据对按照时间戳的时间先后顺序进行排列。

在一个实施例中,运动数据序列接收模块1402将终端标识与运动数据序列对应上报到云端。

运动数据序列汇集模块1404可将同一终端标识对应的多个运动数据序列进行汇集。

识别结果生成模块1406用于结合预先训练的最新的运动模型对运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据,运动识别结果数据包括运动识别终端对应的运动数据序列包含的一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

云端训练的运动模型可属于决策树模型(Decision Tree Model)或朴素贝叶斯模型(Naive Bayesian Model)等。

在一个实施例中,运动模型可包括一个或多个运动模型,该一个或多个运动模型可识别或计算的运动状态数据覆盖运动识别结果数据中所包含的所有运动状态数据,其中,一个运动模型可识别或训练运动识别结果数据中所包含的所有运动状态数据中的一种或两种。

例如,运动识别结果数据中所包含的所有运动状态数据为:运动类型、步数、运动距离和消耗热量;云端训练的运动模型可包括用于识别运动类型的运动模型、用于计算步数的运动模型、用于计算运动距离的运动模型以及用于计算消耗热量的运动模型。

用于识别得到运动识别结果数据的运动模型根据特定的触发条件进行更新优化,以使得识别结果生成模块1406根据更加优化的运动模型识别得到更为精确的运动识别结果数据。

运动识别结果数据中包含的每个时间段内的运动状态数据为同一运动类型的连续的运动对应的运动状态数据;而连续进行的同一类型的运动对应的运动状态数据在运动识别结果数据中对应于同一个时间段。

识别结果返回模块1408用于向运动识别终端返回运动识别结果。

如图15所示,在一个实施例中,上述运动状态识别装置还包括运动数据序列分割模块1502,用于对运动识别终端对应的运动数据序列进行分割得到多个子运动数据序列,使得一个子运动数据序列对应一个时间段内进行的同一种运动类型的连续运动,且一个时间段内进行的同一种运动类型的连接运动对应一个子运动数据序列;

本实施例中,识别结果生成模块1406用于结合预先训练的运动模型对分割得到的多个子运动数据序列进行识别,得到多个子运动数据序列所包含的时间段对应的运动识别结果数据。

在一个实施例中,运动数据序列分割模块1502可将运动识别终端对应的运动数据序列按照时间戳的连续性进行分割得到子运动数据序列,使得一个子运动数据序列对应于一个时间段内进行的连续运动。

运动数据序列分割模块1502可检验运动数据序列每两个相邻数据对的时间戳的间隔时间是否超过第四阈值,获取时间戳的间隔时间超过第四阈值的相邻两个数据对,以该两个数据对为参照点分割运动数据序列,使得该相邻两个数据对分属于不同的子运动数据序列。

进一步的,运动数据序列分割模块1502可提取各子运动数据序列中具有相同波峰波谷特征的连续数据对序列作为一个子运动数据序列;连续数据对序列的波峰波谷特征为连续数据对序列中的所有数据对对应的点构成的曲线的波峰波谷特征;其中,波峰波谷特征包括波峰出现频率、波谷出现频率、波峰平均值、波谷平均值、波峰波谷平均距离中的一种或两种以上;连续数据对序列指的是子运动数据序列中连续排列的数据对构成的序列,子运动数据序列中任意两个数据对之间包含的所有数据对以及该两个数据对,构成一个连续数据对序列。

在另一个实施例中,运动数据序列分割模块1502在将运动识别终端对应的运动数据序列按照时间戳的连续性进行分割得到子运动数据序列之后,可按照以下方式对子运动数据序列进行分割:

(1):应用递归最小二乘法预测滤波器对子运动数据序列进行处理,设置递归最小二乘法自适应滤波器作为预测滤波器,调整延迟、滤波器阶数、遗忘 因子、动态的更新滤波器系数因子。滤波器公式如下:

<mrow> <mover> <mi>d</mi> <mo>^</mo> </mover> <mrow> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>p</mi> </munderover> <msub> <mi>&omega;</mi> <mi>n</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mi>x</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>w</mi> <mi>n</mi> <mi>T</mi> </msubsup> <mi>X</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

表示期望预测得到的第n帧数据,X(n)=[x(n)x(n-1)...x(n-p)]T表示之前最近的p帧数据,wn=[ωn(0)ωn(1)...ωn(p)]T表示权重系数,p表示滤波器的阶数,上述(1)式表明第n帧数据是由前面p帧数据预测得到的。通过上式可以训练求得滤波器的系数因子wn

(2):当预测数据和原始数据明显不同时,说明存在不稳定点,分析得到的不稳定点,筛选得到分割点。

可计算两个相邻滤波器系数向量的欧氏距离,并保存为误差向量e(n)

e(n)=||w(n)-w(n-1)||2 (2)

w(n)表示通过RLS算法计算得到的第n时刻的滤波器系数向量。将得到的误差向量与预先定义的阈值相比较,超过阈值的点保存为分割点。

(3):按照分割点对子运动数据序列进行分割。

在一个实施例中,上述运动状态识别装置还包括预处理模块(图中未示出),用于通过巴特沃斯低通滤波算法对运动数据序列进行降噪滤波。例如,通过十二阶巴特沃斯低通滤波算法对运动数据序列进行降噪滤波。

如图16所示,在一个实施例中,上述运动状态识别装置还包括修正数据接收模块1602、训练样本组成模块1604、运动模型训练模块1606和运动模型更新模块1608,其中:

修正数据接收模块1602用于接收运动识别终端发送的某一时间段的运动状态数据的修正数据。

该修正数据在运动识别终端侧由用户输入,可以理解的,当某一时间段的运动状态数据不够精确时,用户可能对其进行修正。上述的修正数据可以认为是某一时间段对应的相对正确的运动状态数据。

训练样本组成模块1604用于将修正数据作为运动识别终端上述时间段的运动数据序列对应的标记结果,将上述时间段的运动数据序列与上述时间段的运动数据序列对应的标记结果组成训练样本。

在一个实施例中,运动识别终端将终端标识、时间段数据与修正数据对应 上报的云端;训练样本组成模块1604可查找上报的终端标识和时间段数据对应的运动数据序列,将查找到的运动数据序列与对应的标记结果组成训练样本。

运动模型训练模块1606用于根据上述组成的训练样本训练得到新的运动模型。

在一个实施例中,运动模型训练模块1606可将上述组成的训练样本添加到已有运动模型训练所基于的训练样本集中,并根据新的训练样本集训练新的运动模型。

运动模型更新模块1608用于将用于识别运动识别终端发送的运动数据序列得到对应的运动识别结果数据的训练模型更新为新的运动模型。

虽然运动模型一般都是根据大量的具有正确标记结果的训练样本训练得到的,但是,训练样本中还是可能缺乏具有某种特征的训练样本,从而运动模型无法对具有该种特征的运动数据序列进行识别,或者识别得到的运动识别结果数据不够精确。

上述实施例中,将已有运动模型不能识别或者识别的结果不够精确的运动数据序列及对应的相对正确的标记结果组成训练样本,该类训练样本有可能是已有运动模型训练所基于的训练样本中所缺乏的训练样本,根据该类训练样本进行训练得到新的运动模型,该新的运动模型有可能可以识别对应类型的运动数据序列或者可能可以获得更为精确的运动识别结果数据;该对应类型的运动数据序列与上述的不能识别或者识别的结果不够精确的运动数据序列具有某种共同的特征,新的运动模型一定程度上可以克服已有运动模型的缺陷。

如图17所示,在一个实施例中,上述运动状态识别装置还包括个性化训练样本组成模块1702、个性化训练样本修正模块1704、样本数量统计模块1706、个性化运动模型训练模块1708和个性化识别结果生成模块1710,其中:

个性化训练样本组成模块1702用于将运动识别终端对应的运动识别结果数据中各个时间段的运动状态数据作为运动识别终端的相应时间段的运动数据序列对应的标记结果,将运动识别终端各个时间段的运动数据序列及其对应的标记结果组成运动识别终端对应的训练样本。

其中,一个时间段对应一个训练样本,即将一个时间段的运动状态数据作 为运动识别终端该时间段的运动数据序列对应的标记结果,将运动识别终端该时间段的运动数据序列及其对应的标记结果组成运动识别终端对应的一个训练样本。

个性化训练样本修正模块1704用于若接收到运动识别终端发送的某一时间段的运动状态数据的修正数据,则将对应时间段对应的训练样本的标记结果修正为该修正数据。

样本数量统计模块1706用于统计运动识别终端对应的训练样本的数量。

个性化运动模型训练模块1708用于若运动识别终端对应的训练样本的数量超过第二阈值,则根据超过第二阈值数量的上述训练样本训练运动识别终端对应的个性化运动模型。

由于训练样本的数量不能过少,因此,当某一运动识别终端对应训练样本的数量超过第二阈值时,可训练该运动识别终端对应的个性化运动模型。

个性化识别结果生成模块1710用于结合运动识别终端对应的个性化运动模型对运动识别终端对应的运动数据序列进行识别,得到对应的个性化运动识别结果数据,个性化运动识别结果数据包括运动识别终端对应的运动数据序列包含的一个或多个时间段内的运动对应的以下运动状态数据的一种或两种以上:运动类型、步数、运动距离和消耗热量。

不同用户进行同一运动形成的运动数据序列虽然具有一些共同的特征,但也具有一定程度上的因人而异的特征;上述实施例中,根据运动识别终端对应的训练样本训练得到运动识别终端对应的个性化运动模型,并根据个性化运动模型对运动识别终端对应的运动数据序列进行识别得到个性化运动识别结果数据,可获得针对使用运动识别终端的特定用户的更为精准的识别结果。

如图18所示,在一个实施例中,上述运动状态识别装置还包括新增数据统计模块1802、新个性化运动模型训练模块1804和个性化运动模型更新模块1806,其中:

新增数据统计模块1802用于统计运动识别终端对应的训练样本中除被训练过的训练样本之外的新增的数量。

新个性化运动模型训练模块1804用于若新增的数量超过第三阈值,则根据 运动识别终端对应的所有训练样本训练运动识别终端对应的新的个性化运动模型。

个性化运动模型更新模块1806用于将用于识别所述运动识别终端对应的运动数据序列得到对应的个性化运动识别结果数据的个性化训练模型更新为所述新的个性化运动模型。

一般而言,基于数量越多的训练样本训练得到的运动模型可获取相对更为精准的识别结果;上述实施例,根据运动识别终端对应的训练样本数量的增加而更新优化运动识别终端对应的个性化运动模型,从而可根据新的个性化运动模型识别得到更为精准的个性化运动识别结果数据。

上述运动状态识别方法和装置,根据运动识别终端本机的检测到的运动物理量数据形成运动数据序列,上报运动数据序列到云端,并进一步接收云端返回的结合预先训练的最新的运动模型对上报的运动数据序列进行识别得到的运动识别结果数据;根据运动模型对运动数据序列进行识别可以得到较精确的运动识别结果,但是需要较高配置的计算资源和内存容量,而这一过程在云端完成,从而不需要运动识别终端具有高配置的计算资源以及内存容量也能获得较精确的运动识别结果;

而且,一般的,运动识别终端的特定版本的运动识别软件对应于固定的运动模型,一旦运动识别终端上的运动识别软件的版本没有及时更新,则不能及时获取到更为精确的运动识别结果;上述运动状态识别方法和装置,利用云端的运动模型计算运动识别结果,而云端的运动模型可方便地进行更新,从而可避免因为运动识别终端的运动识别软件的过时而导致不能及时获取到更为精确的运动识别结果的问题。

上述运动状态识别方法和装置,从运动识别终端接收运动数据序列,结合预先训练的最新的运动模型对所述运动识别终端对应的运动数据序列进行识别,得到对应的运动识别结果数据;根据运动模型对运动数据序列进行识别可以得到较精确的运动识别结果,但是需要较高配置的计算资源和内存容量,而 这一过程在云端完成,从而不需要运动识别终端具有高配置的计算资源以及内存容量也能获得较精确的运动识别结果;

而且,一般的,运动识别终端的特定版本的运动识别软件对应于固定的运动模型,一旦运动识别终端上的运动识别软件的版本没有及时更新,则不能及时获取到更为精确的运动识别结果;上述运动状态识别方法和装置,利用云端的运动模型计算运动识别结果,而云端的运动模型可方便地进行更新,从而可避免因为运动识别终端的运动识别软件的过时而导致不能及时获取到更为精确的运动识别结果的问题。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1