CN116235226A - 用于预测下半身姿势的系统和方法 - Google Patents

用于预测下半身姿势的系统和方法 Download PDF

Info

Publication number
CN116235226A
CN116235226A CN202180063845.3A CN202180063845A CN116235226A CN 116235226 A CN116235226 A CN 116235226A CN 202180063845 A CN202180063845 A CN 202180063845A CN 116235226 A CN116235226 A CN 116235226A
Authority
CN
China
Prior art keywords
user
gesture
machine learning
learning model
pose
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
Application number
CN202180063845.3A
Other languages
English (en)
Inventor
塞缪尔·艾伦·约翰逊
卡斯腾·塞巴斯蒂安·斯托尔
基肖尔·文卡特山
本杰明·安托万·乔治·勒福杜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of CN116235226A publication Critical patent/CN116235226A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

计算系统可以接收来自结合到用户的一个或多个传感器的传感器数据。基于该传感器数据,计算系统可以生成与用户的身体的第一部分对应的上半身姿势,该身体的第一部分包括用户的头部和手臂。计算系统可以使用机器学习模型对用户的上半身姿势进行处理,来生成与用户的身体的第二部分对应的下半身姿势,该身体的第二部分包括用户的腿部。计算系统可以基于该上半身姿势和该下半身姿势来生成用户的全身姿势。

Description

用于预测下半身姿势的系统和方法
技术领域
本公开总体上涉及预测用户的下半身姿势。
背景技术
机器学习可以用于使机器能够自动地检测和处理对象。通常,机器学习典型地涉及:根据机器学习模型来处理训练数据集,并且基于训练算法对该机器学习模型进行更新,使得该机器学习模型渐进地“学习”该训练数据集中的如下的特征:这些特征可预测所期望的输出。机器学习模型的一个示例是神经网络,该神经网络是互连节点的网络。节点组可以按层排列。该网络中接收输入数据的第一层可以称为输入层,而从网络中输出数据的最后一层可以称为输出层。可存在任意数量的内部隐藏层,这些内部隐藏层将输入层中的节点映射到输出层中的节点。在前馈神经网络中,除了输出层之外,每个层中的节点的输出被配置为前馈到随后层中的节点中。
人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该现实形式例如可以包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成内容或与采集到的内容(例如,真实世界照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,以上任何一种都可以以单通道或多通道(例如,为观看者带来三维效果的立体视频)呈现。人工现实可以与应用程序、产品、附件、服务、或它们的某种组合相关联,这些应用程序、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容,和/或在人工现实中使用(例如,执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主控计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一个或多个观看者提供人工现实内容的任何其它硬件平台。
发明内容
本文中所描述的实施例涉及生成用户的一个或多个身体姿势的方法,该用户与人工现实系统的一个或多个部件相关联。为了使得计算系统能够:生成作为身体姿势的组成部分的、一个或多个关节的准确姿势,该计算系统可以接收来自人工现实系统中的一个或多个部件的一个或多个传感器数据或图像数据,例如来自运动追踪传感器的传感器数据或从一个或多个摄像头接收到的图像数据。利用本文中所描述的各种技术,图像数据和传感器数据允许计算系统基于与人工现实系统相关联的一个或多个传感器数据或图像数据,来准确地生成用户的上半身姿势。然而,尽管这种传感器数据和图像数据对于生成用户的上半身姿势是有效的,但是在生成用户的下半身姿势时,这种传感器数据和图像数据的用处通常有限。
为了解决这个问题,本文中所描述的特定实施例利用机器学习模型来响应于接收到所生成的用户的上半身姿势而生成下半身姿势。在特定实施例中,可以训练机器学习模型,以接收所生成的上半身姿势并且生成对应的下半身姿势。在特定实施例中,机器学习模型可以基于生成对抗网络(Generative Adversarial Network,GAN),并且可以使用一个或多个训练姿势来训练该机器学习模型。基于这些训练姿势,机器学习模型可以学习如何产生逼真的下半身姿势。一旦经过训练,机器学习模型就可以接收所生成的上半身姿势,并且输出可以在各种应用程序中使用的对应的下半身姿势或全身姿势。例如,所输出的全身姿势可以用于在虚拟现实或人工现实空间中生成用户的化身。
根据本公开的第一方面,提供了一种方法,该方法包括由计算系统:接收由结合到用户的一个或多个传感器采集到的传感器数据;基于该传感器数据,生成与用户的身体的第一部分对应的上半身姿势,该身体的第一部分包括用户的头部和手臂;通过使用机器学习模型对该上半身姿势进行处理,来生成与用户的身体的第二部分对应的下半身姿势,该身体的第二部分包括用户的腿部;以及基于该上半身姿势和该下半身姿势来生成用户的全身姿势。
可以使用第二机器学习模型来训练机器学习模型,该第二机器学习模型被训练以确定给定全身姿势是否可能是使用该机器学习模型而生成的。
可以在训练期间优化机器学习模型,以使得第二机器学习模型错误地确定为:给定全身姿势(该给定全身姿势是使用机器学习模型来生成的)不太可能是使用该机器学习模型而生成的。
可以通过以下方式来训练机器学习模型:通过使用机器学习模型对第二上半身姿势进行处理,来生成第二下半身姿势;基于第二上半身姿势和第二下半身姿势,生成第二全身姿势;使用第二机器学习模型来判断第二全身姿势是否可能是使用机器学习模型而生成的;以及基于第二机器学习模型的确定来对机器学习模型进行更新。
该一个或多个传感器可以与用户所佩戴的头戴式设备相关联。
生成上半身姿势可以包括:基于传感器数据来确定与用户的多个预定身体部位对应的多个姿势;以及基于该多个姿势来推断上半身姿势。
该多个姿势可以包括与用户的手腕对应的手腕姿势。可以基于由用户佩戴的头戴式设备采集到的一幅或多幅图像来确定手腕姿势。该一幅或多幅图像可以描绘(1)用户的手腕或(2)用户所握持的设备。
该方法还可以包括:确定与采集传感器数据的时间相关联的上下文信息。下半身姿势可以是通过还使用机器学习模型对上下文信息进行处理而生成的。
上下文信息可以包括在确定上半身姿势时用户正在与之交互的应用程序。
该方法还可以包括:基于全身姿势生成用户的化身。
根据本公开的第二方面,提供了一个或多个计算机可读非暂态存储介质,该一个或多个计算机可读非暂态存储介质包括指令,该指令在被服务器执行时使得服务器执行本公开的第一方面的方法。
根据本公开的第三方面,提供了一种系统,该系统包括:一个或多个处理器;以及本公开的第二方面的一个或多个计算机可读非暂态存储介质,该一个或多个计算机可读非暂态存储介质耦接到该一个或多个处理器。
本文中所公开的各个实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文中所公开的这些实施例中的所有或一些部件、元件、特征、功能、操作或步骤,或者不包括这些部件、元件、特征、功能、操作或步骤。针对方法、存储介质和系统的所附权利要求中特别地披露了根据本发明的实施例,其中,在一个权利要求类别(例如,方法)中提到的任何特征也可以主张在另一个权利要求类别(例如,系统)中得到保护。所附权利要求中的从属关系或引用关系仅仅是出于形式上的原因而选择的。然而,也可以主张保护通过对任何多项先前权利要求的有意引用(特别是多个从属关系)而产生的任何主题,从而披露了多项权利要求及其特征的任何组合,并且不管所附权利要求中选择的从属关系如何,都可以主张保护该多项权利要求及其特征的任何组合。可主张保护的主题不仅包括所附多项权利要求中阐述的多个特征的多种组合,还包括该多项权利要求中的多个特征的任何其他组合,其中,该多项权利要求中提到的每个特征可以与该多项权利要求中的任何其他特征相组合、或者与多个其他特征的组合相组合。此外,可以在单个权利要求中主张保护本文中所描述或描绘的多个实施例和多个特征中的任何实施例和特征,和/或可以主张保护本文所描述或描绘的多个实施例和多个特征中的任何实施例和特征与本文所描述或描绘的任何实施例或特征的任何组合、或可以主张保护本文所描述或描绘的多个实施例和多个特征中的任何实施例和特征与所附权利要求的任何特征的任何组合。
附图说明
图1示出了示例人工现实系统。
图2示出了与用户相关联的样本身体姿势。
图3示出了使用机器学习模型利用已知的预测上半身姿势来生成下半身姿势的示例。
图4示出了用于训练用于下半身姿势预测的机器学习模型的配置。
图5示出了用于训练生成器的示例方法。
图6示出了从所生成的上半身姿势和所生成的下半身姿势生成全身姿势。
图7示出了用于训练判别器(Discriminator)的示例方法。
图8示出了用于基于上半身姿势和下半身姿势来生成用户的全身姿势的示例方法。
图9示出了与社交网络系统相关联的示例网络环境。
图10示出了示例计算机系统。
具体实施方式
图1示出了示例人工现实系统100。在特定示例中,人工现实系统100可以包括头戴式设备(headset)104、控制器106和计算系统108。用户102可以佩戴头戴式设备104,该头戴式设备104可以向用户102显示视觉人工现实内容。头戴式设备104可以包括音频设备,该音频设备可以向用户102提供音频人工现实内容。头戴式设备104可以包括一个或多个摄像头110,该一个或多个摄像头110可以采集环境的图像和视频。头戴式设备104可以包括眼动追踪系统以确定用户102的辐辏距离(vergence distance)。辐辏距离可以是从用户的双眼到用户的双眼所会聚的对象(例如,虚拟空间中的真实世界对象或虚拟对象)的距离。头戴式设备104可以称为头戴式显示器(HMD)。在特定示例中,计算系统108可以确定与用户102相关联的头戴式设备104的位姿。可以通过利用由计算系统108接收到的传感器数据或图像数据中的任何来确定头戴式设备的位姿。
一个或多个控制器106可以与人工现实系统100配对。在特定示例中,一个或多个控制器106可以配备有至少一个惯性测量单元(inertial measurement unit,IMU)和红外(infrared,IR)发光二极管(light emitting diode,LED),以供人工现实系统100估计控制器的姿态和/或追踪控制器的位置,使得用户可以经由控制器执行某些功能。该一个或多个控制器106可以配备有一个或多个可追踪标记,该一个或多个可追踪标记被分布以由计算系统108追踪。该一个或多个控制器106可以包括触控板和一个或多个按钮。该一个或多个控制器106可以接收来自用户102的输入,并且将该输入转发到计算系统108。该一个或多个控制器106也可以向用户102提供触觉反馈。计算系统108可以通过电缆或无线连接连接到头戴式设备104和该一个或多个控制器106。该一个或多个控制器106可以包括硬件、软件和/或固件的组合,该组合未在本文明确示出,以免混淆本公开的其他方面。
在特定示例中,计算系统108可以接收来自人工现实系统100的一个或多个传感器的传感器数据。在特定示例中,该一个或多个传感器可以结合到用户102。在特定示例中,该一个或多个传感器可以与用户所佩戴的头戴式设备104相关联。例如而非限制,头戴式设备104可以包括陀螺仪或惯性测量单元,该陀螺仪或惯性测量单元追踪用户的实时移动,并且输出用于表示或描述该移动的传感器数据。这类运动追踪传感器所提供的传感器数据可以被VR应用程序用来确定用户的当前取向,并且将该取向提供给渲染引擎以在3D空间中定向/重新定向虚拟摄像头。作为另一示例而非限制,该一个或多个控制器106可以包括惯性测量单元(IMU)和红外(IR)发光二极管(LED),该IMU和IR LED被配置为收集IMU传感器数据并将该IMU传感器数据发送到计算系统108。在特定示例中,计算系统108可以利用一种或多种追踪技术(例如但不限于,即时定位与地图构建(SLAM)追踪或基于IR的追踪)使用一个或多个传感器数据,来确定人工现实系统100的一个或多个部件的位姿。
在特定示例中,计算系统108可以接收来自人工现实系统100的一个或多个部件的一个或多个图像数据。在特定示例中,该图像数据包括从与人工现实系统100相关联的一个或多个摄像头110收集到的图像数据。例如,图1描绘了耦合在头戴式设备104内的一个或多个摄像头110。该一个或多个摄像头可以被定位成采集与各种视角相关联的一幅或多幅图像,该一个或多个摄像头例如但不限于与头戴式设备104相关联的朝下(例如,在站立时朝向用户102的脚部)的一个或多个摄像头。
在特定示例中,计算系统108可以确定与用户102相关联的一个或多个控制器106的控制器位姿。可以通过利用计算系统108所接收到的传感器数据或图像数据,并且利用一种或多种技术(例如但不限于,计算机视觉技术(例如,图像分类)),来确定与用户102相关联的控制器位姿。在2020年1月3日提交的、名称为“联合红外光和可见光的视觉惯性对象追踪”的第16/734,172号美国申请中,对用于确定控制器位姿的方法进行了进一步描述,在此通过引用将该申请的全部内容并入。
在特定示例中,计算系统108可以控制头戴式设备104和一个或多个控制器106来向用户102提供人工现实内容并接收来自用户102的输入。计算系统108可以是独立主控计算机系统、可以是与头戴式设备104集成的机载计算机系统、可以是移动设备或可以是能够向用户102提供人工现实内容并接收来自用户102的输入的任何其他硬件平台。
图2示出了与用户102相关联的样本全身姿势。在特定示例中,计算系统108可以生成与用户102相关联的全身姿势200,该全身姿势200包括上半身姿势205和下半身姿势215。与用户102相关联的全身姿势200可以尝试利用人工现实系统100在特定时间来复制用户102的一个或多个关节的位置和取向。在特定示例中,与用户102相关联的全身姿势200包括反向运动学的骨骼框架(“骨架”或“身体姿势”),该骨骼框架可以包括一个或多个关节的列表。
上半身姿势205可以对应于用户102的身体的一部分。在特定示例中,上半身姿势205可以对应于用户102的身体的一部分,该部分至少包括用户102的头部和手臂。在特定示例中,可以通过确定与用户102的多个预定身体部位或关节(例如,用户102的头部或手腕)对应的多个姿势,来生成上半身姿势205。在特定示例中,上半身姿势205还可以包括例如但不限于,与用户102的上半身相关联的一个或多个关节的姿势,例如但不限于,头部姿势210、手腕姿势220、肘部姿势220、肩部姿势240、颈部姿势250或上脊柱姿势260。
下半身姿势215可以对应于用户102的身体的一部分。在特定示例中,下半身姿势215可以对应于用户102的身体的一部分,该部分至少包括用户102的腿部。在特定示例中,下半身姿势215还可以包括例如但不限于,与用户102的下半身相关联的一个或多个关节的关节姿势,例如但不限于,下脊柱姿势270、髋部姿势280、膝盖姿势290或脚踝姿势295。
在特定示例中,可以通过例如但不限于表示身体姿势200中的各个关节的位置和/或取向的参数的子集,来表示如下的一个或多个关节姿势:该一个或多个关节姿势作为全身姿势200的组成部分、上半身姿势205的组成部分或下半身姿势215的组成部分。非线性求解器可以按照以下7个自由度将与用户102关联的每个关节姿势参数化:3个平移值(例如,x,y,z)、3个转动值(例如,以弧度为单位的欧拉角)和1个统一缩放值(uniform scalevalue)。在特定示例中,可以使用一个或多个坐标系来表示这些参数,例如但不限于,经由绝对全局坐标系(例如,x、y、z)或经由相对于父关节(例如但不限于,头关节)的局部坐标系来表示这些参数。
在特定示例中,可以使用接收到的、来自人工现实系统100的一个或多个部件的传感器数据或图像数据,来确定全身姿势200、上半身姿势205或下半身姿势215、以及一个或多个关节姿势,该一个或多个关节姿势作为全身姿势200的组成部分、上半身姿势205的组成部分或下半身姿势215的组成部分。在特定示例中,可以使用一种或多种技术的组合来生成作为全身姿势200的组成部分的一个或多个关节姿势,该一种或多种技术例如但不限于,定位技术(例如,SLAM)、机器学习技术(例如,神经网络)、与一个或多个人工现实系统部件的已知空间关系(例如,头戴式设备104与头部姿势210之间的已知空间关系)、可视化技术(例如,图像分割)或优化技术(例如,非线性求解器)。在特定示例中,可以单独使用这些技术中的一种或多种技术,或者将这些技术中的一种或多种技术与一种或多种其它技术结合使用。对于如本文中所描述的各种应用,与用户102相关联的这种全身姿势200可以是有用的。
在特定示例中,计算系统108可以生成用户102的上半身姿势205。可以至少基于传感器数据或图像数据来生成上半身姿势205。在特定示例中,计算系统108可以利用与用户102的多个预定身体部位对应的一个或多个姿势,来确定上半身姿势200,该一个或多个姿势例如但不限于,作为上半身姿势205的组成部分的、一个或多个关节的关节姿势(例如,头部姿势210或手腕姿势220)。
在特定示例中,该一个或多个姿势可以包括与用户102相关联的头部姿势210。头部姿势210可以包括用户102在佩戴头戴式设备104时的头关节的位置和取向。可以通过计算系统108利用计算系统108所接收到的传感器数据和/或图像数据中的任何数据,来确定与用户102相关联的头部姿势210。在特定示例中,可以基于头戴式设备104的位姿以及头戴式设备104与用户102的头部之间的已知空间关系,来确定与用户102相关联的该头部姿势210。在特定示例中,可以基于与用户102所佩戴的头戴式设备104相关联的传感器数据,来确定与用户102相关联的头部姿势210。
在特定示例中,该一个或多个姿势可以包括与用户102相关联的手腕姿势220。手腕姿势220可以包括用户102在与人工现实系统100交互时的腕关节的位置和取向。可以通过计算系统108利用计算系统108所接收到的传感器数据和/或图像数据中的任何数据,来确定与用户102相关联的手腕姿势220。在特定示例中,图像数据可以包括由用户102所佩戴的头戴式设备104采集到的一幅或多幅图像。该一幅或多幅图像可以描绘用户102的手腕、或用户102所握持的设备(例如,控制器106)。在特定示例中,计算系统108可以使用一种或多种计算机视觉技术(例如但不限于,图像分类或对象检测),以利用一幅或多幅图像来确定手腕姿势220。在特定示例中,可以基于控制器位姿以及控制器106与用户102的手腕之间的已知空间关系来确定手腕姿势220。
在特定示例中,可以基于多个姿势(例如但不限于,头部姿势210或手腕姿势220)来推断上半身姿势205。在特定示例中,可以通过非线性运动学优化求解器(“非线性求解器”)来推断上半身姿势205,从而推断作为上半身姿势205的组成部分的一个或多个关节姿势。在特定示例中,非线性求解器可以包括针对反向运动学构建的C++库,该C++库具有覆盖大范围应用的大的常见误差函数集合。在特定示例中,非线性求解器可以为通常与全局反向运动学问题(例如,关节和骨架结构、网格和线性混合蒙皮、用于常见约束(commonconstraint)的误差函数)相关的任务提供一个或多个辅助函数(helper function)、或可以提供用于网格变形(例如,拉普拉斯表面变形)的一个或多个辅助函数、或可以提供用于各种文件格式的一个或多个IO函数。
在特定示例中,非线性求解器可以推断作为上半身姿势205的组成部分的一个或多个关节姿势。由非线性求解器推断出的、作为与用户102相关联的上半身姿势205的组成部分的一个或多个关节姿势可以包括在特定时间或状态的运动学层级结构,该运动学层级结构被存储为一个或多个关节姿势的列表。在特定示例中,非线性求解器可以包括一个或多个基本求解器,该一个或多个基本求解器被支持以推断作为上半身姿势205的组成部分的一个或多个关节姿势,该一个或多个基本求解器例如但不限于,L-BFGS或高斯-牛顿求解器。在特定示例中,非线性求解器可以利用骨架求解器函数来求解反向运动学的单个帧(单个身体姿势)。例如,骨架求解器函数可以将当前的一个或多个参数(例如,关节姿势)集合作为输入,并且在给定所定义的误差函数的情况下对已激活的参数子集进行优化。非线性求解器的惯例是最小化当前函数(例如,骨架求解器函数)的误差值,以推断准确的上半身姿势205。
在特定示例中,非线性求解器可以通过例如但不限于表示上半身姿势205中的每个关节的位置或取向的参数子集,来表示一个或多个关节姿势。在特定示例中,非线性求解器可以按照以下7个自由度将每个关节姿势参数化:3个平移值(例如,x,y,z)、3个转动值(例如,以弧度为单位的欧拉角)和1个统一缩放值。在特定示例中,可以使用一个或多个坐标系来表示这些参数,例如但不限于经由绝对全局坐标系(例如,x、y、z)或经由相对于父关节(例如但不限于,头关节)的局部坐标系来表示这些参数。
在特定示例中,非线性求解器可以为每个关节姿势参数分配一个或多个变量极限(例如,最小值或最大值)。在特定示例中,非线性求解器可以向每个关节姿势参数分配预定静态权重。这些预定静态权重可以例如但不限于基于用于确定每个变量的值的传感器数据的准确性来确定。例如,可以为如下的关节姿势参数分配较高的静态权重:这些关节姿势表示与用户102相关联的头部姿势210和手腕姿势220,因为相比关节姿势参数内的一个或多个其他关节姿势或变量,这些关节姿势参数是利用更准确的方法(例如本文中所描述的SLAM技术)来确定的。在特定示例中,非线性求解器可以使用关节参数和预定静态权重来推断上半身姿势205,该上半身姿势205推断用户102的一个或多个关节在特定时间或状态的最可能的姿势。
尽管这些被单独使用或组合使用的技术通常允许可靠地确定上半身姿势205和作为上半身姿势2015的组成部分的相关关节(例如,头部姿势210、手腕姿势220、肘部姿势230等),但是这些技术对于确定下半身姿势215和作为下半身姿势215的组成部分的相关关节(例如,髋部姿势280、膝盖姿势290、脚踝姿势295等)可能是不可靠且不准确的。由于用户102仅佩戴头戴式设备104和一个或多个控制器106,因此与人工现实系统100相关联的传感器数据或图像数据可能存在局限性。例如,从一个或多个摄像头110接收到的图像数据可能不包含用户102的下半身的至少一部分,从而导致用于确定或生成与用户102相关联的准确的下半身姿势215的信息很少。
为了解决这个问题,在特定示例中,计算系统108可以利用本文中所描述的一种或多种技术来生成用户102的下半身姿势215。在特定示例中,可以通过使用机器学习模型对上半身姿势205进行处理,来生成下半身姿势215。图3示出了利用所输入的上半身姿势来生成下半身姿势的示例。具体地,图3示出了所输入的、与人工现实系统100的用户102相关联的上半身姿势205,该上半身姿势205是使用本文中所描述的方法而生成的,并且由机器学习模型300接收。在特定示例中,机器学习模型300可以基于生成对抗网络(GAN)。使用本文中所描述的特定示例,机器学习模型300可以利用上半身姿势205来生成下半身姿势215。在特定示例中,代替或除由机器学习模型生成的下半身姿势215之外,计算系统可以将所生成的上半身姿势205与所生成的下半身姿势215进行组合,以生成全身姿势。
图4示出了对用于姿势预测的生成对抗网络(GAN)400进行训练的配置。GAN可以包括两个单独的神经网络:生成器405(在本文中可互换地称为“G”)和判别器410(在本文中可互换地称为“D”)。在特定示例中,生成器405和判别器410可以实现为例如但不限于神经网络,尽管可以利用适于本文中所描述的操作的任何网络架构。在高层级处,生成器405可以被配置为接收作为输入的所生成的上半身姿势205,并且输出所生成的下半身姿势215。在特定示例中,上半身姿势205可以与下半身姿势215组合以生成全身姿势425。在特定示例中,判别器410可以被配置为将以下两者进行区分:“假”的全身姿势425(这些“假”的全身姿势425包括由生成器405输出的下半身姿势)、和来自训练姿势数据库440的“真”的训练下半身姿势435(这些“真”的训练下半身姿势435不是由生成器405生成的)。在特定示例中,一个或多个训练全身姿势435可以包括来自一幅或多幅图像的全身姿势。生成器405和判别器410可以被认为是对抗者,因为生成器405的目标是生成将欺骗判别器410的假姿势(换言之,以增加判别器410的错误率),而判别器410的目标是正确地将来自生成器405的“假”姿势与“真”姿势进行区分。在特定示例中,机器学习模型(例如,生成器405)在训练期间被优化,以使得第二机器学习模型(例如,判别器410)错误地确定为:一给定全身姿势(该给定全身姿势是使用机器学习模型来生成的)不太可能是使用该机器学习模型而生成的。
在特定示例中,训练姿势数据集中的每个训练全身姿势435在其不是整个地也不是部分地由模型400生成的意义上可以是“真”姿势。在特定示例中,可以通过从姿势数据库中检索人的不同姿势,来自动获得每个训练全身姿势435,其中,这些不同姿势中的每个姿势均包括该人的全身姿势435。这些“真”的训练全身姿势435用作地面真值(groundtruth),以对判别器410网络进行训练,从而识别哪些全身姿势是“真”的以及哪些全身姿势是“假”的。训练全身姿势435还可以描绘人,例如但不限于,正坐着的人、正站立的人或正跪着的人、或处于另一姿势的人,该另一姿势与发生器405所输出的所生成的上半身姿势205或所生成的下半身姿势215相同或不同。姿势的随机性促使经训练的机器学习模型400更具有鲁棒性,因为在操作中可能不知道机器学习模型400将被要求处理什么类型的身体姿势。
在特定示例中,对机器学习模型200的训练可以同时或分阶段执行。例如,第一阶段可以用于训练生成器405,第二阶段可以用于基于生成器405的输出来训练判别器410,并且第三阶段可以用于重新训练/细化生成器405以更好地“欺骗”经训练的判别器410。作为另一示例,对生成器405和判别器410的训练可以同时发生。
在特定示例中,生成器405可以被配置为接收上半身姿势205,并且生成时间相关下半身姿势215序列,例如,用户站立、坐着或行走时的下半身姿势的序列。生成器405可以生成时间相关下半身姿势序列,而不是生成单个下半身姿势215,该时间相关下半身姿势序列可以与对应的上半身姿势组合以生成时间相关全身姿势序列。在特定示例中,判别器410可以被配置和训练为确定所输入的姿势序列是否在时间上一致,并因此区分“假”的时间相关全身姿势序列(这些“假”的时间相关全身姿势序列包括生成器405输出的时间相关下半身姿势序列)与来自训练姿势数据库440的“真”的时间相关训练下半身姿势序列,该“真”的时间相关训练下半身姿势序列不是由生成器405生成的。在特定示例中,时间相关训练全身姿势序列可以包括来自一幅或多幅图像的全身姿势。在该时间相关GAN中,生成器405和判别器410可以被认为是对抗者,因为生成器405的目标是生成将欺骗判别器410的假的时间相关姿势序列(换言之,用以增加判别器410的错误率),而判别器410的目标是正确地区分来自生成器405的“假”的时间相关全身姿势序列与“真”的时间相关全身姿势序列。一旦训练完成,就可以训练时间相关生成器,以在给定所输入的上半身姿势205的情况下,输出逼真的时间相关下半身姿势序列。尽管为了可读性和清晰性,本公开主要描述了使用本文中所描述的方法一次仅训练和利用一个姿势,但是替代地,GAN可以被训练并被用于使用本文中所描述的相同方法来输出时间相关下半身姿势序列。
图5示出了根据特定示例的用于基于损失来训练生成器的示例方法500。在高层级处,在训练生成器405期间,可以基于所生成的“假”的全身姿势425(该“假”的全身姿势425包括生成器所生成的下半身姿势215)与对应的训练全身姿势435之间的比较,来迭代地更新生成器405的参数。训练的目的是使“假”姿势的预测损失460最大化。在这样做时,目标是使生成器405学习如何基于上半身姿势205而生成如下的上半身姿势215:该上半身姿势215可以用于生成看起来足够“真”的“假”的全身姿势425。
该方法可以在步骤510处开始,其中,计算系统可以接收与用户102的身体的第一部分对应的上半身姿势205,该身体的第一部分包括用户102的头部和手臂。输入到生成器405中的上半身姿势205可以是如下的上半身姿势:该上半身姿势是基于传感器数据和/或图像数据,使用本文中所描述的一种或多种技术而生成的;或者输入到生成器405中的上半身姿势205可以是从人的一幅或多幅真实图像提取到的上半身姿势。
在步骤520处,机器学习模型可以通过对上半身姿势205进行处理,来生成与用户102的身体的第二部分对应的下半身姿势215,该身体的第二部分包括用户102的腿部。在特定示例中,生成器405可以基于接收到的上半身姿势205,来生成下半身姿势215。在特定示例中,所生成的下半身姿势215对应于身体的包括用户的腿部的第二部分。所生成的下半身姿势215可以用于生成包括所生成的下半身姿势215的“假”的全身姿势425。
在特定示例中,计算系统可以确定与人工现实系统100相关联的上下文信息。在特定示例中,生成器可以接收该上下文信息。生成器405可以利用该上下文信息来生成下半身姿势。该上下文信息可以与采集传感器数据和/或图像数据的特定时间相关联。例如而非限制,上下文信息可以包括关于用户102是坐着还是站着的信息。在另一示例中,上下文信息可以包括关于在确定上半身姿势时用户正在与之交互的应用程序的信息,该应用程序例如但不限于人工现实应用程序(例如,用户是否正在同与商务会议相关联的应用程序交互,或者用户是否正在同与游戏(例如舞蹈比赛)相关联的应用程序交互)。在特定示例中,生成器405可以接收与人工现实系统100相关联的一个或多个上下文信息。在特定示例中,下半身姿势215是通过还使用机器学习模型对上下文信息进行处理而生成的。
在特定示例中,计算系统可以使用例如物理感知数据增强方法,来确定与上半身姿势或下半身姿势相关联的一个或多个物理约束。生成器405可以接收这些物理约束中的一个或多个物理约束,并利用该一个或多个物理约束,来生成更逼真的下半身姿势或更逼真的时间相关下半身姿势序列。这些物理约束可以与用户的一个或多个关节姿势相关联,上述的物理约束例如为但不限于,对膝盖关节姿势的可能运动范围的物理限制,该可能运动范围模拟了人体的一个或多个物理限制。在特定示例中,计算系统可以在生成时间相关的下半身姿势序列时,确定一个或多个物理约束。例如而非限制,计算系统可以确定对如下一个或多个关节的加速度变化率或抖动速率的时间限制:该一个或多个关节为在时间相关姿势序列中的一个或多个连续姿势之中的关节。在特定示例中,生成器405可以使用该约束来确定更逼真的时间相关下半身姿势序列。
在步骤530处,系统可以基于上半身姿势205和下半身姿势215,来生成全身姿势425。图6示出了从所生成的上半身姿势和所生成的下半身姿势生成全身姿势。在特定示例中,使用本文中所描述的方法来生成上半身姿势215,并且该上半身姿势215对应于用户的身体的第一部分,该身体的第一部分包括用户的头部和手臂。在特定示例中,使用本文中所描述的方法来生成下半身姿势215,并且该下半身姿势215对应于用户的身体的第二部分,该身体的第二部分包括用户的腿部。在特定示例中,可以由机器学习模型400生成全身姿势425。在特定示例中,可以由计算系统在后处理步骤中生成全身姿势425。
在步骤540处,系统可以使用判别器410来判断全身姿势425是否可能是使用生成器405所生成的下半身姿势215而生成的(即,该全身姿势425是“假”还是“真”)。在特定示例中,对判别器进行训练的目的是,使该判别器学习如何正确地区分“真”全身姿势和“假”全身姿势。例如,对于每个全身姿势,判别器410可以输出0至1之间的值,该0至1之间的值表示该姿势由生成器生成的置信度或概率/可能性(即,“假”)。例如,更接近1的值可以指示姿势为“真”(即,不由生成器生成)的更高的概率/置信度,而更接近0的值可以指示姿势为“真”的更低的概率/置信度(这隐含地意味着姿势为“假”的更高的概率/置信度)。这些预测可以与姿势的已知标签进行比较,这些已知标签指示哪些姿势为“假”以及哪些姿势为“真”。
在特定示例中,系统可以基于D对如下内容的判断来计算损失:全身姿势是否可能是使用生成器405所生成的下半身姿势215而生成的。例如,可以基于判别器做出的预测(例如,置信度/概率分数)与全身姿势的是“假”的已知标签(该已知标签可以是隐式标签)的比较,来计算损失。在特定示例中,对于给定姿势,判别器410的预测(表示为0至1之间的输出值,该值表示该姿势由生成器405生成的置信度或概率/可能性)可以与姿势的已知标签进行比较,这些已知标签指示哪些姿势为“假”以及哪些姿势为“真”。例如,如果已知全身姿势为“假”,则更接近1的预测可导致更高的损失,而更接近0的预测可导致更低的损失。换言之,该损失可以是对判别器410的预测正确性的度量。
然后,在步骤550处,系统可以基于该损失来更新生成器。可以更新生成器410的参数,以期使判别器所输出的损失最大化。由于生成器的目标是“欺骗”判别器,使判别器认为使用生成器所生成的下半身姿势215而生成的全身姿势为“真”,所以训练算法可以被配置为对该损失进行优化。换言之,将更新生成器的参数以期对生成器进行优化,以生成如下的下半身姿势(这些下半身姿势随后被用来生成全身姿势):这些下半身姿势将使得判别器的预测损失增加(即,增加判别器的如下的不正确的预测:使用生成器405所生成的下半身姿势215而生成的给定全身姿势不太可能是使用该生成器405而生成的)。
然后,在步骤560处,系统可以判断对生成器405的训练是否已完成。在特定示例中,系统可以基于一个或多个终止标准来判断训练是否完成。例如,如果损失低于预定阈值和/或如果该损失在最后几次迭代中的变化已经稳定(例如,在预定范围内波动),则系统可以确定训练已完成。替代地或另外地,如果已经完成预定数量的训练迭代或者如果已经使用了预定数量的训练样本,则可以认为训练已完成。在特定示例中,在还没有完成训练的情况下,系统可以重复从步骤510开始的过程以继续训练生成器。替代地,如果确定训练已完成,则可以在操作中使用经训练的生成器。
训练目标是使生成器405学习以生成如下的姿势215:这些姿势215将欺骗判别器410认为这些姿势是“真”。在特定示例中,生成器405可以生成下半身姿势215,并且判别器410可以预测如下内容的可能性450:所得到的全身姿势425是“真”还是“假”。如果高预测值表示判别器410认为姿势更可能为“真”,则训练的目标可以用如下内容来表示:使判别器410对“假”的全身姿势215的预测值最大化。如果判别器410针对“假”的全身姿势215的预测正确性被表示为损失460,则训练的目标可以用使该损失460最大化来表示。基于损失函数和训练目标,可以在每次训练之后迭代地更新生成器405的参数,使得生成器405变得更好地生成如下的下半身姿势215:这些下半身姿势215可以“欺骗”判别器410。因此,一旦经过训练,生成器405就可以用于对给定的上半身姿势进行处理,并且自动生成逼真的下半身姿势。
返回到图4,根据特定示例,当生成器405正被训练时,该生成器405可以用于同时训练判别器410。在高层级处,生成器405可以对给定的上半身姿势205进行处理,并且生成下半身姿势215。计算系统可以利用上半身姿势205和下半身姿势215来生成全身姿势425。可以将所生成的全身姿势425连同来自训练姿势数据库440的一个或多个训练全身姿势435作为输入提供给判别器410。
图7示出了用于训练判别器410的示例方法700。在特定示例中,生成器405可以用于训练判别器410。在特定示例中,可以同时训练生成器405和判别器410。判别器410的任务可以是处理输入姿势(例如,“假”的全身姿势425和“真”的训练全身姿势435),并预测哪些姿势为“真”以及哪些姿势为“假”450。在概念上,训练判别器410的目标可以是使判别器410针对所生成的全身姿势425和训练全身姿势435的预测值最大化,并且使判别器410针对所生成的全身姿势425的预测值最小化。换言之,如果判别器410针对“假”姿势(例如,所生成的全身姿势425)和“真”姿势(即,训练全身姿势435)的预测正确性分别表示为损失460和465,则训练判别器410的目标将是使这些损失最小化(即,使不正确的预测最小化)。基于损失函数和训练目标,可以在每次预测之后迭代地更新判别器410的参数,使得判别器410变得更好地区分“真”全身姿势和“假”全身姿势。
该方法可以在步骤710处开始,其中,计算系统可以接收与用户102的身体的第一部分对应的上半身姿势205,该身体的第一部分包括用户102的头部和手臂。输入到生成器405中的上半身姿势205可以是如下的上半身姿势:该上半身姿势是基于传感器数据和/或图像数据、使用本文中所描述的一种或多种技术而生成的;或者输入到生成器405中的上半身姿势205可以是从人的一幅或多幅真实图像提取到的上半身姿势。在特定示例中,步骤710可以类似于本文中所描述的步骤510进行。
在步骤720处,机器学习模型可以通过对上半身姿势205进行处理,来生成与用户102的身体的第二部分对应的下半身姿势215,该身体的第二部分包括用户102的腿部。在特定示例中,生成器405可以基于接收到的上半身姿势205来生成下半身姿势215。在特定示例中,所生成的下半身姿势215对应于身体的包括用户的腿部的第二部分。在特定示例中,生成器405可以基于该生成器405的当前参数来生成下半身姿势215,可以在训练期间迭代地更新这些当前参数,使得生成器更好地生成逼真的下半身姿势。所生成的下半身姿势215可以用于生成包括该所生成的下半身姿势215的“假”的全身姿势425。在特定示例中,步骤720可以类似于本文中所描述的步骤520进行。
在特定示例中,计算系统可以确定与人工现实系统100相关联的上下文信息。在特定示例中,生成器可以接收该上下文信息。生成器405可以利用该上下文信息来生成下半身姿势。该上下文信息可以与采集传感器数据和/或图像数据的特定时间相关联。例如而非限制,上下文信息可以包括关于用户102是坐着还是站着的信息。在另一示例中,上下文信息可以包括关于在确定上半身姿势时用户正在与之交互的应用程序的信息,该应用程序例如为但不限于人工现实应用程序(例如,用户是否正在同与商务会议相关联的应用程序交互,或者用户是否正在同与游戏(例如,舞蹈比赛)相关联的应用程序交互)。在特定示例中,生成器405可以接收与人工现实系统100相关联的一个或多个上下文信息。在特定示例中,下半身姿势215是通过还使用机器学习模型对上下文信息进行处理而生成的。
在步骤730处,系统可以基于上半身姿势205和下半身姿势215来生成全身姿势425。在特定示例中,可以通过机器学习模型400生成全身姿势425。在特定示例中,可以由计算系统在后处理步骤中生成全身姿势425。在特定示例中,步骤730可以类似于本文中所描述的步骤530进行。
在步骤740处,系统可以使用判别器410来判断全身姿势425是否可能是使用如下的下半身姿势215而生成的(即,全身姿势425为“假”还是“真”):该下半身姿势215是使用生成器405而生成的。在特定示例中,对判别器进行训练的目的是,使该判别器学习如何正确地区分“真”全身姿势和“假”全身姿势。例如,对于每个全身姿势,判别器410可以输出0至1之间的值,该0至1之间的值表示该姿势由生成器生成的的置信度或概率/可能性(即,“假”)。例如,更接近1的值可以指示姿势为“真”(即,不由生成器生成)的更高的概率/置信度,而更接近0的值可以指示姿势为“真”的更低的概率/置信度(这隐含地意味着姿势为“假”的更高概率/置信度)。这些预测可以与姿势的已知标签进行比较,这些已知标签指示哪些姿势为“假”以及哪些姿势为“真”。在特定示例中,步骤740可以类似于本文中所描述的步骤540进行。
在特定示例中,系统可以基于判别器对如下内容的判断来计算损失:全身姿势是否可能是使用生成器405所生成的所生成的下半身姿势215而生成的。例如,可以基于判别器做出的预测(例如,置信度/概率分数)与全身姿势的是“假”的已知标签(该已知标签可以是隐式标签)的比较,来计算损失。在特定示例中,对于给定姿势,判别器410的预测(表示为0至1之间的输出值,该值表示姿势由生成器405生成的置信度或概率/可能性)可以与姿势的已知标签进行比较,这些已知标签指示哪些姿势为“假”以及哪些姿势为“真”。例如,如果已知全身姿势为“假”,则更接近1的预测可能导致更高的损失,而更接近0的预测可能导致更低的损失。换言之,该损失可以是对判别器410的预测正确性的度量。
然后,在步骤750处,系统可以基于该损失来更新判别器。可以更新判别器410的参数,以期使判别器所输出的损失最小化。在特定示例中,这些损失可以是反向传播的,并且这些损失可以由训练算法使用来更新判别器410的参数,使得在训练过程中,判别器将逐渐更好地区分“假”姿势与“真”姿势。该训练算法的目标可以是使该损失最小化(即,使不正确的预测最小化)。
然后,在步骤760处,系统可以判断对判别器405的训练是否已完成。在特定示例中,系统可以基于一个或多个终止标准来判断训练是否完成。例如,如果损失低于预定阈值和/或如果该损失在最后几次迭代中的变化已经稳定(例如,在预定范围内波动),则系统可以确定训练已完成。替代地或另外地,如果已经完成预定数量的训练迭代或者如果已经使用了预定数量的训练样本,则可以认为训练已完成的。在特定示例中,在还没有完成训练的情况下,系统可以重复从步骤710开始的过程以继续训练判别器。
尽管本公开将图7的方法中的多个特定步骤描述和示出为以特定顺序发生,但是本公开考虑了图7的方法中的任何合适的多个步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了包括图7的方法中的这些特定步骤的用于训练判别器的示例方法,但是本公开考虑了包括任何合适的步骤的用于训练判别器的任何合适的方法,在适当的情况下,这些合适的步骤可以包括图7的方法中的所有步骤、一些步骤或者不包括图7的方法中的任何步骤。此外,尽管本公开描述和示出了执行图7的方法中的多个特定步骤的特定部件、设备或系统,但是本公开考虑了执行图7的方法中的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。
返回到图5,一旦生成器405已被训练,该生成器405就可以被配置为接收输入的上半身姿势205并且生成下半身姿势215。在训练之后,该姿势将是逼真的,使得当该姿势与上半身姿势205组合时,计算系统将生成逼真的全身姿势425。此外,一旦生成器被训练,该生成器就可以被用来基于任何输入的上半身姿势来生成下半身姿势(换言之,该生成器不限于基于出现在训练姿势数据集中的姿势来生成下半身姿势)。也可以将经训练的生成器分布到与训练系统不同的不同平台,该不同平台包括例如用户的移动设备或其他个人计算设备。
在步骤570处,经训练的生成器可以访问上半身姿势205。上半身姿势205可以与用户102的身体的第一部分对应,该身体的第一部分包括用户102的头部和手臂。输入到经训练的生成器中的上半身姿势205可以是基于传感器数据、使用本文中所描述的一种或多种技术而生成的上半身姿势,或者输入到经训练的生成器405中的上半身姿势205可以是来自人的一幅或多幅真实图像的上半身姿势。
然后,在步骤580处,经训练的生成器可以生成与用户的身体的第二部分对应的下半身姿势。下半身姿势可以与用户102的身体的第二部分对应,该身体的第二部分包括用户102的腿部。在特定示例中,经训练的生成器可以基于接收到的上半身姿势205来生成下半身姿势215。在特定示例中,所生成的下半身姿势215对应于身体的包括用户的腿部的第二部分。
在特定示例中,经训练的生成器还可以接收上下文信息并对上下文信息进行处理,该上下文信息指定用于生成准确的下半身姿势215的其他信息。在特定示例中,上下文信息可以与采集用于生成上半身姿势205的传感器数据的时间相关联。例如,生成器可以接收包括如下的应用程序的上下文信息:在传感器数据被采集时用户正与该应用程序交互,该应用程序例如为用于虚拟商业会议的虚拟现实应用程序。基于该信息,经训练的生成器405可能更有可能生成如下的下半身姿势215:该下半身姿势215是典型的、用户在工作场所环境中坐着或站着的姿势。
返回到图6,在特定示例中,计算系统可以基于上半身姿势205和下半身姿势215来生成全身姿势425。在特定示例中,可以通过机器学习模型400生成全身姿势425。在特定示例中,可以由计算系统在后处理步骤中生成全身姿势425。在特定示例中,该全身姿势425可以用于各种应用程序。例如,计算系统108可以利用全身姿势425来生成用户102在虚拟现实空间或人工现实空间中的化身。在特定示例中,计算系统108可以针对各种应用程序仅利用全身姿势425的一部分,该全身姿势425的一部分例如为但不限于:上半身姿势(例如,从用户的头部到用户的髋部)或仅一个或多个关节的经推断的姿势(例如,肘关节230或膝关节290)。
尽管本公开将图5的方法中的多个特定步骤描述和示出为以特定顺序发生,但是本公开考虑了图5的方法中的任何合适的多个步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了用于基于经编码的特征表示来训练生成器的示例方法(该方法包括图5的方法中的这些特定步骤),但是本公开考虑了包括任何合适的步骤的用于训练生成器的任何合适的方法,在适当的情况下,这些合适的步骤可以包括图5的方法中的所有步骤、一些步骤或者不包括图5的方法中的任何步骤。此外,尽管本公开描述和示出了执行图5的方法中的多个特定步骤的特定部件、设备或系统,但是本公开考虑了执行图5的方法中的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。
尽管本公开将图4的方法中的多个特定步骤描述和示出为以特定顺序发生,但是本公开考虑了图4的方法中的任何合适的多个步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了用于基于重现(recurrence)损失来训练生成器的示例方法(该方法包括图4的方法中的这些特定步骤),但是本公开考虑了包括任何合适的步骤的用于基于重现损失来训练生成器的任何合适的方法,在适当的情况下,这些合适的步骤可以包括图4的方法中的所有步骤、一些步骤或者不包括图4的方法中的任何步骤。此外,尽管本公开描述和示出了执行图4的方法中的多个特定步骤的特定部件、设备或系统,但是本公开考虑了执行图4的方法中的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。
图8示出了用于基于上半身姿势和下半身姿势来生成用户的全身姿势的示例方法800。该方法可以在步骤810处开始,其中,计算系统可以接收由结合到用户的一个或多个传感器采集到的传感器数据。在特定示例中,该一个或多个传感器可以结合到用户102。在特定示例中,该一个或多个传感器可以与用户所佩戴的头戴式设备104相关联。例如而非限制,头戴式设备104可以包括陀螺仪或惯性测量单元,该陀螺仪或惯性测量单元追踪用户的实时移动,并且头戴式设备104可以输出用于表示或描述该移动的传感器数据。作为另一示例而非限制,该一个或多个控制器106可以包括惯性测量单元(inertial measurementunit,IMU)和红外(infrared,IR)发光二极管(light emitting diode,LED),该惯性测量单元和红外发光二极管被配置为收集IMU传感器数据并将该IMU传感器数据发送到计算系统108。作为另一示例,传感器数据可以包括来自人工现实系统100的一个或多个部件的一个或多个图像数据。
在步骤820处,计算系统可以生成与用户的身体的第一部分对应的上半身姿势,该身体的第一部分包括用户的头部和手臂。在特定示例中,计算系统可以利用传感器数据来生成上半身姿势。在特定示例中,计算系统108可以确定与用户102的多个预定身体部位对应的多个姿势,上述的姿势例如为但不限于关节姿势(例如,头部姿势210或手腕姿势220)。在特定示例中,可以使用一种或多种技术的组合来确定或推断作为上半身姿势200的组成部分的一个或多个关节姿势,该一种或多种技术例如为但不限于,定位技术(例如,SLAM)、机器学习技术(例如,神经网络)、与一个或多个人工现实系统部件的已知空间关系(例如,头戴式设备104和头部姿势210之间的已知空间关系)、可视化技术(例如,图像分割)或优化技术(例如,非线性求解器)。
在步骤830处,计算系统可以生成与用户的身体的第二部分对应的下半身姿势,该身体的第二部分包括用户的腿部。在特定示例中,计算系统可以利用机器学习模型来生成下半身姿势,该机器学习模型例如为但不限于,包括生成器网络和判别器网络的生成对抗网络(GAN)。在特定示例中,生成器可以接收与上半身姿势相关联的上下文信息。生成器可以利用该上下文信息来生成下半身姿势。该上下文信息可以与采集传感器数据和/或图像数据的特定时间相关联。
在步骤840处,计算系统可以基于上半身姿势和下半身姿势来生成用户的全身姿势。在特定示例中,可以通过机器学习模型生成全身姿势。在特定示例中,可以由计算系统在后处理步骤中生成全身姿势。在特定示例中,该全身姿势可以用于各种应用程序。例如,计算系统可以利用全身姿势来生成用户在虚拟现实空间或人工现实空间中的化身。
在适当的情况下,特定示例可以重复图8的方法中的一个或多个步骤。尽管本公开将图8的方法中的多个特定步骤描述和示出为以特定顺序发生,但是本公开考虑了图8的方法中的任何合适的多个步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了用于基于上半身姿势和下半身姿势来生成用户的全身姿势的示例方法(该方法包括图8的方法中的这些特定步骤),但是本公开考虑了包括任何合适的步骤的用于基于上半身姿势和下半身姿势来生成用户的全身姿势的任何合适的方法,在适当的情况下,该方法可以包括图8的方法中的所有步骤、一些步骤或者不包括图8的方法中的任何步骤。此外,尽管本公开描述和示出了执行图8的方法中的多个特定步骤的特定部件、设备或系统,但是本公开考虑了执行图8的方法中的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。
图9示出了与社交网络系统相关联的示例网络环境900。网络环境900包括客户端系统930、社交网络系统960和第三方系统970,该客户端系统930、社交网络系统960和第三方系统970通过网络910彼此连接。尽管图9示出了客户端系统930、社交网络系统960、第三方系统970和网络910的特定布置,但是本公开考虑了客户端系统930、社交网络系统960、第三方系统970和网络910的任何合适的布置。作为示例而非限制,客户端系统930、社交网络系统960和第三方系统970中的两者或更多者可以绕过网络910而彼此直接连接。作为另一示例,客户端系统930、社交网络系统960和第三方系统970中的两者或更多者可以在物理上或逻辑上整体或部分地彼此位于一处。此外,尽管图9示出了特定数量的客户端系统930、社交网络系统960、第三方系统970和网络910,但是本公开考虑了任何合适数量的客户端系统930、社交网络系统960、第三方系统970和网络910。作为示例而非限制,网络环境900可以包括多个客户端系统930、多个社交网络系统960、多个第三方系统970、和多个网络910。
本公开考虑了任何合适的网络910。作为示例而非限制,网络910的一个或多个部分可以包括自组网、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线LAN(wireless LAN,WLAN)、广域网(wide areanetwork,WAN)、无线局域网(wireless WAN,WWAN)、城域网(metropolitan area network,MAN)、因特网的一部分、公共交换电话网络(Public Switched Telephone Network,PSTN)的一部分、蜂窝电话网络或这些网络中的两者或更多者的组合。网络910可以包括一个或多个网络910。
多条链路950可以将客户端系统930、社交网络系统960和第三方系统970连接到通信网络910或者使客户端系统930、社交网络系统960和第三方系统970彼此连接。本公开考虑了任何合适的链路950。在特定示例中,一条或多条链路950包括一条或多条有线(例如,数字用户线路(Digital Subscriber Line,DSL)或电缆数据服务接口规范(Data OverCable Service Interface Specification,DOCSIS))链路、一条或多条无线(例如,Wi-Fi或全球微波互联接入(Worldwide Interoperability for Microwave Access,WiMAX))链路、或一条或多条光学(例如,同步光网络(Synchronous Optical Network,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))链路。在特定示例中,一条或多条链路950各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、因特网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一条链路950、或两条或更多条此类链路950的组合。在整个网络环境900中,多条链路950不必都是相同的。一条或多条第一链路950在一个或多个方面可以不同于一条或多条第二链路950。
在特定示例中,客户端系统930可以是如下的电子设备:该电子设备包括硬件、软件、或嵌入式逻辑部件或两个或更多个此类部件的组合,并且能够执行客户端系统930所实现或支持的适当功能。作为示例而非限制,客户端系统930可以包括计算机系统,该计算机系统例如为,台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持电子设备、蜂窝电话、智能电话、增强/虚拟现实设备、其他合适的电子设备或它们的任何合适的组合。本公开考虑了任何合适的客户端系统930。客户端系统930可以使客户端系统930处的网络用户能够访问网络910。客户端系统930可以使其用户能够与其他客户端系统930处的其他用户通信。
在特定示例中,客户端系统930可以包括网页(web)浏览器932,并且可以具有一个或多个附加组件、插件或其他扩展。客户端系统930处的用户可以输入统一资源定位符(Uniform Resource Locator,URL)或将web浏览器932引导到特定服务器(例如,服务器962或与第三方系统970相关联的服务器)的其他地址,并且web浏览器932可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求,并将该HTTP请求传送到服务器。服务器可以接受HTTP请求,并响应于该HTTP请求向客户端系统930传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端系统930可以基于来自该服务器的HTML文件来渲染网页以供呈现给用户。本公开考虑了任何合适的网页文件。作为示例而非限制,根据特定需要,网页可以是根据HTML文件、可扩展超文本标记语言(ExtensibleHyper Text Markup Language,XHTML)文件、或可扩展标记语言(Extensible MarkupLanguage,XML)文件而渲染的。此类页面还可以执行脚本、标记语言和脚本的组合等。本文中,在适当的情况下,对网页的引用涵盖一个或多个对应的网页文件(浏览器可以使用该一个或多个对应的网页文件来渲染网页),反之亦然。
在特定示例中,社交网络系统960可以是可控制在线社交网络的网络可寻址计算系统。社交网络系统960可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为,用户简档数据、概念简档数据、社交图谱信息、或与在线社交网络相关的其他合适的数据。社交网络系统960可以由网络环境900中的其他部件直接地访问或经由网络910访问。作为示例而非限制,客户端系统930可以使用web浏览器932或与社交网络系统960相关联的本地应用程序(例如,移动社交网络应用程序、消息传递应用程序、另一合适的应用程序或它们的任何组合),来直接地或经由网络910访问社交网络系统960。在特定示例中,社交网络系统960可以包括一个或多个服务器962。每个服务器962可以是单一服务器或跨多个计算机或多个数据中心的分布式服务器。服务器962可以是多种多样的,例如但不限于,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适于执行本文中所描述的功能或过程的另一服务器、或它们的任何组合。在特定示例中,每个服务器962可以包括用于执行由服务器962实现或支持的适当功能的硬件、软件、或嵌入式逻辑部件、或者两个或更多个此类部件的组合。在特定示例中,社交网络系统960可以包括一个或多个数据存储区964。数据存储区964可以用于存储各种类型的信息。在特定示例中,可以根据特定的数据结构来组织存储在数据存储区964中的信息。在特定示例中,每个数据存储区964可以是关系数据库、列式数据库、关联数据库(correlation database)或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开考虑了任何合适类型的数据库。特定实施例可以提供多个接口,该多个接口使客户端系统930、社交网络系统960或第三方系统970能够对存储在数据存储区964中的信息进行管理、检索、修改、添加或删除。
在特定示例中,社交网络系统960可以在一个或多个数据存储区964存储一个或多个社交图谱。在特定示例中,社交图谱可以包括多个节点——这些节点可以包括多个用户节点(每个用户节点对应于一特定用户)或多个概念节点(每个概念节点对应于一特定概念)——以及连接这些节点的多条边。社交网络系统960可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定示例中,用户可以经由社交网络系统960加入在线社交网络,然后向社交网络系统960中他们想要联系的一些其他用户添加联系(例如,关系)。本文中,术语“朋友”可以指社交网络系统960中用户已经经由社交网络系统960与其形成了联系、关联或关系的任何其他用户。
在特定示例中,社交网络系统960可以向用户提供在社交网络系统960支持的各种类型的项目或对象上采取行动的能力。作为示例而非限制,这些项目和对象可以包括社交网络系统960的用户可能所属的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可能使用的基于计算机的应用程序、允许用户经由服务购买或出售项目的交易、用户可能执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在社交网络系统960中表示的任何事物交互、或者与能够由第三方系统970的外部系统表示的任何事物进行交互,该第三方系统与社交网络系统960分离,并经由网络910耦接到社交网络系统960。
在特定示例中,社交网络系统960可以能够连接各种实体。作为示例而非限制,社交网络系统960可以使用户能够彼此交互以及从第三方系统970或其他实体接收内容,或者允许用户通过应用程序编程接口(application programming interface,API)或其他通信信道与这些实体交互。
在特定示例中,第三方系统970可以包括一种或多种类型的服务器、一个或多个数据存储区、一个或多个接口(包括但不限于API)、一个或多个web服务、一个或多个内容源、一个或多个网络、或任何其他合适的部件(例如,服务器可以与这些部件通信)。可以由与操作社交网络系统960的实体不同的实体来操作第三方系统970。然而,在特定示例中,社交网络系统960和第三方系统970可以彼此协同运行,以向社交网络系统960的用户或第三方系统970提供社交网络服务。在这个意义上,社交网络系统960可以提供平台或主干网络,其他系统(例如,第三方系统970)可以使用该平台或主干网络来向因特网上的用户提供社交网络服务和功能。
在特定示例中,第三方系统970可以包括第三方内容对象提供者。第三方内容对象提供者可以包括一个或多个内容对象源,该一个或多个内容对象源可以被传送到客户端系统930。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,这些信息例如为,电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,这些激励内容对象例如为,优惠券、折扣券、礼品券、或其它合适的激励对象。
在特定示例中,社交网络系统960还包括用户生成的内容对象,这可以增强用户与社交网络系统960的交互。用户生成的内容可以包括用户可以添加、上传、发送、或“发布”到社交网络系统960的任何内容。作为示例而非限制,用户将帖子从客户端系统930传送到社交网络系统960。帖子可以包括诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体等数据。也可以由第三方通过诸如新闻推送或流等“通信信道”将内容添加到社交网络系统960。
在特定示例中,社交网络系统960可以包括各种服务器、子系统、程序、模块、日志、和数据存储区。在特定示例中,社交网络系统960可以包括以下各项中的一项或多项:web服务器、动作记录器(action logger)、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象曝光日志、推理模块、授权/隐私服务器、搜索模块、广告定向模块、用户界面模块、用户简档存储区、联系存储区、第三方内容存储区或位置存储区。社交网络系统960还可以包括合适的组件,这些合适的组件例如为,网络界面、安全机制、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件、或它们的任何合适的组合。在特定示例中,社交网络系统960可以包括用于存储用户简档的一个或多个用户简档存储区。用户简档可以包括例如生物信息、人口统计信息、行为信息、社交信息、或其他类型的描述性信息(例如,工作经历、教育历史、爱好或偏好、兴趣、密切关系、或位置)。兴趣信息可以包括与一个或多个类别相关的兴趣。这些类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于一鞋品牌的文章,则类别可以是该品牌,或是通用类别“鞋”或“衣服”。联系存储区可以用于存储关于用户的联系信息。联系信息可以指示具有相似或共同工作经历、组成员资格、爱好、教育历史、或以任何方式与共同属性相关或共享共同属性的用户。联系信息还可以包括不同用户和内容(内部和外部两者)之间的用户定义的联系。web服务器可以用于经由网络910将社交网络系统960链接至一个或多个客户端系统930或一个或多个第三方系统970。web服务器可以包括邮件服务器或用于在社交网络系统960与一个或多个客户端系统930之间接收和发送消息的其他消息传递功能。API请求服务器可以允许第三方系统970通过调用一个或多个API来从社交网络系统960访问信息。动作记录器可以用于接收来自web服务器的关于用户在社交网络系统960上或在社交网络系统960外的动作的通信。结合动作日志,可以维护关于用户暴露于第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统930提供关于内容对象的信息。可以将信息作为通知推送到客户端系统930,或者可以响应于接收到的来自客户端系统930的请求而从客户端系统930拉取信息。授权服务器可以用于执行社交网络系统960的用户的一个或多个隐私设置。用户的隐私设置确定了如何可以共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置适当的隐私设置,选择让或不让他们的动作被社交网络系统960记录或与其他系统(例如,第三方系统970)共享。第三方内容对象存储区可以用于存储从第三方(例如,第三方系统970)接收到的内容对象。位置存储区可以用于存储从与用户相关联的客户端系统930接收到的位置信息。广告定价模块可以将社交信息、当前时间、位置信息或其他合适的信息组合,以便以通知的形式向用户提供相关广告。
图10示出了示例计算机系统1000。在特定示例中,一个或多个计算机系统1000执行本文所描述或示出的一种或多种方法中的一个或多个步骤。在特定示例中,一个或多个计算机系统1000提供本文所描述或示出的功能。在特定示例中,在一个或多个计算机系统1000上运行的软件执行本文所描述或示出的一种或多种方法中的一个或多个步骤,或提供本文所描述或示出的功能。特定示例包括一个或多个计算机系统1000的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统1000。本公开考虑了采用任何合适的物理形式的计算机系统1000。作为示例而非限制,计算机系统1000可以是嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如,计算机模块(computer-on-module,COM)或系统模块(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务机、大型机、计算机系统组网、移动电话、个人数字助理(personal digital assistant,PDA)、服务器、平板计算机系统、增强/虚拟现实设备或这些计算机系统中的两者或两者以上的组合。在适当的情况下,计算机系统1000可以包括一个或多个计算机系统1000;计算机系统1000可以是单一的或分布式的;跨多个位置的;跨多台机器的;跨多个数据中心的;或者位于云端(该云端可以包括一个或多个网络中的一个或多个云端组件)中。在适当的情况下,一个或多个计算机系统1000可以在没有大量的空间或时间限制的情况下,执行本文所描述或示出的一种或多种方法中的一个或多个步骤。作为示例而非限制,一个或多个计算机系统1000可以实时地或以批处理模式执行本文所描述或示出的一种或多种方法中的一个或多个步骤。在适当的情况下,一个或多个计算机系统1000可以在不同的时间或在不同的位置执行本文所描述或示出的一种或多种方法种的一个或多个步骤。
计算机系统1000包括处理器1002、存储器(memory)1004、存储装置(storage)1006、输入/输出(input/output,I/O)接口1008、通信接口1010和总线1012。尽管本公开描述和示出了具有处于特定布置的特定数量的特定部件的特定计算机系统,但本公开考虑了具有处于任何合适的布置的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定示例中,处理器1002包括用于执行多个指令的硬件,这些指令例如为,构成计算机程序的那些指令。作为示例而非限制,为了执行多个指令,处理器1002可以从内部寄存器、内部高速缓冲存储器、存储器1004或存储装置1006检索(或读取)这些指令;解码并执行这些指令;然后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、存储器1004或存储装置1006。在特定示例中,处理器1002可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器1002。作为示例而非限制,处理器1002可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个转译后备缓冲器(translation lookaside buffer,TLB)。指令高速缓冲存储器中的多个指令可以是存储器1004或存储装置1006中的多个指令的副本,并且指令高速缓冲存储器可以加速处理器1002对那些指令的检索。数据高速缓冲存储器中的数据可以是存储器1004或存储装置1006中的数据的副本,以供在处理器1002处执行的指令对其进行操作;在处理器1002处执行的先前指令的结果,用于供处理器1002处执行的后续指令访问、或用于写入存储器1004或存储装置1006;或者数据高速缓冲存储器中的数据可以是其它合适的数据。数据高速缓冲存储器可以加速处理器1002的读取操作或写入操作。多个TLB可以加速处理器1002的虚拟地址转换。在特定示例中,处理器1002可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部寄存器的处理器1002。在适当的情况下,处理器1002可以包括一个或多个算术逻辑单元(arithmetic logicunit,ALU);处理器1002可以是多核处理器、或包括一个或多个处理器1002。尽管本公开描述和示出了特定的处理器,但本公开考虑了任何合适的处理器。
在特定示例中,存储器1004包括主存储器,该主存储器用于存储供处理器1002执行的指令或供处理器1002操作的数据。作为示例而非限制,计算机系统1000可以将多个指令从存储装置1006或另一个源(例如,另一个计算机系统1000)加载到存储器1004。然后,处理器1002可以将这些指令从存储器1004加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器1002可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对它们进行解码。在这些指令的执行期间或之后,处理器1002可以将一个或多个结果(该一个或多个结果可以是中间结果或最终结果)写入到内部寄存器或内部高速缓冲存储器。然后,处理器1002可以将那些结果中的一个或多个结果写入存储器1004。在特定示例中,处理器1002仅执行一个或多个内部寄存器或一个或多个内部高速缓冲存储器中的、或存储器1004(与存储装置1006不同或其它位置)中的指令,并且仅对一个或多个内部寄存器或一个或多个内部高速缓冲存储器中的、或存储器1004(与存储装置1006不同或其它位置)中的数据进行操作。一条或多条存储器总线(每条存储器总线可以包括地址总线和数据总线)可以将处理器1002耦接到存储器1004。如下所述,总线1012可以包括一条或多条存储器总线。在特定示例中,一个或多个存储器管理单元(memory management unit,MMU)位于处理器1002和存储器1004之间,并且促进处理器1002所请求的对存储器1004的访问。在特定示例中,存储器1004包括随机存取存储器(random access memory,RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,存储器1004可以包括一个或多个存储器1004。尽管本公开描述和示出了特定存储器,但本公开考虑了任何合适的存储器。
在特定示例中,存储装置1006包括用于数据或指令的大容量存储装置。作为示例而非限制,存储装置1006可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些存储装置中的两者或两者以上的组合。在适当的情况下,存储装置1006可以包括可移动介质或不可移动(或固定)介质。在适当的情况下,存储装置1006可以在计算机系统1000的内部或外部。在特定示例中,存储装置1006是非易失性固态存储器。在特定示例中,存储装置1006包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、电可改写ROM(electrically alterable ROM,EAROM)或闪存,或这些ROM中的两者或更多者的组合。本公开考虑了采用任何合适的物理形式的大容量的存储装置1006。在适当的情况下,存储装置1006可以包括促进处理器1002与存储装置1006之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置1006可以包括一个或多个存储装置1006。尽管本公开描述和示出了特定存储装置,但是本公开考虑了任何合适的存储装置。
在特定示例中,I/O接口1008包括硬件、软件、或硬件和软件这两者,该硬件、软件、或硬件和软件这两者提供用于计算机系统1000与一个或多个I/O装置之间的通信的一个或多个接口。在适当的情况下,计算机系统1000可以包括这些I/O装置中的一个或多个I/O装置。这些I/O装置中的一个或多个I/O装置可以实现个人和计算机系统1000之间的通信。作为示例而非限制,I/O装置可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像头、触控笔、输入板、触摸屏、跟踪球、摄像机、另一合适的I/O装置、或这些I/O装置中的两者或两者以上的组合。I/O装置可以包括一个或多个传感器。本公开考虑了任何合适的I/O装置和用于这些I/O装置的任何合适的I/O接口1008。在适当的情况下,I/O接口1008可以包括使处理器1002能够驱动这些I/O装置中的一个或多个I/O装置的一个或多个装置或软件驱动器。在适当的情况下,I/O接口1008可以包括一个或多个I/O接口1008。尽管本公开描述和示出了特定的I/O接口,但是本公开考虑了任何合适的I/O接口。
在特定示例中,通信接口1010包括硬件、软件、或硬件和软件这两者,该硬件、软件、或硬件和软件这两者提供一个或多个接口,该一个或多个接口用于计算机系统1000与一个或多个其它计算机系统1000或与一个或多个网络之间的通信(例如,基于数据包的通信)。作为示例而非限制,通信接口1010可以包括用于与以太网或其他基于线路的网络通信的网络接口控制器(network interface controller,NIC)或网络适配器,或用于与诸如WI-FI网络等无线网络通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口1010。作为示例而非限制,计算机系统1000可以与自组网、个人区域网(personal area network,PAN)、局域网(local areanetwork,LAN)、广域网(wide area network,WAN)、城域网(metropolitan area network,MAN)、或因特网的一个或多个部分、或这些网络中的两者或两者以上的组合进行通信。这些网络中的一种或多种网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1000可以与无线PAN(wireless PAN,WPAN)(例如,蓝牙(BLUETOOTH)WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for MobileCommunication,GSM)网络)、或其他合适的无线网络、或这些网络中的两者或两者以上的组合进行通信。在适当的情况下,计算机系统1000可以包括用于这些网络中的任一者的任何合适的通信接口1010。在适当的情况下,通信接口1010可以包括一个或多个通信接口1010。尽管本公开描述和示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。
在特定示例中,总线1012包括硬件、软件、或硬件和软件这两者,该硬件、软件或硬件和软件这两者将计算机系统1000的多个部件彼此耦接。作为示例而非限制,总线1012可以包括加速图形端口(Accelerated Graphics Port,AGP)或其它图形总线、扩展工业标准结构(Enhanced Industry Standard Architecture,EISA)总线、前端总线(front-sidebus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准结构(Industry StandardArchitecture,ISA)总线、无线带宽(INFINIBAND)互连、低引脚计数(low-pin-count,LPC)总线、存储器总线、微通道结构(Micro Channel Architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、高速外围组件互联(PCI-Express,PCIe)总线、串行高级技术附件(serial advanced technology attachment,SATA)总线、视频电子标准协会局域(Video Electronics Standards Association local,VLB)总线、或另一合适的总线、或这些总线中的两者或两者以上的组合。在适当的情况下,总线1012可以包括一条或多条总线1012。尽管本公开描述和示出了特定的总线,但是本公开考虑了任何合适的总线或互连件。
在本文中,在适当的情况下,计算机可读非暂态存储介质可以包括一个或多个基于半导体的集成电路(integrated circuit,IC)或其他集成电路(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specific IC,ASIC))、硬盘驱动器(hard disk drive,HDD)、混合硬盘驱动器(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(floppydisk drive,FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡(SECURE DIGITAL card)或安全数字驱动器、任何其它合适的计算机可读非暂态存储介质、或这些存储介质中的两者或两者以上的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或易失性和非易失性计算机可读非暂态存储介质的组合。
在本文中,除非另有明确地指示或上下文另有指示,否则“或”是包括性的而非排他性的。因此,在本文中,除非另有明确地指示或上下文另有指示,否则“A或B”是指“A、B、或A和B这两者”。此外,除非另有明确地指示或上下文另有指示,否则“和”既是共同的又是各自的。因此,在本文中,除非另有明确地指示或上下文另有指示,否则“A和B”是指“A和B,共同地或各自地”。
本公开的范围涵盖:本领域的普通技术人员将理解的、对本文所描述或示出的示例和实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文所描述或示出的示例。此外,尽管本公开将本文中的各个示例描述和示出为包括特定部件、元件、特征、功能、操作或步骤,但是本领域的普通技术人员将理解的是,这些示例中的任何示例可以包括本文中任何地方描述或示出的任何部件、元件、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求中对装置或系统、或装置或系统中的部件(这些装置、系统、部件适于、被布置为、能够、被配置为、被实现为、可操作地或可使用以执行特定功能)的引用涵盖了该装置、系统、部件(无论该装置、系统、部件或者该特定功能是否被激活、开启或解锁),只要该装置、系统或部件是如此适于、被布置为、能够、被配置为、被实现为、可操作地或可使用。另外,尽管本公开将特定示例描述或示出为提供特定优点,但是特定示例可以不提供这些优点、提供这些优点中的一些或全部优点。

Claims (12)

1.一种方法,包括:由计算系统:
接收由结合到用户的一个或多个传感器采集到的传感器数据;
基于所述传感器数据,生成与所述用户的身体的第一部分对应的上半身姿势,所述身体的第一部分包括所述用户的头部和手臂;
通过使用机器学习模型对所述上半身姿势进行处理,来生成与所述用户的所述身体的第二部分对应的下半身姿势,所述身体的第二部分包括所述用户的腿部;以及
基于所述上半身姿势和所述下半身姿势,来生成所述用户的全身姿势。
2.根据权利要求1所述的方法,其中,所述机器学习模型是使用第二机器学习模型而训练的,所述第二机器学习模型被训练以确定给定全身姿势是否可能是使用所述机器学习模型而生成的。
3.根据权利要求1或2所述的方法,其中,所述机器学习模型在训练期间被优化,以使得第二机器学习模型错误地确定为:使用所述机器学习模型而生成的给定全身姿势不太可能是使用所述机器学习模型而生成的。
4.根据前述权利要求中任一项所述的方法,其中,所述机器学习模型是通过以下方式来训练的:
通过使用所述机器学习模型对第二上半身姿势进行处理,来生成第二下半身姿势;
基于所述第二上半身姿势和所述第二下半身姿势,生成第二全身姿势;
使用第二机器学习模型来判断所述第二全身姿势是否可能是使用所述机器学习模型而生成的;以及
基于所述第二机器学习模型的确定,来对所述机器学习模型进行更新。
5.根据前述权利要求中任一项所述的方法,其中,所述一个或多个传感器与所述用户所佩戴的头戴式设备相关联。
6.根据前述权利要求中任一项所述的方法,其中,生成所述上半身姿势包括:
基于所述传感器数据,来确定与所述用户的多个预定身体部位对应的多个姿势;以及
基于所述多个姿势来推断所述上半身姿势。
7.根据权利要求6所述的方法,其中,所述多个姿势包括与所述用户的手腕对应的手腕姿势,其中,所述手腕姿势是基于由用户佩戴的头戴式设备采集到的一幅或多幅图像而确定的,所述一幅或多幅图像描绘了(1)所述用户的手腕或(2)所述用户所握持的设备。
8.根据前述权利要求中任一项所述的方法,还包括:
确定与采集所述传感器数据的时间相关联的上下文信息;
其中,所述下半身姿势是通过还使用所述机器学习模型对所述上下文信息进行处理而生成的。
9.根据权利要求8所述的方法,其中,所述上下文信息包括:在确定所述上半身姿势时所述用户正在与之交互的应用程序。
10.根据前述权利要求中任一项所述的方法,还包括:基于所述全身姿势生成所述用户的化身。
11.一个或多个计算机可读非暂态存储介质,所述一个或多个计算机可读非暂态存储介质包括指令,所述指令在被服务器执行时,使得所述服务器执行前述权利要求中任一项所述的方法。
12.一种系统,包括:
一个或多个处理器;以及
根据权利要求11所述的一个或多个计算机可读非暂态存储介质,所述一个或多个计算机可读非暂态存储介质耦接到所述一个或多个处理器。
CN202180063845.3A 2020-09-17 2021-08-16 用于预测下半身姿势的系统和方法 Pending CN116235226A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/024,591 US11507179B2 (en) 2020-09-17 2020-09-17 Systems and methods for predicting lower body poses
US17/024,591 2020-09-17
PCT/US2021/046062 WO2022060501A1 (en) 2020-09-17 2021-08-16 Systems and methods for predicting lower body poses

Publications (1)

Publication Number Publication Date
CN116235226A true CN116235226A (zh) 2023-06-06

Family

ID=77693599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180063845.3A Pending CN116235226A (zh) 2020-09-17 2021-08-16 用于预测下半身姿势的系统和方法

Country Status (6)

Country Link
US (3) US11507179B2 (zh)
EP (1) EP4214630A1 (zh)
JP (1) JP2023541531A (zh)
KR (1) KR20230069919A (zh)
CN (1) CN116235226A (zh)
WO (1) WO2022060501A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11954247B2 (en) * 2019-06-21 2024-04-09 Maxell, Ltd. Head mounted display apparatus
JP7326927B2 (ja) * 2019-06-27 2023-08-16 トヨタ自動車株式会社 学習装置、リハビリ支援システム、方法、プログラム、及び学習済みモデル
US11507179B2 (en) * 2020-09-17 2022-11-22 Meta Platforms Technologies, Llc Systems and methods for predicting lower body poses
US20210279506A1 (en) * 2020-12-18 2021-09-09 Intel Corporation Systems, methods, and devices for head pose determination
CN114782661B (zh) * 2022-06-22 2022-09-30 阿里巴巴达摩院(杭州)科技有限公司 下半身姿态预测模型的训练方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701132A (en) 1996-03-29 1997-12-23 University Of Washington Virtual retinal display with expanded exit pupil
US7232071B2 (en) 2003-11-14 2007-06-19 Microvision, Inc. Scanned beam imager
US9079762B2 (en) 2006-09-22 2015-07-14 Ethicon Endo-Surgery, Inc. Micro-electromechanical device
US7558455B2 (en) 2007-06-29 2009-07-07 Ethicon Endo-Surgery, Inc Receiver aperture broadening for scanned beam imaging
US10415975B2 (en) * 2014-01-09 2019-09-17 Xsens Holding B.V. Motion tracking with reduced on-body sensors set
US10056020B2 (en) 2016-02-11 2018-08-21 Oculus Vr, Llc Waveguide display with two-dimensional scanner
US20180070864A1 (en) * 2016-06-02 2018-03-15 Matthew Schuster Methods and devices for assessing a captured motion
US10732414B2 (en) 2016-08-17 2020-08-04 Microsoft Technology Licensing, Llc Scanning in optical systems
US10902343B2 (en) * 2016-09-30 2021-01-26 Disney Enterprises, Inc. Deep-learning motion priors for full-body performance capture in real-time
CN110168419B (zh) 2016-10-28 2021-11-12 奇跃公司 用于具有扫描反射器的大视场显示器的方法和系统
JP6882916B2 (ja) * 2017-03-29 2021-06-02 本田技研工業株式会社 歩行支援システム、歩行支援方法、および歩行支援プログラム
US10521947B2 (en) * 2017-09-29 2019-12-31 Sony Interactive Entertainment Inc. Rendering of virtual hand pose based on detected hand input
JP7127650B2 (ja) * 2017-10-03 2022-08-30 富士通株式会社 認識プログラム、認識方法および認識装置
US10168537B1 (en) 2018-03-16 2019-01-01 Facebook Technologies, Llc Single chip superluminous light emitting diode array for waveguide displays
KR20210058958A (ko) 2018-09-21 2021-05-24 엠브이아이 헬스 인크. 시각 디스플레이를 위한 상보적 데이터를 생성하기 위한 시스템들 및 방법들
US10861223B2 (en) 2018-11-06 2020-12-08 Facebook Technologies, Llc Passthrough visualization
US11107265B2 (en) 2019-01-11 2021-08-31 Microsoft Technology Licensing, Llc Holographic palm raycasting for targeting virtual objects
US11194386B1 (en) 2019-05-22 2021-12-07 Facebook Technologies, Llc Artificial reality wearable magnetic sensor system for body pose tracking
US11100664B2 (en) 2019-08-09 2021-08-24 Google Llc Depth-aware photo editing
US11386988B2 (en) 2020-04-23 2022-07-12 Exini Diagnostics Ab Systems and methods for deep-learning-based segmentation of composite images
US11507179B2 (en) * 2020-09-17 2022-11-22 Meta Platforms Technologies, Llc Systems and methods for predicting lower body poses

Also Published As

Publication number Publication date
US20230400914A1 (en) 2023-12-14
EP4214630A1 (en) 2023-07-26
US20220083125A1 (en) 2022-03-17
JP2023541531A (ja) 2023-10-03
US20230077772A1 (en) 2023-03-16
KR20230069919A (ko) 2023-05-19
WO2022060501A1 (en) 2022-03-24
US11747892B2 (en) 2023-09-05
US11507179B2 (en) 2022-11-22

Similar Documents

Publication Publication Date Title
CN108604315B (zh) 使用深度学习模型识别实体
US11507179B2 (en) Systems and methods for predicting lower body poses
US20190171871A1 (en) Systems and Methods for Optimizing Pose Estimation
US20190172224A1 (en) Optimizations for Structure Mapping and Up-sampling
US20190172223A1 (en) Optimizations for Dynamic Object Instance Detection, Segmentation, and Structure Mapping
CN111712832A (zh) 使用机器学习的自动图像校正
US11308698B2 (en) Using deep learning to determine gaze
TW202046158A (zh) 語意融合
CN111670457A (zh) 动态对象实例检测、分割和结构映射的优化
US20200143238A1 (en) Detecting Augmented-Reality Targets
CN108292309A (zh) 使用深度学习模型识别内容项
KR20220125353A (ko) 인공 현실에서 물리적 환경의 실시간 시각화를 자동으로 트리거하기 위한 시스템, 방법 및 매체
US11687165B2 (en) Stabilizing gestures in artificial reality environments
CN116348919A (zh) 用于面部的摄像头重投影
CN116075848A (zh) 对图像的自适应采样
US11651625B2 (en) Systems and methods for predicting elbow joint poses
US10976979B1 (en) Social experiences in artificial reality environments
US12008806B2 (en) Methods and systems to allow three-dimensional map sharing between heterogeneous computing systems, cross-localization, and sharing content in three-dimensional space

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