根据单目相机输出来对对象进行建模的制作方法

未命名 10-26 阅读:105 评论:0


1.本公开总体上涉及图像处理,并且更具体地涉及用于生成对象的三维模型的系统和技术。


背景技术:

2.许多设备和系统能够生成捕获场景、对象、人和形状等的图像(或帧)和/或视频数据(包括多个帧)。例如,相机或包括相机的计算设备(例如,移动设备,例如移动电话或包括一个或多个相机的智能设备)可捕获场景、人和/或对象的图像。图像可以由这样的设备和系统捕获和处理,并输出以供消费(例如,显示在设备上)。捕获的图像还可以被处理用于某些应用,诸如例如计算机图形、扩展现实(例如,增强现实、虚拟现实等)、图像识别(例如,面部识别、对象识别、场景识别等)、对象检测和特征估计等。例如,可以处理图像以检测图像中存在的任何对象或面部,这对于各种应用是有用的。
3.在一些情况下,由设备捕获的图像数据可以用于构建图像数据中的目标(例如,对象、人、形状等)的三维(3d)模型。3d模型可以用于各种应用中,例如多媒体(例如,电影、视频游戏、扩展现实等)、计算机视觉(例如,运动跟踪、形状建模、对象映射、图像识别、姿势估计、图像配准和变形、场景重建、图像分割、动画等)、机器人和自动化、工业设计和医疗保健等。3d建模可能是具有挑战性且复杂的,特别是在对关节连接的对象进行建模时。此外,3d建模技术通常不准确且不一致,并且难以处理噪声、模糊性和配置变化等。


技术实现要素:

4.在一些示例中,描述了用于对象的三维(3d)建模的系统和技术。根据至少一个说明性示例,提供了一种根据图像传感器输出将对象3d建模为蒙皮网格的方法。在一些示例中,该方法可以包括:接收目标的图像和元数据,元数据与图像和捕获图像的图像捕获设备中的至少一个相关联;基于所述图像和所述元数据,确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和/或所述图像捕获设备相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。
5.根据至少一个说明性示例,提供一种用于根据图像传感器输出将对象3d建模为蒙皮网格的非暂时性计算机可读介质。在一些方面,所述非暂时性计算机可读介质可以包括指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器:接收目标的图像和元数据,所述元数据与所述图像和/或捕获所述图像的图像捕获设备相关联;基于所述图像和所述元数据来确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和/或所述图像捕获设备相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其
中的现实世界场景的3d坐标系。
6.根据至少一个说明性示例,提供了一种用于根据图像传感器输出将对象3d建模为蒙皮网格的装置。在一些方面,所述装置可包括其上存储有计算机可读指令的存储器和一个或多个处理器,所述一个或多个处理器被配置为:接收目标的图像和元数据,所述元数据与所述图像和/或捕获所述图像的图像捕获装置相关联;基于所述图像和所述元数据来确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和/或所述图像捕获设备相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。
7.根据另一说明性示例,一种用于根据图像传感器输出将对象3d建模为蒙皮网格的装置,可包括用于以下操作的部件:接收目标的图像和元数据,所述元数据与所述图像及/或捕获所述图像的图像捕获设备相关联;基于所述图像和所述元数据,确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和/或所述图像捕获设备相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。
8.在一些方面,上述方法、装置和计算机可读介质可以基于与现实世界参考帧中的目标的第三3d网格相关联的一个或多个损失来更新与神经网络系统相关联的一个或多个参数;以及由神经网络系统使用更新的一个或多个参数来确定目标的第二3d网格的第二3d网格参数。
9.在一些方面,上述方法、装置和计算机可读介质可基于目标的非参数网格、目标的参数网格、旋转参数、平移参数、图像特征和/或元数据特征来确定目标的第三3d网格。
10.在一些方面,上述方法、装置和计算机可读介质可以基于目标的附加图像和附加元数据来确定图像特征和元数据特征;基于所述图像特征和所述元数据特征来确定所述目标的所述非参数网格和与所述目标相关联的网格参数;以及基于与目标相关联的姿势参数和形状参数来确定目标的参数网格。
11.在一些示例中,网格参数可以包括姿势参数、形状参数、旋转参数和/或平移参数。在一些情况下,参数网格、非参数网格和网格参数对应于捕获附加图像的设备的特定参考帧。在一些示例中,一个或多个损失可包括第三3d网格的损失、第三3d网格中的3d关键点的损失、姿势和形状正则化损失、和/或来自第三3d网格和/或3d关键点的二维(2d)关键点投影的损失。在一些情况下,元数据特征可以包括与捕获附加图像的设备相关联的内部参数。在一些示例中,内部参数可以包括设备的焦距、设备的光学中心、设备的偏斜、附加图像的大小、与设备相关联的透镜失真和/或设备的特定参考帧。
12.在一些方面,上述方法、装置和计算机可读介质可以使用目标的非参数网格和目标的参数网格来训练神经网络系统。
13.在一些方面,上述方法、装置和计算机可读介质可基于所述第二3d网格参数生成所述目标的所述第二3d网格,其中所述第二3d网格在所述现实世界场景的所述3d坐标系中。
14.在一些示例中,第二3d网格可包括蒙皮网格模型和/或参数网格模型。在一些情况下,目标可以包括关节连接的物体。
15.在一些情况下,确定第二3d网格参数可以包括将第一3d网格参数中的一个或多个从第一参考帧变换到第二参考帧。
16.在一些示例中,第二3d网格可以包括确定第一3d网格从第一参考帧到第二参考帧的旋转和平移。
17.在一些示例中,所述第二3d网格可包括识别与所述目标的所述第一3d网格相关联的3d关键点,并且基于所述图像和所述元数据,确定所述3d关键点在所述现实世界场景的所述3d坐标系中的位置和方向。
18.在一些示例中,第一3d网格参数可以包括姿势参数、形状参数、平移参数、位置参数和/或可见性参数。在一些情况下,可见性参数可以指示第一3d网格中的一个或多个点的估计的可见性和/或第一3d网格中的一个或多个点的估计的遮挡。
19.在一些示例中,元数据可以包括与图像捕获设备相关联的内部参数。在一些情况下,内部参数可以包括图像捕获设备的焦距、图像捕获设备的光学中心、图像捕获设备的偏斜、图像的大小、与图像捕获设备相关联的透镜失真和/或图像捕获设备的相应参考帧。在一些示例中,相应参考帧可为第一参考帧。
20.在一些情况下,图像可以包括裁剪的单目图像。在一些情况下,元数据可以包括裁剪的单目图像中围绕目标的边界框的位置。
21.在一些方面,上述方法、装置和计算机可读介质可确定目标的图像中的图像特征;基于所述图像和所述元数据来确定元数据特征和图像特征;以及基于元数据特征和图像特征的组合来确定第一3d网格参数。在一些示例中,第一3d网格参数可以包括姿势参数、形状参数、平移参数、位置参数和/或可见性参数。在一些情况下,可见性参数可以指示第一3d网格中的一个或多个点的估计的可见性和/或第一3d网格中的一个或多个点的估计的遮挡。
22.在一些方面,装置可以是相机(例如,ip相机)、移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、智能可穿戴设备、扩展现实设备(例如,虚拟现实(vr)设备、增强现实(ar)设备或混合现实(mr)设备)、个人计算机、膝上型计算机、服务器计算机、3d扫描仪、多相机系统或其它设备或者可以是相机(例如,ip相机)、移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、智能可穿戴设备、扩展现实设备(例如,虚拟现实(vr)设备、增强现实(ar)设备或混合现实(mr)设备)、个人计算机、膝上型计算机、服务器计算机、3d扫描仪、多相机系统或其它设备的部分。在一些方面,所述装置包括用于捕获一个或多个图像的相机或多个相机。在一些方面,该装置还包括用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在一些方面,上述装置可以包括一个或多个传感器。
23.本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求来理解主题。
24.通过参考以下说明书、权利要求和附图,前述内容以及其他特征和实施例将变得更加明显。
附图说明
25.下面参考以下附图详细描述本技术的说明性实施例:
26.图1是示出根据本公开的一些示例的示例图像处理系统的简化框图;
27.图2是示出根据本公开的一些示例的用于训练建模系统以估计与输入图像相关联的现实世界(real-world)坐标并使用现实世界坐标来生成由输入图像捕获的对象的三维(3d)模型的示例训练框架的示图;
28.图3是示出根据本公开的一些示例的用于生成裁剪的图像中的对象的网格参数的示例推断阶段的示图;
29.图4是示出根据本公开的一些示例的示例3d建模系统的示图;
30.图5a是示出根据本公开的一些示例的用于3d手建模用例的示例训练过程的示图;
31.图5b是示出根据本公开的一些示例的用于估计现实世界帧中的3d模型的示例模型推断过程的示图;
32.图6是示出根据本公开的一些示例的用于使用单目图像对3d网格进行建模的示例过程的流程图;以及
33.图7是示出用于实现本文描述的某些方面的示例系统架构的示图。
具体实施方式
34.下面提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合应用,这对于本领域技术人员来说是显而易见的。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本技术的实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。
35.随后的描述仅提供示例性实施例,并且不旨在限制本公开的范围、适用性或配置。相反,示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的使能描述。应当理解,在不脱离所附权利要求中阐述的本技术的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
36.如前所述,可以为图像中捕获的对象构建三维(3d)模型。3d模型可以用于各种应用中,例如多媒体(例如,电影、视频游戏、扩展现实等)、计算机视觉(例如,运动跟踪、形状建模、对象映射、图像识别、姿势估计、图像配准和变形、场景重建、图像分割、动画等)、机器人和自动化、车辆系统(例如,自主车辆)、航空系统、工业设计、医疗保健等。3d建模可能是具有挑战性且复杂的,特别是在对关节连接的对象进行建模时。此外,3d建模技术通常是低效的、不准确的和不一致的,并且难以处理噪声、模糊性和配置变化等。
37.在一些示例中,可以实现深度学习或其他方法以建模和/或以其他方式理解关节连接的对象和/或其他对象。然而,深度学习和其他方法可能不提供对象的完整3d网格,并且通常在与现实世界帧(frame)相反的根相对帧(root-relative frame)中对对象进行建模。在一些情况下,可以实现运动捕获技术以用于对象姿势估计。然而,这样的运动捕获技术可能是昂贵的并且难以实现,特别是在不受约束的环境中。
38.在一些情况下,立体算法可以用于计算在图像中捕获的对象的深度信息。深度信息可以用于对图像中的对象进行建模。然而,立体算法通常依赖于有效的二维(2d)特征匹
配,并且涉及用于特征匹配的阈值的显著手动调谐。此外,利用立体算法,当相机透镜具有固有的径向失真(radial distortion)时,难以保持对极(epipolar)约束。
39.深度学习算法可用于计算深度信息并对图像中的对象建模。然而,深度学习算法可能是不灵活的,并且通常需要大量的训练和重新训练(retrain)。例如,深度学习算法通常受到训练它们的立体几何形状的约束,并且当图像捕获设备组装有用于其他用例的不同几何形状时,深度学习算法可能会失败。在这样的场景中,可能需要针对正在实现的特定立体几何形状重新训练深度学习算法。
40.如前所述,建模方法通常根据与现实世界帧相反的根相对帧来对对象进行建模。通过根据与现实世界帧相反的根相对帧来对对象进行建模,这种生成的模型的潜在用途和准确性可能在各种应用中受到限制,包括涉及与现实世界/物理场景中的对象和/或空间的交互的应用。这样的建模方法也未能考虑现实世界/物理场景内的空间关系。
41.在一些方面,本文描述了用于将图像中的3d目标(例如,对象、人、部件、结构等)准确且有效地建模为3d网格的系统、装置、过程(也称为方法)和计算机可读介质(在本文中统称为“系统和技术”)。本文描述的系统和技术可以在与3d目标所在的场景相对应的现实世界坐标系(例如,具有物理场景的垂直、水平和深度维度中的坐标的3d坐标系)中对3d目标进行建模。在一些情况下,系统和技术可以根据由图像捕获设备捕获的单目图像对3d目标进行建模。根据一些示例,系统和技术可以使用关节连接的对象(articulated object)的单目图像来对关节连接的对象进行建模。在一些示例中,如本文进一步描述的,关节连接的对象可以被建模为蒙皮网格(skinned mesh)。此外,本文描述的系统和技术可以在对象所在的现实世界场景的3d坐标中生成对象的3d网格。例如,系统和技术可以将网格参数从参考帧(例如,相机帧)变换到现实世界帧(例如,现实世界坐标系),并且在现实世界帧的3d坐标中生成对象的3d网格。
42.在一些情况下,本文描述的3d建模系统和技术可以允许根据单目图像(和/或任何其他图像和/或图像的组合)进行灵活的深度估计和3d建模。在一些方面,系统和技术可以使用相机校准信息和/或其他元数据来估计3d现实世界坐标系和/或对3d现实世界坐标系中的目标进行建模。在一些情况下,系统和技术可以学习用于对目标建模的相机校准。3d建模系统和技术是灵活的,并且可以用具有不同参数、能力和/或空间信息的图像捕获设备来实现。本文描述的3d建模系统和技术可以提供准确和有效的结果,而无需对不同的图像捕获设备进行附加的训练或重新训练和/或在空间几何形状发生变化时提供准确和有效的结果。
43.本文描述的用于3d建模的系统和技术的示例在图1至图7中示出并在下面描述。图1是示出示例图像处理系统100的示图。图像处理系统100可以执行3d建模,如本文进一步描述的。此外,图像处理系统100可以执行各种图像处理任务、效果、计算等,诸如例如色度键控效果、扩展现实效果、图像配准和变形、运动跟踪、姿势估计、对象映射、特征提取、图像识别(例如,面部识别、对象识别等)、对象检测(例如,表情检测、性别检测、眼睛注视检测、年龄估计、种族估计等)、深度估计、3d网格参数细化和拟合、参数优化、自动化、机器视觉、对象建模和配准和/或任何其他图像处理任务、效果和/或计算。
44.在一些说明性示例中,图像处理系统100可以使用单目图像输入来生成蒙皮网格。在一些示例中,图像处理系统100可以从捕获场景中的对象的单目图像推断由蒙皮网格模
型表示的对象的3d形状和姿势。在一些情况下,图像处理系统100可以从捕获对象的单目图像确定对象的现实世界坐标(例如,现实世界/物理场景或环境内的对象的坐标)。在一些示例中,图像处理系统100可以从单目图像输入确定关于对象的现实世界深度信息(例如,现实世界/物理场景或环境内的对象的深度信息)和/或从单目图像输入估计现实世界坐标帧(例如,现实世界/物理场景或环境的坐标系)。在一些情况下,图像处理系统100可以使用深度信息和/或现实世界坐标帧来导出现实世界坐标帧中的对象的网格。在一些示例中,所生成的网格可以被实现用于各种应用。例如,所生成的网格可以在涉及与场景内的其他对象和/或空间的交互的应用中实现,诸如扩展现实(例如,虚拟现实、增强现实等)应用、机器人和自动化等。
45.建模的对象可以包括任何目标,诸如例如身体部位、身体、工具、设备、结构等。在一些示例中,建模的对象可以包括关节连接的对象。关节连接的对象可以包括至少两个组件,在它们中的任一个之间具有多达六个自由度。例如,关节连接的对象,关节连接的对象可以包括由固定运动树(kinematic tree)约束的刚性3d结构的集合,其中父子关系引导该对象的运动。为了说明,关节连接的对象可以包括具有一个或多个关节或连接(或关节表面)的结构,其允许结构的一个或多个组件(例如,零件、部分、子结构、骨骼等)相对于结构的不同组件移动和/或在结构的任何组件之间提供一定的移动自由度(例如,旋转、平移等)。关节连接的对象的非限制性示例可以包括身体(例如,人体、某些动物体等)、身体部位(例如,手、头、腿、脚等)、操纵机器人、某些工具等。
46.在一些示例中,可以使用蒙皮模型对建模的对象进行建模。蒙皮模型可以包括关节连接的对象的模型,其中表面网格的顶点连接到若干骨架(例如,结构、框架、骨骼等)位置,并提供表面网格(例如,包括刚性和非刚性部分)的软的、非刚性和/或柔性变形。在一些示例中,图像处理系统100可以组合参数网格模型和非参数网格模型的益处。例如,在一些情况下,图像处理系统100可以在训练期间使用非参数网格模型(除了参数网格模型之外或代替参数网格模型)并且在推断阶段使用参数网格模型。非参数网格可以包括其中网格中的所有顶点和面都是已知的网格。参数网格可以包括由参数子集定义的网格。在一些示例中,参数网格可以包括由一组固定参数约束的3d结构,该组固定参数控制建模的对象的表面顶点的姿势、位置和形状。由控制表面顶点的姿势、位置和形状的一组固定参数约束的3d结构的非限制性示例可以包括诸如圆柱体、球体、长方体之类的均匀形状的对象,以及诸如身体(例如,人体、动物身体等)、身体部位(例如,手等)、操纵机器人等之类的复杂形状和/或结构的对象。
47.如本文进一步描述的,非参数网格模型的使用可以帮助增加由图像处理系统100生成的网格的准确性和结果,并且在推断时使用参数网格模型可以增加建模效率、增加灵活性和可扩展性、减小3d网格模型的表示的大小、减少延迟、减少设备(例如,图像处理系统100)处的功率/资源使用/要求等。在一些示例中,图像处理系统100可以使用非参数化网格模型来学习更好的拟合能力和/或性能,并且可以学习输出参数以驱动网格的建模。图像处理系统100可以在推断时有效且准确地使用参数化网格模型,并且可以使用一个或多个神经网络来回归模型参数。
48.在一些示例中,图像处理系统100可以使用来自图像捕获设备(例如,图像传感器102或图像传感器104)的参数(诸如设备校准参数、失真参数、透镜参数、旋转和平移参数
等)和/或其他元数据(例如,输入图像大小、输入图像的裁剪的大小、与捕获的对象相对应的图像区域的大小、输入图像内的对象的位置、径向失真、透镜失真等)来学习和/或估计由图像捕获的对象的现实世界3d坐标和/或将网格参数从参考帧变换到现实世界帧。在一些示例中,建模方法可以推广到不同的图像捕获设备和/或透镜。例如,校准输入和/或损失可以允许图像处理系统100(和/或由图像处理系统100实现的神经网络)确定和/或查明特定的图像捕获设备透镜配置。图像处理系统100可以提供失真感知缩放。例如,图像处理系统100可以使用关于裁剪的图像对象的区域(诸如边界框)的大小和裁剪的图像对象的位置的信息来学习和/或建模裁剪的图像对象的径向失真和/或缩放。
49.在图1所示的示例中,图像处理系统100包括图像传感器102、存储108、计算组件110、图像处理引擎120、建模引擎122和渲染引擎124。图像处理系统100还可以可选地包括一个或多个附加图像传感器104和/或其他传感器106,诸如雷达传感器、光检测和测距(lidar)传感器、红外(ir)传感器、陀螺仪、加速度计、惯性测量单元(imu)、音频传感器等。
50.图像处理系统100可以是计算设备或多个计算设备的一部分。在一些示例中,图像处理系统100可以是电子设备(或多个设备)的一部分,诸如相机系统(例如,数字相机、ip相机、视频相机、安全相机等)、电话系统(例如,智能电话、蜂窝电话、会议系统等)、台式计算机、xr设备(例如,头戴式显示器等)、智能可穿戴设备(例如,智能手表、智能眼镜等)、膝上型或笔记本计算机、平板计算机、机顶盒、电视、显示设备、数字媒体播放器、游戏控制台、视频流设备、无人机、汽车中的计算机、物联网(iot)设备或任何其他合适的电子设备。
51.在一些实施方式中,图像传感器102、图像传感器104、其他传感器106、存储108、计算组件110、图像处理引擎120、建模引擎122和/或渲染引擎124可以是同一计算设备的一部分。例如,在一些情况下,图像传感器102、图像传感器104、其他传感器106、存储108、计算组件110、图像处理引擎120、建模引擎122和渲染引擎124可以集成到智能电话、膝上型计算机、平板计算机、智能可穿戴设备、游戏系统、服务器和/或任何其他计算设备中。在其他实施方式中,图像传感器102、图像传感器104、其他传感器106、存储108、计算组件110、图像处理引擎120、建模引擎122和/或渲染引擎124中的任何一个可以是两个或更多个单独的计算设备的一部分。
52.图像传感器102和图像传感器104可以包括能够捕获图像的图像传感器和/或图像捕获设备。例如,图像传感器102和图像传感器104可以包括能够捕获红-绿-蓝(rgb)图像的传感器。在一些示例中,图像(或帧)可包括每像素具有红色、绿色和蓝色颜色分量的红-绿-蓝(rgb)图像或帧;每个像素具有亮度分量和两个色度(颜色)分量(色度-红色和色度-蓝色)的亮度、色度-红色、色度-蓝色(ycbcr)图像或帧;或任何其他合适类型的彩色或单色画面(picture)。
53.在一些情况下,图像传感器102和/或图像传感器104可以包括单目图像捕获设备(诸如单目相机)或可以是单目图像捕获设备的一部分。在一些示例中,图像传感器102和/或图像传感器104可以捕获单目图像。图像处理系统100可以使用由图像传感器102和/或图像传感器104捕获的单目图像作为3d建模的输入,如本文进一步描述的。
54.在一些情况下,图像传感器102和/或图像传感器104可以是任何类型的图像传感器(或图像捕获设备)和/或视频传感器(或视频捕获设备)。例如,图像传感器102和/或图像传感器104可以包括数字相机传感器、视频相机传感器、智能电话相机传感器、被包括作为
电子装置(例如,电视、计算机、相机等)的一部分的图像/视频捕获设备等。在一些情况下,图像传感器102和/或图像传感器104可以是相机或计算设备的一部分,例如数字相机、视频相机、ip相机、智能电话、智能电视、游戏系统、扫描仪、多相机系统或其它计算设备。例如,图像传感器102和图像传感器104可以是双相机系统或设备(例如智能电话、相机等)的部分。图像传感器102和图像传感器104可以捕获图像数据和/或视频内容(例如,原始图像和/或视频数据)。图像数据和/或视频内容可以由如本文所述的计算组件110、图像处理引擎120、建模引擎122和/或渲染引擎124处理。
55.其他传感器106可以是用于检测和测量诸如距离、运动、位置、深度、速度等信息的任何传感器。其他传感器的非限制性示例包括激光雷达、陀螺仪、加速度计、磁力计、ir传感器、惯性测量单元(imu)、雷达传感器、机器视觉传感器等。在一些情况下,图像处理系统100可以包括其他传感器,诸如智能场景传感器、语音识别传感器、撞击传感器、位置传感器、倾斜传感器、光传感器等。
56.存储108可以是用于存储数据(例如图像或视频数据)的任何存储设备。此外,存储108可以存储来自图像处理系统100的任何组件的数据。例如,存储108可以存储来自图像传感器102、图像传感器104、其他传感器106、计算组件110的数据或测量(例如,参数、输出、生成的图像、计算结果、模型等),和/或来自图像处理引擎120、建模引擎122和/或渲染引擎124中的任何一个的数据(例如,输出图像、处理结果、模型等)。在一些示例中,存储108可以包括用于存储数据(例如,图像数据)以供计算组件110处理的缓冲器。
57.在一些实施方式中,计算组件110可以包括中央处理单元(cpu)112、图形处理单元(gpu)114、数字信号处理器(dsp)116和/或图像信号处理器(isp)118。计算组件110可以执行各种操作,诸如3d建模、图像增强、对象或图像分割、计算机视觉、图形渲染、扩展现实(例如,虚拟现实、增强现实等)、图像/视频处理、传感器处理、识别(例如,文本识别、对象识别、特征识别、面部识别、场景变化识别等)、对象检测(例如,形状检测、面部表情检测、眼睛注视检测、年龄检测、性别检测、种族检测、模式检测等)、视差检测、机器学习、深度估计、过滤、网格参数细化和拟合以及本文描述的各种操作中的任何操作。在一些示例中,计算组件110可以实现图像处理引擎120、建模引擎122和渲染引擎124。在其他示例中,计算组件110还可以实现一个或多个其他处理引擎。
58.用于图像处理引擎120、建模引擎122和渲染引擎124的操作可以由计算组件110中的一个或多个来实现。在一个说明性示例中,图像处理引擎120和建模引擎122(以及相关联的操作)可以由cpu 112、dsp 116和/或isp 118实现,并且渲染引擎124(以及相关联的操作)可以由gpu 114实现。在一些情况下,计算组件110可以包括其他电子电路或硬件、计算机软件、固件或其任何组合,以执行本文描述的各种操作中的任何操作。
59.在一些情况下,计算组件110可以接收由图像传感器102和/或图像传感器104捕获的数据(例如,图像数据等),并且对在来自图像传感器102和/或图像传感器104的数据中捕获的对象进行建模。在一些示例中,图像处理系统100可以从图像传感器102和/或图像传感器104接收设备数据,诸如相机校准数据、旋转和平移参数、透镜数据和/或任何其他数据和/或设备内部(intrinsics)数据。图像处理系统100可以使用该数据来在现实世界参考帧中生成3d网格模型。
60.计算组件110可以实现图像处理引擎120和/或建模引擎122以执行各种图像处理
操作,诸如3d建模、模型优化和拟合、对象跟踪、姿势估计、深度估计、xr渲染、计算机视觉、变换等。例如,计算组件110可以实现图像处理引擎120和/或建模引擎122以执行本文描述的3d建模技术。计算组件110可以处理由图像传感器102和/或图像传感器104(和/或任何其他图像传感器)捕获的图像数据、存储在存储108中的图像数据、从远程源(例如,远程相机、服务器、内容提供者、其任何组合、和/或其他远程源)接收的图像数据、从源的组合获得的图像数据、其任何组合、和/或其他图像数据。
61.在一些示例中,建模引擎122可以是图像处理引擎120的一部分或由图像处理引擎120实现。在其他示例中,建模引擎122可以与图像处理引擎120分离(例如,不是图像处理引擎120的一部分或由图像处理引擎120实现)。在一些情况下,建模引擎122可以包括(例如,可以实现、可以包含、可以生成等)一个或多个神经网络和/或模型。例如,在一些情况下,建模引擎122可以包括和/或实现一个或多个神经网络和/或蒙皮模型。蒙皮模型的说明性示例包括具有关节连接和非刚性变形的手模型或mano模型,如在javier romero等人的“具体化的手:一起建模和捕获手和身体(embodied hands:modeling and capturing hands and bodies together)”,《美国计算机学会图形学学报(acm transactions on graphics)》,第36卷,第6期,第245条(2017年11月)中所描述的,其全部内容通过引用并入本文并用于所有目的。在一些示例中,建模引擎122可以生成蒙皮模型和网格,如本文进一步描述的。在一些示例中,建模引擎122可以实现任何其他模型,诸如任何类型的统计模型、神经网络模型等。
62.在一些情况下,建模引擎122可以包括和/或实现神经网络系统、变换系统、优化器和/或一个或多个模型,如本文所述。例如,建模引擎122可以实现图2至图5b中所示并在本文中讨论的任何神经网络和模型。
63.在一些示例中,渲染引擎124可以从计算组件110接收输出图像数据,并且渲染输出图像数据以用于在诸如例如屏幕/显示器、电视、投影仪等的显示设备上呈现。在一些示例中,渲染引擎124可以从图像处理引擎120和/或建模引擎122接收生成的图像和/或网格模型,并渲染图像和/或网格模型。
64.虽然图像处理系统100被示出为包括某些组件,但是普通技术人员将理解,图像处理系统100可以包括比图1中所示的组件更多或更少的组件。例如,在一些情况下,图像处理系统100还可以包括一个或多个存储器设备(例如,ram、rom、高速缓存等)、一个或多个网络接口(例如,有线和/或无线通信接口等)、一个或多个显示设备和/或图1中未示出的其他硬件或处理设备。下面关于图7描述可以用图像处理系统100实现的计算设备和硬件组件的说明性示例。
65.如前所述,图像处理系统100可以估计在图像(例如,单目图像和/或任何其他图像)和/或对象所在的场景中捕获的对象的现实世界坐标(例如,位置和深度信息)。图像处理系统100可以使用图像和元数据来估计对象的现实世界坐标。图像处理系统100可以使用现实世界坐标来生成现实世界帧(例如,物理场景/环境的帧或坐标系)中的对象的3d网格模型。在一些示例中,图像处理系统100可以计算损失并使用损失来惩罚估计的3d网格和/或关键点位置、3d部分的估计长度(例如,骨骼长度、结构长度等)、3d部分的估计方向(例如,骨骼方向、结构方向等)、估计的3d网格和/或3d关键点的二维(2d)投影、姿势和形状正则化等中的误差。在一些示例中,图像处理系统100可以实现端到端可训练建模系统以在现实世界帧中生成3d模型。在一些情况下,图像处理系统100可以实现多阶段建模算法。例如,
图像处理系统100可以实现包括训练阶段和推断阶段的算法。
66.在一些示例中,在训练阶段中,可以利用损失来训练神经网络以估计网格参数。例如,给定捕获裁剪的对象的输入单目图像,可以使用相机校准数据、对象裁剪大小数据、裁剪位置信息、目标3d网格和/或对应的3d网格真实值(ground truth)、径向失真信息和/或任何其他数据来训练神经网络。在一些示例中,可以使用参数和非参数网格模型/参数来训练神经网络。在一些情况下,神经网络可以回归网格参数和完整的非参数化网格图。
67.图2是示出用于训练建模系统以估计与输入图像相关联的现实世界坐标并使用现实世界坐标来生成由输入图像捕获的对象的3d模型的示例训练框架200的示图。在一些示例中,训练框架200和建模系统可以由图1所示的图像处理系统100实现。在一些示例中,训练框架200可以在建模系统的训练阶段期间实现。训练的建模系统可以在推断阶段生成3d模型,如下面进一步描述的。3d模型可以在场景和/或环境中的现实世界坐标中或相对于现实世界坐标生成。在一些示例中,现实世界坐标可以对应于由输入图像捕获的场景和/或对象所在的位置。
68.在图2中,网络210可以接收裁剪的图像202和元数据204,并且使用裁剪的图像202和元数据204来生成用于对裁剪的图像202中的对象进行建模的网格参数212和特征214。在其他示例中,网络210可以替代地接收元数据204和未裁剪的图像,以用于根据本文描述的技术对未裁剪的对象进行建模。
69.在一些情况下,裁剪的图像202可以包括由图像捕获设备(例如,图像传感器102或图像传感器104)捕获的单目图像。可以裁剪单目图像以包括由图像捕获的对象并移除图像的其他部分(part)/一部分(portion)和/或相对于图像的其他部分/一部分调整图像中的对象的大小。在一些示例中,网络210可以确定包含在裁剪的图像202中捕获的对象的区域和/或边界框。例如,网络210可以确定包含在裁剪的图像202中捕获的对象的边界框以及包含对象的边界框的形状、大小和/或位置。
70.元数据204可以包括与图像捕获设备(例如,图像传感器102或图像传感器104)相关联的内部参数和/或校准信息,诸如例如焦距信息、图像传感器格式信息、设备坐标与图像坐标之间和/或3d空间中的坐标与2d图像中的坐标之间的映射和/或关系等。在一些示例中,元数据204还可以包括其他信息,诸如例如径向失真信息、图像裁剪大小、在裁剪的图像202中捕获的对象(和/或包含在裁剪的图像202中捕获的对象的边界框)的大小和/或位置、图像缩放信息、特征和/或关键点可见性和/或遮挡信息、透镜失真信息和/或任何其他元数据。
71.网络210可以包括一个或多个神经网络。在一些示例中,网络210可以包括卷积神经网络(cnn)编码器模型。在一些示例中,网络210可以包括残差神经网络。在其他示例中,网络210可以包括任何其他神经网络和/或神经网络架构。
72.网格参数212可以包括由网络210针对在裁剪的图像202中捕获的对象生成的3d网格参数。3d网格参数可包括例如3d网格/3d关键点的旋转参数、3d网格/3d关键点的平移参数、3d网格/3d关键点的纹理参数(例如,描述对象的纹理(例如对象的皮肤或表面的纹理)的参数)、对象的姿势和形状参数、3d关键点的3d坐标和/或任何其它网格参数。在一些示例中,网格参数212可以对应于和/或可以相对于图像捕获设备的参考帧(例如,图像捕获设备的视角和/或坐标系)和/或现实世界帧。
73.在一些示例中,特征214可以包括特征嵌入(feature embeddings)。特征嵌入可以包括与裁剪的图像202和/或元数据204相关联的离散变量和/或特征的低维学习矢量表示。在一些示例中,特征214可以包括提取的元数据特征和图像特征。在一些情况下,特征214可以包括估计的3d关键点和/或网格参数的投影(例如,2d或3d投影),并且可以将元数据204的一个或多个部分(诸如图像捕获设备校准信息或内部信息)嵌入元数据204中。在一些示例中,特征214可将提取的特征(例如,对象特征、关键点、关键点位置、关键点可见性和/或遮挡信息等)映射到图像捕获设备的参考坐标系(例如,图像捕获设备的参考帧)和/或现实世界坐标系(例如,现实世界/物理场景或环境中的坐标)。
74.模型222可以处理网格参数212以生成在裁剪的图像202中捕获的对象的3d网格226a。模型222可以包括一个或多个神经网络模型。在一些示例中,模型222可以包括蒙皮模型,诸如mano模型。在一些情况下,3d网格226a可以包括参数网格模型。在一些示例中,3d网格226a可以包括与包含对象的场景(例如,对象位于其中的物理环境)相关联的现实世界帧中的网格模型。在其他情况下,3d网格226a可以包括在图像捕获设备的参考帧中和/或相对于图像捕获设备的参考帧的网格模型。
75.在一些情况下,模型222可以估计现实世界帧的深度信息并执行坐标变换以确定现实世界3d坐标。在一些示例中,模型222可以估计现实世界帧中的3d网格226a的参数(例如,3d位置、旋转、平移等)。
76.网络220可以处理特征214以生成在裁剪的图像202中捕获的对象的3d网格226b。在一些情况下,网络220可以包括一个或多个神经网络。例如,网络220可以包括解码器cnn模型。在一些情况下,3d网格226b可以包括非参数网格模型。在一些示例中,3d网格226b可以包括与包含对象的场景(例如,对象所在的物理环境)相关联的现实世界帧中的网格模型。在其他示例中,3d网格226b可以包括在图像捕获设备的参考帧中和/或相对于图像捕获设备的参考帧的网格模型。
77.在一些情况下,网络220可以估计现实世界帧的深度信息并执行坐标变换以确定现实世界3d坐标。在一些示例中,网络220可以使用一个或多个非参数方法来预测现实世界帧中的3d网格226b。
78.训练框架200可以使用对象的目标网格228来计算3d网格226a和3d网格226b的损失230。在一些示例中,目标网格228可以表示在裁剪的图像202中捕获的对象的期望的、准确的和/或真实3d网格模型。在一些情况下,目标网格228可以包括从图像捕获设备的视角(例如,从图像捕获设备的参考帧)的现实世界帧中的网格模型。
79.在一些情况下,损失230可以基于目标网格228与3d网格226a和226b中的关键点和/或参数之间的距离和/或差异。在一些示例中,损失230可以包括3d网格损失、3d关键点损失和/或2d关键点损失(例如,关键点和/或特征214的2d投影的损失)。在一些情况下,损失230可以包括估计的3d网格和/或关键点位置、估计的3d部分长度(例如,骨骼长度、结构长度等)、估计的3d部分方向(例如,骨骼方向、结构方向等)、估计的3d网格和/或关键点的2d投影、姿势和形状正则化中的损失和/或任何其他损失。
80.优化器232可以使用损失230来生成网络210和网络220的更新234。损失230可以惩罚估计的3d网格和/或关键点位置、3d部分长度、3d部分方向、估计的3d网格和/或关键点的2d投影、姿势和形状正则化等中的误差。例如,优化器232可以使用损失230作为反馈来生成
调整(例如,优化、细化等)网络、网格和/或现实世界帧参数的更新234。在一些情况下,更新234可以包括用于网络210和网络220的更新的网络参数。在一些示例中,网络210和网络220可以使用来自更新234的更新的参数来更好地将3d模型拟合到现实世界帧。在一些情况下,网络210和网络220可以在如上所述的一个或多个训练迭代中使用更新的参数。网络210可以使用更新的参数来处理裁剪的图像202和元数据204,并且网络220可以使用更新的参数来生成另一3d网格226b,如前所述。
81.在一些情况下,优化器232可以使用损失230来估计细化的网格和/或网络参数。优化器232可以是一阶或二阶优化器。在一些示例中,优化器232可以实现用于求解无约束非线性优化问题的迭代方法。例如,优化器232可以实现broyden-fletcher-goldfarb-shanno(bfgs)算法或有限存储器bfgs(l-bfgs)算法。在其他示例中,优化器232可以实现任何其他优化算法。
82.在一些示例中,图像处理系统100可以实现图2所示的训练框架200。在一些情况下,网络210、网络220、网络220和/或优化器232可以由图像处理引擎120和/或建模引擎122实现。在一些情况下,图像处理系统100可以实现包括训练阶段和推断阶段的多阶段建模算法。例如,图像处理系统100可以使用训练框架200在如上所述的训练阶段期间执行一个或多个训练迭代。在一些示例中,图像处理系统100可以使用训练框架200来执行一定数量的训练迭代并生成一定数量的更新(例如,更新234),或者继续执行训练迭代并生成更新(例如,更新234),直到一个或多个损失230达到阈值。在一些示例中,图像处理系统100可以使用训练的建模系统在推断阶段中生成3d网格模型,如本文进一步描述的。
83.图3是示出用于生成裁剪的图像202中的对象的网格参数302的示例推断阶段300的示图。在一些示例中,可以在使用图2所示的训练框架200训练建模系统之后执行推断阶段300。可以执行推断阶段300以在现实世界坐标系/帧中生成对象的3d网格。
84.如图所示,网络210可以处理裁剪的图像202和元数据204以生成网格参数302。裁剪的图像和/或元数据可以与图2中的训练框架200使用的裁剪的图像和/或元数据相同或不同。此外,用于捕获图3中的裁剪的图像并且与图3中的元数据中的一些或全部相关联的图像捕获设备(例如,图像传感器102或图像传感器104)可以与用于捕获图2中的裁剪的图像并且与图2中的元数据中的一些或全部相关联的图像捕获设备相同或不同。出于说明的目的,图3示出了网络210处理与在图2中的训练阶段期间由网络210处理的裁剪的图像和元数据相同的裁剪的图像(例如,裁剪的图像202)和元数据(例如,元数据204)。
85.在一些示例中,网络210可以使用元数据204来估计与裁剪的图像202(和/或与裁剪的图像202相关联的场景)相关联的现实世界坐标,并且使用现实世界坐标来生成由裁剪的图像202捕获的对象的3d模型的网格参数302。在一些示例中,网络210可以使用网格参数302来输出在现实世界坐标中生成的3d模型。在一些情况下,可以从裁剪的图像202和/或图像捕获设备的参考帧在现实世界坐标中生成3d模型。在一些情况下,现实世界坐标可以对应于由裁剪的图像202捕获的场景和/或对象所在的位置。
86.在一些情况下,网格参数302可以包括用于导出现实世界帧中的对象的3d网格的参数。在一些示例中,3d网格可以包括参数网格模型。在一些情况下,参数网格模型可以包括蒙皮网格。网格参数302可以包括现实世界帧中的3d关键点位置、现实世界帧中的旋转参数、现实世界帧中的平移参数、形状和/或纹理参数、姿势参数和/或任何其他网格参数。在
一些示例中,旋转和平移参数可以包括现实世界帧中的预测的旋转和平移。可以从与裁剪的图像202和/或图像捕获设备相关联的参考帧来预测旋转和平移。
87.图4是示出示例3d建模系统400的示图。3d建模系统400被示出为根据示例用例对手404进行建模。该示例中的3d建模系统400包括在训练阶段期间使用的组件和在推断阶段期间使用的组件。例如,在训练阶段期间,3d建模系统400可以使用图4中所示的任何和/或所有数据和/或组件(以及图4中未示出的其他组件和/或数据),并且在推断阶段期间,3d建模系统400可以使用图4中所示的数据和组件的子集,诸如例如裁剪的图像402、元数据406、神经网络410、网格模型参数414和/或可微分模型430。
88.在图4中,网络410可以与图2中所示的网络210相同或不同,神经网络420可以与图2中所示的模型222相同或不同,并且可微分模型430可以与图2中所示的网络220相同或不同。此外,在一些示例中,3d建模系统400可以由图1所示的图像处理系统100实现。
89.在该示例中,裁剪的图像402包括/捕获由3d建模系统400建模的手404。在一些示例中,裁剪的图像402可以基于由图像捕获设备(例如,图像传感器102或图像传感器104)捕获的单目图像。可以裁剪单目图像以包括手404并排除单目图像的一个或多个其他部分。在一些示例中,为了生成裁剪的图像402,图像处理系统100可以检测单目图像中的手404并裁剪单目图像以在图像的中心区域处或附近包括手404。在一些示例中,3d建模系统400可以如本文所述使用捕获手404的未裁剪的图像来对手404进行建模。
90.神经网络410可以使用裁剪的图像402和元数据406来生成用于导出手404的3d网格模型的网格参数和特征嵌入。神经网络410可以包括cnn或适合于处理如本文所述的图像数据的任何其他神经网络。在一些示例中,神经网络410可以包括编码器cnn,诸如resnet、mobilenet等。元数据406可以包括与捕获与裁剪的图像402相关联的图像数据的图像捕获设备相关联的内部参数(例如,设备或相机内部)。在一些情况下,元数据406可以包括关于裁剪的图像402、手404、图像捕获设备等的附加元数据。
91.元数据406可以包括与图2中的元数据204相同或不同类型的信息。在一些示例中,元数据406可以包括与捕获与裁剪的图像402相关联的图像数据的图像捕获设备(和/或图像捕获设备的透镜)相关联的径向失真、与图像捕获设备相关联的焦距、与图像捕获设备(和/或图像捕获设备的透镜)相关联的光学中心、手404的裁剪大小、包含手404的边界框的大小和/或位置、裁剪的图像402(例如,相对于手404和/或未裁剪的图像)和/或手404(例如,相对于裁剪的图像402和/或未裁剪的图像)的缩放比、手404的点和/或区域到与图像捕获设备相关联的透镜的光学点和/或区域的距离(例如,手404的中心到镜头的光学中心的距离)、和/或任何其他元数据和/或设备(例如,图像捕获设备)校准信息。
92.在推断阶段期间,神经网络410可生成手404的3d网格的网格模型参数414。可微分模型430可使用网格模型参数414来生成手404的3d关键点432和3d网格模型434。在一些示例中,如前所述,可微分模型430可以包括蒙皮模型。在一些情况下,可微分模型430可以实现正向运动算法(forward kinematics algorithm)。在一些示例中,可微分模型430可以基于固定手运动树,其包含手404的不同关节和骨骼位置之间的子父关系。
93.在一些示例中,网格模型参数414可以包括从图像捕获设备的帧变换到现实世界帧的形状参数、姿势参数、网格旋转参数、网格平移参数和/或3d关键点位置。在一些情况下,网格模型参数414可以包括针对来自图像捕获设备的帧的现实世界帧预测的旋转和平
移参数。在一些示例中,形状参数可以指示手404的不同骨骼在3d空间中的长度。形状参数还可以指示关于手404(和/或手404的骨骼)的其他形状信息,诸如手404和/或手404的骨骼的维度(例如,大小、宽度等)。在一些示例中,形状参数可以包括和/或表示包括手404的表面上的3d顶点的参数化三角网格。
94.在一些情况下,姿势参数可以指示手404和/或手404的骨骼的方向。例如,姿势参数可以指示手404中的骨骼的3d方向。在一些示例中,姿势参数可以包括和/或表示包括多个3d关键点位置和角度的运动链。
95.在训练阶段期间,神经网络410还可以生成用于对手404进行建模的3d关键点和特征嵌入。在一些示例中,特征嵌入可以基于元数据406和从裁剪的图像402提取的特征。在一些情况下,3d关键点和特征嵌入可以包括关键点位置和可见性数据412。关键点位置和可见性数据412可包括3d关键点位置(例如,沿着x(例如,水平)轴、y(例如,垂直)轴和z(例如,深度)轴的关键点的位置)和指示关键点可见(或遮挡)程度的可见性值。举例来说,如果手404中的关节被手404中的手指遮挡,那么关节可具有指示关节被遮挡的可见性值,并且手指可具有指示手指在图像中可见的可见性值。
96.神经网络420可以从神经网络410接收3d关键点和特征嵌入,并且生成手404的3d网格422和与3d网格422相关联的3d关键点。在一些示例中,可基于关键点位置和可见性数据412生成3d关键点424。神经网络420可以包括cnn或适合于生成如本文所述的3d网格422的任何其他架构。在一些示例中,神经网络420可以包括图形卷积解码器网络。
97.3d建模系统400可以使用来自神经网络420的3d网格422和3d关键点424以及来自可微分模型430的3d网格434和3d关键点432来生成用于/来自图像捕获设备的投影450。投影450可以包括估计的3d网格和关键点(例如,3d网格422、3d关键点424、3d网格434和/或3d关键点432)的2d投影。在一些示例中,投影450可以将3d关键点424和/或3d关键点432投影到2d空间。在一些情况下,3d网格422可以包括非参数网格模型,并且3d网格434可以包括参数网格模型。投影450可以将非参数网格模型(例如,3d网格422)的3d关键点(例如,3d关键点424)和参数网格模型(例如,3d网格434)的3d关键点(例如,3d关键点432)投影到2d空间。
98.3d建模系统400可以使用投影450来生成现实世界帧中的3d关键点452和/或现实世界帧中的3d网格模型454。在一些示例中,3d建模系统400可以使用投影450来计算2d空间中的损失。3d建模系统400可以使用这样的损失来生成和/或更新(例如,优化、调整等)现实世界帧中的3d关键点452和/或现实世界帧中的3d网格模型454。在一些示例中,3d建模系统400还可以计算3d网格/关键点位置、3d骨骼长度、3d骨骼方向和/或姿势和形状正则化的损失,并且使用这种损失来生成和/或更新3d关键点452和/或3d网格模型454。
99.图5a是示出用于3d手建模用例的示例训练过程500的示图。训练过程500可以在用于对裁剪的图像502中的手504进行建模的3d建模系统(例如,3d建模系统400)的训练阶段期间实现。
100.在该示例中,裁剪的图像502由神经网络510的部分512处理以生成和/或确定图像特征,并且元数据506由神经网络510的网络层514处理以生成和/或确定元数据特征。来自网络层514的元数据特征和来自神经网络510的部分512的图像特征可以由网络层516a和516b级联/组合和处理。网络层516a和516b可以执行组合的神经网络前向传递并向网络层518a和518b提供输出。在一些示例中,网络层518a和518b可以回归所提取的特征以确定网
格参数的连续值。
101.在一些情况下,网络层514、516a、516b、518a和518b可以包括完全连接的网络层。在一些情况下,神经网络510的部分512可以包括神经网络510的主干。例如,神经网络510的部分512可以包括神经网络的特征提取器或编码器网络或网络部分(例如,网络层)。元数据506可以与图2中的元数据204和/或图4中的元数据406相同或不同。在一些示例中,元数据506可以包括设备(例如,图像捕获设备)内部和其他元数据,如前所述。
102.例如,元数据506可以包括与捕获与裁剪的图像502相关联的图像数据的图像捕获设备(和/或图像捕获设备的透镜)相关联的失真、与图像捕获设备(和/或图像捕获设备的透镜)相关联的光学中心、焦距、手504和/或裁剪的图像502的裁剪大小、手504(和/或包含手504的边界框)的大小和/或位置、裁剪的图像502(例如,相对于手504和/或未裁剪的图像)和/或手504(例如,相对于裁剪的图像502和/或未裁剪的图像)的缩放比、手504的中心到透镜的光学中心的距离、和/或任何其他元数据和/或设备(例如,图像捕获设备)校准信息。
103.网络层518a可以使用来自网络层516a和516b的输出来生成3d关键点和特征嵌入520。在一些示例中,3d关键点和特征嵌入520可以包括手504的网格的关键点的3d位置(例如,沿着x(例如,水平)轴、y(例如,垂直)轴和z(例如,深度)轴的位置)和对应于关键点的可见性数据(例如,指示相关联关键点的可见性和/或遮挡的可见性值)。在一些情况下,3d关键点和特征嵌入520中的关键点可以对应于裁剪的图像502中的感兴趣的点和/或部分和/或手网格的节点。例如,3d关键点和特征嵌入520中的关键点可以指示手504中的关节和骨骼的3d位置(例如,x、y、z位置)。
104.网络层518b可以使用来自网络层516a和516b的输出来生成旋转和平移参数522、姿势参数524和形状参数526。在一些示例中,网络层518b可以从捕获裁剪的图像502中的手504的图像捕获设备的参考帧(例如,从图像捕获设备帧或坐标系)生成旋转和平移参数522、姿势参数524和形状参数526。
105.网络层518a可以将3d关键点和特征嵌入520输出到变换系统532和非参数网络530。在一些示例中,非参数网络530可以包括cnn,诸如卷积网格解码器网络。非参数网络530可以使用3d关键点和特征嵌入520来生成手504的非参数3d网格模型和/或用于导出手504的非参数3d网格模型的3d关键点。非参数网络530可以将手504的非参数3d网格模型和/或手504的非参数3d网格模型的3d关键点提供给变换系统532。
106.网络层518b可以将旋转和平移参数522提供给变换系统532,并且将姿势参数524和形状参数526提供给参数网络534。参数网络534可以包括参数神经网络模型。例如,参数网络534可以包括参数网格解码器网络。参数网络534可以使用姿势参数524和形状参数526来生成手504的3d网格模型。然后,参数网络534可以将所生成的3d网格模型提供给变换系统532。
107.变换系统532可以将网格参数从设备帧(例如,图像捕获设备的帧)变换到现实世界帧。变换系统532可以考虑非参数网格参数(non-parametric mesh parameters)(例如,来自非参数网络530)和参数网格参数(parametric mesh parameters)(例如,来自参数网络534)两者。例如,变换系统532可以将网格参数从由非参数网络530生成的手504的非参数3d网格模型(和/或用于导出手504的非参数3d网格模型的3d关键点)和由参数网络534生成
的手504的3d网格模型变换到现实世界帧。在一些情况下,变换系统532可以从设备帧(例如,图像捕获设备帧)中的网格参数来预测现实世界帧中的旋转、平移和/或位置参数。
108.在一些示例中,变换系统532可以使用3d关键点和特征嵌入520、旋转和平移参数522、来自非参数网络530的手504的非参数3d网格模型(和/或用于导出手504的非参数3d网格模型的3d关键点)以及来自参数网络534的手504的3d网格模型来生成现实世界帧的网格参数。用于现实世界帧的网格参数可以包括来自现实世界帧的3d网格、来自现实世界帧的3d关键点、来自现实世界帧的3d网格和/或关键点的2d投影、和/或用于现实世界帧的其他网格数据参数预测。
109.在一些情况下,变换系统532可以确定现实世界坐标系并生成现实世界坐标帧的网格参数。在一些示例中,网格参数可以包括现实世界坐标帧中关键点的旋转和平移、现实世界坐标帧中关键点的3d位置、形状参数和/或姿势参数。
110.训练过程500可以使用来自变换系统532的输出(例如,现实世界帧中的网格参数)来确定损失536,以用于针对估计损失惩罚神经网络510。在一些示例中,损失536可以包括估计的3d网格参数和3d关键点位置、3d骨骼长度(或在其他用例中的其他部分/结构长度)、3d骨骼方向(或在其他用例中的其他部分/结构方向)、估计的3d网格和关键点的2d投影和/或姿势和形状正则化的损失。例如,损失536可以包括针对来自非参数网络530和参数网络534的3d网格和3d关键点以及从由非参数网络530和/或参数网络534生成的3d网格和3d关键点投影在2d空间中的关键点计算的损失。
111.优化器538可以使用损失536来生成用于神经网络510的更新540。更新540可以更新/调整用于从裁剪的图像502生成3d网格数据的参数。例如,更新540可以包括用于神经网络510的网络参数。神经网络510可以使用网络参数来生成、减少其输出结果中的一个或多个误差和/或调整(例如,优化)其输出结果。在一些情况下,训练过程500可以基于更新540重复以生成附加损失(例如,损失536)和/或更新(例如,更新540)以增加系统的准确性。在一些示例中,训练过程500可以重复一次或多次迭代,直到训练过程500的输出542实现期望的结果和/或输出542的损失减少阈值量。在一些示例中,输出542可以包括现实世界帧中的3d网格和关键点。一旦训练过程500完成(包括一次或多次迭代),就可以调谐建模系统以生成现实世界帧的3d网格和关键点。调谐的建模系统可以在推断阶段期间估计3d网格和关键点,如本文进一步描述的。
112.在图5a所示的说明性示例中,神经网络510可以与图2所示的网络210和/或图4所示的网络410相同或不同,非参数网络530可以与图2所示的模型222和/或图4所示的神经网络420相同或不同,并且参数网络534可以与图2所示的网络220和/或图4所示的可微分模型430相同或不同。此外,在一些示例中,训练过程500可以由图1所示的图像处理系统100实现。
113.图5b是示出用于估计现实世界帧中的3d模型的示例模型推断过程550的示图。模型推断过程550可以在推断阶段实现,以估计现实世界帧的裁剪的图像502中的目标(例如,手504)的3d网格。在该示例中,关于用于对裁剪的图像502中的手504进行建模的手建模用例来描述模型推断过程550,并且在图5b中所示的训练过程500之后执行模型推断过程550。
114.如图所示,神经网络510可以基于裁剪的图像502和元数据506生成3d关键点和特征嵌入520、旋转和平移参数522、姿势参数524和形状参数526,如先前关于图5a所示的训练
过程500所描述的。变换系统532可以将3d关键点和特征嵌入520以及旋转和平移参数522变换为现实世界帧。在一些示例中,变换系统532可以基于3d关键点和特征嵌入520以及旋转和平移参数522来生成现实世界帧的网格变换参数。
115.模型推断过程550可以使用来自变换系统532的输出(例如,变换的网格参数)、姿势参数524和形状参数526来生成现实世界帧输出560。现实世界帧输出560可以包括用于在现实世界坐标系中导出手504的网格模型的网格参数。在一些示例中,现实世界帧输出560中的网格参数可以包括现实世界坐标系中的3d关键点(例如,现实世界水平(x)维度、垂直(y)维度和深度(z)维度中的关键点)、预测的旋转和平移参数、姿势参数和形状参数。在一些情况下,现实世界帧输出560中的网格参数还可以包括可见性和/或遮挡数据,如前所述。在一些情况下,现实世界帧输出560可以包括用于在现实世界帧中生成手504的3d网格模型的参数网格参数。
116.模型562可以使用现实世界帧输出560来生成用于现实世界帧的手504的3d网格模型(例如,在现实/物理世界/场景的3d坐标系中)。模型562可以包括一个或多个神经网络模型。例如,在一些情况下,模型562可以包括蒙皮模型,诸如先前提到的mano模型。模型562可以输出用于现实世界坐标帧的手504的3d网格模型。在一些示例中,3d网格模型可以包括从图像捕获设备的参考帧变换到现实世界帧的参数网格。在一些示例中,手504的3d网格模型可以包括现实世界帧中的蒙皮模型。
117.如前所述,在一些情况下,训练过程500能够生成非参数网格和参数网格,并且模型推断过程550能够生成参数网格。在训练过程500中使用非参数网格和参数网格可以提供更高的训练结果和学习准确性/性能,以及来自非参数和参数网格的其他益处/优点。在模型推断过程550中使用参数网格可以允许建模系统生成具有较低延迟、较低功率/资源消耗、较高建模效率、较小大小等的模型。
118.为了说明和解释的目的,关于手建模用例描述了图5a和5b中的训练过程500和模型推断过程550。然而,在其他示例中,可以针对其他建模用例实现训练过程500和模型推断过程550。例如,训练过程500和模型推断过程550可以被实现用于建模其他目标,诸如例如其他对象和/或结构(例如,机器人对象、工具、自主车辆、关节连接的结构等)、其他部分(例如,脚、腿、臂、门等)、不同类型的主体(例如,动物、人等)和/或任何其他目标。
119.图6是示出用于对3d对象进行建模的示例过程600的流程图。在块602处,过程600可以包括接收目标(例如,手404、手504)的图像(例如,裁剪的图像202、裁剪的图像402、裁剪的图像502)和元数据(例如,元数据204、元数据406、元数据506)。元数据与图像和/或捕获图像的图像捕获设备(例如,图像传感器102、图像传感器104)相关联。在一些示例中,图像可以是单目图像。
120.在一些示例中,元数据可以包括与图像捕获设备相关联的内部参数。在一些情况下,内部参数可以包括图像捕获设备的焦距、图像捕获设备的光学中心、图像捕获设备的偏斜、图像的大小、与图像捕获设备相关联的透镜失真和/或图像捕获设备的相应参考帧。所述相应参考帧可包括所述第一参考帧。在一些情况下,图像可以包括裁剪的图像,并且元数据可以包括裁剪的图像中围绕目标的边界框的位置。
121.在一些示例中,目标可以包括对象,诸如关节连接的对象。例如,目标可以包括身体(例如,人体、动物体等)、身体部位(例如,手、头、腿等)、操纵器机器人、结构(例如,门
等)、车辆或其他对象。
122.在块604处,过程600可以包括基于图像和元数据来确定目标的第一3d网格的第一3d网格参数。第一3d网格参数和第一3d模型可以对应于与图像和/或图像捕获设备相关联的第一参考帧。在一些示例中,第一参考帧可以是图像捕获设备的坐标参考帧。在一些情况下,可以使用神经网络系统(例如,网络210、网络410、神经网络510)来确定第一3d网格参数。
123.在一些情况下,第一3d网格参数可以包括姿势参数、形状参数、旋转参数、平移参数、位置参数和/或可见性参数。在一些示例中,可见性参数可以指示第一3d网格中的一个或多个点的估计的可见性和/或第一3d网格中的一个或多个点的估计的遮挡。
124.在块606处,过程600可以包括基于第一3d网格参数确定目标的第二3d网格的第二3d网格参数(例如,网格参数302、现实世界帧输出560)。第二3d网格参数和第二3d网格可以对应于第二参考帧。在一些示例中,第二参考帧可以包括目标位于其中的现实世界场景的3d坐标系。在一些情况下,神经网络系统(例如,网络210、网络410、网络510)可以推断刚性变换以确定不同的参考帧(例如,第二参考帧)。在一些示例中,神经网络系统可以推断第一参考帧与第二参考帧之间(例如,相机帧与现实世界帧之间)的刚性变换。
125.在一些示例中,确定第二3d网格参数可以包括将第一3d网格参数中的一个或多个从第一参考帧变换到第二参考帧。例如,确定第二3d网格参数可以包括将旋转、平移、位置和/或姿势参数从第一参考帧变换到第二参考帧。作为另一示例,确定第二3d网格参数可以包括将第一3d网格从第一参考帧变换到第二参考帧。在一些情况下,确定第二3d网格参数可以包括确定第一3d网格从第一参考帧到第二参考帧的旋转和平移。
126.在一些情况下,确定所述第二3d网格参数可包括识别与目标的第一3d网格相关联的3d关键点,并且基于图像和元数据,确定3d关键点在现实世界场景的3d坐标系中的位置和方向。3d坐标系可以包括第一参考帧。
127.在一些情况下,过程600可以包括基于第二3d网格参数生成目标的第二3d网格。第二3d网格可以在现实世界场景的3d坐标系中对目标进行建模。在一些示例中,第二3d网格可包括蒙皮网格模型和/或参数网格模型。
128.在一些情况下,过程600可以包括确定目标的图像中的图像特征;基于图像和元数据来确定元数据特征和图像特征;以及基于元数据特征和图像特征的组合来确定第一3d网格参数。在一些情况下,第一3d网格参数可以包括姿势参数、形状参数、平移参数、位置参数和/或可见性参数。在一些示例中,可见性参数可以指示第一3d网格中的一个或多个点的估计的可见性和/或第一3d网格中的一个或多个点的估计的遮挡。
129.在一些情况下,过程600能够包括使用对象的非参数网格和对象的参数网格来训练神经网络系统。在一些情况下,过程600可以包括基于对象的附加图像和附加元数据来确定图像特征和元数据特征;基于所述图像特征和所述元数据特征来确定所述对象的非参数网格和与所述对象相关联的网格参数;基于姿势参数和形状参数来确定对象的参数网格;基于非参数网格、参数网格、旋转参数、平移参数、图像特征和元数据特征来确定现实世界参考帧中的对象的第三3d网格。在一些示例中,网格参数可以包括姿势参数、形状参数、旋转参数和平移参数。
130.在一些情况下,过程600还可以包括基于与第三3d网格相关联的一个或多个损失
来更新与神经网络系统相关联的一个或多个参数。在一些示例中,参数网格、非参数网格和网格参数对应于捕获附加图像的设备(例如,图像传感器102、图像传感器104)的特定参考帧。
131.在一些示例中,一个或多个损失可包括第三3d网格的损失、第三3d网格中的3d关键点的损失、姿势和形状正则化损失和/或来自第三3d网格和/或3d关键点的二维(2d)关键点投影的损失。在一些示例中,元数据特征可以包括与捕获附加图像的设备相关联的内部参数。在一些情况下,内部参数可以包括设备的焦距、设备的光学中心、设备的偏斜、附加图像的大小、与设备相关联的透镜失真和/或设备的特定参考帧。
132.在一些示例中,过程600可以包括基于与现实世界参考帧中的对象的第三3d网格相关联的一个或多个损失来更新与神经网络系统(例如,网络210、网络410、网络510)相关联的一个或多个参数,以及由神经网络系统使用更新的一个或多个参数来确定目标的第二3d网格的第二3d网格参数。在一些情况下,过程600可以包括基于对象的非参数网格、对象的参数网格、旋转参数、平移参数、图像特征和/或元数据特征来确定对象的第三3d网格。
133.在一些示例中,过程600可以包括基于对象的附加图像和附加元数据来确定图像特征和元数据特征,基于图像特征和元数据特征来确定对象的非参数网格和与对象相关联的网格参数,以及基于姿势参数和形状参数来确定对象的参数网格。在一些情况下,网格参数可以包括姿势参数、形状参数、旋转参数和/或平移参数。在一些示例中,过程600能够包括使用对象的非参数网格和对象的参数网格来训练神经网络系统。
134.在一些示例中,本文描述的过程(例如,过程500、550、600和/或本文描述的任何其他过程)可以由计算设备或装置执行。在一个示例中,过程600可以由图1的图像处理系统100执行。在另一示例中,过程600可以由具有图7所示的计算设备架构700的计算系统执行。例如,具有图7中所示的计算设备架构700的计算设备可以实现图6的操作和/或本文关于图1至图6中的任何一个所描述的组件和/或操作。
135.计算设备可以包括任何合适的设备,诸如移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备(例如,vr耳机、ar耳机、ar眼镜、网络连接手表或智能手表或者其他可穿戴设备)、服务器计算机、自主车辆或自主车辆的计算设备、机器人设备、膝上型计算机、智能电视、相机和/或具有执行本文描述的过程(包括过程500、550、600和/或本文描述的任何其他过程)的资源能力的任何其他计算设备。在一些情况下,计算设备或装置可包括各种组件,例如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微计算机、一个或多个相机、一个或多个传感器和/或经配置以执行本文中所描述的过程的步骤的其它组件。在一些示例中,计算设备可以包括显示器、被配置为传送和/或接收数据的网络接口、其任何组合和/或其他组件。网络接口可以被配置为传送和/或接收基于互联网协议(ip)的数据或其他类型的数据。
136.计算设备的组件可以在电路中实现。例如,组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实现,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(gpu)、数字信号处理器(dsp)、中央处理单元(cpu)、和/或其他合适的电子电路),和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实现,以执行本文描述的各种操作。
137.过程500、550、600被示出为逻辑流程图,其操作表示可以在硬件、计算机指令或其
组合中实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行地组合以实现过程。
138.另外,本文描述的过程500、550、600和/或其他过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实现为在一个或多个处理器上、通过硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
139.图7示出了可以实现本文描述的各种技术的示例计算设备的示例计算设备架构700。例如,计算设备架构700可以实现图1所示的图像处理系统100的至少一些部分。计算设备架构700的组件被示出为使用连接705(诸如总线)彼此电通信。示例计算设备架构700包括处理单元(cpu或处理器)710和计算设备连接705,计算设备连接705将包括计算设备存储器715(诸如只读存储器(rom)720和随机存取存储器(ram)725)的各种计算设备组件耦合到处理器710。
140.计算设备架构700可以包括与处理器710直接连接、紧邻处理器710或集成为处理器710的一部分的高速存储器的高速缓存。计算设备架构700可以将数据从存储器715和/或存储设备730复制到高速缓存712以供处理器710快速访问。以这种方式,高速缓存可以提供避免处理器710在等待数据时延迟的性能提升。这些和其他模块可以控制或被配置为控制处理器710以执行各种动作。其他计算设备存储器715也可供使用。存储器715可以包括具有不同性能特性的多种不同类型的存储器。处理器710可以包括任何通用处理器和硬件或软件服务(例如,服务1 732、服务2 734和服务3 736),其存储在存储设备730中并且被配置为控制处理器710以及专用处理器,其中软件指令被并入到处理器设计中。处理器710可以是独立系统,其包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或不对称的。
141.为了实现与计算设备架构700的用户交互,输入设备745可以表示任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备735还可以是本领域技术人员已知的多个输出机构中的一个或多个,诸如显示器、投影仪、电视、扬声器设备。在一些实例中,多模态计算设备可以使用户能够提供多种类型的输入以与计算设备架构700通信。通信接口740通常可以支配和管理用户输入和计算设备输出。对在任何特定硬件布置上操作没有限制,并且因此这里的基本特征可以容易地在改进的硬件或固件布置被开发时替换为改进的硬件或固件布置。
142.存储设备730是非易失性存储器,并且可以是硬盘或可以存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储器设备、数字通用盘、盒式磁带、随机存取存储器(ram)25、只读存储器(rom)720及其混合。存储设备730可以包括用于控制处理器710的服务732、服务734和服务736。设想了其他硬件或软件模块。存储设备730可以连接到计算设备连接705。在一个方面,执行特定功能的硬件模块可以包括存储在
计算机可读介质中的软件组件,其与必要的硬件组件(例如,处理器710、连接705、输出设备735等)连接以执行功能。
143.术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备和能够存储、含有或携载指令和/或数据的各种其它介质。计算机可读介质可包括其中可存储数据且不包括无线地或经由有线连接传播的载波和/或暂时性电子信号的非暂时性介质。非暂时性介质的示例可包括但不限于磁盘或磁带、光学存储介质(例如光盘(cd)或数字多功能光盘(dvd))、闪存、存储器或存储器设备。计算机可读介质可具有存储于其上的代码和/或机器可执行指令,所述代码和/或机器可执行指令可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类别,或指令、数据结构或程序语句的任何组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段来传递、转发或传输。
144.在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提到时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
145.在上面的描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了清楚说明,在一些情况下,本技术可以被呈现为包括单独的功能块,这些功能块包括以软件或硬件和软件的组合体现的方法中的设备、设备组件、步骤或例程。除了在附图中示出和/或在本文中描述的那些组件之外,可以使用附加组件。例如,电路、系统、网络、过程和其他组件可以以框图形式示出为组件,以免不必要的细节模糊实施例。在其他实例中,可以在没有不必要的细节的情况下示出公知的电路、过程、算法、结构和技术,以避免模糊实施例。
146.以上可以将各个实施例描述为被描绘为流程图、流图、数据流图、结构图或框图的过程或方法。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新排列操作的顺序。过程在其操作完成时终止,但是可以具有未包括在图中的附加步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
147.根据上述示例的过程和方法可以使用存储在计算机可读介质中或以其他方式可从计算机可读介质获得的计算机可执行指令来实现。这样的指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。所使用的计算机资源的部分可以通过网络访问。计算机可执行指令可以是例如二进制文件、诸如汇编语言的中间格式指令、固件、源代码。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的usb设备、联网存储设备等。
148.实现根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用各种形状因子中的任何一种。当在软件、固件、中间件或微代码中实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其他小形状因子个人计算
机、个人数字助理、机架式设备、独立设备等。本文描述的功能还可以体现在外围设备或附加卡中。作为另一示例,这样的功能也可以在电路板上在单个设备中执行的不同芯片或不同过程之间实现。
149.指令、用于传送此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例部件。
150.在前面的描述中,参考其具体实施例描述了本技术的各方面,但是本领域技术人员将认识到,本技术不限于此。因此,虽然本文已经详细描述了本技术的说明性实施例,但是应当理解,本发明构思可以以其他方式不同地实施和采用,并且所附权利要求旨在被解释为包括这样的变型,除了受现有技术的限制之外。上述申请的各种特征和方面可以单独地或联合地使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,可以在本文描述的环境和应用之外的任何数量的环境和应用中利用实施例。因此,说明书和附图被认为是说明性的而不是限制性的。出于说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序执行方法。
151.普通技术人员将理解,在不脱离本说明书的范围的情况下,本文使用的小于(“《”)和大于(“》”)符号或术语可以分别用小于或等于(“≤”)和大于或等于(“≥”)符号替换。
152.在组件被描述为“被配置为”执行某些操作的情况下,这种配置可以例如通过设计电子电路或其他硬件以执行操作、通过编程可编程电子电路(例如,微处理器或其他合适的电子电路)以执行操作或其任何组合来实现。
153.短语“耦合到”是指直接或间接地物理连接到另一组件的任何组件,和/或直接或间接地与另一组件通信(例如,通过有线或无线连接和/或其他合适的通信接口连接到另一组件)的任何组件。
154.叙述集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其他语言指示集合中的一个成员或集合中的多个成员(以任何组合)满足权利要求。例如,叙述“a和b中的至少一个”或“a或b中的至少一个”的权利要求语言意指a、b或a和b。在另一示例中,叙述“a、b和c中的至少一个”或“a、b或c中的至少一个”的权利要求语言意指a、b、c、或a和b、或a和c、或b和c、或a和b和c。语言集合中的“至少一个”和/或集合中的“一个或多个”不将集合限制为集合中列出的项目。例如,叙述“a和b中的至少一个”或“a或b中的至少一个”的权利要求语言可以表示a、b或a和b,并且可以另外包括未在a和b的集合中列出的项目。
155.结合本文中所公开的示例描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件、固件或其组合。为清楚地说明硬件与软件的此可互换性,上文已大体上就其功能描述了各种说明性组件、块、模块、电路和步骤。这种功能是实现为硬件还是软件取决于特定应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式实现所描述的功能,但是这种实现决策不应被解释为导致脱离本技术的范围。
156.本文中所描述的技术还可以在电子硬件、计算机软件、固件或其任何组合中实施。此类技术可实施于多种设备中的任一者中,例如通用计算机、无线通信设备手持机、或集成电路设备,其具有包括在无线通信设备手持机和其它设备中的应用的多种用途。被描述为模块或组件的任何特征可以在集成逻辑设备中一起实现,或者单独实现为分立但可互操作的逻辑设备。如果在软件中实施,那么技术可至少部分地由包括程序代码的计算机可读数
据存储介质实现,所述程序代码包括在执行时执行上文所描述的方法、算法和/或操作中的一个或多个的指令。计算机可读数据存储介质可形成计算机程序产品的部分,所述计算机程序产品可包括封装材料。计算机可读介质可包括存储器或数据存储介质,例如随机存取存储器(ram)(例如同步动态随机存取存储器(sdram))、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁性或光学数据存储介质等等。另外或替代地,所述技术可至少部分地由计算机可读通信介质实现,所述计算机可读通信介质携载或传达呈指令或数据结构的形式且可由计算机存取、读取和/或执行的程序代码,例如传播的信号或波。
157.程序代码可由处理器执行,所述处理器可包括一个或多个处理器,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其它等效集成或离散逻辑电路。此处理器可被配置为执行本公开中所描述的技术中的任一个。通用处理器可以是微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合,或者任何其它这样的配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任一个、前述结构的任何组合、或适合于实施本文中所描述的技术的任何其它结构或装置。
158.本公开的说明性示例包括:
159.方面1:一种装置,包括:存储器和耦合到存储器的一个或多个处理器,一个或多个处理器被配置为:接收目标的图像和元数据,元数据与图像和捕获图像的图像捕获设备中的至少一个相关联;基于所述图像和所述元数据来确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和所述图像捕获设备中的至少一个相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。
160.方面2:根据方面1所述的装置,其中,所述一个或多个处理器被配置为:基于与现实世界参考帧中的目标的第三3d网格相关联的一个或多个损失来更新与神经网络系统相关联的一个或多个参数;以及由神经网络系统使用更新的一个或多个参数来确定目标的第二3d网格的第二3d网格参数。
161.方面3:根据方面2所述的装置,其中,所述一个或多个处理器被配置为:基于所述目标的非参数化网格、所述目标的参数化网格、旋转参数、平移参数、图像特征和元数据特征中的至少一个来确定所述目标的所述第三3d网格。
162.方面4:根据方面3所述的装置,其中,所述一个或多个处理器被配置为:基于目标的附加图像和附加元数据来确定图像特征和元数据特征;基于所述图像特征和所述元数据特征来确定所述目标的所述非参数网格和与所述目标相关联的网格参数;以及基于与目标相关联的姿势参数和形状参数来确定目标的参数网格。
163.方面5:根据方面4所述的装置,其中网格参数包括姿势参数、形状参数、旋转参数和平移参数中的至少一个。
164.方面6:根据方面4所述的装置,其中,参数网格、非参数网格和网格参数对应于捕获附加图像的设备的特定参考帧,并且其中,一个或多个损失包括以下项中的至少一项:第
三3d网格的损失、第三3d网格中的3d关键点的损失、姿势和形状正则化损失、以及来自第三3d网格和3d关键点中的至少一个的二维(2d)关键点投影的损失。
165.方面7:根据方面4所述的装置,其中,元数据特征包括与捕获附加图像的设备相关联的内部参数,内部参数包括设备的焦距、设备的光学中心、设备的偏斜、附加图像的大小、与设备相关联的透镜失真以及设备的特定参考帧中的至少一个。
166.方面8:根据方面3至7中任一项所述的装置,其中,所述一个或多个处理器被配置为:使用目标的非参数网格和目标的参数网格来训练神经网络系统。
167.方面9:根据方面1至8中任一项所述的装置,其中,所述一个或多个处理器被配置为基于所述第二3d网格参数生成所述目标的所述第二3d网格,其中所述第二3d网格在所述现实世界场景的所述3d坐标系中。
168.方面10:根据方面9所述的装置,其中所述第二3d网格包括蒙皮网格模型和参数网格模型中的至少一个,并且其中所述目标包括关节连接的对象。
169.方面11:根据方面1至10中任一项所述的装置,其中,为了确定所述第二3d网格参数,所述一个或多个处理器被配置为:将所述第一3d网格参数中的一个或多个从所述第一参考帧变换到所述第二参考帧。
170.方面12:根据方面1至11中任一项所述的装置,其中,为了确定所述第二3d网格参数,所述一个或多个处理器被配置为:确定所述第一3d网格从所述第一参考帧到所述第二参考帧的旋转和平移。
171.方面13:根据方面1至12中任一项所述的装置,其中,为了确定所述第二3d网格参数,所述一个或多个处理器被配置为:识别与所述目标的所述第一3d网格相关联的3d关键点;以及基于所述图像和所述元数据,确定所述3d关键点在所述现实世界场景的所述3d坐标系中的位置和方向。
172.方面14:根据方面1至13中任一项所述的装置,其中第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数,并且其中可见性参数指示第一3d网格中的一个或多个点的估计的可见性和第一3d网格中的一个或多个点的估计的遮挡中的至少一个。
173.方面15:根据方面1至14中任一项所述的装置,其中,所述元数据包括与所述图像捕获设备相关联的内部参数,所述内部参数包括所述图像捕获设备的焦距、所述图像捕获设备的光学中心、所述图像捕获设备的偏斜、所述图像的大小、与所述图像捕获设备相关联的透镜失真、所述图像捕获设备的相应参考帧中的至少一个,所述相应参考帧包括所述第一参考帧。
174.方面16:根据方面15所述的装置,其中图像包括裁剪的单目图像,并且其中元数据包括裁剪的单目图像中围绕目标的边界框的位置。
175.方面17:根据方面1至16中任一项所述的装置,其中,所述装置包括所述图像捕获设备,并且其中,所述图像捕获设备包括相机设备。
176.方面18:根据方面1至17中任一项所述的装置,其中,所述装置包括移动设备。
177.方面19:根据方面1至18中任一项所述的装置,其中,所述一个或多个处理器被配置为:确定目标的图像中的图像特征;基于图像和元数据来确定元数据特征和图像特征;以及基于元数据特征和图像特征的组合来确定第一3d网格参数,第一3d网格参数包括姿势参
数、形状参数、平移参数、位置参数和可见性参数中的至少一个,其中可见性参数指示第一3d网格中的一个或多个点的估计的可见性和第一3d网格中的一个或多个点的估计的遮挡中的至少一个。
178.方面20:一种方法,包括:接收目标的图像和元数据,元数据与图像和捕获图像的图像捕获设备中的至少一个相关联;基于图像和元数据来确定目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和所述图像捕获设备中的至少一个相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。
179.方面21:根据方面20所述的方法,还包括:基于与现实世界参考帧中的目标的第三3d网格相关联的一个或多个损失来更新与神经网络系统相关联的一个或多个参数;以及由神经网络系统使用更新的一个或多个参数来确定目标的第二3d网格的第二3d网格参数。
180.方面22:根据方面21所述的方法,还包括:基于目标的非参数网格、目标的参数网格、旋转参数、平移参数、图像特征和元数据特征中的至少一个来确定目标的第三3d网格。
181.方面23:根据方面22所述的方法,还包括:基于目标的附加图像和附加元数据来确定图像特征和元数据特征;基于所述图像特征和所述元数据特征来确定所述目标的所述非参数网格和与所述目标相关联的网格参数;以及基于与目标相关联的姿势参数和形状参数来确定目标的参数网格。
182.方面24:根据方面23所述的方法,其中网格参数包括姿势参数、形状参数、旋转参数和平移参数中的至少一个。
183.方面25:根据方面23至24中任一项所述的方法,其中,所述参数网格、所述非参数网格和所述网格参数对应于捕获所述附加图像的设备的特定参考帧,并且其中,所述一个或多个损失包括以下项中的至少一项:所述第三3d网格的损失、所述第三3d网格中的3d关键点的损失、姿势和形状正则化损失、以及来自所述第三3d网格和所述3d关键点中的至少一个的二维(2d)关键点投影的损失。
184.方面26:根据方面23至25中任一项所述的方法,其中,元数据特征包括与捕获附加图像的设备相关联的内部参数,内部参数包括设备的焦距、设备的光学中心、设备的偏斜、附加图像的大小、与设备相关联的透镜失真以及设备的特定参考帧中的至少一个。
185.方面27:根据方面22至26中任一项所述的方法,还包括:使用目标的非参数网格和目标的参数网格来训练神经网络系统。
186.方面28:根据方面20至27中任一项所述的方法,进一步包括:基于所述第二3d网格参数生成所述目标的所述第二3d网格,其中所述第二3d网格在所述现实世界场景的所述3d坐标系中。
187.方面29:根据方面28所述的方法,其中所述第二3d网格包括蒙皮网格模型和参数网格模型中的至少一个,并且其中所述目标包括关节连接的对象。
188.方面30:根据方面20至29中任一项所述的方法,其中,确定所述第二3d网格参数包括:将所述第一3d网格参数中的一个或多个从所述第一参考帧变换到所述第二参考帧。
189.方面31:根据方面20至30中任一项所述的方法,其中确定所述第二3d网格参数包括:确定所述第一3d网格从所述第一参考帧到所述第二参考帧的旋转和平移。
190.方面32:根据方面20至31中任一项所述的方法,其中确定所述第二3d网格参数包括:识别与所述目标的所述第一3d网格相关联的3d关键点;以及基于所述图像和所述元数据,确定所述3d关键点在所述现实世界场景的所述3d坐标系中的位置和方向。
191.方面33:根据方面20至32中任一项所述的方法,其中第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数,并且其中可见性参数指示第一3d网格中的一个或多个点的估计的可见性和第一3d网格中的一个或多个点的估计的遮挡中的至少一个。
192.方面34:根据方面20至33中任一项所述的方法,其中,所述元数据包括与所述图像捕获设备相关联的内部参数,所述内部参数包括所述图像捕获设备的焦距、所述图像捕获设备的光学中心、所述图像捕获设备的偏斜、所述图像的大小、与所述图像捕获设备相关联的透镜失真、所述图像捕获设备的相应参考帧中的至少一个,所述相应参考帧包括所述第一参考帧。
193.方面35:根据方面34所述的方法,其中图像包括裁剪的单目图像,并且其中元数据包括裁剪的单目图像中围绕目标的边界框的位置。
194.方面36:根据方面20至35中任一项所述的方法,还包括:确定目标的图像中的图像特征;基于所述图像和所述元数据来确定元数据特征和图像特征;以及基于元数据特征和图像特征的组合来确定第一3d网格参数,第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数中的至少一个,其中可见性参数指示第一3d网格中的一个或多个点的估计的可见性和第一3d网格中的一个或多个点的估计的遮挡中的至少一个。
195.方面37:一种非暂时性计算机可读介质,其上存储有指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据方面20至36中任一项所述的操作。
196.方面38:一种装置,包括用于执行根据方面20至36中任一项的操作的部件。

技术特征:
1.一种装置,包括:存储器;以及耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:接收目标的图像和元数据,所述元数据与所述图像和捕获所述图像的图像捕获设备中的至少一个相关联;基于所述图像和所述元数据来确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和所述图像捕获设备中的至少一个相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。2.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:基于与现实世界参考帧中的所述目标的第三3d网格相关联的一个或多个损失来更新与神经网络系统相关联的一个或多个参数;以及由所述神经网络系统使用所更新的一个或多个参数来确定所述目标的所述第二3d网格的所述第二3d网格参数。3.根据权利要求2所述的装置,其中,所述一个或多个处理器被配置为:基于所述目标的非参数网格、所述目标的参数网格、旋转参数、平移参数、图像特征和元数据特征中的至少一个来确定所述目标的所述第三3d网格。4.根据权利要求3所述的装置,其中,所述一个或多个处理器被配置为:基于所述目标的附加图像和附加元数据来确定所述图像特征和所述元数据特征;基于所述图像特征和所述元数据特征来确定所述目标的所述非参数网格和与所述目标相关联的网格参数;以及基于与所述目标相关联的姿势参数和形状参数来确定所述目标的所述参数网格。5.根据权利要求4所述的装置,其中,所述网格参数包括姿势参数、形状参数、旋转参数和平移参数中的至少一个。6.根据权利要求4所述的装置,其中,所述参数网格、所述非参数网格和所述网格参数对应于捕获所述附加图像的设备的特定参考帧,并且其中所述一个或多个损失包括以下项中的至少一项:所述第三3d网格的损失、所述第三3d网格中的3d关键点的损失、姿势和形状正则化损失、以及来自所述第三3d网格和所述3d关键点中的至少一个的二维(2d)关键点投影的损失。7.根据权利要求4所述的装置,其中,所述元数据特征包括与捕获所述附加图像的设备相关联的内部参数,所述内部参数包括所述设备的焦距、所述设备的光学中心、所述设备的偏斜、所述附加图像的大小、与所述设备相关联的透镜失真和所述设备的特定参考帧中的至少一个。8.根据权利要求3所述的装置,其中,所述一个或多个处理器被配置为:使用所述目标的所述非参数网格和所述目标的所述参数网格来训练所述神经网络系统。9.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为基于所述第二3d
网格参数生成所述目标的所述第二3d网格,其中所述第二3d网格在所述现实世界场景的所述3d坐标系中。10.根据权利要求9所述的装置,其中,所述第二3d网格包括蒙皮网格模型和参数网格模型中的至少一个,并且其中所述目标包括关节连接的对象。11.根据权利要求1所述的装置,其中,为了确定所述第二3d网格参数,所述一个或多个处理器被配置为:将所述第一3d网格参数中的一个或多个从所述第一参考帧变换到所述第二参考帧。12.根据权利要求1所述的装置,其中,为了确定所述第二3d网格参数,所述一个或多个处理器被配置为:确定所述第一3d网格从所述第一参考帧到所述第二参考帧的旋转和平移。13.根据权利要求1所述的装置,其中,为了确定所述第二3d网格参数,所述一个或多个处理器被配置为:识别与所述目标的所述第一3d网格相关联的3d关键点;以及基于所述图像和所述元数据,确定所述3d关键点在所述现实世界场景的所述3d坐标系中的位置和方向。14.根据权利要求1所述的装置,其中,所述第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数,并且其中所述可见性参数指示所述第一3d网格中的一个或多个点的估计的可见性和所述第一3d网格中的所述一个或多个点的估计的遮挡中的至少一个。15.根据权利要求1所述的装置,其中,所述元数据包括与所述图像捕获设备相关联的内部参数,所述内部参数包括所述图像捕获设备的焦距、所述图像捕获设备的光学中心、所述图像捕获设备的偏斜、所述图像的大小、与所述图像捕获设备相关联的透镜失真、所述图像捕获设备的相应参考帧中的至少一个,所述相应参考帧包括所述第一参考帧。16.根据权利要求15所述的装置,其中,所述图像包括裁剪的单目图像,并且其中所述元数据包括在所述裁剪的单目图像中围绕所述目标的边界框的位置。17.根据权利要求1所述的装置,其中,所述装置包括所述图像捕获设备,并且其中所述图像捕获设备包括相机设备。18.根据权利要求1所述的装置,其中,所述装置包括移动设备。19.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:确定所述目标的所述图像中的图像特征;基于所述图像和所述元数据来确定元数据特征和图像特征;以及基于所述元数据特征和所述图像特征的组合来确定所述第一3d网格参数,所述第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数中的至少一个,其中所述可见性参数指示所述第一3d网格中的一个或多个点的估计的可见性和所述第一3d网格中的所述一个或多个点的估计的遮挡中的至少一个。20.一种方法,包括:接收目标的图像和元数据,所述元数据与所述图像和捕获所述图像的图像捕获设备中的至少一个相关联;基于所述图像和所述元数据来确定所述目标的第一三维(3d)网格的第一3d网格参数,
所述第一3d网格参数和所述第一3d网格对应于与所述图像和所述图像捕获设备中的至少一个相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。21.根据权利要求20所述的方法,还包括:基于与现实世界参考帧中的所述目标的第三3d网格相关联的一个或多个损失来更新与神经网络系统相关联的一个或多个参数;以及由所述神经网络系统使用所更新的一个或多个参数来确定所述目标的所述第二3d网格的所述第二3d网格参数。22.根据权利要求21所述的方法,还包括:基于所述目标的非参数网格、所述目标的参数网格、旋转参数、平移参数、图像特征和元数据特征中的至少一个来确定所述目标的所述第三3d网格。23.根据权利要求22所述的方法,还包括:基于所述目标的附加图像和附加元数据来确定所述图像特征和所述元数据特征;基于所述图像特征和所述元数据特征来确定所述目标的所述非参数网格和与所述目标相关联的网格参数;以及基于与所述目标相关联的姿势参数和形状参数来确定所述目标的所述参数网格,其中所述网格参数包括姿势参数、形状参数、旋转参数和平移参数中的至少一个。24.根据权利要求23所述的方法,其中,所述参数网格、所述非参数网格和所述网格参数对应于捕获所述附加图像的设备的特定参考帧,并且其中,所述一个或多个损失包括以下项中的至少一项:所述第三3d网格的损失、所述第三3d网格中的3d关键点的损失、姿势和形状正则化损失、以及来自所述第三3d网格和所述3d关键点中的至少一个的二维(2d)关键点投影的损失。25.根据权利要求23所述的方法,其中,所述元数据特征包括与捕获所述附加图像的设备相关联的内部参数,所述内部参数包括所述设备的焦距、所述设备的光学中心、所述设备的偏斜、所述附加图像的大小、与所述设备相关联的透镜失真、以及所述设备的特定参考帧中的至少一个,所述方法还包括使用所述目标的所述非参数网格和所述目标的所述参数网格来训练所述神经网络系统。26.根据权利要求20所述的方法,还包括:基于所述第二3d网格参数生成所述目标的所述第二3d网格,其中所述第二3d网格在所述现实世界场景的所述3d坐标系中,其中所述第二3d网格包括蒙皮网格模型和参数网格模型中的至少一个,其中所述目标包括关节连接的对象,并且其中所述第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数,所述可见性参数指示所述第一3d网格中的一个或多个点的估计的可见性和所述第一3d网格中的所述一个或多个点的估计的遮挡中的至少一个。27.根据权利要求20所述的方法,其中,确定所述第二3d网格参数包括以下项中的至少一项:将所述第一3d网格参数中的一个或多个从所述第一参考帧变换到所述第二参考帧;以及
确定所述第一3d网格从所述第一参考帧到所述第二参考帧的旋转和平移。28.根据权利要求20所述的方法,其中,所述元数据包括与所述图像捕获设备相关联的内部参数,其中所述图像包括单目图像,其中所述元数据包括所述单目图像中围绕所述目标的边界框的位置,所述内部参数包括以下项中的至少一项:所述图像捕获设备的焦距、所述图像捕获设备的光学中心、所述图像捕获设备的偏斜、所述图像的大小、与所述图像捕获设备相关联的透镜失真、包括所述第一参考帧的所述图像捕获设备的相应参考帧。29.根据权利要求20所述的方法,还包括:确定所述目标的所述图像中的图像特征;基于所述图像和所述元数据来确定元数据特征和图像特征;以及基于所述元数据特征和所述图像特征的组合来确定所述第一3d网格参数,所述第一3d网格参数包括姿势参数、形状参数、平移参数、位置参数和可见性参数中的至少一个,其中,所述可见性参数指示所述第一3d网格中的一个或多个点的估计的可见性和所述第一3d网格中的所述一个或多个点的估计的遮挡中的至少一个。30.一种非暂时性计算机可读介质,其上存储有指令,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器:接收目标的图像和元数据,所述元数据与所述图像和捕获所述图像的图像捕获设备中的至少一个相关联;基于所述图像和所述元数据来确定所述目标的第一三维(3d)网格的第一3d网格参数,所述第一3d网格参数和所述第一3d网格对应于与所述图像和所述图像捕获设备中的至少一个相关联的第一参考帧;以及基于所述第一3d网格参数确定所述目标的第二3d网格的第二3d网格参数,所述第二3d网格参数和所述第二3d网格对应于第二参考帧,所述第二参考帧包括所述目标位于其中的现实世界场景的3d坐标系。

技术总结
提供了用于使用图像对三维(3D)网格进行建模的系统和技术。示例方法可以包括:经由神经网络系统接收目标的图像和与图像和/或捕获图像的设备相关联的元数据;基于所述图像和元数据确定所述目标的第一3D网格的第一3D网格参数,所述第一3D网格参数和所述第一3D网格对应于与所述图像和/或所述设备相关联的第一参考帧;以及基于第一3D网格参数确定目标的第二3D网格的第二3D网格参数,第二3D网格参数和第二3D网格对应于第二参考帧,该第二参考帧包括目标位于其中的现实世界场景的3D坐标系。目标位于其中的现实世界场景的3D坐标系。目标位于其中的现实世界场景的3D坐标系。


技术研发人员:A
受保护的技术使用者:高通股份有限公司
技术研发日:2022.02.24
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐