CN115147339A - 人体关键点检测方法及相关装置 - Google Patents
人体关键点检测方法及相关装置 Download PDFInfo
- Publication number
- CN115147339A CN115147339A CN202110351266.0A CN202110351266A CN115147339A CN 115147339 A CN115147339 A CN 115147339A CN 202110351266 A CN202110351266 A CN 202110351266A CN 115147339 A CN115147339 A CN 115147339A
- Authority
- CN
- China
- Prior art keywords
- user
- electronic device
- image
- keypoints
- key points
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 137
- 210000002414 leg Anatomy 0.000 claims description 168
- 230000009471 action Effects 0.000 claims description 57
- 230000008859 change Effects 0.000 claims description 40
- 210000003127 knee Anatomy 0.000 claims description 26
- 210000003423 ankle Anatomy 0.000 claims description 21
- 238000012937 correction Methods 0.000 claims description 14
- 238000012549 training Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 210000002683 foot Anatomy 0.000 claims description 4
- 230000036544 posture Effects 0.000 description 64
- 230000008569 process Effects 0.000 description 22
- 230000003238 somatosensory effect Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000005236 sound signal Effects 0.000 description 7
- 230000003187 abdominal effect Effects 0.000 description 6
- 210000000115 thoracic cavity Anatomy 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 244000309466 calf Species 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 210000000689 upper leg Anatomy 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 241000197727 Euscorpius alpha Species 0.000 description 1
- 210000001015 abdomen Anatomy 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 210000000577 adipose tissue Anatomy 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 210000000038 chest Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/23—Recognition of whole body movements, e.g. for sport training
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请提供一种人体关键点检测方法及相关装置。该方法可适用于配置有有一个或多个摄像头的电子设备。电子设备可以识别摄像头采集的图像中用户的3D关键点。电子设备可以根据上述3D关键点检测用户的姿态是否与预设姿态匹配。利用在用户的姿态与预设姿态匹配时确定出的一组3D关键点,电子设备可以计算这一组3D关键点确定出的人体模型与图像平面之间的夹角。电子设备可以利用该夹角对3D关键点的位置信息进行矫正。该方法可以节约成本,减少图像透视形变对3D关键点的位置信息带来的误差,提高3D关键点的位置信息检测的准确度。
Description
技术领域
本申请涉及终端技术领域,尤其涉及人体关键点检测方法及相关装置。
背景技术
人体关键点检测是诸多计算机视觉任务的基础。通过检测人体的三维(3dimensions,3D)关键点,可以实现姿态检测、动作分类、智能健身、以及体感游戏等等。
电子设备可以通过摄像头采集图像,并识别图像中人体的二维(2dimensions,2D)关键点。基于2D关键点,电子设备可以利用深度学习等技术估计人体的3D关键点。在上述通过2D关键点估计3D关键点的方法中,由于用户的身高差异、用户与摄像头的距离差异等因素,摄像头采集的图像会存在不同程度的透视形变。图像透视形变会导致检测得到的2D关键点出现误差。那么通过上述2D关键点估计得的3D关键点也会存在误差。
目前,电子设备可通过多个摄像头来检测用户距离摄像头所在的位置,来确定图像中人物透视形变的程度。进一步的,电子设备可以根据图像中人物透视形变的程度对3D关键点进行矫正。但上述方法需要多个摄像头且需要设计这多个摄像头的摆放位置才能提高检测精度,不仅成本高,而且确定3D关键点的计算复杂度高。
发明内容
本申请提供一种人体关键点检测方法及相关装置。该方法可适用于配置有一个或多个摄像头的电子设备。电子设备可以识别摄像头采集的图像中用户的3D关键点。电子设备可以根据上述3D关键点检测用户的姿态是否与预设姿态匹配。利用在用户的姿态与预设姿态匹配时确定出的一组3D关键点,电子设备可以计算这一组3D关键点确定出的人体模型与图像平面之间的夹角。电子设备可以利用该夹角对3D关键点的位置信息进行矫正。该方法可以节约成本,减少图像透视形变对3D关键点的位置信息带来的误差,提高3D关键点的位置信息检测的准确度。
第一方面,本申请提供一种人体关键点检测方法,该方法可应用于包含一个或多个摄像头的电子设备。在该方法中,电子设备可以通过摄像头获取第一用户的第一图像。电子设备可以根据第一图像确定第一用户的第一组3D关键点。电子设备可以判断第一组3D关键点中的多个3D关键点是否满足第一条件。若满足第一条件,电子设备可以根据多个3D关键点确定第一补偿角。利用第一补偿角对第一组3D关键点进行旋转矫正。
结合第一方面,在一些实施例中,若不满足第一条件,电子设备可以利用第二补偿角对第一组3D关键点进行旋转矫正。第二补偿角根据第二组3D关键点确定。第二组3D关键点为在获取第一图像之前最近一组满足第一条件的3D关键点。
结合第一方面,在一些实施例中,电子设备通过摄像头获取第一用户的第一图像的方法可以为,电子设备可以根据第一多媒体信息确定第一时刻,第一时刻为第一多媒体信息指示用户进行满足第一条件的动作的时刻。电子设备可以通过摄像头在第一时刻开始的第一时间段内,获取第一用户的第一图像。
上述第一时间段可以是第一多媒体信息指示用户进行满足第一条件的动作的时间段。例如,完成上述满足第一条件的动作需要的时间为1秒。则上述第一时间段为从第一时刻开始的1秒。可选的,上述第一时间段可以是固定时间长度的时间段。
结合第一方面,在一些实施例中,若在第二时刻多媒体信息指示用户进行的动作对应的3D关键点不满足第一条件,电子设备可以利用第三补偿角对根据从第二时刻开始的第二时间段内采集的图像确定的3D关键点进行旋转矫正。第三补偿角根据第三组3D关键点确定。第三组3D关键点为在第二时刻之前最近一组满足第一条件的3D关键点。
上述第二时间段可以是第一多媒体信息指示用户进行不满足第一条件的动作的时间段。例如,完成上述满足第一条件的动作需要的时间为1秒。则上述第二时间段为从第二时刻开始的1秒。可选的,上述第二时间段可以是固定时间长度的时间段。
结合第一方面,在一些实施例中,电子设备判断第一组3D关键点中的多个3D关键点是否满足第一条件的方法可以为,电子设备可以判断第一组3D关键点中的多个3D关键点是否与第一动作对应的3D关键点匹配,第一动作为上半身、腿部中至少一项直立的动作。
其中,若上述第一动作为上半身直立的动作,则第一补偿角可以为第一组3D关键点中颈部点与胸腹部点所在直线与图像平面的夹角。
若上述第一动作为腿部直立的动作,则第一补偿角为第一组3D关键点中髋点、膝点、脚踝点中任意两个3D关键点所在直线与图像平面的夹角。
结合第一方面,在一些实施例中,第一组3D关键点中的多个3D关键点包括髋点、膝点、脚踝点。电子设备判断第一组3D关键点中的多个3D关键点是否满足第一条件的方法可以为,电子设备可以计算第一组3D关键点中左髋点与左膝点所在的直线、左膝点与左脚点所在的直线之间的第一夹角,以及第一组3D关键点中右髋点与右膝点所在的直线、右膝点与右脚点所在的直线之间的第二夹角。电子设备可以通过检测第一夹角与180°之间的差值是否小于第一差值、第二夹角与180°之间的差值是否小于第一差值来判断第一组3D关键点中的多个3D关键点是否满足第一条件。
其中,第一组3D关键点中的多个3D关键点满足第一条件的情况包括:第一夹角与180°之间的差值小于第一差值且/或第二夹角与180°之间的差值小于第一差值。
由上述方法可以看出,在检测到用户的3D关键点满足第一条件时,电子设备可以利用基于图像确定出的3D关键点来确定图像中人物透视形变的程度。上述用户的3D关键点满足第一条件可以电子设备检测到用户进行上半身直立且/或腿部直立的动作。也即是说,在用户的上半身直立且/或腿部直立时,电子设备均可以利用基于图像确定出的3D关键点来确定图像中人物透视形变的程度。进而,电子设备可以对基于图像确定出的3D关键点的位置信息进行矫正,减少图像透视形变对3D关键点的位置信息带来的误差,提高3D关键点的位置信息检测的准确度。该方法可以只需要一个摄像头,不仅节约成本,而且进行关键点检测的计算复杂度也较低。
另外,每一次检测到用户的3D关键点满足第一条件时,若上半身的3D关键点和/或腿部的3D关键点所在的直线与图像平面之间的夹角可用于矫正3D关键点的位置信息,电子设备可以更新补偿角。更新之后的补偿角可以更准确地反映用户在当前位置下,摄像头采集的图像中人物透视形变的程度。这可以减少用户与摄像头之间的位置发生变化对3D关键点的位置信息进行矫正的影响,提高矫正后3D关键点的位置信息的准确度。也即是说,电子设备可以利用更新之后的补偿角来矫正3D关键点的位置信息。经过矫正之后的3D关键点确定的人体模型可以更准确地反映用户的姿态,提高姿态检测的准确率。这样,在健身或体感游戏中,电子设备可以更准确地判断出用户的姿态是否正确以及用户动作的幅度是否满足要求等,使得用户在进行健身或体感游戏时具有更好的体验。
结合第一方面,在一些实施例中,第二补偿角为第二组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角。第三补偿角为第三组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角。
结合第一方面,在一些实施例中,第二补偿角为第一补偿角变化量与第三夹角之和;第三夹角为第二组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角;第一补偿角变化量是根据第一高度H1,第一距离Y1,第二高度H2以及第二距离Y2确定出来的,其中,H1和Y1分别是采集第一图像时第一用户的高度、第一用户与摄像头的距离,H2和Y2分别是采集第二图像时第一用户的高度、第一用户与摄像头的距离;第一用户在第一图像中的关键点为第一组3D关键点,第一用户在第二图像中的关键点为第二组3D关键点。其中,从采集第二图像至采集第一图像之间的时间段内,第一用户的高度减少得越多,第二补偿角相比于第三夹角增加得越多,第一用户与摄像头的距离减少得越多,第二补偿角相比于第三夹角增加得越多,H1越小,第二补偿角相比于第三夹角增加得越多。
第三补偿角为第二补偿角变化量与第四夹角之和;第四夹角为第三组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角;第二补偿角变化量是根据第三高度H3,第三距离Y3,第四高度H4以及第四距离Y4确定出来的,其中,H3和Y3分别是在第二时间段内第一用户的高度、第一用户与摄像头的距离,H4和Y4分别是采集第三图像时第一用户的高度、第一用户与摄像头的距离;第一用户在第三图像中的关键点为第三组3D关键点。其中,从采集第二图像至第二时间段之间的时间段内,第一用户的高度减少得越多,第三补偿角相比于第四夹角增加得越多,第一用户与摄像头的距离减少得越多,第三补偿角相比于第四夹角增加得越多,H3越小,第三补偿角相比于第四夹角增加得越多。
上述第一补偿角变换量和第二补偿角变化量均由第一模型确定,第一模型由多组训练样本训练得到,一组训练样本包括:采集时间在前的图像和采集时间在后的图像之间人体在图像中所在位置的下边缘的变化量、人体在图像中高度的变化量、人体在采集时间在后的图像中的高度、根据采集时间在前的图像和采集时间在后的图像确定的两组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角的变化量;两组3D关键点中的多个3D关键点均满足第一条件。
由上述方法可以看出,即便用户的3D关键点不满足第一条件,电子设备也可以实时确定出图像中人物透视形变的程度,并对3D关键点的位置信息进行矫正,从而提高3D关键点检测的准确率。
结合第一方面,在一些实施例中,若判断出第一组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角小于第五夹角,电子设备可以根据上述多个3D关键点确定上述第一补偿角。若判断出第一组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与平面图像的夹角大于第五夹角,电子设备可以利用第二补偿角对第一组3D关键点进行旋转矫正。
上述第五夹角可以根据经验值设定。本申请实施例对此不作限定。
由上述方法可知,电子设备可以通过设置第五夹角来判断上述计算得到的夹角是否可以作为矫正3D关键点的位置信息的补偿角,从而避免由于上述夹角计算失误导致补偿角为不可能的取值,提高检测3D关键点的准确率。
第三补偿角为第二补偿角变化量与第四夹角之和;第四夹角为第三组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角;第二补偿角变化量是根据第三高度H3,第三距离Y3,第四高度H4以及第四距离Y4确定出来的,其中,H3和Y3分别是在第二时间段内第一用户的高度、第一用户与摄像头的距离,H4和Y4分别是采集第三图像时第一用户的高度、第一用户与摄像头的距离;第一用户在第三图像中的关键点为第三组3D关键点;
其中,从采集第二图像至第二时间段之间的时间段内,第一用户的高度减少得越多,第三补偿角相比于第四夹角增加得越多,第一用户与摄像头的距离减少得越多,第三补偿角相比于第四夹角增加得越多,H3越小,第三补偿角相比于第四夹角增加得越多。
判断出第一组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与图像平面的夹角小于第五夹角;
若第一组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与平面图像的夹角大于第五夹角,利用第二补偿角对第一组3D关键点进行旋转矫正
第二方面,本申请提供一种电子设备,电子设备包括摄像头、显示屏、存储器和处理器,其中:摄像头可用于采集图像,存储器可用于存储计算机程序,处理器可用于调用计算机程序,使得电子设备执行上述第一方面中任一种可能的实现方式。
第三方面,本申请提供一种计算机存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行上述第一方面中任一种可能的实现方式。
第四方面,本申请实施例提供一种芯片,该芯片应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行上述第一方面中任一种可能的实现方式。
第五方面,本申请实施例提供一种包含指令的计算机程序产品,当上述计算机程序产品在设备上运行时,使得上述电子设备执行上述第一方面中任一种可能的实现方式。
可以理解地,上述第二方面提供的电子设备、第三方面提供的计算机存储介质、第四方面提供的芯片、第五方面提供的计算机程序产品均用于执行本申请实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1是本申请实施例提供的一种人体关键点的位置分布图;
图2A是本申请实施例提供的一种确定2D关键点的位置信息的2D坐标系示意图;
图2B是本申请实施例提供的一种确定3D关键点的位置信息的3D坐标系示意图;
图3是本申请实施例提供的一种人体关键点检测的场景示意图;
图4A和图4B是本申请实施例提供的电子设备100检测到的3D关键点的示意图;
图5是本申请实施例提供的电子设备100的结构示意图;
图6A~图6D是本申请实施例提供的一些人体关键点检测的场景示意图;
图7A和图7B是本申请实施例提供的电子设备100检测到的3D关键点的示意图;
图8是本申请实施例提供的一种人体关键点检测方法的流程图;
图9A~图9C是本申请实施例提供的一些人体关键点检测的场景示意图;
图10是本申请实施例提供的另一种人体关键点检测方法的流程图;
图11是本申请实施例提供的另一种人体关键点检测方法的流程图;
图12是本申请实施例提供的另一种人体关键点的位置分布图;
图13是本申请实施例提供的另一种人体关键点检测方法的流程图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1示例性示出了人体的关键点的位置分布图。如图1所示,人体的关键点可包括:头部点、颈部点、左肩点、右肩点、右肘点、左肘点、右手点、左手点、右髋点、左髋点、左右髋中间点、右膝点、左膝点、右脚踝点、左脚踝点。不限于上述关键点,本申请实施例中还可以包括其他包括关键点,此处不做具体限定。
下面对本申请实施例中涉及的2D关键点和3D关键点的概念进行具体说明。
1、2D关键点
本申请实施例中的2D关键点可以表示分布在2D平面上的关键点。电子设备可以通过摄像头采集用户的图像,并识别该图像中用户的2D关键点。上述2D平面可以是摄像头采集的图像所在的图像平面。电子设备识别图像中用户的2D关键点具体可以是确定用户的关键点在2D平面上的位置信息。其中,2D关键点的位置信息可以通过2D平面中的二维坐标来表示。
在一种可能的实现方式中,各2D关键点的位置信息可以是上述各2D关键点中以一个2D关键点为参考点的位置信息。例如,以左右髋中间点为参考点,左右髋中间点在2D平面上的位置信息可以为坐标(0,0)。然后,电子设备可以根据其他2D关键点与左右髋中间点的相对位置确定其他2D关键点的位置信息。
在另一种可能的实现方式中,电子设备可以以图像平面为基础建立如图2A所示的2D坐标系x_i-y_i。其中,该2D坐标系可以以摄像头采集的图像的一个顶点为原点,以图像中拍摄物的水平方向为2D坐标系的x_i轴的方向,以图像中拍摄物的竖直方向为2D坐标系的y_i轴的方向。各2D关键点的位置信息可以是用户的关键点在该2D坐标系中的二维坐标。
本申请实施例对确定上述2D关键点的位置信息的方法不作限定。
电子设备从摄像头采集的一帧图像中可识别出一组2D关键点。这一组2D关键点可包括图1所示人体的全部关键点。一组2D关键点可用于确定一个在2D平面上的人体模型。
2、3D关键点
本申请实施例中的3D关键点可以表示分布在3D空间中的关键点。基于2D关键点,电子设备可以利用深度学习等技术估计用户的3D关键点。上述3D空间可以电子设备的摄像头所在的3D空间。电子设备确定用户的3D关键点具体可以是确定用户的关键点在3D空间中的位置信息。其中,3D关键点的位置信息可以通过3D空间中的三维坐标来表示。相比于2D关键点,3D关键点的位置信息中包含了用户的关键点的深度信息。即3D关键点的位置信息可以反映出用户的关键点相对于摄像头的远近程度。
在一种可能的实现方式中,各3D关键点的位置信息可以是上述各3D关键点中以一个3D关键点为参考点的位置信息。例如,以左右髋中间点为参考点,左右髋中间点在3D控件中的位置信息可以为坐标(0,0,0)。然后,电子设备可以根据其他3D关键点与左右髋中间点的相对位置确定其他3D关键点的位置信息。
在另一种可能的实现方式中,电子设备可以以摄像头所在的3D空间建立如图2B所示的3D坐标系x-y-z。其中,该3D坐标系可以以摄像头的光心为原点,以摄像头光轴所在的方向(即与图像平面垂直的方向)为z轴的方向,以图2A所示的2D坐标系中x_i轴的方向和y_i轴的方向分别为该3D坐标系x轴的方向和y轴的方向。各3D关键点的位置信息可以是用户的关键点在该3D坐标系中的三维坐标。
图2B所示的3D坐标系为右手坐标系。其中-x可以表示x轴的负方向。本申请实施例对上述3D坐标系的建立方法不作限定。例如,上述3D坐标系还可以为左手坐标系。电子设备可以确定用户的关键点在左手坐标系中的三维坐标。
不限于利用深度学习的方法来估计3D关键点的位置信息,电子设备可以通过其他方法来确定3D关键点的位置信息。电子设备基于2D关键点估计3D关键点的位置信息的实现过程具体可以参考现有技术的实现,本申请实施例对此不作赘述。
电子设备可以利用一组2D关键点确定出一组3D关键点。或者,电子设备可以利用从连续多帧图像中确定出的多组2D关键点确定出一组3D关键点。上述一组3D关键点可包括图1所示人体的全部关键点。一组3D关键点可用于确定一个在3D空间中的人体模型。
在一些实施例中,电子设备可以对一帧图像或连续多帧图像进行3D关键点检测,从一帧或连续多帧图像中确定出一组3D关键点。即电子设备可以不用先确定图像的2D关键点,再基于2D关键点估计用户的3D关键点。本申请实施例对电子设备进行3D关键点检测的具体方法不作限定。
本申请后续实施例中具体以电子设备先确定图像的2D关键点,再基于2D关键点估计用户的3D关键点的方法为例来介绍本申请提供的人体关键点检测方法。
摄像头采集的图像中人物存在透视形变会影响3D关键点检测的准确性。下面具体说明透视形变对3D关键点检测的影响。
图3示例性示出了电子设备100通过检测人体的3D关键点,来实现智能健身的场景示意图。
如图3所示,电子设备100可包含摄像头193。电子设备100可以通过摄像头193采集图像。摄像头193采集的图像中可包括用户在健身过程中的图像。电子设备100可以在用户界面210显示摄像头193采集的图像。本申请实施例对上述用户界面210显示的内容不作限定。
电子设备100可以识别摄像头193采集的图像中用户的2D关键点。基于上述2D关键点,电子设备100可以估计一组用户的3D关键点。一组3D关键点可用于确定出一个用户在3D空间中的人体模型。由3D关键点确定出的人体模型可以反映用户的姿态。3D关键点的位置信息越准确,由3D关键点确定出的人体模型可以越准确地反映用户的姿态。
由于不同产品上,摄像头的俯仰角、视场以及高度存在差异。在摄像头采集图像的过程中,用户与摄像头之间的距离可能发生变化。受上述因素的影响,摄像头采集的图像会发生透视形变。若电子设备100利用存在透视形变的图像确定出用户的2D关键点,那么上述2D关键点确定出的人体模型的长宽比与用户实际人体的长宽比存在差异。电子设备100利用上述2D关键点确定出用户的3D关键点。上述3D关键点的位置信息会存在误差。上述3D关键点确定的人体模型难以准确反映用户的姿态。
图4A和图4B从不同方位示例性示出了用户处于站立姿态时电子设备100确定出的一组3D关键点。
图4A所示的3D坐标系可以为前述图2B所示的3D坐标系x-y-z。图4A从z轴所在的方向示出了一组用户的3D关键点。该方位相当于从用户的后方观察用户的姿态。由图4A可以看出,这一组3D关键点确定出的一个人体模型反映出的用户的姿态为站立姿态。
图4B所示的3D坐标系可以为前述图2B所示的3D坐标系x-y-z。z可以表示z轴的正方向。z轴的正方向为摄像头指向被拍摄物体的方向。图4B从x轴的负方向示出了一组用户的3D关键点。该方位相当于从用户的侧方观察用户的姿态。由图4B可以看出,这一组3D关键点确定出的人体模型向摄像头193所在的方向前倾。在用户处于站立姿态时,一组3D关键点确定出的人体模型应该是垂直于平面x-0-z的。由于图像存在透视形变,一组3D关键点确定出的人体模型会存在如图4B所示的前倾姿态。一组3D人体模型向摄像头193所在方向前倾的程度越大,摄像头193采集的图像中人物透视形变的程度越大。
本申请提供一种人体关键点检测方法,可以适用于配置有单目摄像头的电子设备。电子设备可以通过单目摄像头采集的图像来检测人体的3D关键点。上述单目摄像头可以为前述电子设备100中的摄像头193。该方法可以节约成本,提高3D关键点的位置信息检测的准确度。
具体的,电子设备可以识别摄像头采集的图像中用户的2D关键点,并根据该2D关键点估计用户的3D关键点。电子设备可以根据上述3D关键点确定用户的腿部是否直立。利用在用户的腿部直立时确定出的一组3D关键点,电子设备可以计算这一组3D关键点确定出的人体模型与图像平面之间的补偿角。进一步的,电子设备可以利用该补偿角对3D关键点的位置信息进行矫正,减少图像透视形变对3D关键点的位置信息带来的误差,提高3D关键点的位置信息检测的准确度。
上述图像平面为摄像头采集的图像所在的平面(即垂直于摄像头光轴的平面)。
用户在腿部直立时,用户的腿部所在的直线与图像平面之间的夹角应该为0或者为与0接近的值。在检测到用户的腿部直立时,电子设备可以通过用户的腿部3D关键点所在的直线与图像平面之间的夹角来确定图像中人物透视形变的程度,并对3D关键点的位置信息进行矫正。上述方法相比于利用多个摄像头采集的图像来检测3D关键点,可以只需要一个摄像头,成本更低,并且计算复杂度也更低。
用户在进行健身或体感游戏的过程中,活动的区域通常不会有太大的变化。也即是说,在健身或体感游戏进行的过程中,摄像头采集的图像中人物的透视形变程度不会有太大的变化。在健身或体感游戏进行的过程中,电子设备可以检测该过程中某一次用户在腿部直立时用户腿部3D关键点所在的直线与图像平面之间的夹角,并以该夹角作为补偿角,对健身或体感游戏进行过程中确定出的3D关键点的位置信息进行矫正。
可选的,在健身或体感游戏进行的过程中,若电子设备多次检测到用户的腿部直立,电子设备可以更新补偿角。即电子设备可以以最近一次检测到用户的腿部直立时用户腿部3D关键点所在的直线与图像平面之间的夹角作为补偿角,对健身或体感游戏进行过程中后续阶段确定出的3D关键点的位置信息进行矫正。上述方法可以减少用户与摄像头之间的位置发生变化对3D关键点的位置信息进行矫正的影响,提高矫正后3D关键点的位置信息的准确度。
示例性,在体感游戏的场景中,电子设备可以根据摄像头采集的图像确定用户的3D关键点,并根据上述3D关键点确定体感游戏中的虚拟人物。电子设备可以在用户界面呈现上述虚拟人物。上述虚拟人物可以反映用户的姿态。例如,用户向前跳跃,上述虚拟人物也向前跳跃。在3D关键点的位置信息被矫正之前,由于图像存在透视形变,3D关键点位置信息存在误差。那么上述虚拟人物的姿态与用户实际的姿态之间存在差异。例如,用户实际处于站立姿态,而上述虚拟人物可能会处于身体前倾的姿态。那么用户可能实际完成的动作是标准的,但电子设备100会判定用户的动作不标准并指示用户通关失败。这会影响用户的游戏体验。
3D关键点的位置信息经过矫正后,上述虚拟人物的姿态与用户实际的姿态更加贴合。这样,在健身或体感游戏中,电子设备100可以更准确地判断出用户的姿态是否正确以及用户动作的幅度是否满足要求等,使得用户在进行健身或体感游戏时具有更好的体验。
图5示例性示出了本申请实施例提供的一种电子设备100的结构示意图。
如图5所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器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的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备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通过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)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
其中传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
不限于图5所示的部件,电子设备100可以包含更多或更少的部件。本申请实施例中的电子设备100可以是电视、手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personaldigital assistant,PDA)、便携式多媒体播放器(portable multimedia player,PMP)、专用媒体播放器、AR(增强现实)/VR(虚拟现实)设备等其他类型的电子设备。本申请实施例对电子设备100的具体类别不作限定。
下面基于用户跟随电子设备100中的健身课程进行健身,电子设备100检测用户的3D关键点的场景,介绍本申请实施例提供的一种人体关键点检测方法。
电子设备100中可存储有多个健身课程。可选的,电子设备100可以从云服务器中获取多个健身课程。健身课程通常包括多个动作,上述多个动作中两个连续的动作间可以有预设的休息时间,上述多个动作中任意两个动作可以相同也可以不同。健身课程可以是电子设备根据用户历史健身数据推荐的,也可以是用户根据实际需求选择的。健身课程可以是本地播放,也可以是在线播放。此处均不作具体限定。
一个健身课程可包括多个子课程,每个子课程可以包括健身课程的一或多个连续的动作。上述多个子课程可以是依据运动类型、运动目的、锻炼部位等划分的。此处不作具体限定。
例如,一个健身课程包括三个子课程。其中,第一个子课程为热身运动,第二个子课程为正式运动,第三个子课程为拉伸运动,上述三个子课程中的任一子课程包括一或多个连续的动作。
本申请实施例中,健身课程中可以包括视频、动画、语音、文字等方式中的一或多种类型的内容,此处不做具体限定。
阶段1:开启健身课程。
如图6A所示,图6A示例性示出了电子设备100上用于展示电子设备100安装的应用程序的用户界面61。
用户界面61可包括应用程序健身的图标611,以及其他的应用程序(如邮件、图库和音乐等)的图标。任一个应用的图标可用于响应用户的操作,例如触摸操作,使得电子设备100启动图标对应的应用。用户界面61还可以包含更多或更少的内容,本申请实施例对此不作限定。
响应于作用在健身的图标611上的用户操作,电子设备100可以显示如图6B所示的健身课程界面62。健身课程界面62可包括应用程序标题栏621、功能栏622、显示区623。其中:
应用程序标题栏621可用于指示当前页面用于展示电子设备100的设置界面。应用程序标题栏621的表现形式可以为文本信息“智能健身”、图标或其他形式。
功能栏622可包括:用户中心控件、课程推荐控件、燃脂专区控件、塑形专区控件、塑形专区控件。不限于上述控件,功能栏622可以包含更多或更少的控件。
响应于作用在功能栏622中任一控件的用户操作,电子设备100可以在显示区623显示该控件指示的内容。
例如,响应于作用在用户中心控件的用户操作,电子设备100可以在显示区623显示用户个人中心的界面内容。响应于作用在课程推荐控件的用户操作,电子设备100可以在显示区623显示一或多个推荐的健身课程。如图6B所示,显示区623显示多个推荐课程的课程封面。课程封面上可包括对应健身课程的课程分类、时长、名称。响应于作用在任一课程封面的用户操作,电子设备100可以开启该课程封面对应的健身课程,显示该健身课程中的运动内容。
本申请实施例对上面提及的各用户操作均不作限定。例如,用户还可以通过遥控器控制电子设备100执行相应的指令(如启动健身应用程序、开启健身课程等)。
健身课程界面62还可以包含更多或更少的内容,本申请实施例对此不作限定。
响应于作用在任一健身课程(如课程名称为“全身燃脂初级”的健身课程)的课程封面的用户操作,电子设备100可以开启该健身课程。其中,在播放健身课程的过程中,电子设备100需要通过摄像头采集图像。那么在播放健身课程之前,电子设备100可以提示用户摄像头即将开启。
阶段2:确定目标用户及初始补偿角,并利用初始补偿角矫正3D关键点的位置信息。
目标用户可以表示在电子设备100播放健身课程的过程中,需要电子设备100检测3D关键点、记录运动数据的用户。
在一些实施例中,如图6C所示,电子设备100可以采集用户的人脸信息,来确定进行运动的目标用户。确定目标用户有利于电子设备100跟踪需要进行关键点检测的用户,并准确获取目标用户的运动数据。这样可以避免摄像头的拍摄范围内出现目标用户以外的其它用户对电子设备100检测目标用户的关键点以及获取目标用户的运动数据产生干扰。
在上述确定目标用户的过程中,电子设备100还可以确定初始补偿角。电子设备100可以在该初始补偿角被更新之前,利用该初始补偿角来矫正健身课程开始播放后基于2D关键点确定的3D关键点的位置信息。
示例性的,电子设备100可以显示目标用户确定界面63。目标用户确定界面63可包括提示语631和用户图像632。其中,提示语可用于提示用户在确定目标用户及初始补偿角的相关操作。提示语可以为文字提示“请在您开展运动的区域保持站立姿态,并将脸部对准摄像头”。本申请实施例对上述提示语的形式和具体内容不作限定。用户图像632为摄像头采集到的目标用户的图像。
上述摄像头采集到的用户图像可用于电子设备100在健身课程播放过程中确定需要进行关键点检测和运动数据记录的目标用户。其中,电子设备100可以利用目标跟踪算法来跟踪目标用户。上述目标跟踪算法的实现方式可以参考现有技术中目标跟踪算法的具体实现,这里不作赘述。
上述提示语中提示用户在开展运动的区域保持站立姿态,可便于电子设备100确定初始补偿角。
具体的,在上述提示语631的提示下,用户在电子设备100确定目标用户的过程中在自己即将开展运动的区域内保持站立姿态。电子设备100可以采集到包含用户运动姿态的一帧或多帧图像,并从该一帧或多帧图像中识别出用户的一组或多组2D关键点。进一步的,基于上述一组或多组2D关键点,电子设备100可以估计一组用户的3D关键点。根据上述一组用户的3D关键点,电子设备100可以判断用户的腿部是否直立。在判断出用户的腿部直立时,电子设备100可以计算用户腿部3D关键点所在的直线与图像平面之间的夹角。若该夹角小于预设夹角,电子设备100可以将该夹角确定为初始补偿角。否则,电子设备100可以以默认角度为初始补偿角。上述默认角度可以是预先存储在电子设备100中的。上述默认角度可作为通用的补偿角来矫正3D关键点的位置信息,减少图像中人物的透视形变对3D关键点的位置信息造成的误差。上述默认角度可以根据经验值设定。本申请实施例对上述默认角度的取值不作限定。
其中,电子设备100判断上述3D关键点所在的直线与图像平面之间的夹角是否小于预设夹角,并在该夹角小于预设夹角时将该夹角确定为初始补偿角。这可以避免上述3D关键点所在的直线与图像平面之间的夹角计算失误导致初始补偿角为不可能的取值。上述预设夹角可以例如是45°。本申请实施例对上述预设夹角的取值不作限定。
当确定了目标用户和初始补偿角,电子设备100可以播放健身课程。在健身课程播放过程中,电子设备100可以通过摄像头采集图像,并识别图像中用户的2D关键点。基于上述2D关键点,电子设备100可以确定用户的3D关键点。电子设备100可以利用初始补偿角对上述3D关键点的位置信息进行矫正。
其中,电子设备100可以对每一帧图像进行2D关键点检测。对于一帧图像,电子设备100可以识别出与这一帧图像对应的一组2D关键点。电子设备100可以利用这一组2D关键点确定一组3D关键点。这一组3D关键点可用于确定一个人体模型。这一个人体模型可以反映这一帧图像中用户的姿态。
可选的,电子设备100可以对每一帧图像进行2D关键点检测。对于连续多帧图像,电子设备100可以识别出与这连续多帧图像对应的多组2D关键点。电子设备100可以利用这多组2D关键点确定一组3D关键点。这一组3D关键点可用于确定一个人体模型。这一个人体模型可以反映这连续多帧图像中用户的姿态。相比于利用从一帧图像中识别出的2D关键点确定的3D关键点,利用从连续多帧图像中识别出的2D关键点确定的3D关键点可以更准确地反映用户的姿态。
本申请实施例对确定目标用户的方法不作限定。例如,电子设备100可以通过检测用户的动作是否与预设动作匹配来确定目标用户。上述预设动作可以是双臂向上弯举。在开始播放健身课程之前,电子设备100可以在图6C所示的目标用户确定界面63显示双臂向上弯举的动作示例、以及用于提示用户做双臂向上弯举的提示语。另外,电子设备100可以根据摄像头采集的图像进行人体姿态检测。电子设备100可以将检测到姿态与做双臂向上弯举的姿态相同的用户确定为目标用户。用户进行上述目标用户确定的过程中指示用户完成的动作(如双臂向上弯举)时,腿部是直立的。那么在上述目标用户确定的过程中,电子设备100还可以根据上述实施例的方法确定初始补偿角。
本申请实施例对上述预设动作的类型不作限定。
在一些实施例中,在播放一个健身课程时,电子设备100可以获取这一个健身课程中包含的动作。电子设备100可以在播放一个健身课程时,检测动作与这一个健身课程中的动作匹配的用户来确定目标用户。另外,电子设备100可以以上述默认角度作为初始补偿角,并利用该默认角度对电子设备100确定出的3D关键点的位置信息进行矫正。即电子设备100可以不通过图6C所示方法来确定目标用户和初始补偿角。
可选的,若在一个健身课程开始播放的时刻,或者在一个健身课程开始播放后的一段时间内(如3秒内),电子设备100检测到用户的腿部直立,那么电子设备100可以根据检测到用户的腿部直立时所使用的3D关键点来确定上述初始补偿角。其中,初始补偿角为上述3D关键点中腿部3D关键点所在直线与图像平面之间的夹角。
阶段3:更新补偿角,并利用更新后的补偿角矫正3D关键点的位置信息。
由于在播放一个健身课程时,电子设备100可以获取这一个健身课程中包含的动作。电子设备100可以确定这一个健身课程中的动作是否包含腿部直立的动作(如站立动作、正面站立双臂上举动作等等)。
如图6D所示,在健身课程播放的过程中,电子设备100可以显示图6D所示的用户界面64。用户界面64可包括健身课程窗口641和用户健身窗口642。其中:
健身课程窗口641可用于显示健身课程的具体内容。例如教练进行健身课程中的动作的图像等等。
用户健身窗口642可用于实时显示摄像头采集到的目标用户的图像。
本申请实施例对上述健身课程窗口641和用户健身窗口642在用户界面64上的分布方式不作限定。健身课程窗口641和用户健身窗口642中还可以包含更多的内容,本申请实施例对此不作限定。
健身课程播放至t1时刻时,健身课程指示用户完成的动作为腿部直立的动作,如站立动作。如图6D所示,健身课程窗口641中教练的动作为站立动作。用户可以根据健身课程窗口641中教练动作的指示做站立动作。电子设备100可以利用摄像头在t1时刻附近采集的图像,得到的3D关键点。电子设备100可以根据该3D关键点判断用户的腿部是否直立。若用户的腿部直立,电子设备100可以计算用户腿部3D关键点所在的直线与图像平面之间的夹角。若该夹角小于前述实施例中的预设夹角,电子设备100可以将该夹角确定为补偿角。电子设备100可以利用该补偿角更新之前的补偿角,并利用更新后的补偿角来矫正3D关键点的位置信息。
其中,在健身课程首次指示用户完成腿部直立的动作时,被电子设备100计算得到的补偿角所更新的补偿角为前述实施例中的初始补偿角。在健身课程第二次及后续阶段指示用户完成腿部直立的动作时,被电子设备100计算得到的补偿角所更新的补偿角可以是电子设备100上一次检测到用户腿部直立时计算得到的补偿角。
由上述实施例可知,电子设备100可以在健身课程指示用户完成腿部直立的动作时,检测用户的腿部是否直立。若用户的腿部直立,电子设备100可以更新用于矫正3D关键点的位置信息的补偿角。更新之后的补偿角为该次用户腿部直立时,电子设备100计算用户腿部3D关键点所在的直线与图像平面之间的夹角。更新之后的补偿角可以更准确地反映用户在当前位置下,摄像头采集的图像中人物透视形变的程度。也即是说,电子设备100可以利用更新之后的补偿角来矫正3D关键点的位置信息。经过矫正之后的3D关键点确定的人体模型可以更准确地反映用户的姿态,提高姿态检测的准确率。这样,在健身或体感游戏中,电子设备100可以更准确地判断出用户的姿态是否正确以及用户动作的幅度是否满足要求等,使得用户在进行健身或体感游戏时具有更好的体验。
在一些实施例中,电子设备100可以在健身课程播放的过程中,通过一帧图像识别出的一组2D关键点或连续多帧图像识别出的多组2D关键点确定一组3D关键点。该一组3D关键点可以确定一个人体模型。电子设备100可以通过该一组3D关键点判断用户的腿部是否直立。若用户的腿部直立,电子设备100可以计算用户腿部3D关键点所在的直线与图像平面之间的夹角。若该夹角小于前述实施例中的预设夹角,电子设备100可以更新补偿角。更新之后的补偿角为上述夹角。电子设备100可以利用更新之后的补偿角来矫正3D关键点的位置信息。
也即是说,电子设备100可以在每次确定出一组3D关键点时,均利用该一组3D关键点判断是否可以更新用于矫正3D关键点的位置信息的补偿角。
不限于上述智能健身的场景,本申请实施例提供的人体关键点检测方法还可以适用于其它通过检测3D关键点实现姿态检测的场景。
下面介绍本申请实施例提供的一种判断用户的腿部是否直立以及在用户的腿部直立时确定补偿角的方法。
在一些实施例中,用户的腿部直立可以指用户的双腿均直立。
用户的双腿均直立时,用户每一条腿的大腿与小腿之间的夹角应该为180°或与180°接近的值。电子设备100可以利用基于2D关键点确定出的3D关键点来判断用户大腿与小腿之间的夹角是否与180°接近,来判断用户的腿部是否直立。
图7A示例性示出了一组3D关键点的示意图。如图7A所示,用户的左大腿所在的直线(即左髋点与左膝点连线所在的直线)与左小腿所在的直线(即左膝点与左脚踝点连线所在的直线)之间的夹角为β1。用户的右大腿所在的直线(即右髋点与右膝点连线所在的直线)与右小腿所在的直线(即右膝点与右脚踝点连线所在的直线)之间的夹角为β2。电子设备100可以计算β1与180°之间的差值以及β2与180°之间的差值。若β1与180°之间的差值以及β2与180°之间的差值均小于预设差值,电子设备100可以确定出用户的腿部直立。上述预设差值为与0接近的值。上述预设差值可以根据经验设定。本申请实施例对上述预设差值的大小不作限定。
进一步的,在确定出用户的腿部直立的情况下,电子设备100可以计算左髋点与左脚踝点连线所在的直线与图像平面之间的夹角α1,以及右髋点与右脚踝点连线所在的直线与图像平面之间的夹角α2。电子设备100可以计算夹角α1和夹角α2的均值,得到如图7B所示的夹角α。若夹角α小于前述实施例中的预设夹角,电子设备100可以将该夹角α确定为补偿角,并利用该补偿角来矫正3D关键点的位置信息。
可选的,在确定出用户的腿部直立的情况下,电子设备100可以确定左髋点与左脚踝点连线所在的直线在图7A所示3D坐标系y-0-z平面上的第一投影直线,以及右髋点与右脚踝点连线所在的直线在图7A所示3D坐标系y-0-z平面上的第二投影直线。电子设备100可以计算上述第一投影直线与图7A所示3D坐标系y轴正方向的夹角α3,以及上述第二投影直线与图7A所示3D坐标系y轴正方向的夹角α4。电子设备100可以计算夹角α3和夹角α4的均值,得到如图7B所示的夹角α。若夹角α小于前述实施例中的预设夹角,电子设备100可以将该夹角α确定为补偿角,并利用该补偿角来矫正3D关键点的位置信息。
在一些实施例中,用户的腿部直立可以指用户的单腿直立。电子设备100可以根据前述实施例的方法来判断用户双腿中的任意一条腿是否直立。若判断出用户双腿中的一条腿直立,电子设备100可以确定用户的腿部直立。进一步的,电子设备100可以计算直立的那一条腿上髋点与脚踝点连线所在直线与图像平面的夹角。若该夹角小于前述实施例中的预设夹角,电子设备100可以将该夹角确定为补偿角,并利用该补偿角来矫正3D关键点的位置信息。
下面介绍本申请实施例提供的一种利用补偿角α对3D关键点的位置信息进行矫正的方法。
电子设备100可以根据下式(1)对3D关键点的位置信息进行矫正:
图8示例性示出了本申请实施例提供的一种人体关键点检测方法的流程图。
如图8所示,该方法可包括步骤S101~S108。其中:
S101、电子设备100可以通过摄像头采集图像。
在一些实施例中,摄像头与电子设备100可以是一体的。如图3所示,电子设备100可以包含摄像头193。
在另一些实施例中,摄像头与电子设备100可以是分离的两个设备。摄像头与电子设备100之间建立有通信连接。摄像头可以将采集的图像发送给电子设备100。
在一些实施例中,响应于开启一个健身课程的用户操作,电子设备100可以开启摄像头或者向摄像头发送指示摄像头开启的指令。如图6C所示,响应于作用在确定控件624A的用户操作,电子设备100可以开启摄像头。
本申请实施例对摄像头开启的时间不作限定。例如,摄像头也可以是在电子设备100接收到开启一个健身课程的用户操作之前开启的。
S102、电子设备100可以根据摄像头采集的m帧图像,确定与这m帧图像对应的m组2D关键点。
在一些实施例中,电子设备100可以在一个健身课程播放的过程中对摄像头采集的图像进行2D关键点检测。即这m帧图像是在健身课程播放的过程中摄像头采集得到的。
m的取值为正整数。电子设备100可以从一帧图像中识别出在这一帧图像中一组用户的2D关键点。其中,电子设备100可以利用深度学习的方法(如openpose算法等)对图像进行2D关键点检测。本申请实施例对电子设备100识别2D关键点的方法不作限定。电子设备100识别2D关键点的实现过程可以参考现有技术中的实现过程,这里不作赘述。
S103、电子设备100可以根据m组2D关键点,估计用户与这m帧图像对应的一组3D关键点。
若上述m为1,则对于每一帧图像,电子设备100可以从一帧图像中识别出一组2D关键点。进一步的,电子设备100可以利用与这一帧图像对应的一组2D关键点,估计出与这一帧图像对应的一组3D关键点。
若上述m为大于1的整数,这m帧图像为摄像头采集的连续多帧图像。电子设备100可以基于这连续多帧图像估计一组3D关键点。具体的,电子设备100可以从连续多帧图像中识别出多组2D关键点。利用与这多帧图像对应的多组2D关键点,电子设备100可以估计出与这多帧图像对应的一组3D关键点。
本申请实施例对利用2D关键点估计3D关键点的方法不作限定。电子设备100估计3D关键点的实现过程可以参考现有技术中的实现过程,这里不作赘述。
S104、电子设备100可以利用与上述m帧图像对应的一组3D关键点检测用户的腿部是否直立。
当确定了一组3D关键点,电子设备100可以根据这一组3D关键点的位置信息检测用户的腿部是否直立。电子设备100检测用户的腿部是否直立的方法可以参考前述图7A所示的实施例。
若检测出用户的腿部直立,电子设备100可以执行步骤S105。
若检测出用户的腿部不直立,电子设备100可以执行步骤S108。
S105、若检测出用户的腿部直立,电子设备100可以确定上述一组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角,图像平面为与摄像头的光轴垂直的平面。
用户的腿部直立时,用户的腿部所在的直线与图像平面之间的夹角应该为接近0的值。电子设备100可以通过检测用户的腿部3D关键点所在的直线与图像平面之间的夹角来确定摄像头采集的图像中人物透视形变的程度,从而对3D关键点的位置信息进行校正。
当得到与上述m帧图像对应的一组3D关键点,且检测出用户的腿部直立,电子设备100可以确定上述一组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角。电子设备100计算上述夹角的方法可以参考前述图7A所示实施例的介绍,这里不再赘述。
S106、电子设备100可以判断上述夹角是否小于预设夹角。
若判断出上述夹角小于预设夹角,电子设备100可以执行步骤S107,来更新电子设备100中存储的补偿角。
若判断出上述夹角大于或等于预设夹角,电子设备100可以执行步骤S108,利用自己已存储的补偿角对与上述m帧图像对应的一组3D关键点的位置信息进行矫正。
电子设备100计算上述夹角可能存在误差,导致计算出的夹角过大。例如,电子设备100计算出的上述夹角为70°。而在用户的腿部直立时,图像中人物的透视形变对3D关键点的影响显然不可能导致用户的腿部3D关键点所在的直线与图像平面之间的夹角达到70°。电子设备100通过设置预设夹角来判断上述计算得到的夹角是否可以作为矫正3D关键点的位置信息的补偿角,从而避免由于上述夹角计算失误导致补偿角为不可能的取值,提高检测3D关键点的准确率。
上述预设夹角的取值可以根据经验设定。例如预设夹角的取值可以为45°。本申请实施例对上述预设夹角的取值不作限定。
S107、若上述夹角小于预设夹角,电子设备100可以利用上述夹角更新自己已存储的补偿角,更新之后电子设备100存储的补偿角为上述夹角。
若上述夹角小于预设夹角,则上述预设夹角可以作为矫正3D关键点的位置信息的补偿角。电子设备100可以利用上述夹角更新自己已存储的补偿角。
S108、电子设备100可以利用自己存储的补偿角对这一组3D关键点的位置信息进行矫正。
电子设备100利用补偿角矫正3D关键点的位置信息的方法可以参考前述实施例。
在一些实施例中,电子设备100中存储的补偿角可以是上述步骤S107中经过更新的补偿角。上述更新之后的补偿角为与上述m帧图像对应的一组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角。
在另一些实施例中,电子设备100中存储的补偿角可以是前述实施例中的初始补偿角。由前述实施例可知,上述初始补偿角可以是电子设备100预先存储的默认角度。或者,上述初始补偿角可以是如图6C所示在一个健身课程播放前检测到用户的腿部直立时计算得到的补偿角。
也即是说,从电子设备100开始播放上述一个健身课程到摄像头采集上述m帧图像之间的时间段T1内,电子设备100未更新上述初始补偿角。电子设备100可以利用上述初始补偿角来矫正在上述时间段T1内确定的各组3D关键点的位置信息。
在另一些实施例中,电子设备100中存储的补偿角可以是在上述时间段T1内最后一次检测到用户的腿部直立时计算得到的补偿角。
也即是说,在上述时间段T1内,电子设备100至少检测到一次用户的腿部直立。当检测到用户的腿部直立,电子设备100可以根据该次用户的腿部直立时确定的一组3D关键点来计算腿部的3D关键点与图像平面之间的夹角。若该夹角可用于矫正3D关键点的位置信息,电子设备100可以更新补偿角,将该夹角作为新的补偿角以替换上一次用户的腿部直立时计算得到的补偿角。电子设备100可以利用已存储的补偿角来矫正3D关键点的位置信息,直至该已存储的补偿角被更新。电子设备100可以利用更新之后的补偿角来矫正补偿角更新之后确定的3D关键点的位置信息。
在一些实施例中,电子设备100在播放一个健身课程时,确定这一个健身课程中的动作是否包含腿部直立的动作。在健身课程播放至指示用户完成腿部直立的动作时,电子设备100可以执行图8所示的步骤S104。即电子设备100可以利用基于2D关键点确定出的3D关键点来检测用户的腿部是否直立。在检测出用户的腿部直立的情况下,电子设备100可以判断上述3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角是否可以用于矫正3D关键点的位置信息。若上述夹角可用于矫正3D关键点的位置信息,电子设备100可以利用上述夹角更新补偿角。
在健身课程播放至指示用户完成腿部不直立的动作时,电子设备100可以利用当前采集的图像确定用户的2D关键点,并基于上述2D关键点确定用户的3D关键点。电子设备100可以利用最近一次更新的补偿角,来矫正上述3D关键点。
也即是说,电子设备100可以在健身课程播放至指示用户完成腿部直立的动作时,利用此时基于2D关键点确定出的3D关键点来判断用户的腿部是否直立。那么,电子设备100可以不用利用每一组基于2D关键点确定出的3D关键点来判断用户的腿部是否直立,并判断是否需要更新补偿角。这可以节省电子设备100的计算资源。
本申请实施例对电子设备100更新补偿角的时间不作限定。除了上述实施例中的方法,电子设备100还可以定期或者不定期检测用户的腿部是否直立,并在检测出用户的腿部直立时更新补偿角。
由图8所示的人体关键点检测方法可知,在检测到用户的腿部直立时,电子设备100可以利用基于2D关键点确定出的3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角来确定摄像头采集的图像中人物透视形变的程度。进而,电子设备100可以对3D关键点的位置信息进行矫正,减少图像透视形变对3D关键点的位置信息带来的误差,提高3D关键点的位置信息检测的准确度。该方法可以只需要一个摄像头,不仅节约成本,而且进行关键点检测的计算复杂度也较低。
另外,每一次检测到用户的腿部直立时,若腿部的3D关键点所在的直线与图像平面之间的夹角可用于矫正3D关键点的位置信息,电子设备100可以更新补偿角。更新之后的补偿角可以更准确地反映用户在当前位置下,摄像头采集的图像中人物透视形变的程度。这可以减少用户与摄像头之间的位置发生变化对3D关键点的位置信息进行矫正的影响,提高矫正后3D关键点的位置信息的准确度。也即是说,电子设备100可以利用更新之后的补偿角来矫正3D关键点的位置信息。经过矫正之后的3D关键点确定的人体模型可以更准确地反映用户的姿态,提高姿态检测的准确率。这样,在健身或体感游戏中,电子设备100可以更准确地判断出用户的姿态是否正确以及用户动作的幅度是否满足要求等,使得用户在进行健身或体感游戏时具有更好的体验。
前述实施例中的人体关键点检测方法主要是通过在用户的腿部直立时来确定摄像头采集的图像中人物透视形变的程度。在实际应用中,例如在进行健身或者体感游戏的过程中,用户不会保持腿部直立的姿态不变。用户可能会进行例如下蹲、侧躺等等动作。在用户的腿部不直立时,电子设备100可以利用摄像头采集的图像确定2D关键点,并基于上述2D关键点确定出一组或多组3D关键点。根据前述图8所示的方法,电子设备100只能利用最近一次检测到用户的腿部直立时计算得到的补偿角对上述用户的腿部不直立时确定出的一组或多组3D关键点的位置信息进行矫正。
尽管用户开展运动的区域一般不会过大,摄像头采集的图像中人物的透视形变程度不会有太大的变化,但用户与摄像头之间相对位置的变化、摄像头采集的图像中用户高度的变化均对摄像头采集的图像中人物的透视形变程度有影响。前一时刻用户的腿部直立时电子设备100计算得到的补偿角难以准确反映后一时刻用户的腿部不直立时摄像头采集的图像中人物的透视形变程度。电子设备100利用最近一次检测到用户的腿部直立时计算得到的补偿角对用户的腿部不直立时确定出的一组或多组3D关键点的位置信息进行矫正,矫正之后3D关键点的位置信息仍然不够准确。
根据透视形变的原理可知,在摄像头摆放位置、摆放角度相同的情况下,用户与摄像头的距离越近,摄像头采集的图像中人物透视形变的程度越大(即前述图4B所示的补偿角α越大)。摄像头采集的图像中用户高度越小,摄像头采集的图像中人物透视形变的程度越大(即前述图4B所示的补偿角α越大)。例如,用户的动作从站立变化为下蹲,摄像头采集的图像中用户的高度变小,这会导致摄像头采集的图像中人物透视形变的程度变大。用户与摄像头的距离变大,摄像头采集的图像中用户的高度变小,这也会导致摄像头采集的图像中人物透视形变的程度变大。
本申请提供一种人体关键点检测方法,该方法可以在不限定用户保持腿部直立的情况下,实时确定出图像中人物透视形变的程度,并对基于2D关键点确定出的3D关键点的位置信息进行矫正。具体的,电子设备100可以确定初始补偿角。初始补偿角的确定的方法可以参考前述实施例的介绍,这里不作赘述。根据用户在相邻两帧图像中位置的变化,电子设备100可以确定这相邻两帧图像之间人物透视形变的程度的变化量。前一帧图像中人物透视形变的程度与这相邻两帧图像之间人物透视形变的程度的变化量之和即为后一帧图像中人物透视形变的程度。上述前一帧图像中人物透视形变的程度可以是以上述初始补偿角为基础,累加上述前一帧图像之前相邻两帧图像之间人物透视形变的程度的变化量。
由上述方法可以看出,即便用户的腿部不直立,电子设备100也可以确定出摄像头采集的图像中人物透视形变的程度。电子设备100根据实时确定出的图像中人物透视形变的程度对3D关键点的位置信息进行矫正,可以提高3D关键点检测的准确率。
下面具体介绍本申请实施例提供的一种确定相邻两帧图像之间人物透视形变的程度的变化量的方法。
图9A示例性示出了用户在运动过程中的场景示意图。如图9A所示,电子设备100可以通过摄像头193采集图像,并在用户界面910显示上述图像。在摄像头193采集第n-1帧图像至摄像头193采集第n帧图像的时间内,用户向摄像头193所在的方向移动。即用户与摄像头193之间的距离变小。上述n为大于1的整数。用户在第n-1帧图像中和在第n帧图像中的位置发生变化。
图9B和图9C示例性示出了摄像头193采集的第n-1帧图像和第n帧图像。
电子设备100可以对图像进行人体检测,确定用户在图像中的人体矩形框。人体矩形框可用于确定用户在图像中的位置。人体矩形框的高度和宽度分别与用户在图像中的高度和宽度适配。电子设备100可以确定每一帧图像中人体矩形框在图像坐标系(即前述实施例中的2D坐标系x_i-y_i)中的高度以及下边缘的与x_i轴的距离。
如图9B所示,在第n-1帧图像中,人体矩形框下边缘与x_i轴的距离为yn-1。人体矩形框的高度为hn-1。
如图9C所示,在第n帧图像中,人体矩形框下边缘与x_i轴的距离为yn。人体矩形框的高度为hn。
在相邻两帧图像之间,人体矩形框下边缘与x_i轴的距离的变化量Δy可以反映用户与摄像头之间相对位置的变化量。上述Δy为后一帧图像中人体矩形框下边缘与x_i轴的距离减前一帧图像中人体矩形框下边缘与x_i轴的距离之差。若用户向摄像头靠近,人体矩形框下边缘与x_i轴的距离变小,图像中人物透视形变的程度变大。前述图4B所示的补偿角α可以表示图像中人物透视形变的程度。也即是说,一帧图像中人体矩形框下边缘与x_i轴的距离越小,用于矫正根据这一帧图像确定的一组3D关键点的位置信息的补偿角α越大。Δy的绝对值越大,则Δα的绝对值越大。上述Δα为后一个补偿角减前一个补偿角之差。上述前一个补偿角用于矫正根据相邻两帧图像中前一帧图像确定的一组3D关键点的位置信息。上述后一个补偿角用于矫正根据相邻两帧图像中后一帧图像确定的一组3D关键点的位置信息。
其中,若Δy<0,则Δα>0。即若用户向摄像头靠近,图像中人物透视形变的程度变大,上述后一个补偿角大于上述前一个补偿角。若Δy>0,则Δα<0。即若用户远离摄像头,图像中人物透视形变的程度变小,上述后一个补偿角小于上述前一个补偿角。
在相邻两帧图像之间,人体矩形框高度的变化量Δh可以反映图像中用户高度的变化量。上述Δh为后一帧图像中人体矩形框的高度减前一帧图像中人体矩形框的高度之差。若人体矩形框的高度变小,图像中人物透视形变的程度变大。也即是说,一帧图像中人体矩形框的高度越小,用于矫正根据这一帧图像确定的一组3D关键点的位置信息的补偿角α越大。Δh的绝对值越大,则上述Δα的绝对值越大。
其中,若Δh<0,则Δα>0。即若图像中用户高度变小,图像中人物透视形变的程度变大,上述后一个补偿角大于上述前一个补偿角。若Δh>0,则Δα<0。即若图像中用户高度变大,图像中人物透视形变的程度变小,上述后一个补偿角小于上述前一个补偿角。
在相邻两帧图像之间,后一帧图像中人体矩形框高度h的大小可以影响这相邻两帧图像之间人物透视形变的程度的变化量。可以理解的,图像中用户高度越小,图像中用户透视形变的程度越大。在相邻两帧图像之间的Δh相同的情况下,这相邻两帧图像中用户高度越小,那么这相邻两帧图像之间人物透视形变的程度的变化量越大。即相比于图像中用户高度在取值较大的范围内变化,在图像中用户高度在取值较小的范围内变化时,图像中人物透视形变的程度的变化量更大。
其中,上述h越小,上述Δα的绝对值越大。
不限于通过上述人体矩形框来确定用户与摄像头之间相对位置的变化、摄像头采集的图像中用户高度的变化,电子设备100还可以通过其它方法来确定用户与摄像头之间相对位置的变化、摄像头采集的图像中用户高度以及用户高度的变化。
电子设备100中可存储有补偿角确定模型。该补偿角确定模型的输入可以包括相邻两帧图像之间的Δy、Δh和其中后一帧图像中人体矩形框高度h,输出可以为这相邻两帧图像之间的Δα。
该补偿角确定模型可以例如是线性模型、非线性模型、神经网络模型等等。本申请实施例对补偿角确定模型的类型不作限定。
该补偿角确定模型可以通过多组训练样本得到。这多组训练样本可以是利用摄像头在用户的腿部直立时采集的图像确定的。一组训练样本可以包括相邻两帧图像之间的Δy、Δh、其中后一帧图像中人体矩形框高度h、Δα。一组训练样本中的Δα可以是后一个补偿角减前一个补偿角之差。上述前一个补偿角用于矫正根据相邻两帧图像中前一帧图像确定的一组3D关键点的位置信息。上述后一个补偿角用于矫正根据相邻两帧图像中后一帧图像确定的一组3D关键点的位置信息。上述前一个补偿角和上述后一个补偿角是通过前述图7A所示实施例中的方法计算得到的。
本申请实施例对训练上述补偿角确定模型的方法不作限定,具体可以参考现有技术中线性模型或神经网络模型等等模型的训练方法。
在一些实施例中,电子设备100可以确定采集时间在前的一帧图像与采集时间在后的一帧图像之间的Δy′、Δh′和上述采集时间在后的一帧图像中人体矩形框高度。将上述Δy′、Δh′和上述采集时间在后的一帧图像中人体矩形框高度输入补偿角确定模型,电子设备100可以得到采集时间在前的一帧图像与采集时间在后的一帧图像之间的补偿角变化量。即不限于确定相邻两帧图像之间的补偿角变化量,电子设备100还可以确定中间间隔有多帧图像的两帧图像之间的补偿角变化量。
在一些实施例中,电子设备100可以从一帧图像中识别出一组2D关键点,并根据这一组2D关键点估计与这一帧图像对应的一组3D关键点。即每一帧图像均可对应一组3D关键点。电子设备100可以根据前述实施例中的方法确定相邻两帧图像之间人物透视形变的程度的变化量。即对于每一帧图像,电子设备100均可以确定出一个补偿角。电子设备100可以利用一帧图像对应的补偿角来矫正与这一帧图像对应的一组3D关键点的位置信息。
在一些实施例中,电子设备100可以从连续多帧图像中识别出多组2D关键点,并根据这多组2D关键点估计与这多帧图像对应的一组3D关键点。例如,电子设备100可以利用连续k帧图像确定一组3D关键点。上述k为大于1的整数。根据前k帧图像与后k帧图像之间人物透视形变的程度的变化量,电子设备100可以确定与后k帧图像对应的补偿角。即对于每连续k帧图像,电子设备100均可以确定出一个补偿角。电子设备100可以利用连续k帧图像对应的补偿角来矫正与这连续k帧图像对应的一组3D关键点的位置信息。
其中,在确定上述前k帧图像与后k帧图像之间人物透视形变的程度的变化量时,电子设备100可以从上述前k帧图像和上述后k帧图像中各选取一帧图像。电子设备100可以计算被选取出来的两帧图像之间人体矩形框下边缘与x_i轴的距离的变化量、人体矩形框的高度的变化量。基于补偿角确定模型,电子设备100可以确定上述前k帧图像与后k帧图像之间人物透视形变的程度的变化量。
在一些实施例中,电子设备100根据上述实施例中通过累加补偿角的变化量的方法确定出一组3D关键点对应的一个补偿角后,可以对这一个补偿角进行平滑处理,并利用经过平滑处理的补偿角来矫正这一组3D关键点的位置信息。具体的,电子设备100可以获取上述一组3D关键点之前多组3D关键点对应的多个补偿角。电子设备100可以计算上述一组3D关键点对应的一个补偿角以及上述一组3D关键点之前多组3D关键点对应的多个补偿角的加权平均值。其中,与上述一组3D关键点确定的时间越接近的3D关键点对应的补偿角所占的权值可以越大。本申请实施例对计算上述加权平均值时各个补偿角所占的权值的大小不作具体限定。上述加权平均值即为经过平滑处理的补偿角。
在摄像头采集的相邻图像之间,每一帧图像中人体矩形框下边缘与x_i轴的距离、人体矩形框的高度是连续变化的。电子设备100对补偿角进行上述平滑处理可以减少计算得到的补偿角出现突变,提高3D关键点检测的准确率。
图10示例性示出了本申请实施例提供的另一种人体关键点检测方法的流程图。
这里具体以电子设备100利用每一帧图像确定出一组3D关键点为例进行说明。如图10所示,该方法可包括步骤S201~S207。其中:
S201、电子设备100可以通过摄像头采集图像。
步骤S201可以参考前述图8所示方法中的步骤S101。
S202、电子设备100可以确定初始补偿角。
初始补偿角的确定方法可以参考前述图6C所示实施例的介绍,这里不再赘述。
S203、电子设备100可以根据摄像头采集的第n帧图像,确定与第n帧图像对应的第tn组2D关键点,并根据第tn组2D关键点,估计用户与第n帧图像对应的第tn组3D关键点。
S204、电子设备100可以根据摄像头采集的第n-1帧图像和第n帧图像,确定从第n-1帧图像到第n帧图像人体矩形框下边缘的位移Δyn、人体矩形框高度的变化量Δhn和第n帧图像人体矩形框高度hn。
上述n为大于1的整数。第n-1帧图像和第n帧图像为摄像头采集的图像中任意相邻的两帧图像。
电子设备100可以对摄像头采集的第1帧图像进行2D关键点检测,确定与第1帧图像对应的第t1组2D关键点。根据第t1组2D关键点,电子设备100可以估计用户与第t1帧图像对应的第t1组3D关键点。电子设备100可以利用上述初始补偿角对上述第t1组3D关键点的位置信息进行矫正。
人体矩形框下边缘的位移Δyn即为第n-1帧图像和第n帧图像之间人体矩形框下边缘与x_i轴的距离的变化量。
电子设备100确定上述Δyn和上述Δhn的方法可以参考前述图9B和图9C所示实施例的介绍,这里不再赘述。
S205、电子设备100可以根据上述Δyn、上述Δhn和上述hn,确定从第tn-1组3D关键点到第tn组3D关键点补偿角变化量,第tn-1组3D关键点是根据摄像头采集的第n-1帧图像得到的。
电子设备100可以利用补偿角确定模型来确定从第tn-1组3D关键点到第tn组3D关键点补偿角变化量Δαn。Δαn可以反映第n-1帧图像和第n帧图像之间人物透视形变的程度的变化量。
电子设备100获取补偿角确定模型的方法可以参考前述实施例。
电子设备100可以对摄像头采集的第n-1帧图像进行2D关键点检测,确定与第n-1帧图像对应的第tn-1组2D关键点。根据第tn-1组2D关键点,电子设备100可以估计用户与第n-1帧图像对应的第tn-1组3D关键点。
S206、电子设备100可以根据第tn-1个补偿角和上述补偿角变化量,确定第tn个补偿角,第tn-1个补偿角用于矫正第tn-1组3D关键点的位置信息,第tn-1个补偿角是根据初始补偿角和从第t1组3D关键点至第tn-1组3D关键点之间所有相邻两组3D关键点的补偿角变化量之和。
电子设备100可以根据下述公式(2)确定第tn个补偿角:
αn=αn-1+Δαn (2)
其中,αn为第tn个补偿角。αn-1为第tn-1个补偿角。α1为上述初始补偿角。为从第t1组3D关键点至第tn-1组3D关键点之间所有相邻两组3D关键点的补偿角变化量。可以反映从第1帧图像至第n-1帧图像之间所有相邻两帧图像人物透视形变的程度的变化量。
在一些实施例中,电子设备100可以确定在前一组3D关键点和在后一组3D关键点的补偿角变化量。上述在前一组3D关键点和上述在后一组3D关键点之间可间隔有一组或多组3D关键点。上述补偿角变化量可以根据采集在前一帧图像时用户的高度、用户与摄像头之间的距离和采集在后一帧图像时用户的高度、用户与摄像头之间的距离确定。上述在前一帧图像中用户的关键点即为上述在前一组3D关键点。上述在后一帧图像中用户的关键点即为上述在后一组3D关键点。电子设备100可以根据上述在前一组3D关键点的补偿角和上述补偿角变化量确定上述在后一组3D关键点的补偿角。即αn=αn-c+Δαn′。其中,αn-c可以为第t1组3D关键点至第tn-c组关键点的补偿角变化量与第t1组3D关键点的补偿角之和。Δαn′为在前一组3D关键点和在后一组3D关键点的补偿角变化量。
S207、电子设备100可以利用第tn个补偿角矫正第tn组3D关键点的位置信息。
由图10所示的方法可知,即便用户没有持续保持腿部直立,电子设备100仍可实时确定出图像中人物透视形变的程度,并对基于2D关键点确定出的3D关键点的位置信息进行矫正。其中,电子设备100可以确定每一组3D关键点对应的补偿角。每一组3D关键点对应的补偿角可以随用户与摄像头之间的相对位置的变化、用户所做动作的变化而变化。与一组3D关键点对应的一个补偿角可以反映用于确定这一组3D关键点的图像中人物透视形变的程度。利用与一组3D关键点对应的一个补偿角来矫正这一组3D关键点的位置信息,可以提高3D关键点检测的准确率。
在上述图10所示的方法中,电子设备100利用补偿角确定模型确定出的补偿角变化量可能存在一定的误差。在确定第tn个补偿角时,电子设备100是以上述初始补偿角为基础,累加从第t1组3D关键点至第tn组3D关键点之间所有相邻两组3D关键点的补偿角变化量。那么,补偿角变化量中的误差也会随之累加。上述tn的值越大,电子设备100确定出的第tn个补偿角所存在的误差也会越大。这会降低3D关键点检测的准确率。
在一些实施例中,基于上述图10所示的方法,电子设备100可以定期或者不定期检测用户的腿部是否直立。在检测到用户的腿部直立时,电子设备100可以计算基于2D关键点确定的一组3D关键点中腿部3D关键点所在直线与图像平面之间的夹角。若该夹角小于预设夹角,则电子设备100可以将该夹角确定为与这一组3D关键点对应的补偿角,并利用该补偿角对这一组3D关键点的位置信息进行矫正。进一步的,电子设备100可以以这一组3D关键点对应的补偿角为基础,按照图10所示的方法确定补偿角变化量,来确定后续与各组3D关键点对应的补偿角。
若再次检测到用户的腿部直立,电子设备100可以以此次用户腿部直立时基于2D关键点确定的一组3D关键点中腿部3D关键点所在直线与图像平面之间的夹角作为基础,来确定后续与各组3D关键点对应的补偿角。
这样,电子设备100可以减少通过累加补偿角变化量来确定补偿角时累加的误差。相比于图10所示的方法,上述实施例可以进一步减少计算图像中人物透视形变程度的误差,提高3D关键点检测的准确率。
图11示例性示出了本申请实施例提供的另一种人体关键点检测方法的流程图。
这里具体以电子设备100利用每一帧图像确定出一组3D关键点为例进行说明。如图11所示,该方法可包括步骤S301~S310。其中:
S301、电子设备100可以通过摄像头采集图像。
S302、电子设备100可以根据摄像头采集的第n帧图像,确定与第n帧图像对应的第tn组2D关键点,并根据第tn组2D关键点,估计用户与第n帧图像对应的第tn组3D关键点。
S303、电子设备100可以利用第tn组3D关键点检测用户的腿部是否直立。
S304、若检测出用户的腿部直立,电子设备100可以确定第tn组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角,图像平面为与摄像头的光轴垂直的平面。
S305、电子设备100可以判断上述夹角是否小于预设夹角。
上述步骤S301~S305可以参考前述图8所示方法中的步骤S101~S106。这里不再赘述。
S306、若上述夹角小于预设夹角,电子设备100可以将上述夹角确定为第tn个补偿角。
S307、电子设备100可以利用第tn个补偿角矫正第tn组3D关键点的位置信息。
上述步骤S301~S307为在检测到用户的腿部直立时,电子设备100可以计算基于2D关键点确定的3D关键点中腿部3D关键点所在的直线与图像平面之间的夹角。电子设备100可以以该夹角作为补偿角,并利用该补偿角对此次用户腿部直立时基于2D关键点确定的3D关键点的位置信息进行矫正。也即是说,若检测到用户的腿部直立,电子设备100可以不用以初始补偿角或者最近一次检测到用户的腿部直立时确定出的补偿角作为基础,来确定此时3D关键点对应的补偿角。
S308、若电子设备100在上述步骤S303中检测出用户的腿部不直立,或者,若电子设备100在上述步骤S305中判断出上述夹角大于或等于预设夹角,电子设备100可以根据摄像头采集的第n-1帧图像和第n帧图像,确定从第n-1帧图像到第n帧图像人体矩形框下边缘的位移Δyn、人体矩形框高度的变化量Δhn和第n帧图像人体矩形框高度hn。
S309、电子设备100可以根据上述Δyn、上述Δhn和上述hn,确定从第tn-1组3D关键点到第tn组3D关键点补偿角变化量,第tn-1组3D关键点是根据摄像头采集的第n-1帧图像得到的。
上述步骤S308和步骤S309可以分别参考前述图10所示方法中的步骤S204和步骤S205。这里不再赘述。
S310、电子设备100可以根据第tn-1个补偿角和上述补偿角变化量,确定第tn个补偿角,第tn-1个补偿角用于矫正第tn-1组3D关键点的位置信息,第tn-1个补偿角是第tn-1组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角,或者是第tp个补偿角和从第tp组3D关键点至第tn-1组3D关键点之间所有相邻两组3D关键点的补偿角变化量之和,第tp个补偿角是电子设备100在摄像头采集到第n-1帧图像之前的时间内最后一次检测到用户的腿部直立时计算得到的。
电子设备100可以根据前述公式(2)αn=αn-1+Δαn来确定。其中,αn为第tn个补偿角。αn-1为第tn-1个补偿角。αn-1的计算方式与前述图10所示的方法不同。
具体的,若电子设备100利用第tn-1组3D关键点检测出用户的腿部直立,且第tn-1组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角小于预设夹角,则第tn-1个补偿角αn-1可以为第tn-1组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角。
或者,p为小于n-1的正整数。即第p帧图像为摄像头在采集到第n-1帧图像之前采集到的图像。αp为第tp个补偿角。αp可用于矫正第tp组3D关键点的位置信息。αp是电子设备100在摄像头采集到第n-1帧图像之前的时间内最后一次检测到用户的腿部直立时计算得到的。即αp为第tp组3D关键点中腿部的3D关键点所在的直线与图像平面之间的夹角小于预设夹角。为从第tp组3D关键点至第tn-1组3D关键点之间所有相邻两组3D关键点的补偿角变化量。可以反映从第p帧图像至第n-1帧图像之间所有相邻两帧图像人物透视形变的程度的变化量。
当确定了上述第tn个补偿角αn,电子设备100可以执行步骤S307,即利用αn来矫正第tn组3D关键点的位置信息。
在一些实施例中,电子设备100可以确定在前一组3D关键点和在后一组3D关键点的补偿角变化量。上述在前一组3D关键点和上述在后一组3D关键点之间可间隔有一组或多组3D关键点。上述补偿角变化量可以根据采集在前一帧图像时用户的高度、用户与摄像头之间的距离和采集在后一帧图像时用户的高度、用户与摄像头之间的距离确定。上述在前一帧图像中用户的关键点即为上述在前一组3D关键点。上述在后一帧图像中用户的关键点即为上述在后一组3D关键点。电子设备100可以根据上述在前一组3D关键点的补偿角和上述补偿角变化量确定上述在后一组3D关键点的补偿角。
可选的,上述在前一帧图像可以是电子设备100检测到用户的腿部直立时采集的。例如,上述在前一帧图像可以是在上述在后一帧图像的采集时间之前,电子设备100最近一次检测到用户的腿部直立时采集的。
在上述图11所示的方法中,电子设备100可以不对每一组3D关键点均检测用户的腿部是否直立。可选的,电子设备100可以定期或者不定期检测用户的腿部是否直立。或者,电子设备100可以在健身课程播放至指示用户完成腿部直立的动作时监测用户的腿部是否直立。在健身课程播放至指示用户完成腿部直立的动作时,电子设备100可以利用当前采集的图像确定用户的3D关键点。电子设备100可以根据图11中的步骤S308~S310来确定补偿角,并利用该补偿角来矫正上述3D关键点。
由图11所示的方法可知,在检测到用户的腿部直立时,电子设备100可以按照前述图8所示的方法直接确定补偿角。否则,电子设备100可以以初始补偿角或者最近一次检测到用户的腿部直立时确定出的补偿角作为基础,按照前述图10所示的方法来确定补偿角。这可以减少通过累加补偿角变化量来确定补偿角时累加的误差。相比于图8和图10所示的方法,上述实施例可以进一步减少计算图像中人物透视形变程度的误差,提高3D关键点检测的准确率。
不限于前述实施例中在检测到用户的腿部直立时确定补偿角的方法,电子设备100还可以在检测到用户的姿态与预设姿态匹配时确定补偿角。其中,上述预设姿态可以为上半身直立且/或腿部直立的姿态。也即是说,前述检测用户的腿部是否直立是检测用户的姿态是否与预设姿态匹配的一种实现方式。
若检测到用户的上半身直立,电子设备100可以将上半身3D关键点所在的直线与图像平面的夹角确定为补偿角,并利用该补偿角对3D关键点进行矫正。
若检测到用户的上半身和腿部均直立,电子设备100可以将上半身3D关键点和/或腿部3D关键点所在的直线与图像平面的夹角确定为补偿角,并利用该补偿角对3D关键点进行矫正。
图12示例性示出了另一种人体的关键点的位置分布图。如图12所示,人体的关键点可包括头部点、第一颈部点、第二颈部点、左肩点、右肩点、右肘点、左肘点、右手点、左手点、第一胸腹部点、第二胸腹部点、第三胸腹部点、右髋点、左髋点、左右髋中间点、右膝点、左膝点、右脚踝点、左脚踝点。不限于上述关键点,本申请实施例中还可以包括其他包括关键点,此处不做具体限定。
相比于图1所示的关键点,电子设备100可以识别更多的人体的关键点。其中,电子设备100可以根据摄像头采集的图像识别图12所示各关键点在2D平面的位置信息以及在3D空间中的位置信息,确定与图12所示各关键点对应的2D关键点和3D关键点。
图13示例性示出了本申请实施例提供的另一种人体关键点检测方法的流程图。
如图13所示,该方法可包括步骤S401~S408。其中:
S401、电子设备100可以通过摄像头采集图像。
S402、电子设备100可以根据摄像头采集的m帧图像,确定与这m帧图像对应的m组2D关键点。
S403、电子设备100可以根据m组2D关键点,估计用户与这m帧图像对应的一组3D关键点。
上述步骤S401~S403可以参考前述图8中的步骤S101~S103,这里不再赘述。
S404、电子设备100可以利用与上述m帧图像对应的一组3D关键点确定用户的姿态是否与预设姿态匹配,预设姿态为上半身直立且/或腿部直立的姿态。
在一些实施例中,上述m帧图像可以为摄像头采集的任意m帧图像。即电子设备100可以判断每一组3D关键点所确定的用户的姿态是否与预设姿态匹配。若用户的姿态与预设姿态匹配,电子设备100可以执行下述步骤S405。若用户的姿态与预设姿态不匹配,电子设备100可以执行下述步骤S408。
在一些实施例中,上述预设姿态可以为健身课程或体感游戏中包含的姿态。电子设备100可以获取健身课程或体感游戏指示用户完成的动作。其中,电子设备100可以存储上述预设姿态在健身课程或体感游戏中播放的时刻以及上述预设姿态对应的3D关键点。在健身课程或体感游戏播放至上述预设姿态所在的时刻,电子设备100可以比较上述m帧图像对应的一组3D关键点与上述预设姿态对应的3D关键点。若上述m帧图像对应的一组3D关键点所指示的用户的姿态与上述预设姿态匹配,电子设备100可以执行下述步骤S405。上述m帧图像为摄像头在健身课程或体感游戏播放至上述预设姿态所在的时刻采集到的。
可选的,电子设备100可以存储上述预设姿态在健身课程或体感游戏中播放的时刻。在健身课程或体感游戏播放至上述预设姿态所在的时刻,电子设备100可以获取上述预设姿态对应的3D关键点。进一步的,电子设备100可以比较上述m帧图像对应的一组3D关键点与上述预设姿态对应的3D关键点。
在一些实施例中,上述m帧图像为摄像头在健身课程或体感游戏播放至上述预设姿态以外的时刻采集的。电子设备100可以利用最近一次健身课程或体感游戏播放至上述预设姿态时确定的补偿角来矫正上述m帧图像确定的3D关键点。也即是说,电子设备100可以不用判断每一组3D关键点确定的用户的姿态是否与预设姿态匹配。这可以节省电子设备100的计算资源。
不限于上述健身课程或体感游戏中包含的姿态,上述预设姿态可以是其它应用的动作库中所包含的姿态。上述动作库中可存储有指示用户完成各个动作的信息(如动作的图像信息、动作的音频信息等等)。
在一些实施例中,在健身课程或体感游戏开始播放前的一段时间,或者在健身课程或体感游戏播放的过程中,电子设备100可以指示用户完成预设姿态对应的动作。即上述预设姿态可以不包含在健身课程或体感游戏中。在健身课程或体感游戏等应用运行时,电子设备100可以定时或不定时指示用户完成预设姿态对应的动作。在指示用户完成预设姿态对应的动作时,电子设备100可以比较上述m帧图像对应的一组3D关键点与上述预设姿态对应的一组3D关键点。若上述m帧图像对应的一组3D关键点所指示的用户的姿态与上述预设姿态匹配,电子设备100可以执行下述步骤S405。上述m帧图像为摄像头在电子设备100指示用户完成预设姿态对应的动作时采集到的。
可选的,在判断用户的姿态是否与预设姿态匹配时,电子设备100可以利用一组3D关键点中的一部分关键点(如上半身的关键点,或者腿部的关键点)进行比较。示例性的,上述预设姿态为上半身直立的姿态,电子设备100可以比较用户的一组3D关键点中上半身3D关键点与上述预设姿态对应的一组3D关键点中上半身3D关键点。若这两组上半身3D关键点的位置信息相同或者差值小于阈值,则电子设备100可以判断出用户的姿态与预设姿态匹配。上述预设姿态为腿部直立的姿态,电子设备100可以比较用户的一组3D关键点中腿部3D关键点与上述预设姿态对应的一组3D关键点中腿部3D关键点。若这两组腿部3D关键点的位置信息相同或者差值小于阈值,则电子设备100可以判断出用户的姿态与预设姿态匹配。
S405、电子设备100可以确定上述一组3D关键点中部分3D关键点所在的直线与图像平面之间的夹角,部分3D关键点包括上半身的3D关键点和/或腿部的3D关键点,图像平面为与摄像头的光轴垂直的平面。
在一些实施例中,上述预设姿态为上半身直立的姿态。电子设备100检测出用户的姿态与上述预设姿态匹配可以表示与上述m帧图像对应的一组3D关键点中,颈部点(如图12所示的第一颈部点和第二颈部点)以及胸腹部点(如图12所示的第一胸腹部点、第二胸腹部点和第三胸腹部点)近似在一条直线上。电子设备100可以确定上述一组3D关键点中第一颈部点、第二颈部点、第一胸腹部点、第二胸腹部点和第三胸腹部点任意两个3D关键点所在直线与图像平面之间的夹角。例如,电子设备100确定上述一组3D关键点中第一颈部点和第三胸腹部点所在直线与图像平面之间的夹角。
可选的,在检测出用户的姿态与上述预设姿态匹配时,电子设备100可以计算第一颈部点、第二颈部点、第一胸腹部点、第二胸腹部点和第三胸腹部点中多条由任意两个3D关键点所在直线与图像平面之间的夹角的均值。
在一些实施例中,上述预设姿态为腿部直立的姿态。电子设备100可以根据前述实施例的方法确定腿部3D关键点所在的直线与图像平面之间的夹角。这里不作赘述。
在一些实施例中,上述预设姿态为上半身直立且腿部直立的姿态。电子设备100检测出用户的姿态与上述预设姿态匹配可以表示与上述m帧图像对应的一组3D关键点中,第一颈部点、第二颈部点、第一胸腹部点、第二胸腹部点、第三胸腹部点、右髋点、右膝点、右脚踝点、左髋点、左膝点、左脚踝点近似在一个平面上。电子设备100可以确定上述一组3D关键点中第一颈部点、第二颈部点、第一胸腹部点、第二胸腹部点、第三胸腹部点、右髋点(或左髋点)、右膝点(或左膝点)、右脚踝点(或左脚踝点)任意两个3D关键点所在直线与图像平面之间的夹角。例如,电子设备100确定上述一组3D关键点中第一颈部点和右脚踝点所在直线与图像平面之间的夹角。
可选的,在检测出用户的姿态与上述预设姿态匹配时,电子设备100可以计算第一颈部点、第二颈部点、第一胸腹部点、第二胸腹部点、第三胸腹部点、右髋点(或左髋点)、右膝点(或左膝点)、右脚踝点(或左脚踝点)中多条由任意两个3D关键点所在直线与图像平面之间的夹角的均值。
S406、电子设备100可以判断上述夹角是否小于预设夹角。
S407、若上述夹角小于预设夹角,电子设备100可以利用上述夹角更新自己已存储的补偿角,更新之后电子设备100存储的补偿角为上述夹角。
S408、电子设备100可以利用自己存储的补偿角对这一组3D关键点的位置信息进行矫正。
上述步骤S406~S408可以参考前述图8中的步骤S106~S108,这里不再赘述。
前述图10所示方法流程图中确定初始补偿角的方法可以为上述图13所示的方法。在前述图11所示的方法流程图中,不限于在检测用户的腿部直立时确定补偿角,电子设备100还可以利用上述图13所示的方法来确定补偿角。
由上述图13所示的方法可知,在检测到用户的姿态与预设姿态匹配时,电子设备100可以利用基于图像确定出的3D关键点来确定图像中人物透视形变的程度。上述预设姿态可以是上半身直立且/或腿部直立的姿态。也即是说,在用户的上半身直立且/或腿部直立时,电子设备100均可以利用基于图像确定出的3D关键点来确定图像中人物透视形变的程度。进而,电子设备100可以对基于图像确定出的3D关键点的位置信息进行矫正,减少图像透视形变对3D关键点的位置信息带来的误差,提高3D关键点的位置信息检测的准确度。该方法可以只需要一个摄像头,不仅节约成本,而且进行关键点检测的计算复杂度也较低。
另外,每一次检测到用户的姿态与预设姿态匹配时,若上半身的3D关键点和/或腿部的3D关键点所在的直线与图像平面之间的夹角可用于矫正3D关键点的位置信息,电子设备100可以更新补偿角。更新之后的补偿角可以更准确地反映用户在当前位置下,摄像头采集的图像中人物透视形变的程度。这可以减少用户与摄像头之间的位置发生变化对3D关键点的位置信息进行矫正的影响,提高矫正后3D关键点的位置信息的准确度。也即是说,电子设备100可以利用更新之后的补偿角来矫正3D关键点的位置信息。经过矫正之后的3D关键点确定的人体模型可以更准确地反映用户的姿态,提高姿态检测的准确率。这样,在健身或体感游戏中,电子设备100可以更准确地判断出用户的姿态是否正确以及用户动作的幅度是否满足要求等,使得用户在进行健身或体感游戏时具有更好的体验。
在本申请实施例中,电子设备可以根据第一多媒体信息确定第一时刻,该第一时刻可以为第一多媒体信息指示用户进行满足第一条件的动作的时刻。上述第一多媒体信息可以为健身课程或体感游戏应用中的相关内容。上述多媒体信息可以包括视频、动画、语音、文字等方式中的一或多种类型的内容。上述满足第一条件的动作可以为上半身直立的动作和/或腿部直立的动作。电子设备可以通过比较用户的3D关键点和上述满足第一条件的动作对应的3D关键点,来判断用户是否进行满足第一条件的动作。可选的,若上述满足第一条件的动作为腿部直立的动作,电子设备可以根据前述图7A所示的方法来判断用户是否进行满足第一条件的动作。
在本申请实施例中,电子设备可以根据第一模型确定补偿角变化量。上述第一模型即为前述实施例中的补偿角确定模型。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (18)
1.一种人体关键点检测方法,其特征在于,所述方法应用于包含一个或多个摄像头的电子设备,所述方法包括:
通过所述摄像头获取第一用户的第一图像;
根据所述第一图像确定所述第一用户的第一组3D关键点;
判断所述第一组3D关键点中的多个3D关键点是否满足第一条件;
若满足所述第一条件,根据所述多个3D关键点确定第一补偿角;
利用所述第一补偿角对所述第一组3D关键点进行旋转矫正。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若不满足所述第一条件,利用第二补偿角对所述第一组3D关键点进行旋转矫正,所述第二补偿角根据第二组3D关键点确定,所述第二组3D关键点为在获取所述第一图像之前最近一组满足所述第一条件的3D关键点。
3.根据权利要求1或2所述的方法,其特征在于,所述通过所述摄像头获取第一用户的第一图像,所述方法具体包括:
根据第一多媒体信息确定第一时刻,所述第一时刻为所述第一多媒体信息指示用户进行满足所述第一条件的动作的时刻;
通过所述摄像头在所述第一时刻开始的第一时间段内,获取所述第一用户的所述第一图像。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若在第二时刻所述多媒体信息指示用户进行的动作对应的3D关键点不满足所述第一条件,利用第三补偿角对根据从所述第二时刻开始的第二时间段内采集的图像确定的3D关键点进行旋转矫正,所述第三补偿角根据第三组3D关键点确定,所述第三组3D关键点为在所述第二时刻之前最近一组满足所述第一条件的3D关键点。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述判断所述第一组3D关键点中的多个3D关键点是否满足第一条件,所述方法具体包括:
判断所述第一组3D关键点中的多个3D关键点是否与第一动作对应的3D关键点匹配,所述第一动作为上半身、腿部中至少一项直立的动作。
6.根据权利要求5所述的方法,其特征在于,所述第一动作为上半身直立的动作,所述第一补偿角为所述第一组3D关键点中颈部点与胸腹部点所在直线与所述图像平面的夹角。
7.根据权利要求5所述的方法,其特征在于,所述第一动作为腿部直立的动作,所述第一补偿角为所述第一组3D关键点中髋点、膝点、脚踝点中任意两个3D关键点所在直线与所述图像平面的夹角。
8.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一组3D关键点中的多个3D关键点包括髋点、膝点、脚踝点,所述判断所述第一组3D关键点中的多个3D关键点是否满足第一条件,所述方法具体包括:
计算所述第一组3D关键点中左髋点与左膝点所在的直线、左膝点与左脚点所在的直线之间的第一夹角,以及所述第一组3D关键点中右髋点与右膝点所在的直线、右膝点与右脚点所在的直线之间的第二夹角;
通过检测所述第一夹角与180°之间的差值是否小于第一差值、所述第二夹角与180°之间的差值是否小于所述第一差值来判断所述第一组3D关键点中的多个3D关键点是否满足第一条件。
9.根据权利要求8所述的方法,其特征在于,所述第一组3D关键点中的多个3D关键点满足所述第一条件的情况包括:所述第一夹角与180°之间的差值小于所述第一差值且/或所述第二夹角与180°之间的差值小于所述第一差值。
10.根据权利要求2-9中任一项所述的方法,其特征在于,所述第二补偿角为所述第二组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述图像平面的夹角。
11.根据权利要求4-10中任一项所述的方法,其特征在于,所述第三补偿角为所述第三组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述图像平面的夹角。
12.根据权利要求2-9中任一项所述的方法,其特征在于,所述第二补偿角为第一补偿角变化量与第三夹角之和;所述第三夹角为所述第二组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述图像平面的夹角;所述第一补偿角变化量是根据第一高度H1,第一距离Y1,第二高度H2以及第二距离Y2确定出来的,其中,所述H1和所述Y1分别是采集第一图像时所述第一用户的高度、所述第一用户与所述摄像头的距离,所述H2和所述Y2分别是采集第二图像时所述第一用户的高度、所述第一用户与所述摄像头的距离;所述第一用户在所述第一图像中的关键点为所述第一组3D关键点,所述第一用户在所述第二图像中的关键点为所述第二组3D关键点;
其中,从采集所述第二图像至采集所述第一图像之间的时间段内,所述第一用户的高度减少得越多,所述第二补偿角相比于所述第三夹角增加得越多,所述第一用户与所述摄像头的距离减少得越多,所述第二补偿角相比于所述第三夹角增加得越多,所述H1越小,所述第二补偿角相比于所述第三夹角增加得越多。
13.根据权利要求4-9或12中任一项所述的方法,其特征在于,所述第三补偿角为第二补偿角变化量与第四夹角之和;所述第四夹角为所述第三组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述图像平面的夹角;所述第二补偿角变化量是根据第三高度H3,第三距离Y3,第四高度H4以及第四距离Y4确定出来的,其中,所述H3和所述Y3分别是在所述第二时间段内所述第一用户的高度、所述第一用户与所述摄像头的距离,所述H4和所述Y4分别是采集第三图像时所述第一用户的高度、所述第一用户与所述摄像头的距离;所述第一用户在所述第三图像中的关键点为所述第三组3D关键点;
其中,从采集所述第二图像至所述第二时间段之间的时间段内,所述第一用户的高度减少得越多,所述第三补偿角相比于所述第四夹角增加得越多,所述第一用户与所述摄像头的距离减少得越多,所述第三补偿角相比于所述第四夹角增加得越多,所述H3越小,所述第三补偿角相比于所述第四夹角增加得越多。
14.根据权利要求13所述的方法,其特征在于,所述第一补偿角变化量和所述第二补偿角均由第一模型确定,所述第一模型由多组训练样本训练得到,一组所述训练样本包括:采集时间在前的图像和采集时间在后的图像之间人体在图像中所在位置的下边缘的变化量、所述人体在图像中高度的变化量、所述人体在所述采集时间在后的图像中的高度、根据所述采集时间在前的图像和所述采集时间在后的图像确定的两组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述图像平面的夹角的变化量;所述两组3D关键点中的多个3D关键点均满足所述第一条件。
15.根据权利要求2-14中任一项所述的方法,其特征在于,在根据所述多个3D关键点确定第一补偿角之前,所述方法还包括:
判断出所述第一组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述图像平面的夹角小于第五夹角;
若所述第一组3D关键点中上半身3D关键点和/或腿部3D关键点所在直线与所述平面图像的夹角大于所述第五夹角,利用所述第二补偿角对所述第一组3D关键点进行旋转矫正。
16.一种电子设备,其特征在于,所述电子设备包括摄像头、显示屏、存储器和处理器,其中:所述摄像头用于采集图像,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,使得所述电子设备执行权利要求1-15中任一项所述的方法。
17.一种计算机存储介质,其特征在于,包括:计算机指令;当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求1-15中任一项所述的方法。
18.一种计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行权利要求1-15中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110351266.0A CN115147339A (zh) | 2021-03-31 | 2021-03-31 | 人体关键点检测方法及相关装置 |
PCT/CN2022/083227 WO2022206639A1 (zh) | 2021-03-31 | 2022-03-26 | 人体关键点检测方法及相关装置 |
EP22778821.3A EP4307220A1 (en) | 2021-03-31 | 2022-03-26 | Method for detecting human body key point and related apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110351266.0A CN115147339A (zh) | 2021-03-31 | 2021-03-31 | 人体关键点检测方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115147339A true CN115147339A (zh) | 2022-10-04 |
Family
ID=83404628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110351266.0A Pending CN115147339A (zh) | 2021-03-31 | 2021-03-31 | 人体关键点检测方法及相关装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4307220A1 (zh) |
CN (1) | CN115147339A (zh) |
WO (1) | WO2022206639A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115410137A (zh) * | 2022-11-01 | 2022-11-29 | 杭州新中大科技股份有限公司 | 基于时空特征的双流工人劳动状态识别方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117173382B (zh) * | 2023-10-27 | 2024-01-26 | 南京维赛客网络科技有限公司 | Vr交互中的虚拟数字人体态矫正方法、系统及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140267611A1 (en) * | 2013-03-14 | 2014-09-18 | Microsoft Corporation | Runtime engine for analyzing user motion in 3d images |
CN108305283B (zh) * | 2018-01-22 | 2020-12-08 | 清华大学 | 基于深度相机和基本姿势的人体行为识别方法及装置 |
JP2022501732A (ja) * | 2019-01-18 | 2022-01-06 | 北京市商▲湯▼科技▲開▼▲發▼有限公司Beijing Sensetime Technology Development Co., Ltd. | 画像処理方法及び装置、画像デバイス並びに記憶媒体 |
CN110717937A (zh) * | 2019-09-29 | 2020-01-21 | 深圳市图郅创新科技有限公司 | 一种图像矫正方法及其系统、电子设备与可储存媒体 |
CN111243106B (zh) * | 2020-01-21 | 2021-05-25 | 杭州微洱网络科技有限公司 | 一种基于2d人体图像修正三维人体模型的方法 |
-
2021
- 2021-03-31 CN CN202110351266.0A patent/CN115147339A/zh active Pending
-
2022
- 2022-03-26 EP EP22778821.3A patent/EP4307220A1/en active Pending
- 2022-03-26 WO PCT/CN2022/083227 patent/WO2022206639A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115410137A (zh) * | 2022-11-01 | 2022-11-29 | 杭州新中大科技股份有限公司 | 基于时空特征的双流工人劳动状态识别方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4307220A1 (en) | 2024-01-17 |
WO2022206639A1 (zh) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108184050B (zh) | 一种拍照方法、移动终端 | |
CN108008930B (zh) | 确定k歌分值的方法和装置 | |
WO2020224479A1 (zh) | 目标的位置获取方法、装置、计算机设备及存储介质 | |
CN111354434B (zh) | 电子装置及其提供信息的方法 | |
WO2022206639A1 (zh) | 人体关键点检测方法及相关装置 | |
CN109819167B (zh) | 一种图像处理方法、装置和移动终端 | |
CN112447273A (zh) | 辅助健身的方法和电子装置 | |
CN108470322A (zh) | 处理人脸图像的方法、装置及可读存储介质 | |
CN113365085B (zh) | 一种直播视频生成方法及装置 | |
CN113382154A (zh) | 基于深度的人体图像美化方法及电子设备 | |
CN113590003A (zh) | 一种用户确定方法、电子设备和计算机可读存储介质 | |
CN111091519A (zh) | 一种图像处理方法及装置 | |
EP4020389A1 (en) | Target user locking method and electronic device | |
CN115188064A (zh) | 一种运动指导信息的确定方法、电子设备和运动指导系统 | |
EP3991814A1 (en) | Intelligent speech playing method and device | |
US20220277845A1 (en) | Prompt method and electronic device for fitness training | |
CN111310701B (zh) | 手势识别方法、装置、设备及存储介质 | |
CN114241604A (zh) | 姿态检测的方法、装置、电子设备和存储介质 | |
CN114581358A (zh) | 心率检测方法及电子设备 | |
CN115249364A (zh) | 一种目标用户确定方法、电子设备和计算机可读存储介质 | |
CN111982293A (zh) | 体温测量方法、装置、电子设备及存储介质 | |
CN113763531B (zh) | 三维人脸重建方法、装置、电子设备及存储介质 | |
CN116704080B (zh) | 眨眼动画生成方法、装置、设备及存储介质 | |
CN109618097B (zh) | 辅助拍照方法及终端设备 | |
CN115203524A (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 |