
1.本发明涉及一种运动检测机制,且尤其涉及一种动作判定方法、动作判定装置及计算机可读存储媒体。
背景技术:2.在现代社会中,通过特殊的仪器对用户进行运动检测的技术已相当常见。例如,现有技术中已提出在取得用户运动过程的图像后,通过对这些图像进行分析来取得对应的运动数据的技术手段。然而,这些技术除了必须取得用户运动过程的图像,通常还需搭配特殊的仪器及/或复杂的图像取得装置。
3.因此,若能使用简单的图像取得装置并通过图像分析的技术检测用户是否正确地完成一组运动动作,应能有助于相关的运动数据的取得,并改善用户的运动动作,同时提高用户运动的便利性以养成固定的运动习惯。
技术实现要素:4.有鉴于此,本发明提供一种动作判定方法、动作判定装置及计算机可读存储媒体,其可用于解决上述技术问题。
5.本发明提供一种动作判定方法,适于一动作判定装置,包括:反应于判定一用户已呈现对应一待测动作的一起始动作,基于待测动作在用户的多个关节点中决定至少一锚定关节点;决定各锚定关节点的一可动范围;以及反应于判定各锚定关节点离开对应的可动范围,判定用户已停止执行待测动作。
6.本发明提供一种动作判定装置,包括存储电路及处理器。存储电路存储一程序代码。处理器耦接存储电路,并存取程序代码以执行:反应于判定一用户已呈现对应于一待测动作的一起始动作,基于待测动作在用户的多个关节点中决定至少一锚定关节点;决定各锚定关节点的一可动范围;以及反应于判定各锚定关节点离开对应的可动范围,判定用户已停止执行待测动作。
7.本发明提供一种计算机可读存储媒体,计算机可读存储媒体记录可执行的计算机程序,可执行的计算机程序由动作判定装置加载以执行以下步骤:反应于判定一用户已呈现对应于一待测动作的一起始动作,基于待测动作在用户的多个关节点中决定至少一锚定关节点;决定各锚定关节点的一可动范围;以及反应于判定各锚定关节点离开对应的可动范围,判定用户已停止执行待测动作。
附图说明
8.包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
9.图1是依据本发明的实施例绘示的动作判定装置示意图。
10.图2是依据本发明的实施例绘示的动作判定方法流程图。
11.图3是依据本发明第一实施例绘示的应用情境示意图。
12.图4是依据本发明的实施例绘示的识别动作次数的流程图。
13.图5是依据本发明的实施例绘示的识别动作正确性的流程图。
14.图6是依据本发明第二实施例绘示的应用情境示意图。
15.图7是依据本发明第三实施例绘示的应用情境示意图。
16.图8是依据本发明第三实施例绘示的识别动作正确性的流程图。
17.图9是依据本发明第四实施例绘示的应用情境示意图。
具体实施方式
18.现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在图式和描述中用来表示相同或相似部分。
19.请参照图1,其是依据本发明的实施例绘示的动作判定装置示意图。在不同的实施例中,动作判定装置100可实现为各式电子装置/智能型装置/计算机装置。在一些实施例中,动作判定装置100可从其他的图像捕获设备/组件取得图像捕获设备/组件对某用户在执行某待测动作(例如俯卧撑、仰卧起坐、深蹲或引体向上等)时的一或多个影片/图像,进而据以对用户进行动作判定。
20.在其他实施例中,动作判定装置100也可内建有上述图像捕获设备/组件,进而可在捕获用户运动时的一或多个影片/图像之后,据以对用户进行动作判定。
21.在图1中,动作判定装置100包括存储电路102及处理器104。存储电路102例如是任意型式的固定式或可移动式随机存取内存(random access memory,ram)、只读存储器(read-only memory,rom)、闪存(flash memory)、硬盘或其他类似装置或这些装置的组合,而可用以记录多个程序代码或模块。
22.处理器104耦接于存储电路102,并可为一般用途处理器、特殊用途处理器、传统的处理器、数字信号处理器、多个微处理器(microprocessor)、一个或多个结合数字信号处理器核心的微处理器、控制器、微控制器、特殊应用集成电路(application specific integrated circuit,asic)、现场可程序门阵列电路(field programmable gate array,fpga)、任何其他种类的集成电路、状态机、基于进阶精简指令集机器(advanced risc machine,arm)的处理器以及类似品。
23.在本发明的实施例中,处理器104可存取存储电路102中记录的模块、程序代码来实现本发明提出的动作判定方法,其细节详述如下。
24.请参照图2,其是依据本发明的实施例绘示的动作判定方法流程图。本实施例的方法可由图1的动作判定装置100执行,以下即搭配图1所示的组件说明图2各步骤的细节。
25.在步骤s210中,处理器104判定待测动作。在一实施例中,此待测动作例如是用户欲进行的运动动作。在一实施例中,处理器104可提供一用户介面,并可在此用户介面中提供动作判定装置100有能力检测的各式运动动作。
26.为便于说明,以下假设本发明实施例的动作判定装置100具有检测俯卧撑、仰卧起坐、深蹲或引体向上等动作的能力,但可不限于此。在此情况下,处理器104例如可在所述用户介面中显示对应于上述动作的选项以供用户参考或选取。之后,处理器104即可以用户所选的动作作为所述待测动作。
27.在另一实施例中,处理器104可基于由图像捕获设备/组件捕获的用户图像来自动判定待测动作。在一实施例中,处理器104在取得用户图像之后,可例如将这些用户图像馈入经预训练的动作识别模型,以由此动作识别模型基于用户图像而识别其中的用户正在执行什么动作,再以此动作识别模型的识别结果作为所述待测动作。
28.在不同的实施例中,所述动作识别模型可实现为各式机器学习模型、神经网络,但可不限于此。为使所述动作识别模型具备上述能力,处理器104可预先基于特定的训练数据对所述动作识别模型进行训练。举例而言,处理器104可在取得某人正在执行某动作a(例如俯卧撑)时的图像之后,将此图像作为一笔训练数据,并将其标记为对应于所述动作a(例如俯卧撑)。之后,处理器104可将此训练数据馈入所述动作识别模型,以让所述动作识别模型学习有关于所述动作a的相关图像特征。类似地,处理器104可在取得某人正在执行某动作b(例如仰卧起坐)时的图像之后,将此图像作为一笔训练数据,并将其标记为对应于所述动作b(例如仰卧起坐)。之后,处理器104可将此训练数据馈入所述动作识别模型,以让所述动作识别模型学习有关于所述动作b的相关图像特征。
29.在经过上述训练之后,当所述动作识别模型接收某动作图像时,所述动作识别模型即可相应地识别此动作图像中的人应是在执行何种动作,但可不限于此。
30.在一实施例中,处理器104可判断用户是否已呈现对应于所述待测动作的起始动作。举例而言,假设所考虑的待测动作为俯卧撑,则处理器104可基于所取得的用户图像判断用户是否呈现俯卧撑的起始动作。举另一例而言,假设所考虑的待测动作为深蹲,则处理器104可基于所取得的用户图像判断用户是否呈现深蹲的起始动作。在另一实施例中,因不同的待测动作会对应不同特定的起始动作,处理器104在取得用户图像之后,可藉由识别特定的起始动作而自动判断用户所要执行的待测动作。
31.在步骤s220中,反应于判定用户已呈现对应于待测动作的起始动作,处理器104基于待测动作在用户的多个关节点中决定至少一锚定关节点。
32.在本发明的实施例中,处理器104可基于相关的人体关节点检测算法(例如deeppose)而在各用户图像中检测用户身上的各个关节点,例如肩关节点、腕关节点、踝关节点、髋关节点、指关节点、鼻关节点、肘关节点、膝关节点等,但可不限于此。
33.在一实施例中,反应于判定待测动作为俯卧撑或引体向上,处理器104检测用户的腕关节点作为锚定关节点。在一实施例中,反应于判定待测动作为深蹲,处理器104检测用户的踝关节点作为锚定关节点。反应于判定待测动作为仰卧起坐,处理器104检测用户的髋关节点作为锚定关节点。
34.概略而言,所述锚定关节点可理解为在用户执行待测动作的过程中,位置大致上会保持不变的关节点。例如,在用户执行俯卧撑的过程中,其手掌一般会紧贴着地面,从而使得腕关节点的位置被固定在靠近地面的位置。因此,若待测动作为俯卧撑,则处理器104可选用用户的腕关节点作为锚定关节点。
35.举另一例,在用户执行深蹲的过程中,其脚掌一般会紧贴着地面,从而使得踝关节点的位置被固定在靠近地面的位置。因此,若待测动作为深蹲,则处理器104可选用用户的踝关节点作为锚定关节点。此外,在用户执行仰卧起坐的过程中,其臀部一般会紧贴着地面,从而使得髋关节点的位置被固定在靠近地面的位置。因此,若待测动作为仰卧起坐,则处理器104可选用用户的髋关节点作为锚定关节点。再者,在用户执行引体向上的过程中,
其手部一般会紧抓着横杠,从而使得腕关节点的位置被固定在靠近横杠的位置。因此,若待测动作为引体向上,则处理器104可选用用户的腕关节点作为锚定关节点。
36.在步骤s230中,处理器104决定各锚定关节点的可动范围。在一实施例中,处理器104可决定指定长度r1,再基于各锚定关节点及指定长度r1决定几何区域作为各锚定关节点的可动范围。在一实施例中,各可动范围例如是以对应的锚定关节点为圆心,并以指定长度r1为半径的圆形区域,但可不限于此。
37.在不同的实施例中,决定指定长度r1的方式可因应于所考虑的锚定关节点而有所不同。举例而言,反应于判定锚定关节点为用户的腕关节点,处理器104可取得用户的手指关节点,并基于腕关节点与对应的手指关节点之间的第一距离决定指定长度r1。例如,处理器104可将指定长度r1设定为将第一距离乘以某比例值(例如1至2倍)的结果,但可不限于此。
38.在一实施例中,反应于判定锚定关节点为用户的踝关节点,处理器104可取得用户的脚趾关节点,并基于踝关节点与对应的脚趾关节点之间的第二距离决定指定长度r1。例如,处理器104可将指定长度r1设定为将第二距离乘以某比例值(例如1至2倍)的结果,但可不限于此。
39.在另一实施例中,反应于判定锚定关节点为用户的髋关节点,处理器104可取得用户的膝关节点,并基于髋关节点与对应的膝关节点之间的第三距离决定指定长度r1。例如,处理器104可将指定长度r1设定为将第三距离乘以某比例值(例如0.5至1倍)的结果,但可不限于此。
40.在其他实施例中,处理器104亦可以其他形式来实现所述可动范围。各可动范围例如是以对应的锚定关节点为中心,并以指定长度r1为边长的方形区域,但可不限于此。
41.在一实施例中,处理器104可判断各锚定关节点是否离开对应的可动范围。在本发明的实施例中,所述可动范围可概略地理解为锚定关节点在用户执行待测动作的过程中,可在不判定用户已完成待测动作的情况下,被允许移动的范围。
42.如先前所言,在用户执行待测动作的过程中,锚定关节点的位置应大致为固定。在此情况下,若处理器104判定各锚定关节点未离开对应的可动范围,此即代表用户仍在执行待测动作的过程中。基此,处理器104可判定用户尚未停止执行待测动作。
43.另一方面,若处理器104判定各锚定关节点已离开对应的可动范围,此即代表用户已离开待测动作的起始动作,亦即代表用户已停止执行待测动作。基此,在步骤s240中,反应于判定各锚定关节点离开对应的可动范围,处理器104判定用户已停止执行待测动作。
44.为使本发明概念更易于理解,以下即搭配数个实施例作进一步说明。
45.请参照图3,其是依据本发明第一实施例绘示的应用情境示意图。在图3中,所示的5个用户图像例如分别对应于时间点t1~t5。在第一实施例中,假设在步骤s210中所判定的待测动作为俯卧撑。之后,处理器104可判断用户是否已呈现俯卧撑的起始动作。
46.在时间点t1时,由于用户的姿势已呈现为俯卧撑的起始动作,故处理器104可相应地在用户的关节点中决定锚定关节点。
47.在第一实施例中,由于所考虑的待测动作为俯卧撑,故处理器104可判定用户的腕关节点311、312(分别对应于用户的右手腕及左手腕)为锚定关节点,并决定锚定关节点的可动范围。
48.在图3中,处理器104可取得用户的手指关节点313,并基于腕关节点311与对应的手指关节点313之间的第一距离d1决定指定长度r1。处理器104可直接以第一距离d1的2倍长度作为指定长度r1,并据以定义可动范围r31、r32,其中可动范围r31例如是以腕关节点311为圆心,指定长度r1为半径的圆形范围,而可动范围r32例如是以腕关节点312为圆心,指定长度r1为半径的圆形范围,但可不限于此。在决定可动范围r31、r32之后,可动范围r31、r32在图像中的位置即为固定。
49.之后,处理器104可判断腕关节点311、312是否离开对应的可动范围r31、r32。若是,此即代表用户已停止执行俯卧撑(例如时间点t5的状态);若否,此即代表用户仍在执行俯卧撑的过程中。
50.在一些实施例中,处理器104还可基于执行待测动作过程中的用户图像识别用户执行待测动作的次数,以下将辅以图4作进一步说明。
51.请参照图4,其是依据本发明的实施例绘示的识别动作次数的流程图。为便于说明,以下暂以图3所示情境为例作说明。在步骤s410中,处理器104可依据待测动作决定用户的第一关节点及第二关节点,并依据第一关节点、第二关节点及第一锚定关节点决定关节点夹角an,其中关节点夹角因应于用户执行待测动作而变化。
52.在第一实施例中,所述第一锚定关节点例如是腕关节点311,但可不限于此。此外,反应于判定待测动作为俯卧撑,处理器104可以用户的肩关节点314及脚趾关节点315分别作为第一关节点及第二关节点,并以对应于第二关节点的夹角an1作为关节点夹角an。
53.之后,在步骤s420中,处理器104可基于关节点夹角an(例如夹角an1)的变化而判定用户执行待测动作的次数。
54.在第一实施例中,处理器104可基于关节点夹角an(例如夹角an1)的当下角度值(以currentangle表示)及初始角度值(以initialangle表示)决定当下角度变化量(以flexangle表示)。在本发明的实施例中,所述初始角度值为关节点夹角an的初始值,而其数值例如是一固定值。另外,所述当下角度值为关节点夹角an随着用户执行待测动作而测得的角度值。在一实施例中,所述当下角度变化量例如是当下角度值与初始角度值之间的绝对差值,亦即”flexangle=abs(currentangle-initialangle),其中abs(.)为绝对值运算符。
55.接着,处理器104可基于关节点夹角an的当下角度变化量、关节点角度上限值(以flexangleupper表示)及关节点角度下限值(以flexanglelower表示)决定参考数值rv1。在一实施例中,所述关节点角度上限值及关节点角度下限值分别例如是关节点夹角an的最大值及最小值,但可不限于此。在一实施例中,参考数值rv1例如可表征为:
[0056][0057]
之后,处理器104可判断参考数值rv1的变化是否满足预设条件。例如,处理器104可判断参考数值rv1是否已从下限值变化为上限值,再从上限值回到下限值。若是,则处理器104可判定参考数值rv1已满足上述预设条件,并判定用户已执行一次待测动作。之后,处理器104例如可累加用户执行当下那组的待测动作的次数。
[0058]
在上例中,参考数值rv1的上限值及下限值分别例如是100%及0%。在此情况下,处理器104可判断参考数值rv1是否已从0%上升至100%。若是,此即代表用户已做完一次
完整的俯卧撑行程,故处理器104可判定参考数值rv1已满足所述预设条件。
[0059]
以图3为例,处理器104可将参考数值rv1的值以百分比条399的形式呈现于用户图像中,以作为参考。因此,当处理器104判定用户从图3中时间点t1的姿势(对应于参考数值rv1为0%的状态)变为时间点t2的姿势(对应于参考数值rv1为100%的状态),再从时间点t2的姿势变为时间点t3的姿势(对应于参考数值rv1为0%的状态)时,处理器104可判定参考数值rv1已满足上述预设条件,并判定用户已执行一次俯卧撑。
[0060]
另一方面,若参考数值rv1未从0%上升至100%,或是未从100%下降至0%,此即代表用户未完成一次完整的俯卧撑行程,故处理器104可判定参考数值rv1未满足上述预设条件,进而可不累加用户执行当下那组的次数。在其它实施例中,上述参考数值rv1的值也可以百分比以外的方式呈现。在其它实施例中,rv1的预设条件的可设定一数值范围作为缓冲值。在其它实施例中,rv1的预设条件也可根据难易度而有不同的数值。
[0061]
再以图3为例,当处理器104判定用户从图3中时间点t3的姿势变为时间点t4的姿势时,处理器104例如可判定参考数值rv1已从0%变为100%。然而,由于用户在时间点t4时起身,因此参考数值rv1并未再从100%降回0%。在此情况下,处理器104可判定参考数值rv1未满足上述预设条件,进而判定用户未完成该次的俯卧撑。
[0062]
在用户从时间点t4的姿势变为时间点t5的姿势后,由于腕关节点311及312已离开对应的可动范围r31及r32,故处理器104可判定用户已停止执行当下那组的俯卧撑。
[0063]
在一实施例中,若用户重新回到t1的姿势,则可判定为执行下一组的俯卧撑,并重新计算次数以作为第二组的次数。
[0064]
由上可知,本发明实施例除了可基于锚定关节点与可动范围的相对位置来判定用户是否已停止执行待测动作之外,还可基于所考虑的关节点夹角的变化而判定用户执行当下那组待测动作的次数。
[0065]
在一些实施例中,处理器104还可基于执行待测动作过程中的用户图像识别用户执行待测动作的正确性,以下将辅以图5作进一步说明。
[0066]
请参照图5,其是依据本发明的实施例绘示的识别动作正确性的流程图。为便于说明,以下暂以图3所示情境为例作说明。在步骤s510中,处理器104可基于待测动作而在用户的关节点中找出多个参考关节点。在步骤s520中,处理器104可基于参考关节点决定参考关节点连线ln。
[0067]
在第一实施例中,处理器104可分别以用户的肩关节点314、踝关节点316及髋关节点317作为参考关节点,并以肩关节点314及踝关节点316之间的第一连线l1作为参考关节点连线ln。
[0068]
之后,在步骤s530中,处理器104可基于参考关节点中的第一参考关节点rj1与参考关节点连线ln之间的相对位置而判定用户执行待测动作的正确性。
[0069]
在图3情境中,处理器104可以用户的髋关节点317作为第一参考关节点rj1。之后,处理器104可取得第一参考关节点rj1与参考关节点连线ln之间的当下垂直距离vd。之后,处理器104可基于当下垂直距离vd及参考关节点连线ln的长度估计用户执行待测动作的正确性。
[0070]
在一些实施例中,用户执行待测动作的正确性表征为当下垂直距离vd与参考关节点连线ln的长度之间的比例。以图3为例,若此比例值越小(例如时间点t2时的状态),此即
表示用户臀部没有翘高且身体呈现一直线的状态,代表用户越正确地执行俯卧撑;若此比例值越大(例如时间点t1时的状态),此即代表用户执行俯卧撑的方式较不正确。在其它实施例中,也可单独根据垂直距离vd或是根据垂直距离vd与其它长度(例如用户身高)的比例判断待测动作的正确性。
[0071]
由上可知,本发明实施例可通过图像识别的方式判定用户执行待测动作的正确性,进而提升了运动检测的多样性、正确性及成效。
[0072]
在本发明的实施例中,虽以上皆以图3所示的俯卧撑情境为例作说明,但本发明的方法亦可应用于其他的待测动作,以下将作进一步说明。
[0073]
请参照图6,其是依据本发明第二实施例绘示的应用情境示意图。在图6中,所示的5个用户图像例如分别对应于时间点t1~t5。在第二实施例中,假设在步骤s210中所判定的待测动作为深蹲。之后,处理器104可判断用户是否已呈现深蹲的起始动作。
[0074]
在时间点t1时,由于用户的姿势已呈现为深蹲的起始动作(例如直立姿势),故处理器104可相应地在用户的关节点中决定锚定关节点。
[0075]
在第二实施例中,由于所考虑的待测动作为深蹲,故处理器104可判定用户的踝关节点611、612(分别对应于用户的右脚踝及左脚踝)为锚定关节点,并决定锚定关节点的可动范围。在图6中,处理器104可取得用户的脚趾关节点613,并基于踝关节点611与对应的脚趾关节点613之间的第二距离d2决定指定长度r1。处理器104可直接以第二距离d2作为指定长度r1,并据以定义可动范围r61、r62,其中可动范围r61例如是以踝关节点611为圆心,指定长度r1为半径的圆形范围,而可动范围r62例如是以踝关节点612为圆心,指定长度r1为半径的圆形范围,但可不限于此。在决定可动范围r61、r62之后,可动范围r61、r62在图像中的位置即为固定。之后,处理器104可判断踝关节点611、612是否离开对应的可动范围r61、r62。若是,此即代表用户已停止执行深蹲(例如时间点t5的状态);若否,此即代表用户仍在执行深蹲的过程中。
[0076]
在一些实施例中,处理器104同样可基于图4机制识别用户执行待测动作的次数,以下将作进一步说明。
[0077]
在步骤s410中,处理器104可依据待测动作决定用户的第一关节点及第二关节点,并依据第一关节点、第二关节点及第一锚定关节点决定关节点夹角an,其中关节点夹角因应于用户执行待测动作而变化。
[0078]
在第二实施例中,所述第一锚定关节点例如是踝关节点611,但可不限于此。此外,反应于判定待测动作为深蹲,处理器104可以用户的髋关节点614及膝关节点615分别作为第一关节点及第二关节点,并以对应于第二关节点的夹角an2作为关节点夹角an。之后,在步骤s420中,处理器104可基于关节点夹角an(例如夹角an2)的变化而判定用户执行待测动作的次数。其中,判定用户执行待测动作深蹲的次数可参考上述实施例中判定用户执行待测动作俯卧撑的次数,在此不加以赘述。
[0079]
以图6为例,参考数值rv1的上限值及下限值分别例如是100%及0%,处理器104可将参考数值rv1的值以百分比条699的形式呈现于用户图像中。当处理器104判定用户从图6中时间点t1的姿势(对应于参考数值rv1为0%的状态)变为时间点t2的姿势(对应于参考数值rv1为100%的状态),再从时间点t2的姿势变为时间点t3的姿势(对应于参考数值rv1为0%的状态)时,处理器104可判定参考数值rv1已满足上述预设条件,并判定用户已执行一
次深蹲。另一方面,若参考数值rv1未从0%上升至100%,或是未从100%下降至0%,此即代表用户未完成一次完整的深蹲行程,故处理器104可判定参考数值rv1未满足上述预设条件,进而可不累加用户执行当下那组的次数。
[0080]
在用户从时间点t4的姿势变为时间点t5的姿势后,由于踝关节点611及612已离开对应的可动范围r61及r62,故处理器104可判定用户已停止执行当下那组的深蹲。
[0081]
在一些实施例中,处理器104亦可执行图5的机制以识别用户执行待测动作的正确性,以下将辅以图5作进一步说明。
[0082]
在步骤s510中,处理器104可基于待测动作而在用户的关节点中找出多个参考关节点。在步骤s520中,处理器104可基于参考关节点决定参考关节点连线ln。在步骤s520中,处理器104可分别以用户的肩关节点616及踝关节点611作为参考关节点,并以肩关节点616及踝关节点611之间的第一连线l1作为参考关节点连线ln。在步骤s530中,处理器104可基于参考关节点中的第一参考关节点rj1与参考关节点连线ln之间的相对位置而判定用户执行待测动作的正确性。
[0083]
在图6情境中,处理器104可以用户的肩关节点616作为第一参考关节点rj1。之后,可取得第一参考关节点rj1与参考关节点连线ln之间的当下垂直距离vd,并可基于当下垂直距离vd及参考关节点连线ln的长度估计用户执行待测动作的正确性。
[0084]
在一些实施例中,用户执行待测动作的正确性表征为当下垂直距离vd与参考关节点连线ln的长度之间的比例(例如vd/ln)。此外,在所考虑的待测动作为深蹲的情况下,处理器104可另辅以膝关节点615的夹角an2的角度及髋关节点614的夹角an2’的角度之间的比例(例如an2’/an2)来估计用户执行待测动作的正确性。相关的正确性判定原则可由设计者依需求而定。
[0085]
例如,当膝关节点615的夹角an2远小于髋关节点614的夹角an2’时(例如,an2/an2’大于某门限值),此即代表用户是以膝主导的不良蹲姿进行深蹲。另外,当膝关节点615的夹角an2远大于髋关节点614的夹角an2’(例如,an2/an2’小于某门限值)及/或垂直距离vd过大(例如,vd/ln大于某门限值)时,此即代表用户是以过于前倾的不良蹲姿进行深蹲,但可不限于此。
[0086]
请参照图7,其是依据本发明第三实施例绘示的应用情境示意图。其中,所示的5个用户图像例如分别对应于时间点t1~t5。假设在步骤s210中所判定的待测动作为仰卧起坐。之后,处理器104可判断用户是否已呈现仰卧起坐的起始动作。
[0087]
在时间点t1时,由于用户的姿势已呈现为仰卧起坐的起始动作,故处理器104可相应地在用户的关节点中决定锚定关节点,并可判定用户的髋关节点711、712(分别对应于用户的右髋及左髋)为锚定关节点,并决定锚定关节点的可动范围。在图7中,处理器104可取得用户的膝关节点713,并基于髋关节点711与对应的膝关节点713之间的第三距离d3决定指定长度r1。处理器104可以第三距离d3的一半作为指定长度r1,并据以定义可动范围r71、r72,其中可动范围r71例如是以髋关节点711为圆心,指定长度r1为半径的圆形范围,而可动范围r72例如是以髋关节点712为圆心,指定长度r1为半径的圆形范围,但可不限于此。在决定可动范围r71、r72之后,可动范围r71、r72在图像中的位置即为固定。
[0088]
之后,处理器104可判断髋关节点711、712是否离开对应的可动范围r71、r72。若是,此即代表用户已停止执行仰卧起坐(例如时间点t5的状态);若否,此即代表用户仍在执
行仰卧起坐的过程中。
[0089]
在一些实施例中,同样地,处理器104亦可基于图4机制识别用户执行待测动作的次数,以下将辅以图4作进一步说明。
[0090]
在步骤s410中,处理器104可依据待测动作决定用户的第一关节点及第二关节点,并依据第一关节点、第二关节点及第一锚定关节点决定关节点夹角an,其中关节点夹角因应于用户执行待测动作而变化。所述第一锚定关节点例如是髋关节点711,但可不限于此。此外,处理器104可以用户的肩关节点714及膝关节点713分别作为第一关节点及第二关节点,并以对应于第一锚定关节点的夹角an3作为关节点夹角an。之后,在步骤s420中,处理器104可基于关节点夹角an(例如夹角an3)的变化而判定用户执行待测动作的次数。其中,判定用户执行待测动作深蹲的次数可参考上述实施例中判定用户执行待测动作俯卧撑的次数,在此不加以赘述。
[0091]
以图7为例,参考数值rv1的上限值及下限值分别例如是100%及0%,处理器104可将参考数值rv1的值以百分比条799的形式呈现于用户图像中。当处理器104判定用户从图7中时间点t1的姿势(对应于参考数值rv1为0%的状态)变为时间点t2的姿势(对应于参考数值rv1为100%的状态),再从时间点t2的姿势变为时间点t3的姿势(对应于参考数值rv1为0%的状态)时,处理器104可判定参考数值rv1已满足上述预设条件,并判定用户已执行一次仰卧起坐。另一方面,若参考数值rv1未从0%上升至100%,或是未从100%下降至0%,此即代表用户未完成一次完整的仰卧起坐行程,故处理器104可判定参考数值rv1未满足上述预设条件,进而可不累加用户执行当下那组的次数。
[0092]
另外,在用户从时间点t4的姿势变为时间点t5的姿势后,由于髋关节点711及712已离开对应的可动范围r71及r72,故处理器104可判定用户已停止执行当下那组的仰卧起坐。
[0093]
在用户从时间点t4的姿势变为时间点t5的姿势后,由于髋关节点711及712已离开对应的可动范围r71及r72,故处理器104可判定用户已停止执行当下那组的仰卧起坐。
[0094]
在一些实施例中,处理器104还可基于待测动作过程中的用户图像识别用户执行待测动作的正确性,以下将辅以图8作进一步说明。
[0095]
请参照图8,其是依据本发明第三实施例绘示的识别动作正确性的流程图。为便于说明,以下暂以图7所示情境为例作说明。在步骤s810中,处理器104可基于待测动作而在用户的关节点中找出多个参考关节点。在步骤s820中,处理器104可基于参考关节点决定参考范围rn。处理器104可分别以用户的肘关节点715及膝关节点713作为参考关节点,并基于肘关节点715与膝关节点713之间的距离dd决定参考半径。之后,再基于膝关节点713及参考半径决定参考范围rr,其中参考范围rr例如是以膝关节点713为圆心,参考半径(即,距离dd)为半径的圆形区域,但可不限于此。
[0096]
之后,在步骤s830中,处理器104可以用户的肘关节点715作为第一参考关节点rj1。之后,处理器104可判断肘关节点715在用户执行一次仰卧起坐的过程中是否曾进入参考范围rr。反应于判定肘关节点715在用户执行一次仰卧起坐的过程中曾进入参考范围rr,此即代表用户已完整地执行一次仰卧起坐行程。因此,处理器104可相应地判定用户已正确地执行该次仰卧起坐。另一方面,反应于判定肘关节点715在用户执行一次仰卧起坐的过程中未曾进入参考范围rr,此即代表用户仅完成仰卧起坐的部分行程。因此,处理器104可判
定用户未正确地执行该次仰卧起坐。
[0097]
请参照图9,其是依据本发明第四实施例绘示的应用情境示意图。在图9中,所示的5个用户图像例如分别对应于时间点t1~t5。在第四实施例中,假设在步骤s210中所判定的待测动作为引体向上。之后,处理器104可判断用户是否已呈现引体向上的起始动作。
[0098]
在时间点t1时,由于用户的姿势已呈现为引体向上的起始动作(例如双手向上举起的姿势),故处理器104可相应地在用户的关节点中决定锚定关节点,并可判定用户的腕关节点911、912(分别对应于用户的右手腕及左手腕)为锚定关节点,并决定锚定关节点的可动范围。在图9中,处理器104可取得用户的手指关节点913,并基于腕关节点911与对应的手指关节点913之间的第二距离d2决定指定长度r1。处理器104可直接以第三距离d3作为指定长度r1,并据以定义可动范围r91、r92,其中可动范围r91例如是以腕关节点911为圆心,指定长度r1为半径的圆形范围,而可动范围r92例如是以腕关节点912为圆心,指定长度r1为半径的圆形范围,但可不限于此。在决定可动范围r91、r92之后,可动范围r91、r92在图像中的位置即为固定。
[0099]
之后,处理器104可判断腕关节点911、912是否离开对应的可动范围r91、r92。若是,此即代表用户已停止执行引体向上(例如时间点t5的状态);若否,此即代表用户仍在执行引体向上的过程中。
[0100]
在一些实施例中,同样地,处理器104同样可基于图4机制识别用户执行待测动作的次数,以下将作进一步说明。
[0101]
在步骤s410中,处理器104可依据待测动作决定用户的第一关节点及第二关节点,并依据第一关节点、第二关节点及第一锚定关节点决定关节点夹角an,其中关节点夹角因应于用户执行待测动作而变化。所述第一锚定关节点例如是腕关节点911,但可不限于此。此外,处理器104可以用户的肩关节点914及肘关节点915分别作为第一关节点及第二关节点,并以对应于第二关节点的夹角an4作为关节点夹角an。之后,在步骤s420中,处理器104可基于关节点夹角an(例如夹角an4)的变化而判定用户执行待测动作的次数。其中,判定用户执行待测动作深蹲的次数可参考上述实施例中判定用户执行待测动作俯卧撑的次数,在此不加以赘述。
[0102]
以图9为例,参考数值rv1的上限值及下限值分别例如是100%及0%,处理器104可将参考数值rv1的值以百分比条999的形式呈现于用户图像中。当处理器104判定用户从图9中时间点t1的姿势(对应于参考数值rv1为0%的状态)变为时间点t2的姿势(对应于参考数值rv1为100%的状态),再从时间点t2的姿势变为时间点t3的姿势(对应于参考数值rv1为0%的状态)时,处理器104可判定参考数值rv1已满足上述预设条件,并判定用户已执行一次引体向上。另一方面,若参考数值rv1未从0%上升至100%,或是未从100%下降至0%,此即代表用户未完成一次完整的引体向上行程,故处理器104可判定参考数值rv1未满足上述预设条件,进而可不累加用户执行当下那组的次数。
[0103]
在用户从时间点t4的姿势变为时间点t5的姿势后,由于腕关节点911及912已离开对应的可动范围r91及r92,故处理器104可判定用户已停止执行当下那组的引体向上。
[0104]
在一些实施例中,处理器104亦可执行图5的机制以识别用户执行待测动作的正确性,以下将辅以图5作进一步说明。
[0105]
在步骤s510中,处理器104可基于待测动作而在用户的关节点中找出多个参考关
节点。在步骤s520中,处理器104可基于参考关节点决定参考关节点连线ln。
[0106]
在第四实施例中,反应于判定待测动作为引体向上,处理器104可分别以用户的腕关节点911、912及鼻关节点916作为参考关节点,并以腕关节点911、912之间的第二连线l2作为参考关节点连线ln。之后,在步骤s530中,处理器104可基于参考关节点中的第一参考关节点rj1与参考关节点连线ln之间的相对位置而判定用户执行待测动作的正确性。
[0107]
在图9情境中,处理器104可以用户的鼻关节点916作为第一参考关节点rj1。之后,处理器104可判断鼻关节点916的高度在用户执行一次引体向上的过程中是否曾超过参考关节点连线ln的高度。若是,此即代表用户已完整执行一次引体向上行程,故处理器104可判定用户已正确地执行该次引体向上。另一方面,若鼻关节点916的高度在用户执行一次引体向上的过程中未曾超过参考关节点连线ln的高度,此即代表用户未完整执行一次引体向上行程,故处理器104可判定用户未正确地执行该次引体向上。
[0108]
在一实施例中,反应于判定用户已停止执行待测动作,处理器104可相应地判定用户已完成一组的待测动作,其中该组的待测动作可包括至少一次的待测动作。之后,处理器104可估计用户执行各次的待测动作的运动数据。
[0109]
在一些实施例中,上述运动数据例如包括消耗热量及运动速度等,其中消耗热量的估计可参考”corrected mets”文献的内容,而运动速度的估计可参考台湾专利申请案第110148854号的内容(其内容以引用方式并入本文中),但可不限于此。
[0110]
本发明还提供了一种用于执行动作判定方法的计算机可读存储媒体。此计算机可读存储媒体由多个程序指令(如设置、部署程序指令)组成。这些程序指令可被加载动作判定装置100中执行以进行上述动作判定方法和动作判定装置100的功能。
[0111]
综上所述,本发明实施例除了可基于锚定关节点与可动范围的相对位置来判定用户是否已停止执行待测动作之外,还可基于所考虑的关节点夹角的变化而判定用户执行当下那组待测动作的次数,以及基于第一参考关节点与参考范围/参考关节点连线之间的相对位置来判定用户执行待测动作的正确性。
[0112]
由此可知,本发明提供一种新颖且智能的动作判定方法,其可正确且有效地判定用户执行待测动作的过程,并计算待测动作的执行次数、组数、速度、能量消耗等相关数值。
[0113]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。