一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于识别人体动作的方法、装置、设备和介质与流程

2022-11-12 22:06:44 来源:中国专利 TAG:


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.图10示出了根据本公开的一些实现方式的基于右手的虚拟人体对象来生成左手的虚拟人体对象的过程的框图;
19.图11示出了根据本公开的一些实现方式的用于识别人体动作的方法的流程图;
20.图12示出了根据本公开的一些实现方式的用于识别人体动作的装置的框图;以及
21.图13示出了能够实施本公开的多个实现方式的设备的框图。
具体实施方式
22.下面将参照附图更详细地描述本公开的实现方式。虽然附图中示出了本公开的某些实现方式,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实现方式,相反,提供这些实现方式是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实现方式仅用于示例性作用,并非用于限制本公开的保护范围。
23.在本公开的实现方式的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实现方式”或“该实现方式”应当理解为“至少一个实现方式”。术语“一些实现方式”应当理解为“至少一些实现方式”。下文还可能包括其他明确的和隐含的定义。如本文中所使用的,术语“模型”可以表示各个数据之间的关联关系。例如,可以基于目前已知的和/或将在未来开发的多种技术方案来获取上述关联关系。
24.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
25.可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
26.例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示
信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
27.作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。
28.可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
29.示例环境
30.目前已经开发出了多种增强现实应用。例如,可以利用图像采集设备采集并且识别用户的人体动作。进一步,可以利用识别出的人体动作来控制增强现实应用中的各种对象,等等。在下文中,首先参见图1描述识别人体动作的概要,该图1示出了本公开的实现方式可以处理的人体动作的示例100。
31.将会理解,人体对象可以包括人体中的各个部分,包括但不限于躯干、肢体、头部、手部,等等。在本公开的上下文中,将仅以手部作为人体对象的示例,描述识别人体动作的过程的细节。如图1所示,手部可以执行多种动作,例如,动作110、120、和130涉及书写动作,动作140、150和160涉及其他动作。将会理解,图1中所示出的动作仅仅是示意性的,用户可以控制自己的手指来做出任何其他动作。
32.目前已经提出了基于机器学习来识别人体动作的技术方案。例如,可以分别在手部的多个预定位置标记多个关键点。可以采集手部图像并且利用带有标记的手部图像来训练动作模型。图2示出了根据一些技术方案的用于训练动作模型的训练图像的示例的框图200。
33.如图2所示,图像210示出了右手手背的图像,可以在手部中标记例如关键点0至20(例如,可以在手部的各个关节点处设置关键点),并且可以将手部图像简化为包括由关键点0至20定义的树形结构。图像220示出了右手手心的图像,图像220同样包括预定义的关键点0至20。将会理解,关键点在手部中的位置是固定的,并且不会随着动作不同而变化。例如,关键点0始终位于手腕关节点,并且关键点4始终位于大拇指末端,等等。
34.根据一个技术方案,可以预先建立手部虚拟对象的三维模型,并且利用动作模型来表示手部图像中的关键点与三维模型中的相应关键点的空间位置之间的对应关系。然而,用作训练数据的手部图像中手部与三维模型的手部之间可能存在差异。假设三维模型的手型为细长,然而训练数据中的手型为短粗,这将会导致训练的动作模型并不能准确地识别手部动作。换言之,当利用训练的动作模型识别手部动作时,可能会出现不能准确确定关键点进而导致识别出错误动作的情况。此时,如何以更为方便并且有效的方式识别人体动作,成为一个亟待解决的问题。
35.识别人体动作的概要过程
36.为了解决上述技术方案中的不足,根据本公开的一个示例性实现方式,提出了一种用于识别人体动作的方法。概括而言,可以获取描述包括人体对象的图像与人体对象在所述图像中的动作之间的关联关系的动作模型。将会理解,在此的动作是由与人体对象相对应的虚拟人体对象中的一组空间点来表示的,并且虚拟人体对象的维度匹配于人体对象
的维度。在本公开的上下文中,在建立手部的虚拟对象时,需要考虑用作训练数据的手部的维度。换言之,可以基于训练图像中的手部的维度(例如,包括大小、比例和姿态等),按照相同的大小、比例和姿态来建立手部的三维虚拟人体对象。根据本公开的一个示例性实现方式,可以直接接收训练好的动作模型;备选地和/或附加地,可以基于机器学习技术来训练该动作模型。
37.参见图3描述根据本公开的一个示例性实现方式的概要,该图3示出了根据本公开的一些实现方式的用于识别人体动作的过程的框图300。如图3所示,可以基于描述包括人体对象的图像与人体对象在所述图像中的动作之间的关联关系的动作模型320来处理输入图像330。具体地,在接收到包括人体对象的输入图像330的情况下,可以基于动作模型320确定与输入图像330中的人体对象相关联的目标动作。进一步,可以利用执行目标动作的虚拟人体对象,更新输入图像以便生成新的输出图像340。
38.将会理解,在此的动作模型320可以描述包括人体对象的图像与人体对象在图像中的动作之间的关联关系,动作是由与人体对象相对应的虚拟人体对象中的一组空间点来表示的,并且虚拟人体对象的维度匹配于人体对象的维度。为了获取动作模型320,可以获取包括人体对象的图像210中的一组图像关键点212。根据本公开的一个示例性实现方式,可以从训练图像的集合中选择图像210,例如,可以选择包括手部全貌的正面图像或者背部图像。将会理解,集合中的每个图像都包括预先标注的一组图像关键点。以此方式,可以尽量获得手部的各个部分的维度信息,进而建立具有更高准确性的虚拟人体对象。
39.进一步,可以基于人体对象的维度,生成与人体对象相对应的虚拟人体对象310。如图3所示,虚拟人体对象310可以包括分别对应于图像210中的一组图像关键点212的一组空间点312。将会理解,出于简化目的,图3中的虚拟人体对象310中的一组空间点312仅示出了大拇指相关的空间点0’至4’(分别对应于图像210中的关键点0至4),虚拟人体对象310可以进一步包括对应于图像210中的其他关键点5至20的其他空间点。
40.如图3所示,在建立虚拟人体对象310时,可以基于图像210中的手部的维度来建立与真实手部具有相同大小、比例和姿态的虚拟手部模型。具体地,可以使得虚拟人体对象310与图像210中的手部相重合。也即,在制作手部的虚拟人体对象310时,可以使得虚拟人体对象310中的各个关节点分别与图像210中的手部的各个关节点对齐。以此方式,可以保证两者的朝向一致并且长短比例尽量相同。
41.进一步,可以基于一组图像关键点212和一组空间点312来确定动作模型320。在此,动作模型320可以描述包括人体对象的图像与人体对象在图像中的动作之间的关联关系。将会理解,这里的动作是利用虚拟人体对象310中的一组空间点312来表示的。也即,在确定一组空间点312的情况下,即可确定手部的动作。进一步,可以利用动作模型320来处理包括虚拟人体对象310的输入对象330。具体地,可以使得虚拟人体对象310执行确定的动作,并且相应地更新输入图像330。
42.利用本公开的示例性实现方式,由于虚拟人体对象310和图像210中的手部具有相同维度,这使得一组图像关键点212和一组空间点312的位置和朝向可以准确地一一对应。以此方式,可以使得虚拟人体对象310更为逼真地模拟图像210中的手部的动作,进而提高动作模型320的准确性。
43.识别人体动作的详细过程
44.已经参见图3描述识别人体动作的概要,在下文中将提供有关识别人体动作的更多细节。根据本公开的一个示例性实现方式,在生成虚拟人体对象的过程中,首先需要考虑虚拟人体对象310的大小。具体地,可以利用训练图像来获取动作模型320,例如,可以基于图像210中的人体对象的维度,确定一组图像关键点212的位置关系。换言之,可以确定各个关键点之间的距离,进而确定虚拟人体对象310中的各个空间点之间的相对位置。利用本公开的示例性实现方式,可以基于与人体对象的大小、比例和姿态相一致的虚拟人体对象描述动作。以此方式,以此方式,可以提高动作模型320的准确性进而提高后续处理的准确性。
45.在图像210中,假设关键点0和关键点1之间的距离为4cm、关键点1和关键点2之间的距离为5cm、关键点2和关键点3之间的距离为3.5cm、并且关键点3和关键点4之间的距离为2.5cm。可以基于上述距离来确定一组空间点312中的各个空间点的位置。换言之,在生成的虚拟人体对象310中,空间点0’和空间点1’之间的距离为4cm、空间点1’和空间点2’之间的距离为5cm、空间点2’和空间点3’之间的距离为3.5cm、并且空间点3’和空间点4’之间的距离为2.5cm。以此方式,可以确保虚拟人体对象310的大小与图像210中的真实手部相一致,进而提高后期确定动作模型320的准确性。
46.将会理解,除了空间点的位置以外,各个空间点朝向也将会影响虚拟人体对象310的姿态。将会理解,由于图像关键点位于图像210的手部的关节点处并且空间点位于虚拟人体对象310的关节点处,仅基于各个空间点之间的并不能唯一地确定虚拟人体对象310的手部姿态。此时,还需要考虑各个图像关键点的朝向,进而基于该朝向来确定各个空间点的朝向。
47.根据本公开的一个示例性实现方式,可以基于多种方式来建立参考坐标系,由此表示各个空间点的朝向。在下文中,参见图4描述有关确定空间点的朝向的更多信息。该图4示出了根据本公开的一些实现方式的虚拟人体对象中的各个空间点的坐标系的框图400。如图4所示,可以为每个空间点建立自身的参考坐标系。具体地,可以基于人体对象的维度中的一组图像关键点212的朝向关系,确定一组空间点312的朝向。
48.例如,可以为空间点0’建立坐标系410,该坐标系410的原点可以位于空间点0’的位置。可以基于多种方式来建立坐标系410,例如,可以定义x轴的方向为向右,可以基于左手坐标系和/或右手坐标系来建立坐标系410。进一步,可以以类似方式来处理每个空间点,并且确定每个空间点的朝向。此时,各个空间点的坐标轴的方向可以是一致的,例如,x轴可以向右,y轴可以向上并且y轴指向屏幕外侧。备选地和/或附加地,各个空间点的坐标轴的方向可以是不一致的,可以基于图像210中的手部图像中的真实人物的手腕朝向,来确定空间点的朝向。例如,空间点1’的x轴方向可以指向空间点0’,并且空间点2’的x轴方向可以指向空间点1’,等等。
49.根据本公开的一个示例性实现方式,可以基于多种格式来表示朝向,例如,可以基于姿态角(也即,偏航角、俯仰角、翻滚角)来表示朝向。备选地和/或附加地,可以基于四元组来表示朝向,等等。利用本公开的示例性实现方式,可以确保虚拟人体对象310的各个手指的朝向与真实手部相一致,并且可以确保虚拟人体对象310的各个骨骼段的长度与真实手部也是一致的。以此方式,虚拟人体对象310与图像210中的手部可以尽可能地相一致,进而提高后续确定动作模型320的准确性。
50.根据本公开的一个示例性实现方式,一组关键点212分别包括人体对象的一组关
节点,并且一组空间点312包括分别对应于人体对象的一组关节点的、虚拟人体对象的一组关节点。以此方式,将关键点和空间点分别设置在真实手部和虚拟人体对象310的关节点处,可以使得虚拟人体对象310能够更准确地模拟真实手部的动作。随着真实手部的运动,空间点可以具有相应的朝向。根据本公开的一个示例性实现方式,可以根据人体骨骼的运动范围限制来设置空间点的朝向的阈值。以此方式,可以使得虚拟人体对象310更加准确地模拟真实手部的动作。
51.根据本公开的一个示例性实现方式,两个空间点之间的距离是基于关键点之间的距离确定的,两个空间点之间的距离并不会随着手部动作而改变。换言之,可以认为虚拟人体对象310的两个空间点之间的骨骼是刚体,并且不会被拉伸和压缩。以此方式,仅需要考虑各个空间点的朝向即可准确地描述各个空间点,进而描述虚拟人体对象310的整体姿态。
52.根据本公开的一个示例性实现方式,在已经确定了与图像210中的手部对准的虚拟人体对象310之后,可以利用一组图像关键点212和一组空间点312确定动作模型320。换言之,可以基于图像210来确定虚拟人体对象310中的各个空间点的朝向,进而获得动作模型320。根据本公开的一个示例性实现方式,可以基于机器学习技术来获得动作模型320。可以基于初始动作模型和/或预训练的动作模型来执行训练过程。
53.根据本公开的一个示例性实现方式,可以利用训练图像集合中的大量训练图像优化动作模型320。具体地,可以利用动作模型320处理包括人体对象的给定训练图像,并且基于处理结果与该给定训练图像的比较来更新动作模型320。在下文中,参见图5描述根据本公开的一个示例性实现方式的更多细节,该图5示出了根据本公开的一些实现方式的用于基于训练图像来设置虚拟人体对象310的过程的框图500。如图5所示,可以从训练图像集合中获取训练图像510。具体地,可以将训练图像510输入至动作模型320,以便确定训练图像510中的人体对象的预测动作530。在此过程中,可以获取训练图像510中的一组关节点,并且将该组关节点输入至动作模型320,以便确定预测动作530。
54.将会理解,在此的预测动作530是利用虚拟人体对象310中的一组空间点(也即,关节点)来描述的,并且动作模型320可以输出虚拟人体对象310中的各个空间点的朝向540。此时,可以将虚拟人体对象310的一组关节点的朝向分别设置为预测的空间点的朝向540。在本公开的上下文中,一旦关节点的朝向是确定的,则可以根据各个关节点之间的距离来自动确定各个关节点的位置。由此,可以确定虚拟人体对象310在三维虚拟空间中的姿态,也即可以确定虚拟人体对象310的预测动作530。
55.根据本公开的一个示例性实现方式,可以基于预测动作530来确定虚拟人体对象310的预测虚拟图像,也即可以基于设置的一组关节点的朝向来确定虚拟人体对象310的预测虚拟图像。在下文中,参见图6描述有关预测虚拟图像的更多细节,该图6示出了根据本公开的一些实现方式的用于基于训练图像和预测虚拟图像的比较来更新动作模型的过程的框图600。如图6所示,预测虚拟图像630是指将三维空间中的虚拟人体对象310投影至二维空间所获得的图像。具体地,可以根据在采集训练图像510时的相机与真实手部之间的空间位置关系,来确定三维空间中的虚拟相机和虚拟人体对象310的位置关系,进而获得该预测虚拟图像630。
56.进一步,可以将预测虚拟图像630和训练图像510中的与人体对象相关联部分进行比较(也即,比较虚拟图像630和训练图像510中的手部各个关节点的位置),从而更新动作
模型320。根据本公开的一个示例性实现方式,可以基于两个图像的比较来确定损失函数。在下文中,将仅以手部的大拇指相关的关节点为示例进行描述。
57.如图6所示,训练图像510可以包括关键点612、614、616、618、620,此时,各个关键点的连线可以形成大拇指的相关骨骼。类似地,在预测虚拟图像630中可以存在与上述关键点相对应的预测图像空间点(简称为预测点),例如,预测虚拟图像630可以包括位于虚拟人体对象310的大拇指关节点处的预测点632、634、636、638以及640。利用本公开的示例性实现方式,各个关节点的位置可以描述手部动作的轮廓。利用与关节点相关联的预测点来描述动作,可以仅考虑影响手部动作的主要因素并且忽略次要因素(例如,肌肉的轮廓点等)。以此方式,可以降低确定动作模型320涉及的计算量并且提高性能。
58.根据本公开的一个示例性实现方式,可以分别比较上述关键点和相应的预测点,以便确定两者之间的距离。例如,可以确定手腕处的关键点612与预测点632之间的距离,可以确定手掌处的关键点612与预测点632之间的距离,可以确定大拇指根部的关键点616与预测点636之间的距离,可以确定大拇指关节点的关键点618与预测点638之间的距离,等等。可以基于这些距离来设置动作模型320的损失函数640。例如,可以基于各个距离的求和、方差和/或以其他方式设置损失函数640。
59.根据本公开的一个示例性实现方式,可以朝向使得损失函数640最小化的方向,来更新动作模型320中的各个参数。将会理解,尽管图6仅示出了手部中的大拇指相关的关节点,可以以类似方式来处理手部中的其他手指相关的关节点,并且确定各个关节点处的关键点和预测点之间的距离。以此方式,可以综合考虑手部中的各个关节点的位置,进而使得动作模型320可以更为准确地学习训练图像510中的手部动作的相关知识。根据本公开的一个示例性实现方式,可以以迭代方式来不断地训练动作模型320。可以预先设置训练停止条件,例如,可以在训练次数满足预定阈值时停止训练,可以在动作模型320满足阈值收敛条件时停止训练,等等。
60.上文已经描述了用于生成动作模型320的训练过程,在已经获得动作模型320之后,可以使用该动作模型320识别输入图像330中的人体对象的动作。在下文中,参见图7描述利用动作模型320处理输入图像的更多细节,该图7示出了根据本公开的一些实现方式的基于虚拟人体对象来更新输入图像中的人体对象的框图。
61.如图7所示,在接收到包括手部的输入图像330的情况下,可以向动作模型320提供输入图像330,以便确定手部的动作712。进一步,可以基于手部的动作712来设置虚拟人体对象310的关节点的朝向。继而,可以将虚拟人体对象310投影至二维图像空间,并且生成相应的虚拟图像714(此时,虚拟人体对象310被设置为执行动作712)。接着,可以利用生成的虚拟图像714来替换输入图像330中的与手部相关联的部分,以便生成输出图像340。
62.如图7所示,输出图像340中的真实手部已经被虚拟人体对象310的机械手替换,并且该机械手的动作是基于输入图像330中的真实手部的动作确定的。将会理解,尽管上文分别描述识别动作、生成虚拟图像、以及利用生成的虚拟图像来替换输入图像中的人体对象的过程,备选地和/或附加地,可以将用于执行上述过程的模块集成到动作模型320之中。此时,集成的动作模型320可以直接接收输入图像330,并且提供相应的输出图像340。
63.利用本公开的示例性实现方式,动作模型320所采用的虚拟人体对象310是基于训练图像中的手部的维度来建立的,因而该虚拟人体对象310的骨骼大小、比例以及各个关节
点的姿态等因素与训练图像中的真实手部是一致的。以此方式,动作模型320可以准确地获得训练图像中的真实手部的动作知识,进而使得虚拟人体对象310可以准确地模拟该真实手部的动作。由此,输出图像340中的机械手可以以更为准确并且有效的方式来模拟输入图像330中的手部动作。
64.根据本公开的一个示例性实现方式,可以基于真实手部的大小来调整输出图像340中的机械手的大小。假设虚拟人体对象310是基于包括成人手部图像的训练图像集合生成的,则此时生成的机械手的大小与成人手部相一致。在输入图像330包括儿童手部的情况下,如果直接使用成人的机械手图像替换儿童的手部,则会导致机械手与儿童的身体比例不一致的情况。此时,可以基于输入图像330中的儿童手部的尺寸,调整机械手的大小进而使得输出图像340中的机械手可以匹配于儿童的身体比例。
65.将会理解,尽管图7示出了处理单一输入图像330并且将该输入图像330中的真实手部替换为机械手的示例。备选地和/或附加地,可以向动作模型320输入实时采集到的连续视频。此时,可以利用动作模型320来实时地识别连续视频中的每个动作。进一步,可以输出包括机械手执行各个动作的连续视频。此时,输入视频中的真实手部已经被机械手替换,并且机械手的动作与真实手部的动作相一致。
66.根据本公开的一个示例性实现方式,当处理连续视频时,输入视频中的人物手部的移动距离可能会较大。此时,可以基于前后相继的视频帧中的背景区域来替换人物手部区域,换言之,可以首先从输入视频中去除真实手部。在下文中,参见图8描述去除真实手部的更多细节,该图8示出了根据本公开的一些实现方式的生成包括虚化区域的中间图像的框图800。
67.如图8所示,可以针对输入视频810中的各个视频帧(例如,视频帧812)进行处理,以便生成中间图像820。具体地,可以基于视频帧812之前的视频帧中的天花板的背景图像,来处理包括真实手部的区域内的图像,以便生成虚化区域822。在虚化区域822中,已经去除了真实手部的图像,并且原本被真实手部遮挡的部分已经被更新为天花板部分的图像。以此方式,可以预先去除真实手部的图像,进而避免生成的机械手不能完全遮挡真实手部的情况。
68.上文已经描述了训练和使用动作模型320的过程,在上述过程中,如果发现动作模型320确定的动作不能准确地反映真实手部的动作,可以通过调整虚拟人体对象310的关节点,来获得更为准确的动作识别效果。在下文中,参见图9描述调节虚拟人体对象310的更多细节,该图9示出了根据本公开的一些实现方式的调整虚拟人体对象中的空间点的朝向的过程的框图900。
69.如图9所示,虚拟人体对象310表示基于图像210建立的原始虚拟人体对象,并且虚拟人体对象910表示调整后的虚拟人体对象。在虚拟人体对象310中,大拇指部分的骨骼大约保持直线形式。在使用动作模型320获得的预测虚拟图像中,假设大拇指部分呈现向外旋转的错误姿态,可以调整区域920内部分(如箭头930所示)。例如,可以将虚拟人体对象310的大拇指部分的关节点向内旋转,也即调整大拇指末端的各个关节点的朝向,以使其向内旋转预定角度(如区域922所示)。
70.根据本公开的一个示例性实现方式,可以在训练过程中执行上述调整过程。具体地,可以比较利用动作模型320确定的预测虚拟图像和训练图像中的与人体对象相关联部
分,如果发现错误姿态的出现达到一定数量或比例,则可以执行上述调整动作。备选地和/或附加地,在使用动作模型320的过程中也可以执行上述调整过程,以此方式,可以不断地利用来自更多输入图像的数据来进一步提高动作识别的准确性。
71.当使用调整后的虚拟人体对象910时,由于区域922内的大拇指部分已经向内旋转预定角度,该向内旋转的角度可以抵消动作模型320识别出的相应关节点的向外旋转角度中的错误,进而使得输出图像中的大拇指朝向与输入图像的大拇指朝向尽可能地相匹配。利用本公开的示例性实现方式,可以通过调整虚拟人体对象310的姿态,来弥补动作模型320识别的动作中的不足。以此方式,可以提高输出图像中的机械手与输入图像330中的真实手部的动作匹配程度。
72.将会理解,由于人体结构存在对称性,可以仅建立左侧或者右侧的虚拟人体对象。当识别到输入图像330中的人体对象位于相反侧时,则可以将虚拟人体对象镜像至另一侧,进而进行动作识别。在下文中,参见图10描述有关镜像过程的更多细节,该图10示出了根据本公开的一些实现方式的基于右手的虚拟人体对象来生成左手的虚拟人体对象的过程的框图1000。
73.可以首先确定输入图像330中的人体对象的部位,如果该部位(例如,左手)与已经生成的虚拟人体对象310(例如,右手)的方向不一致,则可以基于镜像1012操作来获得另一方向(左手)的虚拟人体对象1010。此时,即可利用动作模型320和虚拟人体对象1010来识别左手的动作。
74.将会理解,在某些渲染器的渲染过程中,由于使用材质具有单向渲染的配置属性,此时左手和右手的材质的渲染方向相反。因而需要基于虚拟人体对象的部位来更新渲染方向。如图10所示,假设用于右手的虚拟人体对象310的渲染方向1020为“前”,则用于左手的虚拟人体对象1010的渲染方向1022可以被更新至“后”。以此方式,可以确保在渲染过程中正确地渲染机械手的材质,进而生成正确的虚拟图像。
75.将会理解,尽管上文以右手作为人体对象的示例描述了动作识别过程,可以将上述过程应用于识别其他人体对象。例如,可以识别人体躯干的动作、肢体动作、头部动作,等等。另外,尽管上文以利用识别出的手部动作来控制机械手作为示例描述了利用动作模型320的具体应用环境,还可以在其他应用环境中使用上文描述的技术方案。例如,可以利用识别的人体动作来执行设备控制,例如可以控制电子设备的扬声器音量、显示器亮度,等等;又例如,可以利用识别的人体动作来控制游戏中的虚拟人物;再例如,可以在增强现实应用中控制各种虚拟对象,等等。
76.示例过程
77.图11示出了根据本公开的一些实现方式的用于识别人体动作的方法1100的流程图。具体地,在框1110处,确定是否接收到包括人体对象的输入图像。如果接收到输入图像,则方法1100前进至框1120,并且基于动作模型确定与输入图像中的人体对象相关联的目标动作。在此,动作模型描述包括人体对象的图像与人体对象在图像中的动作之间的关联关系,动作是由与人体对象相对应的虚拟人体对象中的一组空间点来表示的,并且虚拟人体对象的维度匹配于人体对象的维度。在框1130处,利用执行目标动作的虚拟人体对象,更新输入图像。
78.根据本公开的一个示例性实现方式,更新输入图像包括:基于目标动作确定虚拟
人体对象的目标虚拟图像,虚拟人体对象被设置为目标动作;以及利用目标虚拟图像来替换输入图像中的与人体对象相关联的部分。
79.根据本公开的一个示例性实现方式,确定目标虚拟图像包括:确定输入图像中的人体对象的部位;基于部位来更新虚拟对象的材质的渲染方向;以及基于更新的渲染方向来生成目标虚拟图像。
80.根据本公开的一个示例性实现方式,该方法进一步包括通过以下来获取动作模型:基于包括人体对象的第一训练图像中的第一组图像关键点,表示人体对象的维度;基于人体对象的维度来生成虚拟人体对象,虚拟人体对象包括分别对应于第一组图像关键点的一组空间点;以及基于第一组图像关键点和一组空间点确定动作模型。
81.根据本公开的一个示例性实现方式,生成虚拟人体对象包括以下至少任一项:基于第一组图像关键点的位置关系,确定一组空间点的位置;以及基于第一组图像关键点的朝向关系,确定一组空间点的朝向。
82.根据本公开的一个示例性实现方式,第一组图像关键点分别对应于人体对象的一组关节点,以及一组空间点包括分别对应于与人体对象的一组关节点相关联的虚拟人体对象的一组关节点。
83.根据本公开的一个示例性实现方式,获取动作模型包括:基于动作模型和包括人体对象的第二训练图像,确定第二训练图像中的人体对象的预测动作;基于预测动作来确定虚拟人体对象的预测虚拟图像;以及基于预测虚拟图像和第二训练图像中的与人体对象相关联部分的比较结果,更新动作模型。
84.根据本公开的一个示例性实现方式,确定预测动作包括:获取第二训练图像中的人体对象的一组关节点;以及基于第二训练图像中的人体对象的一组关节点和动作模型,确定预测动作。
85.根据本公开的一个示例性实现方式,预测动作利用虚拟人体对象的一组预测空间点来表示,以及确定预测虚拟图像包括:将虚拟人体对象的一组关节点的朝向分别设置为一组预测空间点的朝向;以及基于设置的一组关节点来确定虚拟人体对象的预测虚拟图像。
86.根据本公开的一个示例性实现方式,更新动作模型包括:确定预测虚拟图像中的分别与一组关节点相对应的一组预测图像空间点;以及基于一组预测图像空间点中的预测图像空间点与第二组图像关键点中的相应图像关键点之间的距离,更新动作模型。
87.根据本公开的一个示例性实现方式,该方法1100进一步包括:基于预测虚拟图像和第二训练图像中的与人体对象相关联部分的比较结果,调整虚拟人体对象的一组空间点的朝向。
88.示例装置和设备
89.图12示出了根据本公开的一些实现方式的用于识别人体动作的装置1200的框图。该装置1200包括:确定模块1210,被配置用于响应于接收到包括人体对象的输入图像,基于动作模型确定与输入图像中的人体对象相关联的目标动作。在此,动作模型描述包括人体对象的图像与人体对象在图像中的动作之间的关联关系,动作是由与人体对象相对应的虚拟人体对象中的一组空间点来表示的,并且虚拟人体对象的维度匹配于人体对象的维度。该装置1200进一步包括:以及更新模块1220,被配置用于利用执行目标动作的虚拟人体对
象,更新输入图像。
90.根据本公开的一个示例性实现方式,更新模块1220包括:图像确定模块,被配置用于基于目标动作确定虚拟人体对象的目标虚拟图像,虚拟人体对象被设置为目标动作;以及替换模块,被配置用于利用目标虚拟图像来替换输入图像中的与人体对象相关联的部分。
91.根据本公开的一个示例性实现方式,图像确定模块包括:确定输入图像中的人体对象的部位;基于部位来更新虚拟对象的材质的渲染方向;以及基于更新的渲染方向来生成目标虚拟图像。
92.根据本公开的一个示例性实现方式,该装置1200进一步包括获取模块,并且该获取模块包括:表示模块,被配置用于基于包括人体对象的第一训练图像中的第一组图像关键点,表示人体对象的维度;生成模块,被配置用于基于人体对象的维度来生成虚拟人体对象,虚拟人体对象包括分别对应于第一组图像关键点的一组空间点;以及动作确定模块,被配置用于基于第一组图像关键点和一组空间点确定动作模型。
93.根据本公开的一个示例性实现方式,生成模块包括:位置确定模块,被配置用于基于第一组图像关键点的位置关系,确定一组空间点的位置;以及朝向确定模块,被配置用于基于第一组图像关键点的朝向关系,确定一组空间点的朝向。
94.根据本公开的一个示例性实现方式,第一组图像关键点分别对应于人体对象的一组关节点,以及一组空间点包括分别对应于与人体对象的一组关节点相关联的虚拟人体对象的一组关节点。
95.根据本公开的一个示例性实现方式,获取模块包括:预测模块,被配置用于基于动作模型和包括人体对象的第二训练图像,确定第二训练图像中的人体对象的预测动作;图像预测模块,被配置用于基于预测动作来确定虚拟人体对象的预测虚拟图像;以及模型更新模块,被配置用于基于预测虚拟图像和第二训练图像中的与人体对象相关联部分的比较结果,更新动作模型。
96.根据本公开的一个示例性实现方式,预测模块包括:关键点获取模块,被配置用于获取第二训练图像中的人体对象的一组关节点;以及基于关节点的预测模块,被配置用于基于第二训练图像中的人体对象的一组关节点和动作模型,确定预测动作。
97.根据本公开的一个示例性实现方式,预测动作利用虚拟人体对象的一组预测空间点来表示,以及图像预测模块包括:设置模块,被配置用于将虚拟人体对象的一组关节点的朝向分别设置为一组预测空间点的朝向;以及基于朝向的图像预测模块,被配置用于基于设置的一组关节点来确定虚拟人体对象的预测虚拟图像。
98.根据本公开的一个示例性实现方式,更新模块包括:空间点预测模块,被配置用于确定预测虚拟图像中的分别与一组关节点相对应的一组预测图像空间点;以及基于距离的更新模块,被配置用于基于一组预测图像空间点中的预测图像空间点与第二组图像关键点中的相应图像关键点之间的距离,更新动作模型。
99.根据本公开的一个示例性实现方式,该装置1200进一步包括:调整模块,被配置用于基于预测虚拟图像和第二训练图像中的与人体对象相关联部分的比较结果,调整虚拟人体对象的一组空间点的朝向。
100.图13示出了能够实施本公开的多个实现方式的设备1300的框图。应当理解,图13
所示出的计算设备1300仅仅是示例性的,而不应当构成对本文所描述的实现方式的功能和范围的任何限制。图13所示出的计算设备1300可以用于实现上文描述的方法。
101.如图13所示,计算设备1300是通用计算设备的形式。计算设备1300的组件可以包括但不限于一个或多个处理器或处理单元1310、存储器1320、存储设备1330、一个或多个通信单元1340、一个或多个输入设备1350以及一个或多个输出设备1360。处理单元1310可以是实际或虚拟处理器并且能够根据存储器1320中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备1300的并行处理能力。
102.计算设备1300通常包括多个计算机存储介质。这样的介质可以是计算设备1300可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1320可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或它们的某种组合。存储设备1330可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备1300内被访问。
103.计算设备1300可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图13中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1320可以包括计算机程序产品1325,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实现方式的各种方法或动作。
104.通信单元1340实现通过通信介质与其他计算设备进行通信。附加地,计算设备1300的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备1300可以使用与一个或多个其他服务器、网络个人计算机(pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
105.输入设备1350可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1360可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备1300还可以根据需要通过通信单元1340与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备1300交互的设备进行通信,或者与使得计算设备1300与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
106.根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,提供了一种计算机程序产品,其上存储有计算机程序,程序被处理器执行时实现上文描述的方法。
107.这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
108.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
109.可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
110.附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
111.以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献