CN114080258B - 一种运动模型生成方法及相关设备 - Google Patents
一种运动模型生成方法及相关设备 Download PDFInfo
- Publication number
- CN114080258B CN114080258B CN202080006118.9A CN202080006118A CN114080258B CN 114080258 B CN114080258 B CN 114080258B CN 202080006118 A CN202080006118 A CN 202080006118A CN 114080258 B CN114080258 B CN 114080258B
- Authority
- CN
- China
- Prior art keywords
- motion
- target
- video data
- user
- motion model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 586
- 238000000034 method Methods 0.000 title claims abstract description 112
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000004891 communication Methods 0.000 claims description 53
- 230000006854 communication Effects 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 28
- 238000011156 evaluation Methods 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 7
- 239000010410 layer Substances 0.000 description 31
- 230000000875 corresponding effect Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 15
- 238000010295 mobile communication Methods 0.000 description 14
- 230000009191 jumping Effects 0.000 description 12
- 238000012417 linear regression Methods 0.000 description 10
- 238000013527 convolutional neural network Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000000611 regression analysis Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 210000000988 bone and bone Anatomy 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012706 support-vector machine Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B71/00—Games or sports accessories not covered in groups A63B1/00 - A63B69/00
- A63B71/06—Indicating or scoring devices for games or players, or for other sports activities
Landscapes
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Physical Education & Sports Medicine (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种运动模型生成方法及相关设备,方法包括:获取第一用户输入的描述信息(S403),其中,描述信息用于描述目标用户执行的目标运动以及描述执行目标运动的目标次数;第一用户为目标用户或者目标用户外的其他用户;确定第一视频数据中的目标用户的多个关键点的第一波动情况(S404),其中,第一视频数据为目标用户执行目标运动过程中的视频数据;根据第一波动情况和目标次数确定目标运动的运动模型(S405);其中,运动模型用于进行运动计数。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种运动模型生成方法及相关设备。
背景技术
随着人们生活水平的不断提高,越来越多的人开始重视身体健康,利用空闲时间来进行运动健身。当用户在家里、健身房或者空旷的地方进行运动健身时,常常希望记录运动的次数来对自己的运动过程进行评估。而随着智能化终端设备的发展,终端设备的普及范围越来越广,通过终端设备(比如手机、平板电脑、智能电视等)对用户的运动进行记录是比较常见的方式。
一般来说,在终端设备中可以预置一些常见运动的运动模型,如深蹲、俯卧撑、仰卧起坐等运动的模型,当获取用户执行常见运动的视频时,可以通过预置的运动模型对视频进行识别,从而实现运动计数。然而,这种运动计数方式,所针对的运动类型非常有限,且对于预置运动类型外的运动计数不准确。
发明内容
本申请实施例提供了一种运动模型生成方法及相关设备,能够拓展用户自己期望的运动模型且提高运动模型的生成效率。
第一方面,本申请实施例提供了一种运动模型生成方法,包括:获取第一用户输入的描述信息,其中,所述描述信息用于描述所述目标用户执行的目标运动以及描述执行所述目标运动的目标次数;所述第一用户为所述目标用户或者所述目标用户外的其他用户;确定第一视频数据中的所述目标用户的多个关键点的第一波动情况,其中,所述第一视频数据为所述目标用户执行所述目标运动过程中的视频数据;根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型;其中,所述运动模型用于进行运动计数。
通过第一方面提供的方法,终端设备获取第一视频数据,并分析得出该第一视频数据中目标用户的多个关键点的波动情况,以及由用户向终端设备输入第一视频数据中运动类型(即目标运动)以及执行该类型运动的次数(即目标次数);然后终端设备根据波动情况、运动次数为用户生成该目标运动的运动模型,后续可以基于该运动模型对自己的运动进行计数。采用这种方式,用户不仅可以拓展自己期望的运动模型,能够更好地满足用户对运动模型的个性化需求;并且,通过这种方式建立运动模型更高效快捷。
在一种可能的实现方式中,所述根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型之后,还包括:通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行运动计数;其中,所述第二用户为所述第一用户、所述目标用户或者所述第一用户和所述目标用户外的其他用户。
在一种可能的实现方式中,所述通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行运动计数,包括:若所述第二视频数据中的第二图像序列特征与所述第一视频数据中的第一图像序列特征的第一相似度大于第一预设阈值,则通过所述运动模型和所述第二视频数据中的所述第二用户的多个关键点的第二波动情况对所述第二视频数据中的第二用户执行的运动进行计数;其中,所述第一相似度用于表征所述第二用户执行所述目标运动的标准程度。
通过这种实现方式可以在计算得到的第一相似度大于阈值的情况下,由运动模型根据第二视频数据中的多个关键点的波动情况来进行运动计数。
在一种可能的实现方式中,所述方法还包括:输出运动评价信息;其中,所述运动评价信息为根据所述第一相似度生成的。
在一种可能的实现方式中,所述获取目标用户输入的描述信息之前,还包括:获取所述第一视频数据;若确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型,则触发所述获取第一用户输入的描述信息的操作。
通过这种方式可以在确定数据库中不存与第一视频数据的第一图像序列特征的相似度大于或等于第二预设阈值的目标图像序列特征的情况下,建立对第一视频数据进行运动计数的运动模型,可以避免因数据库中存在运动模型而建立运动模型所造成的资源浪费。
在一种可能的实现方式中,所述确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型包括:若数据库中不存在与所述第一视频数据的第一图像序列特征的第二相似度达到第二预设阈值的目标图像序列特征,则确定数据库中不存在对应于所述目标图像序列特征的所述运动模型。
在一种可能的实现方式中,所述数据库包括本地数据库或云端服务器的数据库中的至少一项。
在一种可能的实现方式中,所述确定第一视频数据中的所述目标用户的多个关键点的第一波动情况,包括:确定所述第一视频数据中的所述目标用户的多个关键点;计算所述第一视频数据的每帧图像中的所述多个关键点的坐标相对于所述第一视频数据的参考帧图像中的所述多个关键点的坐标的距离;将所述距离投影到预设的坐标轴上以确定所述第一视频数据中所述目标用户的多个关键点的第一波动情况。
在一种可能的实现方式中,所述根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型,包括:从所述第一波动情况中选取具有变化且波动幅度排在前k位的k个关键点;对所述k个关键点进行运动峰值计数得到计数值;通过回归拟合的方式根据所述计数值和所述目标次数确定所述目标运动的运动模型。
在一种可能的实现方式中,所述回归拟合的方式包括线性回归拟合和支持向量机回归中的至少一项。在一种可能的实现方式中,所述根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型之后,还包括:保存所述运动模型或向通信对端设备提供所述运动模型。
在一种可能的实现方式中,所述关键点为所述目标用户的骨架关键点,或者所述关键点为预先确定的能够体现人体运动的光流关键点。通过这种方式可以根据具体情况选取关键点,提高了对关键点选取的多样性。
第二方面,本申请实施例提供了一种运动计数装置,包括:输入单元,用于获取第一用户输入的描述信息,其中,所述描述信息用于描述所述目标用户执行的目标运动以及执行所述目标运动的目标次数;所述第一用户为所述目标用户或者所述目标用户外的其他用户;波动情况提取单元,用于确定第一视频数据中的所述目标用户的多个关键点的第一波动情况,其中,所述第一视频数据为所述目标用户执行所述目标运动过程中的视频数据;运动模型建立单元,用于根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型;其中,所述运动模型用于进行运动计数。
在一种可能的实现方式中,还包括:运动计数单元,用于在所述运动模型建立单元根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型之后,通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行运动计数;其中,所述第二用户为所述第一用户、所述目标用户或者所述第一用户和所述目标用户外的其他用户。
在一种可能的实现方式中,所述运动计数单元,具体用于:若所述第二视频数据中的第二图像序列特征与所述第一视频数据中的第一图像序列特征的第一相似度大于第一预设阈值,则通过所述运动模型和所述第二视频数据中的所述第二用户的多个关键点的第二波动情况对所述第二视频数据中的所述第二用户执行的运动进行计数;其中,所述第一相似度用于表征所述第二用户执行所述目标运动的标准程度。
在一种可能的实现方式中,还包括:输出单元,用于输出运动评价信息;其中,所述运动评价信息为根据所述第一相似度生成的。
在一种可能的实现方式中,还包括:获取单元,用于在所述输入单元获取第一用户输入的描述信息之前,获取所述第一视频数据;若确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型,则触发所述获取目标用户输入的描述信息的操作。
在一种可能的实现方式中,所述确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型,具体为:若数据库中不存在与所述第一视频数据的第一图像序列特征的第二相似度达到第二预设阈值的目标图像序列特征,则确定数据库中不存在对应于所述目标图像序列特征的所述运动模型。
在一种可能的实现方式中,所述数据库包括本地数据库或云端服务器中的至少一项。
在一种可能的实现方式中,所述波动情况提取单元,具体用于:确定所述第一视频数据中的所述目标用户的多个关键点;计算所述第一视频数据的每帧图像中的所述多个关键点的坐标相对于所述第一视频数据的参考帧图像中的所述多个关键点的坐标的距离;将所述距离投影到预设的坐标轴上以确定所述第一视频数据中的所述目标用户的多个关键点的第一波动情况。
在一种可能的实现方式中,所述运动模型建立单元,具体用于:从所述第一波动情况中选取具有变化且波动幅度排在前k位的k个关键点;对所述k个关键点进行运动峰值计数得到计数值;通过回归拟合的方式根据所述计数值和所述目标次数确定所述目标运动的运动模型。
在一种可能的实现方式中,所述回归拟合的方式包括线性回归拟合和支持向量机回归中的至少一项。
在一种可能的实现方式中,还包括:保存单元,用于在所述运动模型建立单元根据所述第一视频数据中的多个关键点的波动情况和所述目标次数确定所述目标运动的运动模型之后,保存所述运动模型或向通信对端设备提供所述运动模型。
在一种可能的实现方式中,所述关键点为所述目标用户的骨架关键点,或者所述关键点为预先确定的能够体现人体运动的光流关键点。
第三方面,本申请实施例提供了一种运动计数设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器被配置用于调用所述存储器存储的全部或部分计算机程序,执行上述第一方面提供的方法。
第四方面,本申请实施例提供了一种芯片系统,所述芯片系统包括至少一个处理器和接口电路,所述接口电路和所述至少一个处理器通过线路互联,所述接口电路用于从所述芯片系统外部接收计算机程序;所述计算机程序被所述处理器执行时,第一方面提供的方法得以实现。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的方法。
第六方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,上述第一方面提供的方法得以实现。
附图说明
图1A是本申请实施例提供的一种运动模型生成方法的系统架构示意图;
图1B是本申请实施例提供的一种终端设备100的结构示意图;
图1C是本申请实施例提供的一种终端设备100的软件结构框图;
图2是本申请实施例提供的一种运动计数装置的结构示意图;
图3是本申请实施例提供的一种云端服务器的结构示意图;
图4是本申请实施例提供的一种运动模型生成方法的流程示意图;
图4A是本申请实施例提供的一种用户进行无器械运动的示意图;
图4B是本申请实施例提供的一种用户进行有器械运动的示意图;
图4C是本申请实施例提供的一种人体骨架(骨骼)关键点的示意图;
图5是本申请实施例提供的一种运动模型生成方法的应用场景图;
图6是本申请实施例提供的另一种运动模型生成方法的应用场景图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术图像序列特征的数量。由此,限定有“第一”、“第二”的图像序列特征可以明示或者隐含地包括一个或者更多个该图像序列特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了便于理解本发明实施例,下面对本申请实施例所基于的一种运动模型生成方法的系统架构进行描述。请参阅图1A,图1A是本申请实施例提供的一种运动模型生成方法的系统架构示意图。本申请中的运动模型生成方法的系统架构可以包括图1A中的终端设备100和云端服务器101,其中,云端服务器101和终端设备100可以通过网络进行通信。
云端服务器101,可以是一个服务器或者包括多个服务器的服务器集群;主要用于存储建立的运动模型、将建立得到的运动模型进行输出等,例如,云端服务器将建立得到的运动模型发送给终端设备。
终端设备100,可以是通信终端、移动设备、用户终端、无线通信设备、便携式终端、用户代理等电子设备,主要用于数据的输入、处理和输出(如显示)等,其中,该移动设备可以是手机、智能手表、可穿戴设备、平板设备、具备无线通信功能的手持设备。该终端设备上可以部署(或安装)相应的应用程序(APP)或者客户端,以支持该终端设备实现数据的输入、处理和输出(如显示)等功能。具体来说,该终端设备可以输入运动模型,并基于运动模型进行相应的运算或者识别,例如,接收云端服务器发送的运动模型,然后基于运动模型进行运动计数。需要说明的是,该运动模型也可以由终端自己进行建立,例如,可以先判断云端服务器是否有所需的运动模型,如果没有则自己进行建立;可选的,当终端设备自己建立得到运动模型后,还可以将该运动模型共享到该云端服务器供其他设备使用。
下面例举上述架构的部分具体应用场景:终端设备100可以通过摄像头193实时获取目标用户执行目标运动的第一视频数据,还可以从终端设备100的本地数据库中获取先前存储的目标用户执行目标运动的第一视频数据。终端设备100获取第一视频数据后至少存在如下两种可选的处理方式。
方式一,当终端设备100获取到第一视频数据后,需要通过与存储库中的运动类型的图像序列特征进行相似度计算,来判断用于识别第一视频数据的运动类型的图像序列特征是否存在于数据库中,如果相似度大于预设阈值,则存在。其中,该数据库可以包括云端服务器101的数据库或终端设备100的本地数据库中的至少一项。
在终端设备100判断得到用于识别第一视频数据中的运动类型的图像序列特征不存在于数据库中的情况下,终端设备100可以获取目标用户输入的描述信息,其中,描述信息用于描述目标用户执行的运动为目标运动以及描述执行目标运动的次数为目标次数。然后,终端设备100可以根据第一视频数据分析目标用户执行目标运动过程中的第一视频数据的多个关键点的波动情况。接下来,终端设备可以根据第一视频数据的多个关键点的波动情况和目标次数确定目标运动的运动模型,之后即可使用该运动模型进行运动计数了。可选的,若目标用户同意将目标运动的运动模型上传到云端服务器101,则终端设备100可以通过网络将目标运动的运动模型上传到云端服务器101,以保存在云端服务器101的数据库中供其他终端设备下载使用。
在终端设备100判断得到用于识别第一视频中的运动类型的图像序列特征存在于数据库中的情况下,终端设备100可以加载数据库中图像序列特征对应的运动模型来确定第一视频数据中的运动次数。
方式二,终端设备100将第一视频数据发送给云端服务器101。由云端服务器101判断用于识别第一视频数据中的运动类型的图像序列特征是否存在于云端服务器101的数据库中。
在云端服务器101判断得到用于识别第一视频数据中的运动类型的图像序列特征不存在于数据库中的情况下,云端服务器101可以获取目标用户输入的描述信息,其中,描述信息用于描述目标用户执行的运动为目标运动以及描述执行目标运动的次数为目标次数。然后,云端服务器101可以根据第一视频数据分析目标用户执行目标运动过程中的第一视频数据的多个关键点的波动情况。接下来,云端服务器101可以根据第一视频数据的多个关键点的波动情况和目标次数确定目标运动的运动模型,并将其存储在运动服务器101的数据库中。当终端设备100或者其他终端设备需要使用上述运动模型时,云端服务器101可以将其进行对应的发送。
在云端服务器101判断得到用于识别第一视频数据中的运动类型的图像序列特征存在于数据库中的情况下,云端服务器101可以加载数据库中图像序列特征对应的运动模型来识别第一视频数据中的运动类型以及运动次数。然后,云端服务器101可以将第一相似度发送给终端设备100,第一相似度是数据库中存储的图像序列特征与第一视频数据的第一图像序列特征的相似度计算得到的最大相似度。
可以理解的是,图1A中的运动模型生成方法的系统架构只是本申请实施例中的一种示例性的实施方式,本申请实施例中的运动模型生成方法系统架构包括但不仅限于以上运动模型生成方法系统架构。
基于上述运动模型生成方法的系统架构图,本申请实施例提供了一种应用于上述运动模型生成方法的系统架构中的终端设备100。图1B是本申请实施例提供的一种终端设备100的结构示意图,图1B所示终端设备100仅是一个范例,并且终端设备100可以具有比图1B中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中传感器模块180可以包括陀螺仪传感器180A,加速度传感器180B,距离传感器180C,接近光传感器180D,指纹传感器180E,触摸传感器180F,环境光传感器180G等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
可选的,处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180F,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180F,使处理器110与触摸传感器180F通过I2C总线接口通信,实现终端设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术或者有线通信技术与网络以及其他设备通信,例如,与上述云端服务器通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packetradio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-divisioncode division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(globalpositioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite basedaugmentation systems,SBAS)。
在一些实施例中,无线通信模块160中包括的蓝牙(BT)模块、WLAN模块可以发射信号来探测或扫描终端设备100附近设备,使得终端设备100可以使用蓝牙或WLAN等无线通信技术发现附近设备,并与附近设备建立无线通信连接,并通过上述连接来接收附近设备分享的数据(比如视频数据)。其中,蓝牙(BT)模块可以提供包括经典蓝牙(蓝牙2.1)或蓝牙低功耗(Bluetooth low energy,BLE)中一项或多项蓝牙通信的解决方案。WLAN模块可以提供包括Wi-Fi direct、Wi-Fi LAN或Wi-Fi softAP中一项或多项WLAN通信的解决方案。
在一些实施例中,移动通信模块150提供的无线通信的解决方案可使得终端设备100与网络中的设备(如云端服务器)通信,无线通信模块160提供的WLAN无线通信的解决方案也可使得终端设备100可以与网络中的设备(如中转节点)通信,并可以通过网络中的该设备(如中转节点)与云端服务器通信。这样,云端服务器便可以发现终端设备100,传输数据至终端设备100或者终端设备100可以传输数据至云端设备。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能,例如,基于该拍摄功能可以获得上述第一视频数据。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
陀螺仪传感器180A可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180A确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180A可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180A检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180A还可以用于导航,体感游戏场景。
加速度传感器180B可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180C,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180C测距以实现快速对焦。
接近光传感器180D可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180D检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180D也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180D配合,检测终端设备100是否在口袋里,以防误触。
指纹传感器180E用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器180F,也称“触控面板”。触摸传感器180F可以设置于显示屏194,由触摸传感器180F与显示屏194形成触摸屏,也称“触控屏”。触摸传感器180F用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180F也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。
在一些实施例中,终端设备100可以通过由触摸传感器180F与显示屏194形成的触摸屏获取目标用户输入的描述信息;终端设备100还可以通过摄像头193获取目标用户执行目标运动过程中的第一视频数据或者通过无线通信模块160或移动通信模块150获取目标用户执行运动过程中的第一视频数据,该第一视频数据可以存储在内部存储器120或者外部存储器121中,另外,可以通过处理器110确定第一视频数据中的多个关键点的波动情况;然后可以通过处理器110根据多个关键点的波动情况和目标次数确定目标运动的运动模型,上述运动模型可用于终端设备100或者其他设备识别运动次数。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等等。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图1C是本申请实施例提供的一种终端设备100的软件结构框图,应用于上述图1B中。从图1C可以看出,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图1C所示,应用程序层可以包括运动计数,相机,图库,地图,无线局域网,蓝牙,音乐,视频,等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图1C所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以包括一个或多个视图。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGLES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获用户运动的图像信息进程计数场景,示例性说明终端设备100软件以及硬件的工作流程。下面示例性说明终端设备100软件以及硬件的工作流程。
当触摸传感器180F接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层,应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作所对应的控件为运动计数应用为例,运动计数应用调用应用框架层的接口,启动运动计数应用,进而可以通过调用内核层启动摄像头驱动,通过摄像头193捕获目标用户执行目标运动过程中的第一视频数据;或者可以通过调用内核层启动显示驱动获取图库中存储的第一视频数据,然后由处理器110对上述视频数据进行处理得到第一图像序列特征,再由处理器110将上述第一图像序列特征与数据库中存储的图像序列特征进行处理生成处理结果。若处理结果为数据库中没有用于识别上述视频数据的运动类型以及运动计数的运动模型,则可以由通知管理器使运动计数应用程序在状态栏中显示处理结果,该处理结果可以是提示目标用户输入描述信息,描述信息用于描述所述目标用户执行的运动为目标运动以及描述执行所述目标运动的次数为目标次数。当框架层从内核层获取到目标用户输入的描述信息后,由处理器根据第一视频数据中的多个关键点的波动情况和目标次数确定目标运动的运动模型。
图2是本申请实施例提供的一种运动计数装置的结构示意图,应用于上述图1B中。运动计数装置200可以对应上述终端设备或者终端设备中的一个或多个器件,例如装置200可以是处理器110或处理器110上运行的软件程序。示例性地,装置200具体可以对应于图1C中应用程序层中的运动计数程序。应该理解的是,图2所示的运动计数装置200可以具有比图2所示更多或更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。运动计数装置200可以包括:获取单元201、图像序列特征提取单元202、相似度判断单元203、输入单元204、波动情况提取单元205、运动模型建立单元206、运动计数单元207、本地数据库208A以及云端服务器的数据库208B、输出单元209、保存单元210。其中:
获取单元201,用于获取第一视频数据,第一视频数据为目标用户执行目标运动过程中的视频数据。图像序列特征提取单元202,用于提取第一视频数据的第一图像序列特征,并且可以将第一图像序列特征保存至本地数据库208A或运动服务器的数据库208B中至少一项。在本申请实施例中,图像序列是从视频数据中依序连续获取的系列图像,系列图像可以包括多帧图像。
可选地,在本申请实施例中,视频数据包括图像序列,将视频数据的图像序列输入到卷积神经网络中,取网络中最后一个池化池(Avg-Pool)的输出向量即可得到图像序列特征,该图像序列特征能够反映视频数据中用户的一个或多个运动动作特征。其中,卷积神经网络可以是以下一种或多种:双流膨胀3D卷积网络(Two-Stream Inflated 3D ConvNet,I3D),快慢结合网络(SlowFastNet)等等。
相似度判断单元203,还用于计算第一视频数据的第一图像序列特征与数据库中存储的图像序列特征之间的第二相似度;若所述第二相似度小于第二预设阈值,则说明数据库中不存在对第一视频数据中的运动进行运动计数的运动模型。可选地,通过距离相似度、K最邻近算法(k-NearestNeighbor,KNN)等方法来计算第一相似度、第二相似度。
输入单元204,用于在相似度判断单元203判断第二相似度小于第二预设阈值的情况下,获取第一用户输入的描述信息,其中,描述信息用于描述所述目标用户执行的目标运动以及执行所述目标运动的目标次数;第一用户可以是执行目标运动的目标用户,也可以是目标用户外的其他用户,本申请实施例不做任何限定。
波动情况提取单元205,用于确定第一视频数据中的所述目标用户的多个关键点的第一波动情况。
运动模型建立单元206,用于根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型,并且将运动模型保存至本地数据库208A或云端服务器的数据库208B中至少一项;其中,所述运动模型用于进行运动计数。
可选的,运动模型建立单元206具体用于:从所述第一波动情况中选取具有变化且波动幅度排在k位的k个关键点;对所述k个关键点进行峰值计数得到计数值;通过回归拟合的方式根据所述计数值和所述目标次数确定所述目标运动的运动模型。
在运动模型建立单元206确定所述目标运动的运动模型之后,运动计数单元207,用于通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行计数;其中,第二用户可以是第一视频数据中执行目标运动的目标用户、执行输入操作的第一用户,或者可以是第一用户和目标用户外的其他用户。
具体的,相似度判断单元203判断若所述第二视频数据中的第二图像序列特征与所述第一视频数据中的第一图像序列特征的第一相似度大于第一预设阈值,则指示所述运动计数单元207通过所述运动模型和所述第二视频数据中的所述第二用户的多个关键点的第二波动情况对所述第二视频数据中的第二用户执行的运动进行运动计数;其中,所述第一相似度用于表征所述第二用户执行所述目标运动的标准程度。
输出单元209,用于输出运动评价信息,其中,所述运动评价信息为根据所述第一相似度生成的。
可选的,数据库包括本地数据库208A或云端服务器的数据库208B中至少一项。本地数据库208A可以是如图1B所示的内部存储器121或者外部存储器接口120连接的外部存储卡。云端服务器的数据库208B包括云端服务器上用来存储数据的存储资源池。
保存单元210,用于在所述运动模型建立单元206根据所述第一视频数据中的多个关键点的波动情况和所述目标次数确定所述目标运动的运动模型之后,保存所述运动模型或向通信对端设备提供所述运动模型。
可以理解的是,图2所示的运动模型生成装置的结构只是本申请实施例中的一种示例性的实施方式,本申请实施例中的运动计数装置的结构包括但不仅限于以上结构。以上各个单元可以以硬件、软件或二者结合来实现。软件可以存储在存储器中并被处理器执行,硬件可以包括但不限于各种类型的处理电路或处理器,具体可参照后续实施例的描述,本处不做赘述。
请参见图3,图3是本申请实施例提供的一种云端服务器的结构示意图,该云端服务器30包括至少一个处理器301,至少一个存储器302、至少一个通信接口303。此外,该设备还可以包括天线等通用部件,在此不再详述。
处理器301可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口303,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),核心网,无线局域网(Wireless Local Area Networks,WLAN)等。
存储器302可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器302用于存储执行以上方案的计算机程序,并由处理器301来控制执行。所述处理器301用于执行所述存储器302中存储的计算机程序,从而实现该云端服务器的相应功能,具体所需实现的相应功能可以参照前面对云端服务器的描述,例如存储建立的运动模型、将建立得到的运动模型进行输出等,例如,云端服务器将建立得到的运动模型发送给终端设备。
基于以上图1A提供的运动模型生成方法的系统架构,本申请实施例提供了一种运动模型生成方法的流程示意图,请参见图4。该运动模型用于进行运动计数,运动模型生成方法可以包括但不限于如下步骤:
步骤S401,终端设备获取目标用户执行目标运动过程中的第一视频数据。具体地,随着用户生活方式的改变,用户进行运动的运动类型也层出不穷并且不断创新。如图4A是本申请实施例提供的一种用户进行无器械运动的示意图,如图4B是本申请实施例提供的一种用户进行有器械运动的示意图,从图4A和图4B可以看出用户进行运动的运动类型是丰富多彩的。
当用户想记录自己执行某项运动的过程时,可以通过终端设备的摄像头获取自己执行该项运动的视频数据;或者当用户想通过记录他人(如健身教练)的标准运动姿势来帮助自己确定执行运动的标准程度时,也可以利用终端设备的摄像头获取他人(如健身教练)执行运动的过程;或者可以利用终端设备通过网络途径获取他人(如健身教练)执行运动过程中的视频数据。
本申请实施例中,为了便于后续描述,称执行的该项运动为目标运动,称执行该项运动的用户为目标用户,以及称目标用户执行目标运动过程中的视频数据为第一视频数据。
步骤S402,终端设备判断对第一视频数据中的目标运动进行运动计数的运动模型是否存在于数据库中。具体地,在数据库中可以存储某些运动类型的运动模型以及用户执行这些运动时拍摄的视频数据所对应的图像序列特征。在本申请实施例中,运动模型是基于运动过程中的视频数据和相应运动类型的运动次数得到的,因此该运动模型能够从一定程度上反映视频数据与运动次数之间的关系,当向该运动模型输入一段视频数据后,可以预测该段视频数据中执行的对应运动的次数。举例来说,运动模型能够反映自变量和因变量所构成的映射关系C=f(C1、C2、...、Ck),在本申请实施例中,自变量(C1、C2、...、Ck)可以是视频数据中多个关键点的波动情况,因变量C可以是运动次数。
可选的,终端设备可以先提取第一视频数据的第一图像序列特征,然后将第一图像序列特征与数据库中存储的图像序列特征进行相似度计算,通过计算得到的第二相似度可以确定对第一视频数据中的目标运动进行运动计数的运动模型是否存在于数据库中。
通常情况下,如果两次拍摄的视频数据中的图像序列特征比较接近,比如第二相似度大于第二预设阈值,则认为这两次拍摄的视频数据中记录的运动类型是相同的。
若数据库中不存在与第一视频数据的第一图像序列特征之间的第二相似度大于或者等于第二预设阈值的目标图像序列特征,则可以确定对第一视频数据中的目标运动进行运动计数的运动模型不存在于数据库中,即表明第一视频数据中的运动为目标用户的自定义运动,因此可以触发获取目标用户输入的描述信息的相关操作,具体操作如步骤S403-S408。
若数据库中存在与第一视频数据的第一图像序列特征之间的第二相似度大于或者等于第二预设阈值的目标图像序列特征,则可以确定对第一视频数据中的目标运动进行运动计数的运动模型存在于数据库中,因此通过数据库中已有的目标运动的运动模型识别第一视频数据中目标运动的运动次数,本过程具体可参照现有技术。
需要说明的是,第二预设阈值是预先设置的用于参考对比的阈值,可选的,该第二预设阈值是通过对大量相似度值进行统计后得到的,能够在一定程度上反映用于计算相似度的两个图像序列特征是否为同一运动类型的视频数据的图像序列,例如,如果统计结果表明,95%的实验数据中,同一运动类型的视频数据的图像序列的相似度不低于0.8,那么可以将0.8设置为第二预设阈值。当然,第二预设阈值也可以通过其他方式得到,如通过相关模型训练得到,等等。
本申请实施例中的数据库包含本地数据库或云端服务器的数据库中的至少一项。可选的,若数据库包括本地数据库和云端服务器的数据库,计算相似度时可以先将第一视频数据的第一图像序列特征与本地数据库中存储的图像序列特征进行相似度计算,当计算得到的相似度小于第二预设阈值的情况下,再与云端服务器的数据库中存储的图像序列特征进行相似度计算,若计算得到的相似度仍旧小于第二预设阈值,则表明数据库中不存在对第一视频数据中的目标运动进行运动计数的运动模型。
若本地数据库或云端服务器的数据库中的任意一个存在与第一视频数据的第一图像序列特征的相似度达到第二预设阈值的目标图像序列特征,则表明数据库中存在用于对第一视频数据的目标运动进行运动计数的运动模型,因此可以加载数据库已有的目标运动的运动模型来识别第一视频数据中目标运动的运动次数。
可选地,若计算得到第一视频数据的第一图像序列特征与本地数据库中存储的图像序列特征之间的相似度大于第二预设阈值,则终端设备可以加载本地数据库中目标运动的运动模型来识别第一视频数据中目标运动的运动计数。
可选地,在第一视频数据的第一图像序列特征与本地数据库中存储的图像序列特征之间的相似度小于第二预设阈值的情况下,若计算得到第一视频数据的第一图像序列特征与云端服务器的数据库中存储的图像序列特征之间的相似度大于第二预设阈值,则终端设备可以加载云端服务器的数据库中目标运动的运动模型来识别第一视频数据中的目标运动计数。
举例来说:终端设备可以采用进行视频运动识别的卷积神经网络提取第一视频数据的第一图像序列特征,卷积神经网络可以是以下一种或多种:I3D,SlowFastNet等等。终端设备将第一视频数据的图像序列输入到卷积神经网络中,取网络的最后一个池化层(Avg-Pool)的输出向量v称为该第一视频数据的第一图像序列特征。接下来,终端设备可以通过距离相似度、KNN最邻近分类器以及相关系数计算等方法中的一种或多种来计算第一图像序列特征与数据库中存储的图像序列特征之间的相似度。假设数据库中存储了运动模型i对应的图像序列特征,表示为vi,其中i为大于等于0的正整数,比如说v0可以表示俯卧撑运动的图像序列特征,v1可以表示仰卧起坐运动的图像序列特征,等等;并且第一视频数据的第一图像序列特征表示为v,那么可以根据余弦距离相似度算法计算第一图像序列特征v与数据库中存储的图像序列特征vi之间的相似度相似度cosi的值的范围是0到1之间。可以理解的是,相似度cosi的值越接近于1可以说明数据库中越可能存储有与第一视频数据的第一图像序列特征越相似的图像序列特征;相似度cosi的值越接近于0可以说明数据库中越不可能存储的图像序列特征与第一视频数据的第一图像序列特征越不相似。假设第二预设阈值为0.8,i为7,若计算得到的相似度cosi分别为:cos1=0.53、cos2=0.14、cos3=0.95、cos4=0.86、cos5=0.34、cos6=0.78、cos7=0.87,那么由于计算得到的相似度中cos3=0.95、cos4=0.86以及cos7=0.87这三个的相似度大于第二预设阈值0.8,则可以选取这三个相似度中最大的相似度cos3=0.95(或者这三个中任意一个)对应的图像序列特征所表示的运动类型作为目标运动类型,以及将该对应的图像序列特征所表示的运动类型的运动模型对第一视频数据中的目标运动进行运动计数。
步骤S403,终端设备获取第一用户输入的描述信息。具体地,终端设备可以提示第一用户输入关于目标运动的描述信息,在第一用户进行输入后,该终端设备相应地进行接收,第一用户输入的方式可以是按键输入、或者触控输入、或者声控输入、或者手势输入等等。需要说明的是,第一用户目标用户或者目标用户外的其他用户。可以理解的是,执行输出操作的第一用户可以是第一视频数据中执行目标运动的目标用户,也可以是目标用户外的其他用户。该描述信息用于描述目标用户执行的运动为目标运动以及描述执行目标运动的次数为目标次数,例如,执行的目标运动为开合跳运动,以及执行目标运动的次数为3次,在进行输入时,可以输入“开合跳运动”和“3次”这样的信息。
步骤S404,终端设备确定第一视频数据中的目标用户的多个关键点的第一波动情况。
具体地,所述关键点能够体现所述目标用户的运动特性,关键点可以为目标用户的人体骨架(骨骼)关键点,或者关键点可以为预先确定的能够体现人体运动的光流关键点,等等。其中,光流关键点是通过光流法进行选取的关键点。例如,从图4C可以看出人体骨架(骨骼)关键点包括但不限于P1、P2、P3、....、P16这16个关键点。因为第一视频数据记录的是目标用户执行目标运动的过程,所以终端设备可以根据第一视频数据确定第一视频数据中多个关键点的波动情况。
可选地,确定第一视频数据中的多个关键点的波动情况,可以具体为:确定第一视频数据中的多个关键点,例如,终端设备可以根据目标用户的人体骨架(骨骼)关键点或者预先确定的能够体现人体运动的光流关键点来确定第一视频数据中的多个关键点;通常来说,视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术,本申请实施例中的第一视频数据包括多帧图像(即一系列静态影像),因此针对该第一视频数据中每帧图像均可以确定其中的关键点;接下来,以第一视频数据的参考帧图像中的多个关键点的坐标作为参考帧坐标,计算第一视频数据的每帧图像中的多个关键点的坐标相对于参考帧坐标的距离,然后将计算得到的距离在预设的坐标轴上进行投影后可以确定第一视频数据中的多个关键点的波动情况,该波动情况可以是第一视频数据中的多个关键点的距离随时间的变化波形。
步骤S405,终端设备根据第一波动情况和所述目标次数确定所述目标运动的运动模型。具体地,在目标用户执行目标运动的过程中并不是每一个关键点都一定有波动幅度,对于没有波动幅度的关键点来说可以认为是目标用户在运动过程中该关键点所代表的身体部位保持了静止,因此认为没有波幅度的关键点无法反应目标用户的运动情况,因此在后续的处理过程中具体选择具有波动幅度的关键点进行分析,而一般来说运动过程是具有重复性的,因此终端设备需要先从第一视频数据中的多个关键点中选取具有波动幅度且周期性变化的关键点,再结合目标用户输入的目标次数来确定目标运动的运动模型。
可选地,终端设备需要从第一视频数据中的多个关键点中选取具有变化且波动幅度排在前k位的k个关键点;然后对上述k个关键点进行运动峰值计数得到计数值;再通过回归拟合的方式根据所述计数值和所述目标次数确定所述目标运动的运动模型。
通常来说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来,因为这条曲线有无数种可能,从而有各种拟合方法。对于实现拟合的方法有多种,本申请实施例采用回归分析方式来实现拟合,但是本申请实施例对实现拟合的方法不做任何限制。一般来说,回归分析是通过规定因变量和自变量来确定变量之间的映射关系,将映射关系作为回归模型,并根据实测数据来求解回归模型中的各个参数(包括自变量的比例系数),然后可以通过确定的回归模型对因变量作进一步预测。其中,回归分析的方式包括但不限于线性回归、支持向量机回归等回归模型。在本申请实施例中,将目标次数作为回归分析中的因变量,将第一视频数据中选取的k个关键点的计数值作为回归分析中的自变量,通过回归分析得到的目标次数与上述计数值之间的映射关系即为目标运动的运动模型。举例来说,终端设备获取到的目标次数为C,选取的k个关键点的计数值分别为C1、C2、...、Ck,通过回归拟合的方式可以将目标次数与计数值之间的映射关系表示为:C=f(C1、C2、...、Ck)。
以线性回归模型举例来说,经典的线性回归模型可以表示为:
C=f(C1、C2、...、Ck)=a1C1+a2C2+...+akCk+b (公式1)
一般需要至少k个计数值才能得到唯一的比例系数值(a1,a2,...,ak,b),通常上述k个关键点的计数值(C1、C2、...、Ck)与目标次数C之间呈正相关。因为目标次数C和k个关键点的计数值(C1、C2、...、Ck)都是已知的,所以可以计算得到比例系数值(a1,a2,...,ak,b)如下:常数项b可以取0或者其他值。目标运动的运动模型可以具体表示为:其中,表示需要用上述运动模型确定运动计数的视频数据中k个关键点的波形峰值的计数值。
在线性回归模型中,除了比例系数之外,常数项表示为目标用户起始准备动作或结束整理运动引起的偏差,则线性回归模型可以表示为:
C=f(C1、C2、...、Ck)=a1(C1+b1)+a2(C2+b2)+...+ak(Ck+bk) (公式2)
因此通过公式2可以得到比例系数(a1,a2,...,ak,b)如下:其中,根据实际情况可以设定为整数,则bi的绝对值|bi|是满足为整数的最小值。另外,考虑到运动动作幅度大的关键点是计数的主要参考依据,需要对比例系数根据幅度的大小进行加权,权重的表达式为:则公式2可以表示为:
步骤S406,终端设备通过运动模型对第二视频数据中的第二用户执行的目标运动进行计数。具体地,当第二用户通过终端设备获取自己执行运动的第二视频数据后,可以通过先前得到的第一图像序列特征来识别第二视频数据中的第二用户执行的运动是否为目标运动,若是目标运动则可以进一步通过生成的目标运动的运动模型来识别第二视频数据中执行目标运动的运动次数。需要说明的是,第二视频数据中执行目标运动的第二用户可以是第一视频数据中执行目标运动的目标用户,也可以是执行输入操作的第一用户,或者第一用户和目标用户外的其他用户。
可选地,终端设备可以提取第二视频数据中的第二图像序列特征,其中,提取第二视频数据中的第二图像序列特征的方法可参考步骤S402中提取第一视频数据中的第一图像序列特征的相关描述。若计算得到第二图像序列特征与第一视频数据中的第一图像序列特征的第一相似度大于第一预设阈值,则终端设备可以确定第二视频数据中的运动类型与上述第一视频数据中的运动类型相同,即均为目标运动,然后进一步通过目标运动对应的运动模型和第二视频数据中的多个关键点的波动情况来识别第二视频数据中执行目标运动的运动次数。其中,计算第二图像序列特征与第一图像序列特征的第一相似度的方法可参考S402中计算第一图像序列特征与数据库中存储的图像序列特征之间的第二相似度的相关描述。
第一预设阈值是预先设置的用于参考对比的阈值,可选的,该第一预设阈值是通过对大量相似度值进行统计后得到的,能够在一定程度上反映用于计算相似度的两个图像序列特征是否为同一运动类型的视频数据的图像序列,例如,如果统计结果表明,95%的实验数据中,同一运动类型的视频数据的图像序列的相似度不低于0.8,那么可以将0.8设置为第一预设阈值。当然,第一预设阈值也可以通过其他方式得到,如通过相关模型训练得到,等等。
步骤S407,终端设备输出运动评价信息。具体地,若第一相似度大于第一预设阈值,则终端设备可以输出(例如通过显示屏显示,或者通过音频模块进行语音播报)运动评价信息,相应的,用户可以获取到终端设备输出的运动评价信息。其中,运动评价信息为根据第一相似度生成的。可选地,运动评价信息可以是第一相似度对应的数值、动作评语,等等。以数值是百分制为例来说,若第一相似度为0.8,则相似度0.8对应的是数值可以是“80”,相似度0.8对应的运动评语可以是“动作比较标准”。运动评价信息可以是可视信息,例如“动作比较标准”可以在显示器上显示。或者运动评价信息也可以是其他不可视信息,如一段提示语音,包括“动作比较标准”的提示,通过扬声器等进行播放,本实施例对此不限定。该第一相似度为第一视频数据中的第一图像序列特征与第二视频数据中的第二图像序列特征之间的相似度。可以理解的是,若上述运动模型是根据健身教练的标准运动过程的视频数据计算得到的,则通过终端设备输出的运动评价信息可以帮助目标用户来判断自己运动过程的标准程度,如果第一相似度对应的数值越大则可以表明运动的标准程度越接近于健身教练,如果第一相似度对应的数值越小则可以表明运动的标准程度越偏离健身教练,因此通过输出运动评价信息可以帮助目标用户改善动作。
步骤S408,终端设备将第一图像序列特征和运动模型上传至云端服务器的数据库。可选的,若使用终端设备的目标用户同意将第一图像序列特征和目标运动的运动模型上传至云端服务器,则终端设备可以向通信对端设备(比如说云端服务器)提供目标运动的运动模型和第一图像序列,以便云端服务器可以将该第一图像序列和该目标运动的运动模型和发送给其他终端设备,用于其他终端设备进行运动类型的识别和运动计数。
可选地,在终端服务器获取到目标用户执行目标运动过程中的第一视频数据后,可以将第一视频数据发送给云端服务器,由云端服务器判断对第一视频数据的目标运动进行运动计数的运动模型是否存在于数据库中,具体可参照步骤S402中终端设备进行操作的相关描述。云端服务器还可以确定第一视频数据中的多个关键点的波动情况,具体可参考步骤S404中终端设备进行操作的相关描述。在终端设备获取目标用户输入的描述信息后,可以将描述信息发送给云端服务器。然后云端服务器可以根据第一视频数据中的多个关键点的波动情况和目标次数确定目标运动的运动模型,确定运动模型后可以将运动模型发送给终端设备,由终端设备通过运动模型识别第二视频数据中的运动次数。
在上述方法中,终端设备获取第一视频数据,并分析得出该第一视频数据中多个关键点的波动情况,以及由用户向终端设备输入第一视频数据中运动类型(即目标运动)以及执行该类型运动的次数(即目标次数);然后终端设备根据波动情况、运动次数为用户生成该目标运动的运动模型,后续可以基于该运动模型对自己的运动进行计数。采用这种方式,用户不仅可以拓展自己期望的运动模型,能够更好地满足用户对运动模型的个性化需求;并且,通过这种方式建立运动模型更高效快捷。
下面结合应用场景一,介绍本申请实施例提供的一种运动模型生成方法的应用场景图。如图5所示,是本申请实施例提供的一种运动模型生成方法的应用场景图,图5是以第一视频数据为用户执行开合跳运动的运动过程,且运动的目标次数是3次为例进行说明的,即图5所示的实施例可以看作是图4所示方法实施例的一种具体的实现。请参见图5,用户通过终端设备100的摄像头193获取自己执行开合跳运动过程的第一视频数据。假设本地数据库中内置有俯卧撑、仰卧起坐、深蹲等运动类型的运动模型以及它们的图像序列特征,采用视频运动识别的卷积神经网络(如I3D、SlowFastNet等)来计算第一视频数据的第一图像序列特征,并与本地数据库中内置运动模型的图像序列特征进行相似度计算,可以采用距离相似度、KNN最邻近分类器等方法来进行相似度计算。若计算得到本次开合跳运动的第一图像序列特征与本地数据库中存储的图像序列特征的相似度小于第二预设阈值,则说明本地数据库中没有用于对第一视频数据中的运动进行运动计数的运动模型。
此时,终端设备提示用户是否同意从云端服务器的数据库中查找,因为在云端服务器的数据库中包含更多的运动类型的图像序列特征以及对应的运动模型,比如除了俯卧撑、仰卧起坐、深蹲外,还有扩胸运动、高抬腿、纵向跳跃等等运动类型的图像序列特征以及对应的运动模型。当目标用户选择“是”按钮时,终端设备可以将第一视频数据的图像序列特征与云端服务器中存储的图像序列特征进行相似度计算,若计算得到的相似度仍小于第二预设阈值,则说明在云端服务器的数据库中仍然没有用于对第一视频数据中的运动进行运动计数的运动模型。此时,终端设备可以将第一视频数据中的运动判定为目标用户的自定义运动。
当终端设备判断本次运动为目标用户的自定义运动时,可以提示用户输入该运动的运动类型(即目标运动)以及执行运动的次数(即目标次数),假设用户输入该运动的运动类型为“开合跳运动”和执行运动的次数为“3”个。接下来,终端设备需要根据记录开合跳运动(即目标运动)的第一视频数据和目标用户输入的次数(即目标次数)来确定开合跳这一运动类型的运动模型。假设提取的关键点是如图4C所示的人体骨架(骨骼)关键点,则终端设备根据第一视频数据分析得到的目标用户执行开合跳运动过程中的多个关键点的波动情况如图5中的5a所示,从图5中的5a可以看出波动情况波动幅度大的关键点有腿部P6、P7,P11、P12这4个关键点和脚部P15、P16这2个关键点,所以可以将这6个关键点作为候选关键点,然后对这6个关键点的波形进行峰值计数得到其计数值。从图5中的5a可以看出,P6对应的计数值C1为3,P7对应的计数值C2为3,P11对应的计数值C3为4,P12对应的计数值C4为5,P15对应的计数值C5为3,P16对应的计数值C6为3。
将经典的线性回归模型C=f(C1、C2、...、C6)=a1C1+a2C2+...+a6C6+b作为开合跳运动的运动模型,假设选取的6个关键点的计数值(C1、C2、...、C6)与执行运动的次数C之间的映射关系为正比例关系,且这6个关键点的系数是彼此独立的,因此常数项b可以为0。然后根据执行运动的次数C和6个关键点的计数值(C1、C2、...、C6)确定使线性回归模型成立的比例系数(a1、a2、...、a6),得到的比例系列分别为:
因此,最终得到开合跳运动的运动模型可以表示为:
终端设备可以将计算得到的开合跳运动的图像序列特征以及运动模型存储到本地数据库中。可选的,终端设备可以询问用户是否同意将开合跳运动的图像序列特征以及运动模型上传至云端服务器的数据库中,如果用户选择“是”按钮,则表明同意将其上传至云端服务器的数据库中。因此,终端设备向云端服务器发送开合跳运动的运动模型,之后云端服务器可以存储开合跳运动的图像序列特征和运动模型,以便其他设备下载使用。
如果上述目标用户再获取(如拍摄、下载)一段记录开合跳运动的第二视频数据,则将第二视频数据中的图像序列特征与本地数据库存储的开合跳运动的图像序列特征进行相似度计算,由于前面已经存储了开合跳运动的图像序列特征,因此此次计算得到的相似度大于第二预设阈值,因此可以加载开合跳运动的运动模型,通过提取开合跳运动的腿部和脚部的关键点的变化波形,由开合跳运动的运动模型来分析得到第二视频数据中,该目标用户执行开合跳运动的次数,即运动计数。
下面结合应用场景二,介绍本申请实施例提供的另一种运动模型生成方法的应用场景图。如图6所示是本申请实施例提供的另一种运动模型生成方法的应用场景图,图6是以第一视频数据为目标用户执行踏步跳绳运动的运动过程,且运动的目标次数是10次为例进行说明的,即图6所示的实施例可以看作是图4所示方法实施例的一种更具体的实现。请参见图6,用户通过终端设备100的摄像头193获取自己执行踏步跳绳运动过程的第一视频数据。假设本地数据库中内置有正常跳绳、交叉跳绳等运动类型的运动模型以及它们的图像序列特征,采用视频运动识别的卷积神经网络(如I3D或者双流卷积网络等)来计算第一视频数据的第一图像序列特征,并与本地数据库中内置运动模型的图像序列特征进行相似度计算,可以采用距离相似度、相关系数等方法来进行相似度计算。若计算本次踏步跳绳运动的第一图像序列特征与本地数据库中存储的图像序列特征的相似度小于第二预设阈值,则说明本地数据库中没有用于对第一视频数据中的运动进行运动计数的运动模型。此时,终端设备提示用户是否同意从云端服务器的数据库中查找,若用户选择“否”按钮,说明用户未同意通过云端服务器进行查找,则根据第一视频数据的图像序列特征与本地数据库中存储的图像序列特征计算得到的相似度将第一视频数据中的运动判定为目标用户的自定义运动。
此时,终端设备可以提示用户输入该运动的运动类型(即目标运动)以及执行运动的次数(即目标次数),假设用户输入该运动的运动类型为“踏步跳绳运动”和执行运动的次数为“10”次。接下来,终端设备需要根据记录踏步跳绳运动(即目标运动)的第一视频数据和目标用户输入的次数(即目标次数)来确定踏步跳绳这一运动类型的运动模型。假设提取的关键点是如图4C所示的人体骨架(骨骼)关键点,则终端设备根据第一视频数据分析得到目标用户执行踏步跳绳运动过程中的多个关键点的波动情况,从多个关键点的波动情况中可以选取波动幅度大的腿部P11、P12和脚部P15、P16这四个关键点为候选关键点;然后对P11、P12、P15以及P16这4个关键点的波形进行峰值计数得到计数值,P11关键点的计数值C1为10,P12关键点的计数值C2为11,P15关键点的计数值C3为11,对P16关键点的计数值C4为12;得到这4个关键点的波峰值peak和波谷值valley,通过公式计算P11、P12、P15以及P16这个四个关键点的平均波动幅度,计算得到P11关键点的的平均波动幅度p1是2.5,P12关键点的的平均波动幅度p2是2.7,P15关键点的的平均波动幅度p3是4.9,以及P16关键点的的平均波动幅度p4是3.8。
将线性回归模型:C=f(C1 C2...Ck)=w1×a1(C1+b1)+w2×a2(C2+b2)+...+wi×ak(Ck+bk)i=1,...,k作为踏步跳绳运动的运动模型,根据执行运动的次数C和4个关键点的计数值(C1、C2、C3、C4)确定使线性回归模型成立的比例系数分别为 需要满足为整数,则b1的绝对值|b1|是使得为整数的最小值,因此b1=0;同理可得b2=-1,b3=-1,b4=-2。
终端设备可以将计算得到的踏步跳绳运动的图像序列特征以及运动模型存储到本地数据库中。可选的,终端设备可以询问用户是否同意将踏步跳绳运动的图像序列特征以及运动模型上传至云端服务器中,如果用户选择“否”按钮,说明用户不同意将其上传至云端服务器的数据库中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本申请实施例还提供一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有计算机程序;所述计算机程序被所述处理器执行时,图4所示的方法流程得以实现。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在网络设备上运行时,图3所示的方法流程得以实现。本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,图4所示的方法流程得以实现。所述计算机程序产品可以包括大量代码指令,以多个软件单元实现,具体可以参考图2的实现方式,该计算机程序产品具体可以对应图1C中应用程序层中的运动计数程序,具体可以参照之前实施例的描述。
上述实施例中所用,根据上下文,术语“当...时”可以被解释为意思是“如果...”或“在...后”或“响应于确定...”或“响应于检测到...”。类似地,根据上下文,短语“在确定...时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定...”或“响应于确定...”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (20)
1.一种运动模型生成方法,其特征在于,包括:
获取第一用户输入的描述信息,其中,所述描述信息用于描述目标用户执行的目标运动以及执行所述目标运动的目标次数;所述第一用户为所述目标用户或者所述目标用户外的其他用户;
确定第一视频数据中的所述目标用户的多个关键点的第一波动情况,其中,所述第一视频数据为所述目标用户执行所述目标运动过程中的视频数据;
根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型;其中,所述运动模型用于进行运动计数;
所述根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型,包括:
从所述第一波动情况中选取具有变化且波动幅度排在前k位的k个关键点;
对所述k个关键点进行运动峰值计数得到计数值;
通过回归拟合的方式根据所述计数值和所述目标次数确定所述目标运动的运动模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型之后,还包括:
通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行运动计数;其中,所述第二用户为所述第一用户、所述目标用户或者所述第一用户和所述目标用户外的其他用户。
3.根据权利要求2所述的方法,其特征在于,所述通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行运动计数,包括:
若所述第二视频数据中的第二图像序列特征与所述第一视频数据中的第一图像序列特征的第一相似度大于第一预设阈值,则
通过所述运动模型和所述第二视频数据中的所述第二用户的多个关键点的第二波动情况对所述第二视频数据中的第二用户执行的运动进行计数;其中,所述第一相似度用于表征所述第二用户执行所述目标运动的标准程度。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
输出运动评价信息;其中,所述运动评价信息为根据所述第一相似度生成的。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取第一用户输入的描述信息之前,还包括:
获取所述第一视频数据;
若确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型,则触发所述获取第一用户输入的描述信息的操作。
6.根据权利要求5所述的方法,其特征在于,所述确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型包括:若数据库中不存在与所述第一视频数据的第一图像序列特征的第二相似度达到第二预设阈值的目标图像序列特征,则确定数据库中不存在对应于所述目标图像序列特征的所述运动模型。
7.根据权利要求5所述的方法,其特征在于,所述数据库包括本地数据库或云端服务器的数据库中的至少一项。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型之后,还包括:
保存所述运动模型或向通信对端设备提供所述运动模型。
9.一种运动模型生成装置,其特征在于,包括:
输入单元,用于获取第一用户输入的描述信息,其中,所述描述信息用于描述目标用户执行的目标运动以及执行所述目标运动的目标次数;所述第一用户为所述目标用户或者所述目标用户外的其他用户;
波动情况提取单元,用于确定第一视频数据中的所述目标用户的多个关键点的第一波动情况;其中,所述第一视频数据为所述目标用户执行所述目标运动过程中的视频数据;
运动模型建立单元,用于根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型;其中,所述运动模型用于进行运动计数;
所述运动模型建立单元,具体用于:
从所述第一波动情况中选取具有变化且波动幅度排在前k位的k个关键点;
对所述k个关键点进行运动峰值计数得到计数值;
通过回归拟合的方式根据所述计数值和所述目标次数确定所述目标运动的运动模型。
10.根据权利要求9所述的装置,其特征在于,还包括:
运动计数单元,用于在所述运动模型建立单元根据所述第一波动情况和所述目标次数确定所述目标运动的运动模型之后,通过所述运动模型对第二视频数据中的第二用户执行的所述目标运动进行运动计数;其中,所述第二用户为所述第一用户、所述目标用户或者所述第一用户和所述目标用户外的其他用户。
11.根据权利要求10所述的装置,其特征在于,所述运动计数单元,具体用于:
若所述第二视频数据中的第二图像序列特征与所述第一视频数据中的第一图像序列特征的第一相似度大于第一预设阈值,则
通过所述运动模型和所述第二视频数据中的所述第二用户的多个关键点的第二波动情况对所述第二视频数据中的所述第二用户执行的运动进行计数;其中,所述第一相似度用于表征所述第二用户执行所述目标运动的标准程度。
12.根据权利要求11所述的装置,其特征在于,还包括:
输出单元,用于输出运动评价信息;其中,所述运动评价信息为根据所述第一相似度生成的。
13.根据权利要求9-12任一项所述的装置,其特征在于,还包括:
获取单元,用于在所述输入单元获取第一用户输入的描述信息之前,获取所述第一视频数据;
若确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型,则触发所述获取第一用户输入的描述信息的操作。
14.根据权利要求13所述的装置,其特征在于,所述确定数据库中不存在对所述第一视频数据中的所述目标运动进行运动计数的运动模型,具体为:
若数据库中不存在与所述第一视频数据的第一图像序列特征的第二相似度达到第二预设阈值的目标图像序列特征,则确定数据库中不存在对应于所述目标图像序列特征的所述运动模型。
15.根据权利要求13所述的装置,其特征在于,所述数据库包括本地数据库或云端服务器的数据库中的至少一项。
16.根据权利要求9-12任一项所述的装置,其特征在于,还包括:
保存单元,用于在所述运动模型建立单元根据所述第一视频数据中的多个关键点的波动情况和所述目标次数确定所述目标运动的运动模型之后,保存所述运动模型或向通信对端设备提供所述运动模型。
17.一种运动模型生成设备,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器被配置用于调用所述存储器存储的全部或部分计算机程序,执行如权利要求1-8任一项所述的方法。
18.一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器和接口电路,所述接口电路和所述至少一个处理器通过线路互联,所述接口电路用于从所述芯片系统外部接收计算机程序;所述计算机程序被所述处理器执行时,权利要求1-8任一所述的方法得以实现。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时实现上述权利要求1-8任一项所述的方法。
20.一种计算机程序产品,其特征在于,当所述计算机程序产品在终端设备上运行时,权利要求1-8任一项所述的方法得以实现。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/096638 WO2021253296A1 (zh) | 2020-06-17 | 2020-06-17 | 一种运动模型生成方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114080258A CN114080258A (zh) | 2022-02-22 |
CN114080258B true CN114080258B (zh) | 2022-08-09 |
Family
ID=79268804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080006118.9A Active CN114080258B (zh) | 2020-06-17 | 2020-06-17 | 一种运动模型生成方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114080258B (zh) |
WO (1) | WO2021253296A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118200802A (zh) * | 2022-09-02 | 2024-06-14 | 荣耀终端有限公司 | 音频处理方法和装置 |
CN115813374A (zh) * | 2022-11-02 | 2023-03-21 | 科大讯飞股份有限公司 | 周期性运动测评方法、装置、电子设备及存储介质 |
US20240387042A1 (en) * | 2023-05-17 | 2024-11-21 | Szu-Wei Sun | Artificial intelligence system for sensing and rehabilitation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009095404A (ja) * | 2007-10-15 | 2009-05-07 | Xing Inc | 動画表示システム、動画表示方法、およびコンピュータプログラム |
CN102333574A (zh) * | 2009-01-29 | 2012-01-25 | 耐克国际有限公司 | 一种运动能力评级系统 |
CN108805109A (zh) * | 2018-08-07 | 2018-11-13 | 深圳市云康创新网络科技有限公司 | 一种运动数据捕获显示系统 |
CN109260673A (zh) * | 2018-11-27 | 2019-01-25 | 北京羽扇智信息科技有限公司 | 一种运动计数方法、装置、设备及存储介质 |
CN111202955A (zh) * | 2019-12-11 | 2020-05-29 | 华为技术有限公司 | 运动数据处理方法及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150220159A1 (en) * | 2014-02-04 | 2015-08-06 | Pointgrab Ltd. | System and method for control of a device based on user identification |
CN106974656A (zh) * | 2016-01-15 | 2017-07-25 | 赵敏岗 | 用于采集运动状态并进行实时对比矫正的系统与实现方法 |
CN107715435A (zh) * | 2017-11-09 | 2018-02-23 | 重庆勤鸟圈科技有限公司 | 用户运动数据收集系统 |
CN108096807A (zh) * | 2017-12-11 | 2018-06-01 | 丁贤根 | 一种运动数据监测方法和系统 |
-
2020
- 2020-06-17 CN CN202080006118.9A patent/CN114080258B/zh active Active
- 2020-06-17 WO PCT/CN2020/096638 patent/WO2021253296A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009095404A (ja) * | 2007-10-15 | 2009-05-07 | Xing Inc | 動画表示システム、動画表示方法、およびコンピュータプログラム |
CN102333574A (zh) * | 2009-01-29 | 2012-01-25 | 耐克国际有限公司 | 一种运动能力评级系统 |
CN108805109A (zh) * | 2018-08-07 | 2018-11-13 | 深圳市云康创新网络科技有限公司 | 一种运动数据捕获显示系统 |
CN109260673A (zh) * | 2018-11-27 | 2019-01-25 | 北京羽扇智信息科技有限公司 | 一种运动计数方法、装置、设备及存储介质 |
CN111202955A (zh) * | 2019-12-11 | 2020-05-29 | 华为技术有限公司 | 运动数据处理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021253296A1 (zh) | 2021-12-23 |
CN114080258A (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220176200A1 (en) | Method for Assisting Fitness and Electronic Apparatus | |
CN111669515B (zh) | 一种视频生成方法及相关装置 | |
CN111061912A (zh) | 一种处理视频文件的方法及电子设备 | |
CN112532869A (zh) | 一种拍摄场景下的图像显示方法及电子设备 | |
CN114466128B (zh) | 目标用户追焦拍摄方法、电子设备及存储介质 | |
CN114080258B (zh) | 一种运动模型生成方法及相关设备 | |
WO2021258814A1 (zh) | 视频合成方法、装置、电子设备及存储介质 | |
WO2022073417A1 (zh) | 融合场景感知机器翻译方法、存储介质及电子设备 | |
US20230402150A1 (en) | Adaptive Action Evaluation Method, Electronic Device, and Storage Medium | |
WO2022037479A1 (zh) | 一种拍摄方法和拍摄系统 | |
US12249145B2 (en) | Prompt method and electronic device for fitness training | |
CN113996046B (zh) | 热身判断方法、装置及电子设备 | |
CN115734032A (zh) | 视频剪辑方法、电子设备及存储介质 | |
WO2022214004A1 (zh) | 一种目标用户确定方法、电子设备和计算机可读存储介质 | |
WO2021233018A1 (zh) | 运动后肌肉疲劳度的检测方法及装置、电子设备 | |
CN115273216A (zh) | 目标运动模式的识别方法及相关设备 | |
CN114812381A (zh) | 电子设备的定位方法及电子设备 | |
WO2024125319A1 (zh) | 虚拟人物的显示方法及电子设备 | |
CN118800466A (zh) | 一种身形预测方法、电子设备及系统 | |
WO2024222544A1 (zh) | 震动反馈的方法、相关装置及通信系统 | |
CN115223236A (zh) | 设备控制方法和电子设备 | |
CN119601167A (zh) | 健康计划制定方法、健康计划制定装置和电子设备 | |
CN117982126A (zh) | 一种提示方法、装置、电子设备及存储介质 | |
CN115329299A (zh) | 屏幕解锁方法和电子设备 | |
CN115033094A (zh) | 一种评估用户运动状态的方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |