用于动作识别的数据采集方法和装置以及动作识别系统的制作方法

文档序号:6399331阅读:593来源:国知局
专利名称:用于动作识别的数据采集方法和装置以及动作识别系统的制作方法
用于动作识别的数据采集方法和装置以及动作识别系统
技术领域
本发明涉及计算机应用技术领域,特别涉及一种用于动作识别的数据采集方法和装置以及动作识别系统。
背景技术
随着计算机应用技术的不断发展,动作识别已经广泛地应用于体育、游戏、电影、医疗仿真或动作技能培训等领域。例如将包含传感器的数据采集装置设置在球杆或者手套上,用户在进行诸如高尔夫、羽 毛球等球类运动时数据采集装置采集到运动数据并将采集到的运动数据传送至动作计算装置,该动作计算装置可以设置于诸如手机、平板电脑等智能终端中,动作计算装置对数据采集装置传送来的运动数据进行计算分析后,能够获取到用户运动时的位置和姿态信息等,从而为用户进行数据分享、获得动作指导等提供基础。正如上例中所述,现有的动作识别系统如图1所示,包括数据采集装置和动作计算装置,其中数据采集装置主要包括传感器和通讯模块,传感器采集到的运动数据经由通讯模块实时传输给动作计算装置。上述的传感器可以包括但不限于:加速度传感器、陀螺仪、磁场传感器等。然而,通常数据采集装置和动作计算装置之间通过无线信道进行运动数据的实时传输,动作计算装置在计算时采用的算法是基于加速度的积分算法,因此相同噪声前提下采样率越高计算得到的位置和姿态信息的精度也就越高。如果采用高采样率情况下大量传感器采集到的运动数据对无线信道的传输来说压力巨大,除了产生大量的无线功耗之外,甚至可能会超出无线信道的承受能力。

发明内容有鉴于此,本发明提供了一种用于动作识别的数据采集方法和装置以及动作识别系统,以便于在相同采样率情况下降低无线功耗,满足高精度动作识别的需求。具体技术方案如下:—种用于动作识别的数据采集方法,该方法应用于包含初步动作识别模块、数据存储模块和通讯模块的数据采集装置,该方法包括:S1、初步动作识别模块对传感器采集的运动数据进行初步识别,将动作触发点附近预设范围内的运动数据提供给数据存储模块进行存储;S2、通讯模块将所述数据存储模块存储的运动数据传输给动作计算装置,以供动作计算装置进行动作识别。一种用于动作识别的数据采集装置,该装置包括:初步动作识别模块,用于对传感器采集的运动数据进行初步识别,将动作触发点附近预设范围内的运动数据提供给数据存储模块;数据存储模块,用于存储所述初步动作识别模块提供的运动数据;通讯模块,用于将所述数据存储模块存储的运动数据传输给动作计算装置,供动作计算装置进行动作识别。一种动作识别系统,该动作识别系统包括:动作计算装置和上述的数据采集装置;所述动作计算装置,用于利用所述数据采集装置发送的运动数据进行动作识别。由以上技术方案可以看出,本发明的数据采集装置中设置了初步动作识别模块和数据存储模块,通过对传感器采集的运动数据进行初步识别,仅将动作触发点附近预设范围内的这部分对动作识别有意义的运动数据进行存储并传输给动作计算装置,这样在相同采样率情况下对传输给动作计算装置的运动数据进行初步挑选,在提供高采样率的运动数据的同时降低了无线信道的传输压力和无线功耗,满足了高精度动作识别的需求。

图1为现有技术中动作识别系统的结构图;图2为本发明实施例一提供的系统结构图;图3为本发明实施例一提供的数据存储模块存储的一组运动数据的示意图;图4a为本发明实施例一提供的一种数据帧格式;图4b为本发明实施例一提供的另一种数据帧格式;图5为本发明实施例二提供的初步动作识别模块的动作检测过程流程图;图6为本发明实 施例三提供的动作识别模块的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的核心思想在于,通过在数据采集装置中添加初步动作识别模块和数据存储模块,在数据采集装置端实现运动数据的初步筛选和缓存,排除那些对动作识别无用的静态状态的数据,然后通过主动推送或者响应请求的方式将缓存的运动数据发送给动作计算装置进行具体的动作识别。下面通过具体的实施例对本发明进行详细描述。实施例一、图2为本发明实施例一提供的系统结构图,在该系统中同样包括数据采集装置和动作计算装置,但在数据采集装置中除了传感器和通讯模块之外,还包括初步动作识别模块和数据存储模块,其连接关系如图2所示。数据采集装置可以设置但不限于球杆、球拍、手套等被识别物体上,以获取被识别物体的运动数据。动作计算装置则可以设置但不限于手机、平板电脑、PDA等智能终端上。数据采集装置和动作计算装置之间优选地通过无线信道进行数据传输,诸如wif1、近场通信(NFC)、红外、蓝牙等,当然也不排除可以通过有线网络进行数据传输。在数据采集装置中,传感器同样用于采集被识别物体的运动数据,这些运动数据中即包括被识别物体处于静止状态时的运动数据,也包括被识别物体处于运动状态时的运动数据。传感器可以采用但不限于:加速度传感器、陀螺仪、磁场传感器、罗盘等,例如采用三轴加速度传感器、三轴陀螺仪、三轴磁场传感器构成的一组传感器。该运动数据可以是被识别运动物体的加速度、角速度、相对于三维地磁坐标系的姿态角等等。
初步动作识别模块对传感器采集的运动数据进行初步识别,将动作触发点附近预设范围内的运动数据提供给数据存储模块,由数据存储模块对初步动作识别模块提供的运动数据进行存储。初步动作识别模块进行的初步识别主要是进行动作检测,即初步检测出动作触发点,由于在动作计算装置中还会具体、准确地对数据采集装置发送的运动数据进行分析计算,因此对数据采集装置中的初步动作识别模块所做的动作检测就不要求太高的准确性,只是一个粗略的检测。鉴于后续动作计算装置在进行具体分析计算时会用到运动动作开始之前的数据,因此初步动作识别模块除了向数据存储模块提供从动作触发点开始以后(包括动作触发点)的运动数据,还会提供动作触发点之前的运动数据,即提供动作触发点之前m*Fs巾贞的运动数据、动作触发点的运动数据以及动作触发点之后n*Fs-l巾贞的运动数据,m和η为预设的正整数,Fs为采样率,这组成了一组运动数据,数据存储模块存储的一组运动数据如图3中所示。本发明实施例中所指的一帧运动数据是一个采样时刻各传感器的采样数据集合,举个例子如果传感器包含三轴加速度传感器、三轴陀螺仪和三轴磁场传感器,那么一帧运动数据就为{Acc X, Acc Y, Acc Ζ, Gyro X, Gyro Y, Gyro Z, Mag X, Mag Y, Mag Ζ},其中 AccX, Acc Y, Acc Z分别为三轴加速度传感器采集到的沿坐标轴X,Y,Z方向的加速度,GyroX, Gyro Y, Gyro Z分别为三轴陀螺仪采集到的绕坐标轴X,Y,Z旋转的角速度,Mag X,MagY1Mag Z分别为三轴磁场传感器采集到的沿坐标轴X,Y,Z方向的磁场强度。如果采用Little-endian存储格式,即高字节存放在高地址,则存储的数据帧格式可以如图4a中所示,图中LSB是最低有效位,MSB是最高有效位。再举个例子,如果传感器包含三轴加速度传感器、三轴陀螺仪、高G值加速度传感器和三轴磁场传感器,那么一巾贞运动数据就为{Acc X, Acc Y, AccZ, Gyro X, Gyro Y, GyroZ, Acc high X, Acc high Y, Acc high Z, Mag X, Mag Y, Mag Z},其中 Acc X, Acc Y, Acc Z分别为三轴加速度传感器采集到的沿坐标轴X,Y,Z方向的加速度,Gyro X, Gyro Y, Gyro Z分别为三轴陀螺仪采集到的绕坐标轴X,Y,Z旋转的角速度,Acc high X, Acc high Y, Acc highZ分别为高G值加速度传感器采集到的沿坐标轴X,Y,Z方向的加速度,MagX,Mag Y, Mag Z分别为三轴磁场传感器采集到的沿坐标轴X,Y,Z方向的磁场强度。如果采用Little-endian存储格式,则存储的数据帧格式可以如图4b中所示。具体采用哪些传感器,组成哪种数据帧,与后续运动计算装置所采用的算法相关,在此不再 举例描述。通讯模块用于将数据存储模块存储的运动数据传输给动作计算装置,其中传输模块主要包括两种:一种主动推送模式,另一种是响应请求推送模式。其中,主动推送模式可以包括但不限于以下形式:1)当完成一组运动数据的初步识别和存储之后,将存储的运动数据主动推送给动作计算装置;2)周期性地将本周期内存储的运动数据主动推送给动作计算装置;3)依据用户的触发将存储的运动数据主动推送给动作计算装置,例如用户对数据采集装置进行触发,发送最近的NI组运动数据,NI为预设的正整数。如果采用响应请求推送模式,需要动作计算装置向数据采集装置发送运动数据获取请求,数据采集装置的通讯模块将数据存储模块存储的与该请求对应的运动数据发送给动作计算装置。灵活地,动作计算装置可以向数据采集装置请求某范围内的运动数据,例如请求最近的NI组运动数据、最早的N2组运动数据等,N2为预设的正整数;也可以向数据采集装置请求所有未传输过的运动数据。至此,动作计算装置就能够依据数据采集装置传输来的运动数据来进行分析和计算,从而进行动作识别。下面通过实施例二对初步动作识别模块的动作检测过程进行详细描述。实施例二、在本实施例中,由于初步动作识别模块进行动作检测时会涉及到检测到动作触发点,并需要将前m*Fs和包括动作触发点之内的后n*Fs帧提供给数据存储模块进行存储,因此在本发明实施例中采用第一缓存和第二缓存分别来存储检测到动作触发点之前的数据帧和检测到动作触发点之后的数据帧。优选地,为了保证在检测到动作触发点时能够已保存m*Fs帧且尽量地节约缓存资源,在此可以设计一个m*Fs帧大小的第一缓存,该缓存的大小固定,当第一缓存填满后写入新的数据帧时覆盖最早的数据帧,此设计保证了一旦检测到动作触发点第一缓存中正好缓存了 m*Fs帧数据。为了提高工作效率,可以在第一缓存中采用循环队列的形式,维护一个写指针指向下一次写入的地址,当写指针指向缓存尾地址使,再次写入后写指针指向缓存首地址。而第二缓存则简单的采用顺序存储即可。主要实现方法就是,初步动作识别模块缓存从传感器获取到的运动数据并进行动作触发点的检测,其中将动作触发点之前m*Fs帧缓存在第一缓存中,从动作触发点开始的各帧运动数据存入第二缓存,待第二缓存中达到n*Fs帧时,将由第一缓存中的该m*Fs帧和第二缓存中的该n*Fs帧构成的一组运动数据提供给数据存储模块进行存储。下面提供一种该方法的优选实施方式,如图5所示,图5为本发明实施例二提供的初步动作识别模块的动作检测过程流程图,该动作检测过程包括以下步骤步骤501、获取来自传感器的一帧运动数据。步骤502、判断动作触发点状态是否空闲,如果否,则执行步骤504 ;如果是,执行步骤503。本步骤是通过动作触发点状态空闲与否来判断是否已检测到动作触发点,动作触发点状态初始为空闲,一旦检测到动作触发点则被设置为非空闲状态,当完成一组运动数据的获取后又被设置为空闲。步骤503、利用获取的运动数据进行动作触发点检测,如果未检测到动作触发点,则将当前获取的运动数据存入第一缓存,转至步骤501等待获取下一帧运动数据;如果检测到动作触发点,则执行步骤504。如果尚未检测到动作触发点,则需要针对每一帧运动数据都进行动作触发点检测,直至检测到动作触发点。本步骤中的动作触发点检测可以包括撞击检测和大幅运动检测;如果检测到撞击或大幅运动,则认为检测到动作触发点,将动作触发点状态设置为非空闲,如果未检测到撞击和大幅运动,则认为未检测到动作触发点。撞击检测的原理主要是判断在某一个时间点加速度或角速度是否发生突变,检测的方法可以分为三种第一种方法单纯依靠加速度是否发生突变来判断判断当前获取的运动数据中加速度与上一帧运动数据中加速度的差值是否达到预设的加速度突变阈值,如果是,则认为发生撞击。其中在判断当前获取的运动数据中加速度与上一帧的运动数据中加速度的差值是否达到预设的加速度突变阈值时,由于加速度可能是三轴加速度传感器获取的三维数据,因此可以分别确定当前帧和上一帧的Acc X的差值,当前帧和上一帧的Acc Y的差值,当前帧和上一帧的Acc Z的差值,如果这些差值中有Ml个达到预设的加速度突变阈值,确定当前获取的运动数据中加速度与上一帧的运动数据中加速度的差值达到预设的加速度突变阈值,其中Ml为1、2或3。第二种方法单纯依靠角速度是否发生突变来判断判断当前获取的运动数据中角速度与上一帧运动数据中角速度的差值是否达到预设的角速度突变阈值,如果是,则认为发生撞击。其中在判断当前获取的运动数据中角速度与上一帧的运动数据中角速度的差值是否达到预设的角速度突变阈值时,由于角速度可能是三轴陀螺仪获取的三维数据,因此可以分别确定当前帧和上一帧的Gyro X的差值,当前帧和上一帧的Gyro Y的差值,当前帧和上一帧的Gyro Z的差值,如果这些差值中有M2个达到预设的加速度突变阈值,确定当前获取的运动数据中角速度与上一帧的运动数据中角速度的差值达到预设的角速度突变阈值,其中M2为1、2或3。第三种方法结合加速度和角速度是否都发生突变来判断判断是否当前获取的运动数据中加速度与上一帧运动数据中加速度的差值达到预设的加速度突变阈值并且当前获取的运动数据中角速度与上一帧运动数据中角速度的差值达到预设的角速度突变阈值,如果是,则认为发生撞击。其中在判断当前获取的运动数据中加速度与上一帧的运动数据中加速度的差值是否达到预设的加速度突变阈值时与第一种方法相同,在判断当前获取的运动数据中角速度与上一帧的运动数据中角速度的差值是否达到预设的角速度突变阈值时与第二种方法相同。上述三种方法中,第三种方法是优选实施方法,能够具备较高的识别可靠性,降低误判概率。在每一种方法中,Ml和M2值的选取一定程度上跟数据采集装置设置的位置相关,例如如果设置在手套上,则可以设置Ml和M2采用较大的值,例如采用2或3,如果设置在球杆上,对运动的敏感程度相对较高,可以设置Ml和M2采用较小的值,例如采用I或2即可;一定程度也与具体运动形式相关。举一个例子,例如在高尔夫过程中击球的瞬间发生撞击,该击球的瞬间就是本发明中的动作触发点,在击球的瞬间设置在球杆或者手套上的数据采集装置通过传感器获取到当前帧的运动数据,如果该帧和上一帧的Acc X的差值以及该帧和上一帧的Acc Y的差值均达到预设的加速度突变阈值,并且该帧和上一帧的Gyro X的差值以及该帧和上一帧的Gyro Y的差值均达到预设的角速度突变阈值,则认为在当前采样时间发生了撞击,在当前获取的该帧运动数据中检测到动作触发点。大幅运动检测主要是判断是否当前获取的该帧运动数据中加速度幅度达到预设的加速度阈值且角速度幅度达到预设角速度阈值,如果是,则确定发生大幅度运动。鉴于通常采用的加速度传感器是三轴加速度传感器,角速度传感器为三轴角速度传感器,因此在确定加速度幅度和角速度幅度时,通常通过求取三轴加速度向量的模和三轴角速度的模来确定。例如,当求取的加速度幅度大于6倍重力加速度并且角速度幅度大于800rad/s时,确定发生大幅运动。步骤504、将当前获取到的一帧运动数据存入第二缓存,将动作触发点状态设置为非空闲。由于检测到当前获取到的该帧运动数据为动作触发点,因此从该帧运动数据开始要存入第二缓存中。步骤505、判断第二缓存中的数据帧数量是否达到n*Fs,如果否,则转至步骤501等待获取下一帧运动数据;如果是,执行步骤506。步骤506、将第一缓存中的运动数据和第二缓存中的运动数据一组运动数据提供给数据存储模块进行存储。一旦第二缓存中的运动数据的数据帧数量达到n*Fs,则说明已经获取到一组运动数据,再将第二缓存中的运动数据提供给数据存储模块,这样数据存储模块就能够将获取到的一组运动数据按照图3所示的样式进行存储。步骤507、将动作触发点状态设置为空闲,结束当前一组运动数据的获取。如果要开始下一组运动数据的获取,则清空第一缓存和第二缓存,并初始化动作触发点状态后,从步骤501开始执行。从以上实施例的描述可以看出,在本发明提供的数据采集装置中,初步动作识别模块是核心,下面通过实施例三对该初步动作识别模块的结构进行详细描述。实施例三、图6为本发明实施例三提供的动作识别模块的结构图,如图6所示,该动作识别模块主要由缓存和检测模块00和存储交互模块10构成。其中缓存和检测模块进一步包括数据获取模块01、第一判断模块02、动作检测模块03、数据缓存模块04和第二判断模块05构成。缓存和检测模块00缓存从传感器获取到的运动数据并进行动作触发点的检测,其中将动作触发点之前m*Fs帧缓存在第一缓存中,从动作触发点开始的各帧运动数据存入第二缓存。如实施例二中所述,优选地,为了保证在检测到动作触发点时能够已保存m*Fs帧且尽量地节约缓存资源,在此可以设计一个m*Fs帧大小的第一缓存,该缓存的大小固定,当第一缓存填满后写入新的数据帧时覆盖最早的数据帧,此设计保证了一旦检测到动作触发点第一缓存中正好缓存了 m*Fs帧数据。为了提高工作效率,可以在第一缓存中采用循环队列的形式,维护一个写指针指向下一次写入的地址,当写指针指向缓存尾地址使,再次写入后写指针指向缓存首地址。而第二缓存则简单的采用顺序存储即可。存储交互模块10待第二缓存中达到n*Fs帧时,将由第一缓存中m*Fs帧和第二缓存中n*Fs帧构成的一组运动数据提供给数据存储模块进行存储。下面对缓存和检测模块00进行具体描述,继续如图6所示。数据获取模块01用于获取来自传感器的一帧运动数据,也就是说,数据获取模块01逐帧获取传感器在各采样时刻采集到的运动数据,开始触发第一判断模块01执行操作。第一判断模块02判断动作触发点状态是否空闲,如果否,则触发数据缓存模块04,如果是,触发动作检测模块03。这里的动作触发点是用于标识当前组的运动数据是否已检测到动作触发点,动作触发点的初始状态为空闲,空闲状态标识没有检测到动作触发点,一旦检测到动作触发点,动作触发点状态被置为非空闲状态,当完成一组运动数据的获取后又被置为空闲。动作检测模块03受到第一判断模块02的触发后,利用当前获取的该帧运动数据进行动作触发点的检测,如果未检测到动作触发点,则触发数据缓存模块04,如果检测到动作触发点,则将动作触发点状态设置为非空闲。具体地,动作检测模块03在初步识别中进行的动作触发点的检测包括撞击检测和大幅运动检测中的至少一种。如果检测到撞击或大幅运动,则认为检测到动作触发点,如果未检测到撞击和大幅运动,则认为未检测到动作触发点。在进行撞击检测时,可以具体采用以下方式之一方式一、判断当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值是否达到预设的加速度突变阈值,如果是,则确定发生撞击。方式二、判断当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值是否达到预设的角速度突变阈值,如果是,则确定发生撞击。方式三、判断是否当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值达到预设的加速度突变阈值并且当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值达到预设的角速度阈值,如果是,则确定发生撞击。其中,如果加速度和角速度采用的是一维的数据,则很容易理解。但若加速度采用三轴加速度传感器获取,获取的加速度是三维数据,则分别确定当前获取的该帧运动数据与上一帧运动数据中Acc X之间的差值、Acc Y之间的差值以及Acc Z之间的差值,如果其中有Ml个差值达到预设的加速度突变阈值,则确定当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值达到预设的加速度突变阈值,Ml为1、2或3,Acc X、Acc Y和Acc Z分别为三轴加速度传感器获取的在X轴、Y轴和Z轴上的加速度。若角速度采用三轴角速度传感器获取,则分别确定当前获取的该帧运动数据与上一帧运动数据中Gyro X之间的差值、Gyro Y之间的差值以及Gyro Z之间的差值,如果其中有M2个差值达到预设的角速度突变阈值,则确定当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值达到预设的角速度突变阈值,M2为1、2或3,Gyro X.GyroY和Gyro Z分别为三轴角速度传感器获取的绕X轴、Y轴和Z轴旋转的角速度。同样,方式三是优选实施方式,能够具备较高的识别可靠性,降低误判概率。在每一种方式中,Ml和M2值的选取一定程度上跟数据采集装置设置的位置相关,例如如果设置在手套上,则可以设置Ml和M2采用较大的值,例如采用2或3,如果设置在球杆上,对运动的敏感程度相对较高,可以设置Ml和M2采用较小的值,例如采用I或2即可;一定程度也与具体运动形式相关。在进行大幅运动检测时,可以具体执行判断是否当前获取的该帧运动数据中加速度幅度达到预设加速度阈值并且角速度幅度达到预设角速度阈值,如果是,则确定发生大幅度运动。同样鉴于通常采用的加速度传感器是三轴加速度传感器,角速度传感器为三轴角速度传感器,因此在确定加速度幅度和角速度幅度时,通常通过求取三轴加速度向量的模和三轴角速度的模来确定。例如,当求取的加速度幅度大于6倍重力加速度并且角速度幅度大于800rad/s时,确定发生大幅运动。数据缓存模块04,用于收到动作检测模块03的触发后,将当前获取的该帧运动数据存入第一缓存;收到第一判断模块02的触发后,将当前获取到的该帧运动数据存入第二缓存,触发第二判断模块05。第二判断模块05收到触发后,判断第二缓存中的帧数量是否达到n*Fs。这样存储交互模块10就能够在第二缓存中的帧数量达到n*Fs时,将由第一缓存中m*Fs帧和第二缓存中n*Fs帧构成的一组运动数据提供给数据存储模块进行存储。存储交互模块10在执行完操作后,将动作触发点状态初始化为空闲。经过上述实施例之后,动作计算装置在接收到数据采集装置传输的运动数据后,就可以实现诸如球类运动的动作识别,例如高尔夫球、羽毛球等等。在进行动作识别过程中可以包括但不限于以下过程:1)动作计算装置获取一组运动数据并存储,即接收从数据采集装置传输来的运动数据,通常对于诸如球类运动的动作,数据采集装置中的传感器可以采用:三轴加速度传感器、三轴陀螺仪和三轴磁场传感器,采集的运动数据包括:加速度、角速度和相对于三维地磁坐标系的姿态角。2)噪声滤波。3)计算传感器的输出零漂,并对各采样时刻的运动数据进行校正。4)运动静止检测。即利用各采样时刻的加速度进行运动静止检测,确定一段运动状态的运动开始时刻h和运动结束时刻te。5)计算各采样时刻的实际加速度,即通过姿态推算将各采样时刻的加速度扣除重力加速度的影响。6)提取特征点识别运动类型。通过运动数据确定各采样时刻的速度、加速度、位置和姿态后,以高尔夫球为例,进行以下特征点的识别:特征点1:速度为O。该特征点对应于初始时刻静止对准。特征点2:水平方向上的维度上的速度分别相对于其他两个维度上速度的比值均超过预设的第二特征点比值,则识别出特征点2。该特征点2对应于高尔夫挥杆的起杆初期,此时挥杆动作几乎水平。特征点3:竖直方向上的维度上第一方向的速度分别相对于其他两个维度上速度的比值均超过预设的第三特征点比值,则识别出特征点3。该特征点3对应于起杆中期,挥杆到一半,方向几乎与地面垂直。特征点4:竖直方向上的维度上的速度小于预设的第四特征点速度阈值,则识别出特征点4 ;更优地,也可以在竖直方向上的维度上的速度小于预设的第四特征点速度阈值,且高度和加速度都满足预设的第四特征点要求,则识别出特征点4。该特征点4对应起杆到达顶点,此时的竖直方向上的维度上的速度几乎为零,此时手的高度和姿态都有一定的限制。特征点5:竖直方向上的维度上第二方向的速度分别相对于其他两个维度上速度的比值均超过预设的第五特征点比值,其中第一方向与第二方向相反且第五特征点比值大于第三特征点比值,则识别出特征点5。该特征点5对应于下挥准备击球,该过程与起杆中期类似,不过运动速度更大,运动方向相反。特征点6:该特征点分为两种情况:第一种情况为球员仅做挥杆练习,即空挥杆而不击球。第二种情况为球员做击球动作,击球时刻球杆与球高速碰撞,加速度会发生剧烈震荡。第一种情况对应的特征点6的识别策略为:如果存在采样时刻t对应的min(a | Xt-Xinit | + β | Tt-Tinit )值小于预设的第六特征点阈值,其中Xt为采样时刻t对应的位置,Xinit为初始时刻h对应的位置,Tt为采样时刻t对应的姿态,Tinit为初始时刻h对应的姿态,则识别出特征点6。a和β为预设的参数值。Tinit和Tt分别为采样时刻h和t时被识别物体的转动状况。第二种情况对应的特征点6的识别策略为:如果存在某个时刻加速度变化率超过预设的第六特征点加速度变化率阈值,则识别出特征点6,这种情况对应于做击球的动作。更优地,对于高尔夫挥杆动作而言,在击球时刻对应的角速度变化率也会发生急剧的变化,因此,可以在确定存在某个时刻加速度变化率超过预设的第六特征点角速度变化率阈值。最终识别出一组运动数据对应的动作类型,存储、输出或者显示该动作类型,还可以进一步存储、输出或者显示各采样时刻的加速度、速度、位置、姿态等运动参数。此处的动作识别装置的识别方法仅为所举的其中一种方式,本发明并不具体限定动作识别装置的识别方法,对其他识别方法也不再一一描述。动作识别装置的上述识别方法可以采用离线的方式进行。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种用于动作识别的数据采集方法,该方法应用于包含初步动作识别模块、数据存储模块和通讯模块的数据采集装置,其特征在于,该方法包括: 51、初步动作识别模块对传感器采集的运动数据进行初步识别,将动作触发点附近预设范围内的运动数据提供给数据存储模块进行存储; 52、通讯模块将所述数据存储模块存储的运动数据传输给动作计算装置,以供动作计算装置进行动作识别。
2.根据权利要求1所述的方法,其特征在于,所述动作触发点附近预设范围内的运动数据为:动作触发点之前m*Fs巾贞的运动数据、动作触发点的运动数据以及动作触发点之后n*Fs-l帧的运动数据所构成的一组运动数据,m和η为预设的正整数,Fs为采样率; 其中,一帧运动数据为同一采样时刻各传感器采集到的数据集合。
3.根据权利要求2所述的方法,其特征在于,所述步骤S1具体包括: 511、所述初步动作识别模块缓存从传感器获取到的运动数据并进行动作触发点的检测,其中将动作触发点之前m*Fs帧缓存在第一缓存中,从动作触发点开始的各帧运动数据存入第二缓存; 512、待第二缓存中达到n*Fs帧时,将由第一缓存中m*Fs帧和第二缓存中n*Fs帧构成的一组运动数据提供给数据存储模块进行存储。
4.根据权利要求3所述的方法,其特征在于,所述步骤Sll具体包括: 5111、所述初步动作识别模块获取来自传感器的一帧运动数据; 5112、判断动作触发点状态是否空闲,如果否,则执行步骤S114;如果是,执行步骤S113 ; 5113、利用当前获取的该帧运动数据进行动作触发点的检测,如果未检测到动作触发点,则将当前获取的该帧运动数据存入第一缓存,转至步骤Slll等待获取下一帧运动数据;如果检测到动作触发点,将动作触发点状态设置为非空闲,执行步骤S114 ; SI 14、将当前获取到的该帧运动数据存入第二缓存; S115、判断第二缓存中的帧数量是否达到n*Fs,如果否,则转至步骤Slll等待获取下一帧运动数据;如果是,执行所述步骤S12 ; 其中所述动作触发点状态初始为空闲,待执行完所述步骤S12后将动作触发点状态初始化为空闲。
5.根据权利要求3或4所述的方法,其特征在于,所述第一缓存为m*Fs帧大小,且采用循环队列形式。
6.根据权利要求1至4任一权项所述的方法,其特征在于,在所述初步识别中,动作触发点的检测包括:撞击检测和大幅运动检测中的至少一种; 如果检测到撞击或大幅运动,则认为检测到动作触发点,如果未检测到撞击和大幅运动,则认为未检测到动作触发点。
7.根据权利要求6所述的方法,其特征在于,所述撞击检测具体采用以下方式之一: 方式一、判断当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值是否达到预设的加速度突变阈值,如果是,则确定发生撞击; 方式二、判断当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值是否达到预设的角速度突变阈值,如果是,则确定发生撞击;方式三、判断是否当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值达到预设的加速度突变阈值并且当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值达到预设的角速度阈值,如果是,则确定发生撞击。
8.根据权利要求6所述的方法,其特征在于,所述大幅运动检测具体包括: 判断是否当前获取的该帧运动数据中加速度幅度达到预设加速度阈值并且角速度幅度达到预设角速度阈值,如果是,则确定发生大幅度运动。
9.根据权利要求1所述的方法,其特征在于,在所述步骤S2中,所述通讯模块在一组运动数据的初步识别和存储完成时,或者周期性地,或者依据用户的触发,将所述数据存储模块存储的运动数据主动推送给动作计算装置;或者, 所述通讯模块应所述动作计算装置的请求,将所述动作计算装置请求的一组以上的运动数据传输给所述动作计算装置。
10.一种用于动作识别的数据采集装置,其特征在于,该装置包括: 初步动作识别模块,用于对传感器采集的运动数据进行初步识别,将动作触发点附近预设范围内的运动数据提供给数据存储模块; 数据存储模块,用于存储所述初步动作识别模块提供的运动数据; 通讯模块,用于将所述数据存储模块存储的运动数据传输给动作计算装置,供动作计算装置进行动作识别。
11.根据权利要求10所述 的装置,其特征在于,所述动作触发点附近预设范围内的运动数据为:动作触发点之前m*Fs巾贞的运动数据、动作触发点的运动数据以及动作触发点之后n*Fs-l帧的运动数据所构成的一组运动数据,m和η为预设的正整数,Fs为采样率; 其中,一帧运动数据为同一采样时刻各传感器采集到的数据集合。
12.根据权利要求11所述的装置,其特征在于,所述初步动作识别模块具体包括: 缓存和检测模块,用于缓存从传感器获取到的运动数据并进行动作触发点的检测,其中将动作触发点之前m*Fs帧缓存在第一缓存中,从动作触发点开始的各帧运动数据存入第二缓存; 存储交互模块,用于待第二缓存中达到n*Fs帧时,将由第一缓存中m*Fs帧和第二缓存中n*Fs帧构成的一组运动数据提供给数据存储模块进行存储。
13.根据权利要求12所述的装置,其特征在于,所述缓存和检测模块具体包括: 数据获取模块,用于获取来自传感器的一帧运动数据; 第一判断模块,用于判断动作触发点状态是否空闲,如果否,则触发数据缓存模块,如果是,触发动作检测模块; 动作检测模块,用于受到所述第一判断模块的触发后,利用当前获取的该帧运动数据进行动作触发点的检测,如果未检测到动作触发点,则触发数据缓存模块,如果检测到动作触发点,则将动作触发点状态设置为非空闲; 数据缓存模块,用于收到动作检测模块的触发后,将当前获取的该帧运动数据存入第一缓存;收到第一判断模块的触发后,将当前获取到的该帧运动数据存入第二缓存,触发第二判断模块; 第二判断模块,用于收到触发后,判断第二缓存中的帧数量是否达到n*Fs ; 所述存储交互模块在执行完操作后,将动作触发点状态初始化为空闲。
14.根据权利要求12或13所述的装置,其特征在于,所述第一缓存为m*Fs帧大小,且采用循环队列形式。
15.根据权利要求10至13任一权项所述的装置,其特征在于,所述初步动作识别模块在初步识别中进行的动作触发点的检测包括:撞击检测和大幅运动检测中的至少一种; 如果检测到撞击或大幅运动,则认为检测到动作触发点,如果未检测到撞击和大幅运动,则认为未检测到动作触发点。
16.根据权利要求15所述的装置,其特征在于,所述撞击检测具体采用以下方式之一: 方式一、判断当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值是否达到预设的加速度突变阈值,如果是,则确定发生撞击; 方式二、判断当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值是否达到预设的角速度突变阈值,如果是,则确定发生撞击; 方式三、判断是否当前获取的该帧运动数据中加速度与上一帧运动数据中加速度的差值达到预设的加速度突变阈值并且当前获取的该帧运动数据中角速度与上一帧运动数据中角速度的差值达到预设的角速度阈值,如果是,则确定发生撞击。
17.根据权利要求15所述的装置,其特征在于,所述初步动作识别模块在进行大幅运动检测时,具体执行: 判断是否当前获取的该帧运动数据中加速度幅度达到预设加速度阈值并且角速度幅度达到预设角速度阈值,如果是,则确定发生大幅度运动。
18.根据权利 要求10所述的装置,其特征在于,所述通讯模块在一组运动数据的初步识别和存储完成时,或者周期性地,或者依据用户的触发,将所述数据存储模块存储的运动数据主动推送给动作计算装置;或者, 所述通讯模块应所述动作计算装置的请求,将所述动作计算装置请求的一组以上的运动数据传输给所述动作计算装置。
19.一种动作识别系统,其特征在于,该动作识别系统包括:动作计算装置和如权利要求10所述的数据采集装置; 所述动作计算装置,用于利用所述数据采集装置发送的运动数据进行动作识别。
全文摘要
本发明提供了一种用于动作识别的数据采集方法和装置以及动作识别系统,动作识别装置包括初步动作识别模块,用于对传感器采集的运动数据进行初步识别,将动作触发点附近预设范围内的运动数据提供给数据存储模块;数据存储模块,用于存储所述初步动作识别模块提供的运动数据;通讯模块,用于将所述数据存储模块存储的运动数据传输给动作计算装置,供动作计算装置进行动作识别。本发明在相同采样率情况下对传输给动作计算装置的运动数据进行初步挑选,在提供高采样率的运动数据的同时降低了无线信道的传输压力和无线功耗,满足了高精度动作识别的需求。
文档编号G06F3/0346GK103076884SQ201310049750
公开日2013年5月1日 申请日期2013年2月7日 优先权日2013年2月7日
发明者韩铮, 戴晓伟, 陈弥 申请人:韩铮
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1