CN114786786A - 使用先前帧进行骨骼跟踪 - Google Patents

使用先前帧进行骨骼跟踪 Download PDF

Info

Publication number
CN114786786A
CN114786786A CN202080085808.8A CN202080085808A CN114786786A CN 114786786 A CN114786786 A CN 114786786A CN 202080085808 A CN202080085808 A CN 202080085808A CN 114786786 A CN114786786 A CN 114786786A
Authority
CN
China
Prior art keywords
training
user
image
monocular
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
CN202080085808.8A
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.)
Snap Inc
Original Assignee
Snap Inc
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 Snap Inc filed Critical Snap Inc
Publication of CN114786786A publication Critical patent/CN114786786A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • A63F13/655Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition by importing photos, e.g. of the player
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5553Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history user representation in the game field, e.g. avatar
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/20084Artificial neural networks [ANN]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/03Recognition of patterns in medical or anatomical images
    • G06V2201/033Recognition of patterns in medical or anatomical images of skeletal patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Social Psychology (AREA)
  • General Engineering & Computer Science (AREA)
  • Psychiatry (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Image Analysis (AREA)

Abstract

本公开内容的各方面涉及一种包括存储程序的计算机可读存储介质的系统和用于检测用户姿势的方法。该程序和方法包括以下操作:接收包括对用户的身体的描绘的单目图像;基于单目图像检测身体的多个骨骼关节;访问包括在单目图像之前接收的多个单目图像的视频馈送;使用视频馈送过滤基于单目图像检测到的身体的多个骨骼关节;以及基于经过滤的身体的多个骨骼关节来确定由单目图像中描绘的身体表示的姿势。

Description

使用先前帧进行骨骼跟踪
优先权声明
本申请要求于2019年12月11日提交的美国专利申请第16/710,980号的优先权,该美国专利申请的全部内容通过引用并入本文中。
技术领域
本公开内容总体上涉及基于描绘用户的图像来生成虚拟对象。
背景技术
虚拟渲染系统可用于创建引人入胜且有趣的增强现实体验,在增强现实体验中,虚拟对象图形(例如化身)似乎存在于现实世界中。由于环境条件、用户动作、相机与正在渲染的对象之间的意外视觉中断等,此类系统可能会遇到呈现问题。这会导致虚拟对象消失或以其他方式表现不规则,从而打破虚拟对象存在于现实世界中的错觉。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相同的部件。为了容易识别对任何特定元件或动作的讨论,附图标记中的一个或多个最高位数字指代该元件被首次介绍时所在的图号。一些实施方式通过示例而不是限制的方式在附图的图中示出,在附图中:
图1是示出根据示例实施方式的用于通过网络交换数据(例如,消息和相关联的内容)的示例消息收发系统的框图。
图2是示出根据示例实施方式的可以存储在消息收发服务器系统的数据库中的数据的示意图。
图3是示出根据示例实施方式的由消息收发客户端应用生成的用于通信的消息的结构的示意图。
图4是示出根据示例实施方式的示例身体姿势估计系统的框图。
图5是示出根据示例实施方式的用于确定身体姿势的身体关节位置的图。
图6是示出根据示例实施方式的身体姿势估计系统的示例操作的流程图。
图7A至图8C是根据示例实施方式的身体姿势估计系统的说明性输入和输出。
图9是示出根据示例实施方式的可以结合本文中描述的各种硬件架构使用的代表性软件架构的框图。
图10是示出根据示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的方法中的任何一种或更多种的机器的部件的框图。
具体实施方式
下面的描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于说明的目的,阐述了许多具体细节以提供对各种实施方式的理解。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节的情况下实践实施方式。一般地,公知的指令实例、协议、结构和技术不一定详细示出。
通常,虚拟现实(VR)和增强现实(AR)系统通过捕获用户的图像并另外使用在图像中描绘的现实世界人体的深度传感器获取深度图来显示代表给定用户的化身。通过一起处理深度图和图像,VR和AR系统可以模仿用户执行的动作。虽然这样的系统可以很好地呈现用户的化身,但对深度传感器的需求限制了它们的应用范围。这是因为向用户设备添加深度传感器以显示化身会增加设备的整体成本和复杂性,从而降低它们的吸引力。
此外,虽然某些系统使用实时骨骼跟踪跟踪器来识别用户执行的动作,但是这样的跟踪器是有噪声的并且需要应用时间过滤。这会降低它们的整体效率并消耗太多资源来将它们应用到移动设备上。基于经典计算机视觉和信号分析的过滤可以稍微改善结果,但还不够。
所公开的实施方式通过以下方式来提高使用电子设备的效率:应用第一机器学习技术以从用户的单个图像识别用户身体的骨骼关节然后通过对先前接收到的用户视频帧和当前帧图像特征应用第二机器学习技术来预测当前帧(例如,单个图像)的骨骼关节位置以过滤或改进所识别的骨骼关节。具体地,接收描绘用户的身体的视频。通过第一机器学习技术处理视频的当前帧以识别骨骼关节位置。通过第二机器学习技术处理一组先前帧(例如,当前帧之前1至2秒的视频),以预测后续帧(例如,当前帧)的骨骼关节位置。对通过第一机器学习技术对于当前帧识别的骨骼关节位置与通过第二机器学习技术基于先前帧预测的骨骼关节位置之间进行比较。然后通过第二机器学习技术校正骨骼关节位置之间的任何偏差或差异,以改进和过滤通过第一机器学习技术对于当前帧识别的骨骼关节位置。
然后可以使用骨骼关节来修改一个或更多个虚拟对象的呈现(例如模拟对应于骨骼关节的姿势)。虚拟对象(例如,三维对象,例如3D字幕、表情符号、角色、化身、动画、个性化化身或角色的循环动画、循环或非循环动画图形,例如跳舞的热狗、带有动画的艺术字体等)从单个红、绿、蓝(RGB)图像(例如,单目RGB图像)或描绘现实世界用户身体的RGB图像的视频直接生成。所公开的实施方式生成虚拟对象而无需获取现实世界用户身体的深度图。这使得具有简单RGB相机(无深度传感器)的用户设备能够基于现实世界用户在VR或AR应用中的身体姿势准确且快速地渲染经动画化的虚拟对象,从而允许用户在更真实的环境中与VR或AR内容交互。
在一些实施方式中,一个这样的虚拟对象被用户选择并添加到RGB图像,并且虚拟对象的姿势被修改以匹配用户身体的姿势从而提供所选择的虚拟对象是现实世界场景的一部分并且正在模仿用户的错觉。具体而言,所公开的实施方式使用机器学习技术处理描绘用户身体的图像以识别骨骼关节。确定由所识别的骨骼关节所表示的姿势。在确定了由骨骼关节表示的姿势之后,调整化身骨架的对应骨骼关节以改变化身的姿势从而匹配由所识别的用户身体的骨骼关节表示的姿势。生成具有与所识别的用户身体的骨骼关节所表示的姿势相匹配的修改姿势的化身以显示给用户。
图1是示出用于通过网络106交换数据(例如,消息和相关联的内容)的示例消息收发系统100的框图。消息收发系统100包括多个客户端设备102,所述多个客户端设备中的每一个都托管包括消息收发客户端应用104和AR/VR应用105的多个应用。每个消息收发客户端应用104经由网络106(例如,因特网)被通信地耦接至消息收发客户端应用104、AR/VR应用105和消息收发服务器系统108的其他实例。
因此,每个消息收发客户端应用104和AR/VR应用105都能够经由网络106与另一消息收发客户端应用104和AR/VR应用105以及与消息收发服务器系统108通信和交换数据。在消息收发客户端应用104与AR/VR应用105之间以及在消息收发客户端应用104与消息收发服务器系统108之间交换的数据包括功能(例如,用以调用功能的命令)和有效载荷数据(例如,文本、音频、视频、或其他多媒体数据)。
AR/VR应用105是包括允许客户端设备102访问身体姿势估计系统124的一组功能的应用。在一些实现方式中,AR/VR应用105是作为消息收发客户端应用104的一部分的组件或特征。AR/VR应用105使用RGB相机来捕获用户的现实世界身体的单目图像。AR/VR应用105将各种经训练的机器学习技术应用于身体的所捕获的图像以及描绘身体的一个或更多个先前帧以生成化身。例如,化身被生成为具有与图像中描绘的用户身体的姿势相同的姿势。作为另一示例,化身被生成以与用户同时显示,并且化身的位置基于用户在图像中的相对位置而在帧之间改变。例如,化身位置改变以保持化身与用户之间的恒定距离,因此化身看起来跟随在用户周围。在一些实现方式中,AR/VR应用105实时或周期性地连续捕获用户身体的图像以连续或周期性地更新所生成的化身。这允许用户在现实世界中走动并实时查看化身更新。AR/VR应用105呈现各种内容(例如,消息、游戏、广告等)并且允许用户修改AR/VR应用105中的化身的姿势以与其他虚拟内容(例如,可以修改化身姿势以从虚拟树上摘下虚拟苹果)交互。在生成化身之后,用户可执行动作或手势来捕获用户和化身的图像以发送给另一个用户。
为了使AR/VR应用105直接从所捕获的RGB图像生成化身,AR/VR应用105从身体姿势估计系统124和/或消息收发服务器系统108获取第一经训练的机器学习技术。第一经训练的机器学习技术处理所捕获的RGB图像,以从RGB图像中提取与所捕获的RGB图像中描绘的身体相对应的一个或更多个特征。分析特征以识别一个或更多个骨骼关节以及它们相对于彼此的相应对齐。具体来说,分析特征以确定一组指定骨骼关节的关节位置。AR/VR应用105还从身体姿势估计系统124和/或消息收发服务器系统108获取第二经训练的机器学习技术。第二经训练的机器学习技术处理一个或更多个先前捕获的帧(例如,RGB图像之前1至2秒的视频帧)来估计或预测后续帧的骨骼关节位置。可以在缓冲器中连续或周期性地存储视频帧的阈值秒数(可以是用户定义的、先前指定的和/或动态确定的),使得可以通过第二经训练的机器学习技术来访问当前RGB图像之前的阈值秒数的视频帧。第二经训练的机器学习技术的骨骼关节位置的输出或预测用于过滤或改进通过第一经训练的机器学习技术识别的骨骼关节位置。在某些情况下,第二经训练的机器学习技术将通过第一经训练的机器学习技术识别的骨骼关节位置与先前捕获的帧一起处理,以过滤或改进估计的骨骼关节位置。
关节位置被提供给具有偏移量的数据库,以识别在所确定的关节位置的偏移量内的姿势。在识别出姿势之后,取得化身并且调整化身的骨架以模仿或复制所识别的姿势。在一些实施方式中,直接根据所确定的关节位置而不是根据所识别的姿势来调整化身的骨架。然后基于经调整以模仿所捕获的图像中描绘的身体姿势的骨架来生成化身以供显示。
在一些实施方式中,RGB图像是视频的多个帧中的第一帧。在这种情况下,在使用第一机器学习技术和第二机器学习技术在第一帧中检测到用户的身体之后,身体姿势估计系统124估计用户的身体将在多个帧的第二帧中的位置和比例。第二帧可以与第一帧相邻。在一些实现方式中,将第三机器学习技术应用于第一帧以预测或估计用户身体在第二帧中的位置和比例。
在训练中,身体姿势估计系统124获取包括不同现实世界身体姿势的第一多个输入训练图像。这些训练图像还提供有关每个图像中描绘的身体姿势的真实信息。基于多个训练图像的特征来训练第一机器学习技术(例如,深度神经网络)。具体来说,第一机器学习技术从给定的训练图像中提取一个或更多个特征,并通过分析给定训练图像中描绘的身体的关节位置来估计身体姿势。第一机器学习技术获取与训练图像相对应的真实信息并调整或更新一个或更多个系数以改进对后续图像中描绘的身体姿势的后续估计。
在训练中,身体姿势估计系统124获取包括不同真实世界身体姿势的第一多个输入训练视频(每个具有与阈值视频持续时间例如1至2秒相对应的帧数)。这些训练视频还为相对于每个视频的后续帧提供了具有身体骨骼关节位置的真实信息。即,第一训练视频可以与识别在第一训练视频中在紧接在第一训练视频中的最后一帧之后的帧中描绘的身体的骨骼关节位置的真实信息相关联。基于多个训练视频的特征来训练第二机器学习技术(例如,神经网络)。具体地,第二机器学习技术从给定的训练视频中提取一个或更多个特征,并通过分析给定训练视频中描绘的身体的关节位置来估计或预测后续帧中与训练视频的最后一帧相关的骨骼关节位置。第二机器学习技术获取对应于训练视频的真实信息并调整或更新一个或更多个系数以改进后续视频中描绘的身体姿势的后续估计。
在一些实现方式中,第三机器学习技术(例如,深度神经网络)从给定的训练图像中提取一个或更多个特征,并通过分析给定训练图像中描绘的身体的关节位置来估计与给定训练图像相邻的后续图像中的身体姿势。第三机器学习技术获取与训练图像相对应的真实信息,该信息识别后续图像中的身体姿势,并调整一个或更多个系数以改进后续图像中描绘的身体姿势的后续估计以及后续图像中的身体姿势和比例的估计。在一些实现方式中,在训练期间,第三机器学习技术获取每个训练图像的参考3D深度图并使用参考3D深度图来估计身体姿势。
消息收发服务器系统108经由网络106向特定消息收发客户端应用104提供服务器端功能。虽然消息收发系统100的某些功能在本文中被描述为由消息收发客户端应用104或由消息收发服务器系统108执行,但是应当理解,某些功能的位置在消息收发客户端应用104或消息收发服务器系统108内是设计选择。例如,在技术上优选的是:可以最初将某些技术和功能部署在消息收发服务器系统108内,但是稍后将该技术和功能迁移至客户端设备102具有足够处理能力的消息收发客户端应用104。
消息收发服务器系统108支持向消息收发客户端应用104提供的各种服务和操作。这样的操作包括向消息收发客户端应用104发送数据、从消息收发客户端应用104接收数据以及对由消息收发客户端应用104生成的数据进行处理。该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、虚拟对象、消息内容持久性条件、社交网络信息和生活事件信息作为示例。通过经由消息收发客户端应用104的用户接口(UI)可用的功能来激活和控制消息收发系统100内的数据交换。
现在具体地转至消息收发服务器系统108,应用接口(API)服务器110耦接至应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问数据库120,在该数据库120中存储有与通过应用服务器112处理的消息相关联的数据。
具体处理API服务器110,该服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,API服务器110提供一组接口(例如,例程和协议),由消息收发客户端应用104可以调用或查询该组接口以激活应用服务器112的功能。API服务器110展示由应用服务器112支持的各种功能,包括:帐户注册;登录功能;经由应用服务器112将消息从特定消息收发客户端应用104发送至另一个消息收发客户端应用104;将媒体文件(例如,图像或视频)从消息收发客户端应用104发送至消息收发服务器应用114,并供另一消息收发客户端应用104可能访问;媒体数据集合(例如,故事)的设置;这样的集合的检索;客户端设备102的用户的朋友列表的检索;消息和内容的检索;在社交图中添加和删除朋友;朋友在社交图中的位置;访问用户对话数据;访问存储在消息收发服务器系统108上的化身信息;以及打开应用事件(例如,与消息收发客户端应用104有关)。
应用服务器112托管若干应用和子系统,包括消息收发服务器应用114、图像处理系统116、社交网络系统122以及身体姿势估计系统124。消息收发服务器应用114实现了若干消息处理技术和功能,特别是与从消息收发客户端应用104的多个实例接收到的消息中包括的内容(例如,文本和多媒体内容)的聚合和其他处理有关的消息处理技术和功能。如将进一步详细描述的,来自多个来源的文本和媒体内容可以聚合成内容集合(例如,称为故事或画廊)。然后,由消息收发服务器应用114使这些集合对消息收发客户端应用104可用。鉴于对这样的处理的硬件要求,也可以由消息收发服务器应用114在服务器端执行数据的其他处理器和存储器密集型处理。
应用服务器112还包括图像处理系统116,该图像处理系统116通常关于在消息收发服务器应用114处的消息的有效载荷内接收到的图像或视频,专用于执行各种图像处理操作。图像处理系统116的一部分也可以由身体姿势估计系统124来实现。
社交网络系统122支持各种社交网络功能和服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图。社交网络系统122支持的功能和服务的示例包括识别特定用户与其具有关系或者特定用户“正在关注”的消息收发系统100的其他用户,以及还识别特定用户的其他实体和兴趣。此类其他用户还可被称为用户的好友。
应用服务器112通信地耦接到数据库服务器118,该数据库服务器118促进对数据库120的访问,在该数据库120中存储有与由消息收发服务器应用114处理的消息相关联的数据。
图2是示出根据某些示例实施方式的可以存储在消息收发服务器系统108的数据库120中的数据的示意图200。虽然数据库120的内容被示为包括若干表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
数据库120包括存储在消息表214内的消息数据。实体表202存储实体数据,包括实体图204。在实体表202内维护记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,消息收发服务器系统108存储关于其的数据的任何实体可以是识别的实体。每个实体被提供有唯一标识符,以及实体类型标识符(未示出)。
实体图204还存储关于实体之间的关系和关联的信息。仅举例而言,这样的关系可以是社交的、职业的(例如,在共同的公司或组织工作)、基于兴趣的或基于活动的。
消息表214可以存储用户与一个或更多个朋友或实体之间的对话集合。消息表214可以包括每个对话的各种属性,例如参与者列表、对话的大小(例如,用户的数目和/或消息的数目)、对话的聊天颜色、对话的唯一标识符以及任何其他对话相关的特征。
数据库120还在注释表212中以过滤器的示例形式存储注释数据。数据库120还存储在注释表212中接收到的注释内容。在注释表212中存储数据的过滤器是与视频和/或图像相关联并被应用于视频(其数据存储在视频表210中)和/或图像(其数据存储在图像表208中)。在一个示例中,过滤器是在呈现给接收方用户期间显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型的,包括当发送方用户正在编写消息时由消息收发客户端应用104呈现给发送方用户的过滤器图库中用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置被呈现给发送方用户。例如,可以基于由客户端设备102的全球定位系统(GPS)单元确定的地理位置信息,由消息收发客户端应用104在UI内呈现特定于附近或特殊位置的地理位置过滤器。另一种类型的过滤器是数据过滤器,其可以由消息收发客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息选择性地呈现给发送方用户。数据过滤器的示例包括特定位置处的当前温度、发送方用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表208内的其他注释数据可以是可以添加到图像或视频中的实时特定效果和声音。
如上所述,视频表210存储视频数据,在一个实施方式中,该视频数据与在消息表214中维护其记录的消息相关联。类似地,图像表208存储与消息数据被存储在实体表202中的消息相关联的图像数据。实体表202可以将来自注释表212的各种注释与存储在图像表208和视频表210中的各种图像和视频相关联。
经训练的机器学习技术207存储在身体姿势估计系统124的训练期间已经被训练的参数。例如,经训练的机器学习技术207存储一个或更多个神经网络机器学习技术的经训练的参数。
身体姿势训练图像209存储对现实世界身体姿势的描绘的多个图像。存储在身体姿势训练图像209中的多个图像包括对现实世界身体姿势的各种描绘以及从3D深度传感器为每个图像捕获的3D深度信息。多个图像还包括识别一个或更多个身体骨骼关节的身体姿势和真实骨骼关节位置的真实信息。图5示出了针对给定姿势识别的骨骼关节位置的示例。这些骨骼关节位置包括右手腕、右肘、右肩、面部上的鼻子、左肩、左肘、和左手腕的位置。可以相对于彼此确定骨骼关节位置(例如,一个骨骼关节相对于另一个骨骼关节有多高或一个骨骼关节相对于鼻子有多高或多低)以确定给定的姿势。这些身体姿势训练图像209被身体姿势估计系统124用来训练第一机器学习技术,该第一机器学习技术用于从所接收的用户身体的RGB单目图像来确定身体姿势和骨骼关节位置。
身体姿势训练图像209存储描绘真实世界身体姿势的多个视频(1至2秒视频片段)。身体姿势训练图像209中存储的多个视频包括真实世界身体姿势的各种描绘。多个视频还包括识别在相对于多个视频中的每一个中的最后一帧的后续帧中描绘的身体的真实骨骼关节位置的真实信息。这些身体姿势训练图像209被身体姿势估计系统124用来训练第二机器学习技术,该第二机器学习技术用于根据接收到的用户身体的RGB单目视频预测后续帧的骨骼关节位置。
返回至图2,故事表206存储与消息和相关联的图像、视频或音频数据的集合有关的数据,这些数据被编译成集合(例如,故事或图库)。特定集合的创建可以由特定用户(例如,在实体表202中为其维护记录的每个用户)发起。用户可以以已由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息收发客户端应用104的UI可以包括用户可选择的图标,以使得发送方用户能够将特定内容添加到他或她的个人故事。
集合还可以构成“生活故事”,其是来自多个用户的内容的集合,该集合是手动、自动或使用手动和自动技术的组合创建的。例如,“生活故事”可以构成来自各种位置和事件的用户提交内容的策划流。其客户端设备启用了位置服务并且在特定时间处于共同位置事件处的用户可以例如经由消息收发客户端应用104的UI被呈现有选项,以将内容贡献给特定生活故事。可以由消息收发客户端应用104基于用户的位置向他或她标识生活故事。最终结果是从社区视角讲述的“生活故事”。
另外类型的内容集合被称为“位置故事”,其使得其客户端设备102位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要二级认证以验证最终用户属于特定组织或其他实体(例如,是大学校园中的学生)。
图3是示出根据一些实施方式的消息300的结构的示意图,消息300由消息收发客户端应用104生成,以用于传送至另外的消息收发客户端应用104或消息收发服务器应用114。特定消息300的内容用于填充存储在数据库120中的消息表214,该消息表214可由消息服务器应用114访问。类似地,消息300的内容被存储在存储器中作为客户端设备102或应用服务器112的“在途”或“飞行中”的数据。消息300被示为包括以下组成部分:
·消息标识符302:识别消息300的唯一标识符。
·消息文本有效载荷304:要由用户经由客户端设备102的UI生成并且包括在消息300中的文本。
·消息图像有效载荷306:由客户端设备102的摄像装置部件捕获的或从客户端设备102的存储器检索到的、并且包括在消息300中的图像数据。
·消息视频有效载荷308:由摄像装置部件捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息300中的视频数据。
·消息音频有效载荷310:由麦克风捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息300中的音频数据。
·消息注释312:表示要应用于消息300的消息图像有效载荷306、消息视频有效载荷308或消息音频有效载荷310的注释的注释数据(例如,过滤器、贴纸或其他增强物)。
·消息持续时间参数314:参数值,其指示消息的内容(例如,消息图像有效载荷306、消息视频有效载荷308、消息音频有效载荷310)将经由消息收发客户端应用104被呈现给用户或使其对于用户可访问的以秒为单位的时间量。
·消息地理位置参数316:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。在有效载荷中可以包括多个消息地理位置参数316值,其中这些参数值中的每一个都与包括在内容中的内容项(例如,消息图像有效载荷306内的特定图像,或消息视频有效载荷308中的特定视频)相关联。
·消息故事标识符318:识别一个或更多个内容集合(例如,“故事”)的标识符值,消息300的消息图像有效载荷306中的特定内容项与所述一个或更多个内容集合相关联。例如,消息图像有效载荷306内的多个图像可以各自与使用标识符值的多个内容集合相关联。
·消息标签320:每个消息300可以用多个标签来标记,每个标签都指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷306中包括的特定图像描绘动物(例如狮子)的情况下,可以在消息标签320中包括指示相关动物的标签值。标签值可以基于用户输入手动地生成,或者可以使用例如图像识别自动地生成。
·消息发送者标识符322:指示在其上生成消息300并且从其发送消息300的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
·消息接收者标识符324:针对其指示消息300被寻址的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。在多个用户之间的对话的情况下,标识符可以指示对话中涉及的每个用户。
消息300的各种组成部分的内容(例如,值)可以是指向表中的存储内容数据值的位置的指针。例如,消息图像有效载荷306中的图像值可以是指向图像表208内的位置(或地址)的指针。类似地,消息视频有效载荷308内的值可以指向存储在视频表210内的数据,存储在消息注释312中的值可以指向存储在注释表212中的数据,存储在消息故事标识符318中的值可以指向存储在故事表206中的数据,并且存储在消息发送者标识符322和消息接收者标识符324中的值可以指向存储在实体表202中的用户记录。
图4是示出根据示例实施方式的示例身体姿势估计系统124的框图。身体姿势估计系统124对一组输入数据(例如,描绘用户真实身体的单目图像401、身体姿势训练图像数据402、描绘用户的身体的单目视频403、以及身体姿势训练视频数据404)进行操作。该组输入数据在训练阶段从存储在数据库200中的身体姿势训练图像209获得,并且在AR/VR应用105正在被使用时从客户端设备102的RGB相机获取。身体姿势估计系统124包括第一机器学习技术模块412、骨骼关节位置模块414、第二机器学习技术模块417、姿势确定模块416、虚拟对象修改模块418、虚拟对象模式选择模块419和虚拟对象显示模块420。
在训练期间,根据所公开的实施方式,身体姿势估计系统124从身体姿势训练图像数据402接收给定的训练图像(例如,描绘现实世界身体的单目图像401,诸如,用户的面部、手臂、躯干、臀部和腿部的图像)。身体姿势估计系统124使用第一机器学习技术模块412对给定训练图像应用一种或更多种机器学习技术。第一机器学习技术模块412从给定的训练图像中提取一个或更多个特征以估计图像中描绘的骨骼关节的骨骼关节位置。例如,第一机器学习技术模块412获取描绘用户面部、手臂、躯干、臀部和腿部的给定训练图像。第一机器学习技术模块412从图像中提取与用户面部和手臂相对应的特征以识别一个或更多个骨骼关节(例如,图5中所示的关节,包括左/右腕关节、左/右肘关节、左/右肩关节和鼻子位置)。
第一机器学习技术模块412确定所识别的骨骼关节的相对位置以确定对应于骨骼关节位置的姿势。在一个实施方式中,第一机器学习技术模块412使用与给定训练图像相关联的深度信息来帮助确定身体的骨骼关节位置和姿势。第一机器学习技术模块412将所确定的骨骼关节位置和所确定的姿势与作为身体姿势训练图像数据402的一部分提供的真实骨骼关节位置和姿势进行比较。基于比较的差异阈值,第一机器学习技术模块412更新一个或更多个系数并获取一个或更多个额外的身体姿势训练图像。在指定数量的时期(epoch)或训练图像被处理之后和/或当差异阈值达到指定值时,第一机器学习技术模块412完成训练并且第一机器学习技术模块412的参数和系数被存储在经训练的机器学习技术207中。在一些实施方式中,第一机器学习技术模块412的部分由骨骼关节位置模块414和姿势确定模块416来实现。
在训练期间,根据所公开的实施方式,身体姿势估计系统124从身体姿势训练图像数据402接收给定训练视频(例如,描绘用户的身体的单目视频403,其描绘现实世界身体,诸如,用户的面部、手臂、躯干、臀部和腿部的图像)。身体姿势估计系统124使用第二机器学习技术模块417对给定训练视频应用一种或更多种机器学习技术。第二机器学习技术模块417从给定的训练视频中提取一个或更多个特征以预测视频的最后一帧之后的帧的骨骼关节位置。例如,第二机器学习技术模块417获取描绘用户面部、手臂、躯干、臀部和腿部的跨1至2秒的视频的一组帧的移动的给定训练视频。第二机器学习技术模块417从视频中提取与用户面部和手臂相对应的特征以预测视频的最后一帧之后的帧中的一个或更多个骨骼关节(例如,图5中所示的关节,包括左/右腕关节、左/右肘关节、左/右肩关节和鼻子位置)。在一些情况下,视频的最后一帧之后的帧可能不可用并且不被第二机器学习技术模块417接收,但是第二机器学习技术模块417根据先前帧预测后续帧的骨骼关节位置。
第二机器学习技术模块417预测给定训练视频之后的一个或更多个后续帧的骨骼关节位置。例如,第二机器学习技术模块417可以处理给定视频的帧2至25和同一视频的帧26,以预测在同一视频的帧26中描绘的身体的骨骼关节位置。第二机器学习技术模块417将确定/预测的骨骼关节位置与作为身体姿势训练图像数据402的一部分提供的真实骨骼关节位置进行比较。真实骨骼关节位置可以提供关于帧2至25中描绘的身体的移动的后续帧26的真实骨骼关节位置。基于比较的差异阈值,第二机器学习技术模块417更新一个或更多个系数并获取一个或更多个额外的身体姿势训练视频。在处理了指定数量的时期或批次的训练视频后以及/或者当差值阈值达到指定值时,第二机器学习技术模块417完成训练并且第二机器学习技术模块417的参数和系数被存储在经训练的机器学习技术207中。在一些实施方式中,第二机器学习技术模块417的一部分由骨骼关节位置模块414和姿势确定模块416实现。
在示例中,第二机器学习技术模块417被训练以识别骨骼关节位置跨一组连续帧的移动。第二机器学习技术模块417可以接收当前视频帧和/或根据该当前视频帧确定的骨骼关节位置。第二机器学习技术模块417可以将描绘身体的移动的一组先前帧和当前帧的图像特征一起处理,并且预测下一帧的估计骨骼关节位置。基于该预测,第二机器学习技术模块417将预测的估计骨骼关节位置与第一机器学习技术模块412针对当前帧确定的骨骼关节位置进行比较。然后第二机器学习技术模块417可以基于比较确定所需的任何偏差和校正。
具体地,第二机器学习技术模块417(例如,从第一机器学习技术模块412)接收已经针对当前帧确定的骨骼关节位置的集合。骨骼关节位置的集合可以指示左手腕在二维(2D)或三维(3D)空间(4,6)中的特定坐标处,而右手腕在2D或3D空间(10,8)中的另一个特定坐标处。第二机器学习技术模块417处理紧接在当前帧之前1至2秒的视频帧序列和当前帧的图像特征。第二机器学习技术模块417分析骨骼关节跨视频帧序列的移动,以预测骨骼关节在当前帧或当前帧之后的帧中的估计位置。作为示例,第二机器学习技术模块417预测左手腕的坐标为(4,7),并且右手腕的坐标为(10,8)。第二机器学习技术模块417将预测坐标与(例如,通过第一机器学习技术模块412)针对当前帧确定的坐标进行比较。第二机器学习技术模块417可以过滤或校正至少一些不匹配的坐标。在该示例中,第二机器学习技术模块417确定左手腕坐标(4,6)与基于先前视频帧预测的坐标(4,7)不匹配,因此在骨骼关节位置的集合中将骨骼关节位置校正为(4,7)。
在训练之后,根据所公开的实施方式,身体姿势估计系统124接收输入图像401(例如,描绘真实世界身体的单目图像,例如用户的面部、手臂、躯干、臀部和腿的图像)作为来自客户端设备102的单个RGB图像。身体姿势估计系统124将第一经训练的机器学习技术模块412应用于所接收的输入图像401,以提取表示图像401中描绘的身体的骨骼关节的一个或更多个特征。身体姿势估计系统124将第二经训练的机器学习技术模块417应用于所接收的描绘用户身体的单目视频403,以提取表示在描绘用户的身体的单目视频403中描绘的身体的骨骼关节的一个或更多个特征以及生成对后续帧中的骨骼关节的预测或估计。
在一些实施方式中,从描绘用户身体的视频流中提取特征的速率是基于用户相对于图像捕获设备定位的多近或多远。例如,如果用户被定为成远离图像捕获设备并且在视频图像中显得非常小,那么更不频繁地分析用户身体的特征从而更不频繁地分析用户身体的姿势(例如,每5帧一次)。如果用户靠近图像捕获设备并在视频的图像中显得很大,则更频繁地分析用户身体的特征从而更频繁地分析用户身体的姿势(例如,每2帧一次)。所提取的特征被提供给骨骼关节位置模块414。骨骼关节位置模块414分析骨骼关节特征以确定特定骨骼关节的坐标。例如,骨骼关节位置模块414确定每个骨骼关节的特定点的x,y坐标,例如左手腕的x,y坐标、左肘的x,y坐标、左肩的x,y坐标,鼻子(或其他面部特征,诸如嘴、耳或眼睛)的x,y坐标,右手腕的x,y坐标,右肘的x,y坐标,以及右肩的x,y坐标。骨骼关节位置模块414向第二机器学习技术模块417提供指定骨骼关节的x,y坐标。在一些实施方式中,骨骼关节位置模块414向虚拟对象修改模块418提供经过滤的骨骼关节的x,y坐标。在一个实施方式中,x,y坐标表示每个骨骼关节相对于身体的中性姿势的x,y偏移量。
第二机器学习技术模块417分析骨骼关节在描绘用户的身体的单目图像401之前接收的视频帧序列上的移动,以预测在描绘用户身体的单目图像401中骨骼关节的估计位置。第二机器学习技术模块417分析的先前视频帧的数目或先前接收的视频片段的持续时间可以由用户设置、预定或动态调整。在某些情况下,如果通过第一机器学习技术模块412确定的骨骼关节位置的过滤或校正量超过指定阈值,则分析的先前视频帧的数目可能会增加(例如,从1秒视频到2秒视频)。在某些情况下,基于用户与相机之间的距离超过指定阈值,可以增加分析的先前视频帧的数目(例如,从1秒视频到2秒视频)。第二机器学习技术模块417可以过滤或校正由骨骼关节位置模块414提供的与由第二机器学习技术模块417基于先前视频帧预测的骨骼关节位置不匹配的一个或更多个骨骼关节位置的坐标中的至少一些。在该示例中,第二机器学习技术模块417确定左手腕坐标(4,6)与基于先前视频帧预测的坐标(4,7)不匹配,因此,在骨骼关节位置的集合中将骨骼关节位置校正为(4,7)。
姿势确定模块416确定从第二机器学习技术模块417接收的每个骨骼关节的相对位置。例如,姿势确定模块416确定左手腕在y方向上比右手腕更低多于第一指定量但少于第二指定量。基于该确定,姿势确定模块416估计图像中描绘的姿势对应于第一姿势。作为另一示例,姿势确定模块416确定左手腕在y方向上比右手腕更低超过第一指定量和第二指定量。基于该确定,姿势确定模块416估计图像中描绘的姿势对应于第二姿势。在一些实施方式中,姿势确定模块416基于从骨骼关节位置模块414接收的x,y坐标来搜索数据库以识别在x,y坐标的预定阈值内的姿势。
虚拟对象模式选择模块419从客户端设备102接收对虚拟化模式的选择。例如,可以向AR/VR应用105的用户呈现模式选项列表。响应于接收到用户从列表中对给定模式选项的选择,给定模式被提供给虚拟对象模式选择模块419作为对虚拟化模式的选择。模式选项可以包括单个化身模仿选项、多个化身模仿选项、化身可视化控制选项、化身跟随选项、和化身虚拟世界交互选项。虚拟化模式选择控制用户身体的骨骼关节位置影响化身的骨架或显示器中化身相对于用户的位置的方式。模式选项可以包括供用户选择的不同形式和类型的化身的列表。然后使用所选择的化身来取得相应的骨架,以根据用户的姿势调整骨架。
虚拟对象修改模块418可以基于由虚拟对象模式选择模块419选择的模式和从骨骼关节位置模块414和/或姿势确定模块416接收的姿势或骨骼关节位置来调整给定化身的骨架。虚拟对象修改模块418例如通过改变图像中化身的姿势、视觉属性和/或位置来调整化身在图像中的呈现方式。经调整的化身由虚拟对象修改模块418提供给虚拟对象显示模块420。虚拟对象显示模块420将经调整的化身组合成所接收的描绘用户身体的单目图像,从而在图像中同时呈现经调整的化身和用户。该图像由虚拟对象显示模块420提供给客户端设备102,然后可以发送给另一个用户或存储以供以后访问和显示。
例如,对单个化身模仿选项的选择指示虚拟对象修改模块418基于用户身体的骨骼关节之间的相对距离来修改化身的骨架。通过这种方式,骨架被修改为复制或模仿用户身体所表示的姿势。具体地,如果确定在所捕获的RGB图像中左手腕从左手腕的中性位置偏移更高一定比例或百分比,则相应的化身骨架的左手腕被抬高到同样从化身左手腕的中性位置更高相同的比例或百分比的位置。类似地调整每个骨架关节以复制图像中描绘的身体的骨骼关节位置的相对位置。例如,如图7A所示,用户的身体723被识别并且用户的身体723的左腕关节位置被确定为比中性左腕关节位置偏移更低第一量,用户的身体723的右腕关节位置被确定为比中性右腕关节位置偏移更高第二量。在一个实施方式中,图5表示用户身体的中性骨骼关节位置。化身734的骨架的骨骼关节位置相对于它们的对应中性位置被类似地调整以偏移类似的第一量和第二量。结果,化身734看起来模仿或复制由用户的身体723表示的姿势。
作为另一示例,对多个化身模仿选项的选择指示虚拟对象修改模块418基于用户身体的骨骼关节之间的相对距离来修改化身的多个副本的骨架。多个化身模仿选项使得在如图8A的图像1011中所示的第一中性位置1020中描绘的化身对与如图像1013中所示的用户身体相对应的姿势进行动画处理。具体地,图像1011中所示的多个化身可以以不同的中性姿势(例如,以四条腿在地板上爬行)出现。响应于对多个化身模仿选项的选择,姿势估计系统124分析所接收的单目RGB图像的序列以确定用户的姿势何时与指定姿势相匹配。响应于确定用户的姿势与指定的姿势相匹配,姿势估计系统124使所有化身复制用户的姿势(例如,用两条腿站立并且将左臂和右臂定位成与用户相似的姿势)。化身的骨架被以与当单个化身模仿选项被选择时针对该单个化身所进行的相似方式调整。另一个示例被显示在图像1019和1015中。在图像1013中,化身1030从中性位置(平躺在地板上)过渡到模仿用户姿势的姿势位置1032(例如,用两条腿站立并且将左臂和右臂定位成与用户相似的姿势)。当化身是纸片的集合时,纸片被动画化为飞来飞去,直到纸片以一定的顺序并以与用户的身体姿势相匹配的姿势被排列在用户的前面或后面。
作为另一示例,对化身可视化控制选项的选择指示虚拟对象修改模块418基于用户的姿势来修改化身的视觉属性。例如,化身在屏幕上被呈现为以给定的速率从上到下或从左到右移动。具体地,图8B的图像1110中所示的云可以被动画化为在用户面前横跨屏幕向下移动。基于用户的姿势或基于用户从一个姿势过渡到另一个姿势的速度有多慢或多快,可以增加或减少云横跨屏幕移动的速率。作为另一示例,化身(例如,云)可以被放置在用户的手上,如图像1112中所示。当用户将姿势从垂直且笔直悬在空中的手改变为水平伸展的手时,化身继续跟随用户的手并定位在用户的手上,但化身的视觉属性发生变化(例如,云现在在用户上方呈现彩虹,彩虹从位于一只手上的第一朵云到位于第二只手上的第二朵云),如图1114所示。视觉属性的改变还可以包括将化身上描绘的面部从微笑变为皱眉,或者可以基于用户的骨骼关节位置的改变来改变化身的颜色。
作为另一示例,对化身虚拟世界交互的选择指示虚拟对象修改模块418使得化身与图像中的另一个虚拟对象交互。例如,化身被显示在包括虚拟对象(例如,虚拟树和树上的虚拟苹果)的图像中。化身姿势和移动以允许化身与虚拟对象交互的方式跟踪和模仿用户的骨骼关节位置。具体地,图8C示出了虚拟苹果810和化身812,其手臂具有在垂直方向上彼此处于特定位置水平的左右手腕。在这个位置的化身812的右手与虚拟苹果810距离第一距离。当图像中描绘的用户的身体820抬起右臂时,化身812的右臂816也相对于左臂抬起,这也抬起了化身812的右手腕。在这个位置,化身812的右手腕和右肘高于左手腕和左肘,并且化身812的右手与虚拟苹果810距离第二距离。化身812的右手与虚拟苹果810的位置之间的距离被确定为小于阈值,因此,虚拟苹果810与虚拟树814分离并被固定到化身812的右手。如图所示,虚拟苹果810不再呈现在虚拟树814上,并且当用户放低他们的手臂时,化身的左臂和右臂也被放低以显示右手现在正拿着虚拟苹果810。以此方式,用户可以使化身812模仿用户的姿势以与图像或视频中的一个或更多个虚拟对象交互。
作为另一示例,对化身跟随选项的选择指示虚拟对象修改模块418保持化身与用户之间的给定距离。具体来说,此选项使得化身在一系列图像上跟随用户。例如,化身在描绘用户身体的图像中的位置随着用户的身体位置在图像中的变化而变化。特别地,如果用户向右移动一定量,则所显示的化身的位置也向右移动相同的一定量。图8C示出了在相对于图像中描绘的用户的第一位置830中并且在2D或3D空间中的化身与用户之间的第一距离处的化身。随着用户移动到第二位置,化身被移动到第二位置832以与图像中描绘的用户保持相同的距离。
图6是示出根据示例实施方式的执行过程600中的身体姿势估计系统124的示例操作的流程图。过程600可以以由一个或更多个处理器执行的计算机可读指令实现,使得过程600的操作可以部分地或全部地由消息收发服务器系统108和/或AR/VR应用105的功能部件执行;因此,下面参照其通过示例的方式描述过程600。然而,在其他实施方式中,过程600的操作中的至少一些操作可以部署在各种其他硬件配置上。因此,过程600并不旨在限于消息收发服务器系统108并且可以全部地或部分地由任何其他部件实现。过程600的操作中的一些操作或全部操作可以并行、无序或完全省略。
在操作601处,身体姿势估计系统124接收包括对用户的身体的描绘的单目图像。例如,第一机器学习技术模块412接收描绘用户的身体的单目图像401。第一机器学习技术模块412从指示骨骼关节的图像中提取一个或更多个特征。
在操作602处,身体姿势估计系统124检测在单目图像401中描绘的身体的多个骨骼关节。例如,骨骼关节位置模块414处理通过第一机器学习技术模块412提取的特征以确定一组骨骼关节的位置。可以相对于每个骨骼关节的中性位置来确定该位置。
在操作603处,身体姿势估计系统124访问包括在单目图像之前接收的多个单目图像的视频馈送。例如,姿势确定模块416访问在通过第一机器学习技术模块412处理的当前图像之前接收的1至2秒的视频。
在操作604处,身体姿势估计系统124使用视频馈送过滤基于单目图像检测到的身体的多个骨骼关节。例如,第二机器学习技术模块417基于一个或更多个先前帧中的骨骼关节位置(例如,基于在前1至2秒的视频中的身体移动)来预测当前帧的骨骼关节位置。第二机器学习技术模块417过滤或校正基于实际接收的当前视频帧通过第一机器学习技术模块412输出的骨骼关节位置与基于当前帧的先前视频帧和/或图像特征通过第二机器学习技术模块417输出的预测骨骼关节位置之间的任何不匹配。
在操作605处,身体姿势估计系统124基于经过滤的身体的多个骨骼关节来确定由单目图像中描绘的身体表示的姿势。
图7A至图7C示出了根据示例实施方式的身体姿势估计系统124的说明性输入和输出。图7A至图7C中所示的输入和输出可以由AR/VR应用105来实现。在一些实施方式中,第一用户访问身体姿势估计系统124以将描绘用户和对应化身的图像交换给另一用户。向第一用户呈现包括化身选择区域和开始交换图像的选项的屏幕711。在第一用户选择化身并选择开始选项之后,在屏幕712中向第一用户呈现指令以将第一用户定位在距图像捕获设备指定距离处。例如,指示第一用户后退,以便用户的身体适合图像捕获设备捕获的图像。
在一个实施方式中,如屏幕712中所示,第一用户被指示离开图像捕获设备足够远,直到预定的一组骨骼关节可见但并非所有骨骼关节都可见。具体地,身体姿势估计系统124可以仅需要手腕位置、肘位置、肩位置和鼻子位置在图像中可见,而不需要腿部位置。在一些实施方式中,在图像中可见的第一用户的骨骼关节使得化身的相同对应骨骼关节被调整。例如,如果图像中只有第一用户的手臂可见,则仅调整化身的手臂以模仿第一用户的手臂位置。如果用户的整个身体(包括用户的腿)都是可见的,则整个化身骨架(包括化身的腿)被调整以模仿第一用户的身体姿势。
在屏幕713中获取用户的身体姿势并且身体姿势估计系统124生成具有与第一用户相同或相似的姿势的化身734以用于在屏幕714中显示。第一用户可以说一个预定的词,或者,如果用户在阈值时间段内保持相同的姿势,则捕获屏幕截图或图像,该屏幕截图或图像以该姿势的用户和模仿用户姿势的化身为特征。
如图7B中所示,屏幕截图741在屏幕721中被显示给第一用户。空白空间760可以被包括在屏幕721中,指示来自第二用户的对应屏幕截图的接收即将发生。第一用户可以选择或按压空白区域760以使接收者列表呈现在屏幕722中。具体地,屏幕722呈现第一用户的朋友列表。第一用户可以选择给定的朋友“马特”,并且身体姿势估计系统124将屏幕截图741发送给所选择的朋友“马特”。
如图7C中所示,第二用户731遵循与第一用户相似的顺序以使得第二化身732模仿第二用户731的姿势,如屏幕730中所示。具体地,屏幕730被提供在与第二用户731相关联的不同移动设备上。第二用户731选择第二化身732并被指示后退以使得身体姿势估计系统124能够估计用户731的身体姿势并调整所选择的第二化身732来模仿第二用户的身体姿势。身体姿势估计系统124捕获描绘具有给定姿势的第二用户731和第二化身732的图像751,并将所捕获的图像751呈现在屏幕740中。所捕获的图像751被自动发送给第一用户。描绘具有给定姿势的第二用户731和第二化身732的所捕获的图像751与描绘具有另一姿势的第一用户和第一化身的屏幕截图741一起呈现。
图9是示出示例软件架构906的框图,示例软件架构906可以与本文中描述的各种硬件架构结合使用。图9是软件架构的非限制性示例,并且应当理解的是,可以实现许多其他架构以促进本文中描述的功能。软件架构906可以在诸如图10的机器1000的硬件上执行,机器1000包括处理器1004、存储器1014和输入/输出(I/O)部件1018等。代表性硬件层952被示出并且可以表示例如图10的机器1000。代表性硬件层952包括具有相关联的可执行指令904的处理单元954。可执行指令904表示软件架构906的可执行指令,包括本文中描述的方法、部件等的实现。硬件层952还包括也具有可执行指令904的存储器和/或存储模块存储器/存储装置956。硬件层952还可以包括其他硬件958。
在图9的示例架构中,软件架构906可以被概念化为层的堆栈,在层的堆栈中,每个层提供特定的功能。例如,软件架构906可以包括诸如操作系统902、库920、框架/中间件918、应用916和表示层914的层。在操作上,层内的应用916和/或其他组件可以通过软件堆栈激活应用编程接口(API)调用908并且响应于API调用908而接收消息912。示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件918,而其他操作系统可能提供这样的层。其他软件架构可以包括附加的层或不同的层。
操作系统902可以管理硬件资源并且提供公共服务。操作系统902可以包括例如核心922、服务924和驱动926。核心922可以用作硬件与其他软件层之间的抽象层。例如,核心922可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务924可以为其他软件层提供其他公共服务。驱动器926负责控制底层硬件或与底层硬件接口(interface)。例如,根据硬件配置,驱动器926包括显示器驱动器、摄像装置驱动器、蓝牙
Figure BDA0003688568470000211
驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、
Figure BDA0003688568470000212
驱动器、音频驱动器、电源管理驱动器等。
库920提供由应用916和/或其他部件和/或层使用的公共基础设施。库920提供如下功能,该功能允许其他软件组件以比与底层操作系统902的功能(例如,核心922、服务924和/或驱动器926)直接对接的方式更容易的方式来执行任务。库920可以包括系统库944(例如,C标准库),系统库944可以提供函数例如存储器分配函数、串操纵函数、数学函数等。此外,库920可以包括API库946,例如媒体库(例如,支持诸如MPREG4、H.264、MP3、AAC、AMR、JPG、PNG的各种媒体格式的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容呈现二维和三维的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、web库(例如,可以提供web浏览功能的WebKit)等。库920还可以包括各种各样的其他库948,以向应用916和其他软件组件/模块提供许多其他API。
框架/中间件918(有时也称为中间件)提供可以由应用916和/或其他软件组件/模块使用的较高级别的公共基础设施。例如,框架/中间件918可以提供各种UI(GUI)功能、高级资源管理、高级位置服务等。框架/中间件918可以提供可以由应用916和/或其他软件组件/模块利用的广范围的其他API,其中一些可以特定于特定操作系统902或平台。
应用916包括内置应用938和/或第三方应用940。代表性内置应用938的示例可以包括但不限于:联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息收发应用和/或游戏应用。第三方应用940可以包括由除特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTM、
Figure BDA0003688568470000221
Phone的移动操作系统或其他移动操作系统上运行的移动软件。第三方应用940可以激活由移动操作系统(例如,操作系统902)提供的API调用908,以有利于本文中描述的功能。
应用916可以使用内置操作系统功能(例如,核心922、服务924和/或驱动器926)、库920以及框架/中间件918来创建UI以与系统的用户交互。替选地或另外地,在一些系统中,可以通过表示层例如表示层914发生与用户的交互。在这些系统中,应用/部件“逻辑”可以与应用/部件的与用户交互的方面分开。
图10是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器1000的部件的框图。具体地,图10以计算机系统的示例形式示出了机器1000的示意图,在该机器1000中可以执行指令1010(例如,软件、程序、应用、小程序、app或其他可执行代码),以使机器800执行本文讨论的方法中的任何一种或更多种方法。因此,指令1010可以被用来实现本文中描述的模块或部件。指令1010将通用的非编程的机器1000转换成被编程为以所描述的方式执行所描述和所示功能的特定机器1000。在替选实施方式中,机器1000作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1000可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1000采取的动作的指令1010的任何机器。此外,虽然仅示出了单个机器1000,但是术语“机器”还应被认为包括单独地或联合地执行指令1010以执行本文中讨论的任何一种或更多种方法的机器的集合。
机器1000可以包括处理器1004、存储器/存储装置1006和I/O部件1018,所述处理器1004、存储器/存储装置1006和I/O部件1018可以被配置成例如经由总线1002彼此通信。在示例实施方式中,处理器1004(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可以执行指令1010的处理器1008和处理器1012。术语“处理器”旨在包括多核处理器1004,该多核处理器1004可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图10示出了多处理器1004,但是机器1000可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或者其任何组合。
存储器/存储装置1006可以包括诸如主存储器或其他存储器存储装置的存储器1014以及存储单元1016,存储器1014和存储单元1016两者例如经由总线1002由处理器1004访问。存储单元1016和存储器1014存储体现本文中描述的方法或功能中的任何一种或更多种的指令1010。指令1010还可以在其被机器1000执行期间完全地或部分地驻留在存储器1014内、在存储单元1016内、在处理器1004中的至少一个内(例如,在处理器的高速缓存存储器内)或者在其任何合适的组合内。因此,存储器1014、存储单元1016以及处理器1004的存储器是机器可读介质的示例。
I/O部件1018可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器1000中的具体I/O部件1018将取决于机器的类型。例如,诸如移动电话的便携式机器很可能包括触摸输入设备或其他这样的输入机构,而无终端(headless)服务器机器很可能不包括这样的触摸输入设备。将理解,I/O部件1018可以包括图10中未示出的许多其他部件。I/O部件1018根据功能被分组仅为了简化以下讨论,并且该分组决不是限制性的。在各种示例实施方式中,I/O部件1018可以包括输出部件1026和输入部件1028。输出部件1026可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件1028可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例实施方式中,I/O部件1018可以包括生物识别部件1039、运动部件1034、环境部件1036或定位部件1038以及广泛的其他部件。例如,生物统计部件1039可以包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1034可以包括:加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1036可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测周围温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、听觉传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。定位部件1038可以包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以根据其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O部件1018可以包括通信部件1040,通信部件1040能够进行操作以经由耦接1024和耦接1222分别将机器1000耦接至网络1037或设备1029。例如,通信部件1040可以包括网络接口部件或其他合适的设备以与网络1037对接。在另外示例中,通信部件1040可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、蓝牙
Figure BDA0003688568470000251
部件(例如,蓝牙
Figure BDA0003688568470000252
低功耗)、
Figure BDA0003688568470000253
部件和经由其他模态提供通信的其他通信部件。设备1029可以是其他机器或各种外围设备中的任何一个外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件1040可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1040可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码的多维条形码、Aztec代码、数据矩阵、数据符号(Dataglyph)、最大编码(MaxiCode)、PDF417、超代码(Ultra Code)、UCC RSS-2D条形码和其他光代码的光学传感器)或听觉检测部件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信部件1040得到各种信息,如经由因特网协议(IP)地理位置的位置、经由
Figure BDA0003688568470000254
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
术语表:
该上下文中的“载波信号”是指能够存储、编码或携载由机器执行的暂态或非暂态指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便于这些指令的通信。可以使用暂态或非暂态传输介质经由网络接口设备并且使用多个公知的传输协议中的任何一个来通过网络发送或接收指令。
该上下文中的“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获取资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、PDA、智能电话、平板计算机、超级本、上网本、多个膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
该上下文中的“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0003688568470000261
网络、另一类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全局移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电业务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
该上下文中的“短消息”是指可以在时间有限的持续时间内访问的消息。短消息可以是文本、图像、视频等。短消息的访问时间可以由消息发送者设置。替选地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,该消息都是暂时的。
该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的部件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))和/或它们的任何合适的组合。术语“机器可读介质”应当被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还将被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或更多个处理器执行时使机器执行本文中描述的任何一种或更多种方法。因此,“机器可读介质”指的是单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
该上下文中的“部件”是指具有由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。部件可以经由其接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置成用于执行本文中描述的某些操作的硬件部件。
也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(FPGA)或ASIC。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件而配置,硬件部件就成为被独特地定制成执行所配置功能的特定机器(或机器的特定部件),而不再是通用处理器。将理解,可以出于成本和时间考虑来决定在专用且永久配置的电路中还是在临时配置(例如,由软件配置)的电路中机械地实现硬件部件。相应地,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器以例如在一个时刻处构成特定硬件部件,并且在不同的时刻处构成不同的硬件部件。
硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在其通信地耦接到的存储器设备中。然后,其他硬件部件可以在随后的时间访问存储器设备以检索所存储的输出并对其进行处理。
硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。本文所述的示例方法的各种操作可以至少部分地由临时地配置(例如,由软件)或永久地配置以执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是部署在多个机器中。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨若干地理位置分布。
该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被用于操作机器的对应输出信号的任何电路或虚拟电路(通过在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、简化指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP))、ASIC、射频集成电路(RFIC)或其任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
该上下文中的“时间戳”指的是识别某个事件何时发生的字符或编码信息的序列,例如,从而给出日期和一天中的时间,有时精确到几分之一秒。
在不脱离本公开内容的范围的情况下,可以对所公开的实施方式进行改变和修改。这些和其他改变或修改旨在被包括在本公开内容的范围内,并且在所附权利要求中被表达。

Claims (20)

1.一种方法,包括:
由一个或更多个处理器接收包括对用户的身体的描绘的单目图像;
由所述一个或更多个处理器基于所述单目图像来检测所述身体的多个骨骼关节;
访问包括在所述单目图像之前接收的多个单目图像的视频馈送;
使用所述视频馈送来过滤基于所述单目图像检测到的所述身体的所述多个骨骼关节;以及
基于经过滤的所述身体的多个骨骼关节来确定由所述单目图像中描绘的所述身体表示的姿势。
2.根据权利要求1所述的方法,还包括:
由所述一个或更多个处理器通过基于经过滤的所述身体的多个骨骼关节调整化身的骨架的一组骨骼关节,修改化身的姿势以匹配由所述单目图像中描绘的身体所表示的姿势;以及
由所述一个或更多个处理器生成具有与由所述单目图像中描绘的身体所表示的姿势相匹配的修改姿势的化身,以供显示。
3.根据权利要求1所述的方法,其中,所述单目图像是视频的第一帧,所述方法还包括:
使用第一机器学习技术来识别所述单目图像的多个骨骼关节特征,其中,基于所识别的多个骨骼关节特征检测所述多个骨骼关节的位置。
4.根据权利要求3所述的方法,其中,所述第一机器学习技术包括第一深度神经网络。
5.根据权利要求4所述的方法,还包括通过执行以下操作来训练所述第一深度神经网络:
接收训练数据,所述训练数据包括多个训练单目图像和所述多个训练单目图像中的每一个的真实骨骼关节信息,所述多个训练单目图像中的每一个描绘不同的身体姿势;
将所述第一深度神经网络应用于所述多个训练单目图像中的第一训练单目图像,以估计所述第一训练单目图像中描绘的身体的骨骼关节;
计算所估计的身体的骨骼关节和与所述第一训练单目图像相关联的真实骨骼关节信息之间的偏差;
基于所计算的偏差更新所述第一深度神经网络的参数;以及
对所述多个训练单目图像中的每一个重复应用、计算和更新步骤。
6.根据权利要求1所述的方法,其中,过滤所述多个骨骼关节包括将所述视频馈送应用于第二机器学习技术以估计骨骼关节位置。
7.根据权利要求6所述的方法,其中,所述第二机器学习技术包括第二深度神经网络,以及其中,所述过滤包括将由所述第二深度神经网络提供的所述单目图像的骨骼关节位置的预测与使用第一种机器学习技术识别的所述单目图像的多个骨骼关节特征进行比较。
8.根据权利要求7所述的方法,还包括通过执行以下操作来训练所述第二深度神经网络:
接收训练数据,所述训练数据包括多个训练视频和所述多个训练视频中的每一个的真实骨骼关节信息,所述多个训练视频中的每一个描绘不同的身体姿势;
将所述第二深度神经网络应用于所述多个训练视频中的第一训练视频,以预测在所述第一训练视频之后的帧中所述身体的骨骼关节;
计算所述身体的预测骨骼关节和与所述第一训练视频相关联的真实骨骼关节信息之间的偏差;
基于所计算的偏差更新所述第二深度神经网络的参数;以及
对所述多个训练视频中的每一个重复应用、计算和更新步骤。
9.根据权利要求1所述的方法,其中,所述多个单目图像在接收所述单目图像之前的阈值秒数内被接收。
10.根据权利要求1所述的方法,还包括由所述一个或更多个处理器从多个化身中选择与所述骨架相关联的化身。
11.根据权利要求1所述的方法,还包括:
接收包括多个单目图像的第二视频,所述多个单目图像包括对所述用户的身体的描绘;
跨所述多个单目图像跟踪所述多个骨骼关节的变化;
基于跟踪所述多个骨骼关节的变化来检测所述身体表示的姿势的变化;以及
连续地或周期性地修改所述化身的姿势以匹配所述身体表示的姿势的变化。
12.根据权利要求1所述的方法,还包括基于所确定的姿势使化身与给定图像中描绘的虚拟对象交互。
13.根据权利要求1所述的方法,其中,在不访问来自深度传感器的深度信息的情况下执行所述检测、过滤和确定步骤。
14.根据权利要求1所述的方法,其中,检测所述身体的多个骨骼关节包括识别分别与右手腕、右肘、右肩、所述用户的面部上的鼻子、左肩、左肘和左手腕相关联的点。
15.根据权利要求1所述的方法,其中,基于所述用户相对于图像捕获设备的位置来调整检测所述多个骨骼关节的速率。
16.一种系统,包括:
处理器,其被配置成执行操作,所述操作包括:
接收包括对用户的身体的描绘的单目图像;
基于所述单目图像来检测所述身体的多个骨骼关节;
访问包括在所述单目图像之前接收的多个单目图像的视频馈送;
使用所述视频馈送过滤基于所述单目图像检测到的所述身体的多个骨骼关节;以及
基于经过滤的身体的多个骨骼关节来确定由所述单目图像中描绘的身体表示的姿势。
17.根据权利要求16所述的系统,其中,所述操作还包括通过将所述视频馈送应用于机器学习技术以估计骨骼关节位置来过滤所述多个骨骼关节。
18.根据权利要求17所述的系统,其中,所述机器学习技术包括深度神经网络,以及其中,所述操作还包括通过以下方式训练所述机器学习技术:
接收训练数据,所述训练数据包括多个训练视频和所述多个训练视频中的每一个的真实骨骼关节信息,所述多个训练视频中的每一个描绘不同的身体姿势;
将所述深度神经网络应用于所述多个训练视频中的第一训练视频,以估计所述第一训练视频中描绘的所述身体的骨骼关节;
计算所估计的身体骨骼关节和与所述第一训练视频相关联的真实骨骼关节信息之间的偏差;
基于所计算的偏差更新所述深度神经网络的参数;以及
对所述多个训练视频中的每一个重复应用、计算和更新步骤。
19.一种非暂态机器可读存储介质,包括指令,所述指令在由机器的一个或更多个处理器执行时使所述机器执行操作,所述操作包括:
接收包括对用户的身体的描绘的单目图像;
基于所述单目图像检测所述身体的多个骨骼关节;
访问包括在所述单目图像之前接收的多个单目图像的视频馈送;
使用所述视频馈送过滤基于所述单目图像检测到的身体的多个骨骼关节;以及
基于所述经过滤的身体的多个骨骼关节确定所述单目图像中描绘的身体表示的姿势。
20.根据权利要求19所述的非暂态机器可读介质,其中,所述操作还包括通过将所述视频馈送应用于机器学习技术以估计骨骼关节位置来过滤所述多个骨骼关节。
CN202080085808.8A 2019-12-11 2020-12-11 使用先前帧进行骨骼跟踪 Pending CN114786786A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/710,980 2019-12-11
US16/710,980 US11036989B1 (en) 2019-12-11 2019-12-11 Skeletal tracking using previous frames
PCT/US2020/064476 WO2021119408A1 (en) 2019-12-11 2020-12-11 Skeletal tracking using previous frames

Publications (1)

Publication Number Publication Date
CN114786786A true CN114786786A (zh) 2022-07-22

Family

ID=74175942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080085808.8A Pending CN114786786A (zh) 2019-12-11 2020-12-11 使用先前帧进行骨骼跟踪

Country Status (5)

Country Link
US (3) US11036989B1 (zh)
EP (1) EP4073758A1 (zh)
KR (1) KR20220108812A (zh)
CN (1) CN114786786A (zh)
WO (1) WO2021119408A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11594025B2 (en) 2019-12-11 2023-02-28 Snap Inc. Skeletal tracking using previous frames

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922573B2 (en) * 2018-10-22 2021-02-16 Future Health Works Ltd. Computer based object detection within a video or image
JP7404125B2 (ja) * 2019-09-13 2023-12-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 物体追跡方法及びプログラム
US11500454B2 (en) * 2020-12-29 2022-11-15 Snap Inc. Body UI for augmented reality components
EP4272406A1 (en) 2020-12-29 2023-11-08 Snap Inc. Body ui for augmented reality components
WO2023108086A1 (en) * 2021-12-08 2023-06-15 The Regents Of The University Of California Systems and methods for predictive shoulder kinematics of rehabilitation exercises through immersive virtual reality
CN114898471B (zh) * 2022-07-12 2022-09-30 华中科技大学 一种基于人体骨架特征的行为检测方法及存储介质
CN116403288A (zh) * 2023-04-28 2023-07-07 中南大学 运动姿态的识别方法、识别装置及电子设备

Family Cites Families (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7859551B2 (en) 1993-10-15 2010-12-28 Bulman Richard L Object customization and presentation system
US5880731A (en) 1995-12-14 1999-03-09 Microsoft Corporation Use of avatars with automatic gesturing and bounded interaction in on-line chat session
US6023270A (en) 1997-11-17 2000-02-08 International Business Machines Corporation Delivery of objects in a virtual world using a descriptive container
US6842779B1 (en) 1998-03-11 2005-01-11 Yasuo Nishizawa Agent accessory tool cooperating with integrated application on WEB server by HTTP protocol
US20020067362A1 (en) 1998-11-06 2002-06-06 Agostino Nocera Luciano Pasquale Method and system generating an avatar animation transform using a neutral face image
US6223165B1 (en) 1999-03-22 2001-04-24 Keen.Com, Incorporated Method and apparatus to connect consumer to expert
US6772195B1 (en) 1999-10-29 2004-08-03 Electronic Arts, Inc. Chat clusters for a virtual world application
JP2001230801A (ja) 2000-02-14 2001-08-24 Sony Corp 通信システムとその方法、通信サービスサーバおよび通信端末装置
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US20050206610A1 (en) 2000-09-29 2005-09-22 Gary Gerard Cordelli Computer-"reflected" (avatar) mirror
US8117281B2 (en) 2006-11-02 2012-02-14 Addnclick, Inc. Using internet content as a means to establish live social networks by linking internet users to each other who are simultaneously engaged in the same and/or similar content
US6910186B2 (en) 2000-12-08 2005-06-21 Kyunam Kim Graphic chatting with organizational avatars
US7925703B2 (en) 2000-12-26 2011-04-12 Numedeon, Inc. Graphical interactive interface for immersive online communities
EP1495447A1 (en) 2002-03-26 2005-01-12 KIM, So-Woon System and method for 3-dimension simulation of glasses
KR100493525B1 (ko) 2002-05-03 2005-06-07 안현기 아바타 메일 제공시스템 및 방법
US8495503B2 (en) 2002-06-27 2013-07-23 International Business Machines Corporation Indicating the context of a communication
US7636755B2 (en) 2002-11-21 2009-12-22 Aol Llc Multiple avatar personalities
US20040179039A1 (en) 2003-03-03 2004-09-16 Blattner Patrick D. Using avatars to communicate
US20070168863A1 (en) 2003-03-03 2007-07-19 Aol Llc Interacting avatars in an instant messaging communication session
US20070113181A1 (en) 2003-03-03 2007-05-17 Blattner Patrick D Using avatars to communicate real-time information
KR20040091331A (ko) 2003-04-21 2004-10-28 홍지선 자연어처리기술을 이용하여 입력된 문자메시지와 그 문장내용에 상응하는 아바타 표현 방법 및 시스템
KR100762629B1 (ko) 2003-08-26 2007-10-01 삼성전자주식회사 휴대단말기의 백업서비스 처리방법
US7342587B2 (en) 2004-10-12 2008-03-11 Imvu, Inc. Computer-implemented system and method for home page customization and e-commerce support
US7468729B1 (en) 2004-12-21 2008-12-23 Aol Llc, A Delaware Limited Liability Company Using an avatar to generate user profile information
KR100714192B1 (ko) 2005-04-08 2007-05-02 엔에이치엔(주) 노출 부위가 가변되는 아바타 제공 시스템 및 그 방법
US20060294465A1 (en) 2005-06-22 2006-12-28 Comverse, Inc. Method and system for creating and distributing mobile avatars
US8963926B2 (en) 2006-07-11 2015-02-24 Pandoodle Corporation User customized animated video and method for making the same
US7775885B2 (en) 2005-10-14 2010-08-17 Leviathan Entertainment, Llc Event-driven alteration of avatars
WO2007076721A2 (fr) 2005-12-31 2007-07-12 Tencent Technology (Shenzhen) Company Limited Affichage, procédé de présentation, système d'affichage et appareil de présentation d'image virtuelle 3d
US20070176921A1 (en) 2006-01-27 2007-08-02 Koji Iwasaki System of developing urban landscape by using electronic data
US20100011422A1 (en) 2006-02-16 2010-01-14 Wee-World Limited Portable account information
US8766983B2 (en) 2006-05-07 2014-07-01 Sony Computer Entertainment Inc. Methods and systems for processing an interchange of real time effects during video communication
WO2007134402A1 (en) 2006-05-24 2007-11-29 Mor(F) Dynamics Pty Ltd Instant messaging system
US20080158222A1 (en) 2006-12-29 2008-07-03 Motorola, Inc. Apparatus and Methods for Selecting and Customizing Avatars for Interactive Kiosks
US8504926B2 (en) 2007-01-17 2013-08-06 Lupus Labs Ug Model based avatars for virtual presence
GB0703974D0 (en) 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
GB2447094B (en) 2007-03-01 2010-03-10 Sony Comp Entertainment Europe Entertainment device and method
BRPI0809759A2 (pt) 2007-04-26 2014-10-07 Ford Global Tech Llc "sistema informativo emotivo, sistemas de informações emotivas, métodos de condução emotiva de informações, sistemas informativos emotivos para um veículo de passageiro e método implementado por computador"
CN101071457B (zh) 2007-04-28 2010-05-26 腾讯科技(深圳)有限公司 一种网络游戏中改变角色形象的方法、装置以及服务器
WO2008141125A1 (en) 2007-05-10 2008-11-20 The Trustees Of Columbia University In The City Of New York Methods and systems for creating speech-enabled avatars
US8130219B2 (en) 2007-06-11 2012-03-06 Autodesk, Inc. Metadata for avatar generation in virtual environments
GB2450757A (en) 2007-07-06 2009-01-07 Sony Comp Entertainment Europe Avatar customisation, transmission and reception
US20090016617A1 (en) 2007-07-13 2009-01-15 Samsung Electronics Co., Ltd. Sender dependent messaging viewer
US8726194B2 (en) 2007-07-27 2014-05-13 Qualcomm Incorporated Item selection using enhanced control
US8146005B2 (en) 2007-08-07 2012-03-27 International Business Machines Corporation Creating a customized avatar that reflects a user's distinguishable attributes
US20090055484A1 (en) 2007-08-20 2009-02-26 Thanh Vuong System and method for representation of electronic mail users using avatars
US20090070688A1 (en) 2007-09-07 2009-03-12 Motorola, Inc. Method and apparatus for managing interactions
US8924250B2 (en) 2007-09-13 2014-12-30 International Business Machines Corporation Advertising in virtual environments based on crowd statistics
WO2009046342A1 (en) 2007-10-04 2009-04-09 Playspan, Inc. Apparatus and method for virtual world item searching
US20090106672A1 (en) 2007-10-18 2009-04-23 Sony Ericsson Mobile Communications Ab Virtual world avatar activity governed by person's real life activity
US8892999B2 (en) 2007-11-30 2014-11-18 Nike, Inc. Interactive avatar for social network services
US8151191B2 (en) 2007-12-07 2012-04-03 International Business Machines Corporation Managing objectionable material in 3D immersive virtual worlds
US20090158170A1 (en) 2007-12-14 2009-06-18 Rajesh Narayanan Automatic profile-based avatar generation
US20090177976A1 (en) 2008-01-09 2009-07-09 Bokor Brian R Managing and presenting avatar mood effects in a virtual world
US8495505B2 (en) 2008-01-10 2013-07-23 International Business Machines Corporation Perspective based tagging and visualization of avatars in a virtual world
EP2263190A2 (en) 2008-02-13 2010-12-22 Ubisoft Entertainment S.A. Live-action image capture
JP5643116B2 (ja) 2008-03-03 2014-12-17 ナイキ イノベイト セー. フェー. 対話型運動器具システム
US9744466B2 (en) 2008-03-13 2017-08-29 Mattel, Inc. Widgetized avatar and a method and system of creating and using same
US8832552B2 (en) 2008-04-03 2014-09-09 Nokia Corporation Automated selection of avatar characteristics for groups
US20090265604A1 (en) 2008-04-21 2009-10-22 Microsoft Corporation Graphical representation of social network vitality
US20090300525A1 (en) 2008-05-27 2009-12-03 Jolliff Maria Elena Romera Method and system for automatically updating avatar to indicate user's status
US20090303984A1 (en) 2008-06-09 2009-12-10 Clark Jason T System and method for private conversation in a public space of a virtual world
US8095878B2 (en) 2008-06-23 2012-01-10 International Business Machines Corporation Method for spell check based upon target and presence of avatars within a virtual environment
US8839327B2 (en) 2008-06-25 2014-09-16 At&T Intellectual Property Ii, Lp Method and apparatus for presenting media programs
AU2008358849A1 (en) 2008-06-30 2010-01-07 Accenture Global Services Limited Gaming system
US20120246585A9 (en) 2008-07-14 2012-09-27 Microsoft Corporation System for editing an avatar
EP4083968A1 (en) 2008-07-28 2022-11-02 Breakthrough Performancetech, LLC Systems and methods for computerized interactive skill training
US8384719B2 (en) 2008-08-01 2013-02-26 Microsoft Corporation Avatar items and animations
US8832201B2 (en) 2008-08-18 2014-09-09 International Business Machines Corporation Method, system and program product for providing selective enhanced privacy and control features to one or more portions of an electronic message
US8648865B2 (en) 2008-09-26 2014-02-11 International Business Machines Corporation Variable rendering of virtual universe avatars
US8108774B2 (en) 2008-09-26 2012-01-31 International Business Machines Corporation Avatar appearance transformation in a virtual universe
US8869197B2 (en) 2008-10-01 2014-10-21 At&T Intellectual Property I, Lp Presentation of an avatar in a media communication system
US8683354B2 (en) 2008-10-16 2014-03-25 At&T Intellectual Property I, L.P. System and method for distributing an avatar
US20100115426A1 (en) 2008-11-05 2010-05-06 Yahoo! Inc. Avatar environments
US8745152B2 (en) 2008-11-06 2014-06-03 Disney Enterprises, Inc. System and method for server-side avatar pre-rendering
CA2745094A1 (en) 2008-12-04 2010-07-01 Total Immersion Software, Inc. Systems and methods for dynamically injecting expression information into an animated facial mesh
US8458601B2 (en) 2008-12-04 2013-06-04 International Business Machines Corporation System and method for item inquiry and information presentation via standard communication paths
US20100162149A1 (en) 2008-12-24 2010-06-24 At&T Intellectual Property I, L.P. Systems and Methods to Provide Location Information
US9105014B2 (en) 2009-02-03 2015-08-11 International Business Machines Corporation Interactive avatar in messaging environment
KR101558553B1 (ko) 2009-02-18 2015-10-08 삼성전자 주식회사 아바타 얼굴 표정 제어장치
US20100227682A1 (en) 2009-03-04 2010-09-09 Microsoft Corporation Awarding of avatar items in video game environment
US20110093780A1 (en) 2009-10-16 2011-04-21 Microsoft Corporation Advertising avatar
KR20110070056A (ko) 2009-12-18 2011-06-24 한국전자통신연구원 사용자 맞춤형 고품질 3d 아바타 생성 방법 및 그 장치
TWI434227B (zh) 2009-12-29 2014-04-11 Ind Tech Res Inst 動畫產生系統及方法
US8484158B2 (en) 2010-02-01 2013-07-09 International Business Machines Corporation Managing information about avatars across virtual worlds
US20110239136A1 (en) 2010-03-10 2011-09-29 Oddmobb, Inc. Instantiating widgets into a virtual social venue
US9086776B2 (en) 2010-03-29 2015-07-21 Microsoft Technology Licensing, Llc Modifying avatar attributes
TWI439960B (zh) 2010-04-07 2014-06-01 Apple Inc 虛擬使用者編輯環境
US8351651B2 (en) * 2010-04-26 2013-01-08 Microsoft Corporation Hand-location post-process refinement in a tracking system
US8692830B2 (en) 2010-06-01 2014-04-08 Apple Inc. Automatic avatar creation
US8564621B2 (en) 2010-08-11 2013-10-22 International Business Machines Corporation Replicating changes between corresponding objects
JP2012065263A (ja) 2010-09-17 2012-03-29 Olympus Imaging Corp 撮影機器
KR101514327B1 (ko) 2010-11-04 2015-04-22 한국전자통신연구원 얼굴 아바타 생성 장치 및 방법
US20120124458A1 (en) 2010-11-17 2012-05-17 Nazareno Brier Cruzada Social networking website & web-based system for collecting & presenting real-time user generated information on parties & events.
US20120130717A1 (en) 2010-11-19 2012-05-24 Microsoft Corporation Real-time Animation for an Expressive Avatar
KR20120059994A (ko) 2010-12-01 2012-06-11 삼성전자주식회사 표정 제어점을 이용한 아바타 제어 장치 및 방법
KR101445263B1 (ko) 2010-12-22 2014-09-30 주식회사 케이티 맞춤형 콘텐츠 제공 시스템 및 방법
US9839844B2 (en) 2011-03-01 2017-12-12 Disney Enterprises, Inc. Sprite strip renderer
WO2012126135A1 (en) 2011-03-21 2012-09-27 Intel Corporation Method of augmented makeover with 3d face modeling and landmark alignment
US9330483B2 (en) 2011-04-11 2016-05-03 Intel Corporation Avatar facial expression techniques
US20130103760A1 (en) 2011-04-11 2013-04-25 Robert K. Golding Location-sensitive virtual identity system, apparatus, method and computer-readable medium
US8989786B2 (en) 2011-04-21 2015-03-24 Walking Thumbs, Llc System and method for graphical expression during text messaging communications
US9241184B2 (en) 2011-06-01 2016-01-19 At&T Intellectual Property I, L.P. Clothing visualization
JP5773323B2 (ja) 2011-08-09 2015-09-02 インテル・コーポレーション 画像に基づくマルチビュー3d顔生成
KR20130022434A (ko) 2011-08-22 2013-03-07 (주)아이디피쉬 통신단말장치의 감정 컨텐츠 서비스 장치 및 방법, 이를 위한 감정 인지 장치 및 방법, 이를 이용한 감정 컨텐츠를 생성하고 정합하는 장치 및 방법
US20130249948A1 (en) 2011-08-26 2013-09-26 Reincloud Corporation Providing interactive travel content at a display device
US8559980B2 (en) 2011-09-02 2013-10-15 John J. Pujol Method and system for integrated messaging and location services
US8890926B2 (en) 2011-11-02 2014-11-18 Microsoft Corporation Automatic identification and representation of most relevant people in meetings
US9782680B2 (en) 2011-12-09 2017-10-10 Futurewei Technologies, Inc. Persistent customized social media environment
WO2013097139A1 (en) 2011-12-29 2013-07-04 Intel Corporation Communication using avatar
US8810513B2 (en) 2012-02-02 2014-08-19 Kodak Alaris Inc. Method for controlling interactive display system
US20130257877A1 (en) 2012-03-30 2013-10-03 Videx, Inc. Systems and Methods for Generating an Interactive Avatar Model
US9402057B2 (en) 2012-04-02 2016-07-26 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. Interactive avatars for telecommunication systems
US9357174B2 (en) 2012-04-09 2016-05-31 Intel Corporation System and method for avatar management and selection
US10155168B2 (en) 2012-05-08 2018-12-18 Snap Inc. System and method for adaptable avatars
JP5497931B2 (ja) 2012-05-30 2014-05-21 株式会社コナミデジタルエンタテインメント アプリケーション装置、アプリケーション装置の制御方法、及びプログラム
AU2013206649A1 (en) 2012-07-05 2014-01-23 Aristocrat Technologies Australia Pty Limited A gaming system and a method of gaming
US20140125678A1 (en) 2012-07-11 2014-05-08 GeriJoy Inc. Virtual Companion
US10116598B2 (en) 2012-08-15 2018-10-30 Imvu, Inc. System and method for increasing clarity and expressiveness in network communications
WO2014031899A1 (en) 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
US9461876B2 (en) 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US9936165B2 (en) 2012-09-06 2018-04-03 Intel Corporation System and method for avatar creation and synchronization
US9314692B2 (en) 2012-09-21 2016-04-19 Luxand, Inc. Method of creating avatar from user submitted image
US9746990B2 (en) 2012-09-28 2017-08-29 Intel Corporation Selectively augmenting communications transmitted by a communication device
US9501942B2 (en) 2012-10-09 2016-11-22 Kc Holdings I Personalized avatar responsive to user physical state and context
US20140129343A1 (en) 2012-11-08 2014-05-08 Microsoft Corporation Dynamic targeted advertising avatar
US9256860B2 (en) 2012-12-07 2016-02-09 International Business Machines Corporation Tracking participation in a shared media session
US9990373B2 (en) 2013-02-06 2018-06-05 John A. Fortkort Creation and geospatial placement of avatars based on real-world interactions
EP2976749A4 (en) 2013-03-20 2016-10-26 Intel Corp AVATAR-BASED TRANSMISSION PROTOCOLS, SYMBOL GENERATION AND PUPPET ANIMATION
WO2014153689A1 (en) 2013-03-29 2014-10-02 Intel Corporation Avatar animation, social networking and touch screen applications
WO2014194439A1 (en) 2013-06-04 2014-12-11 Intel Corporation Avatar-based video encoding
US9378576B2 (en) 2013-06-07 2016-06-28 Faceshift Ag Online modeling for real-time facial animation
US9177410B2 (en) * 2013-08-09 2015-11-03 Ayla Mandel System and method for creating avatars or animated sequences using human body features extracted from a still image
US9706040B2 (en) 2013-10-31 2017-07-11 Udayakumar Kadirvel System and method for facilitating communication via interaction with an avatar
US9508197B2 (en) 2013-11-01 2016-11-29 Microsoft Technology Licensing, Llc Generating an avatar from real time image data
WO2015070416A1 (en) 2013-11-14 2015-05-21 Intel Corporation Mechanism for facilitating dynamic simulation of avatars corresponding to changing user performances as detected at computing devices
US9361510B2 (en) 2013-12-13 2016-06-07 Intel Corporation Efficient facial landmark tracking using online shape regression method
US9544257B2 (en) 2014-04-04 2017-01-10 Blackberry Limited System and method for conducting private messaging
US9503845B2 (en) 2014-04-17 2016-11-22 Paypal, Inc. Image customization to enhance transaction experience
WO2015164951A1 (en) 2014-05-01 2015-11-05 Abbas Mohamad Methods and systems relating to personalized evolving avatars
US20160134840A1 (en) 2014-07-28 2016-05-12 Alexa Margaret McCulloch Avatar-Mediated Telepresence Systems with Enhanced Filtering
US9898849B2 (en) 2014-11-05 2018-02-20 Intel Corporation Facial expression based avatar rendering in video animation and method
CN107077750A (zh) 2014-12-11 2017-08-18 英特尔公司 化身选择机制
JP6462386B2 (ja) 2015-02-05 2019-01-30 任天堂株式会社 プログラム、通信端末及び表示方法
US20170053422A1 (en) * 2015-08-17 2017-02-23 Fabien CHOJNOWSKI Mobile device human body scanning and 3d model creation and analysis
US20170087473A1 (en) 2015-09-29 2017-03-30 Sportsworld, Inc. Virtual environments for managing and interacting with virtual sports leagues
US20170118145A1 (en) 2015-10-21 2017-04-27 Futurefly Ltd. Method of using emoji to control and enrich 3d chat environments
WO2017101094A1 (en) 2015-12-18 2017-06-22 Intel Corporation Avatar animation system
US20170199855A1 (en) 2016-01-11 2017-07-13 BuilderFish, LLC System and method for providing a time-based presentation of a user-navigable project model
US9911073B1 (en) 2016-03-18 2018-03-06 Snap Inc. Facial patterns for optical barcodes
US20170312634A1 (en) 2016-04-28 2017-11-02 Uraniom System and method for personalized avatar generation, especially for computer games
US10592098B2 (en) 2016-05-18 2020-03-17 Apple Inc. Devices, methods, and graphical user interfaces for messaging
US10657701B2 (en) 2016-06-30 2020-05-19 Sony Interactive Entertainment Inc. Dynamic entering and leaving of virtual-reality environments navigated by different HMD users
US10573048B2 (en) 2016-07-25 2020-02-25 Oath Inc. Emotional reaction sharing
US20180047200A1 (en) 2016-08-11 2018-02-15 Jibjab Media Inc. Combining user images and computer-generated illustrations to produce personalized animated digital avatars
KR20210013323A (ko) 2016-09-23 2021-02-03 애플 인크. 아바타 생성 및 편집
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
US10242503B2 (en) 2017-01-09 2019-03-26 Snap Inc. Surface aware lens
US10242477B1 (en) 2017-01-16 2019-03-26 Snap Inc. Coded vision system
US10628675B2 (en) 2017-02-07 2020-04-21 Fyusion, Inc. Skeleton detection and tracking via client-server communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10949872B2 (en) 2017-04-28 2021-03-16 Snap Inc. Methods and systems for server generation of interactive advertising with content collections
US9980100B1 (en) 2017-08-31 2018-05-22 Snap Inc. Device location based on machine learning classifications
US10356341B2 (en) * 2017-10-13 2019-07-16 Fyusion, Inc. Skeleton-based effects and background replacement
US10657695B2 (en) 2017-10-30 2020-05-19 Snap Inc. Animated chat presence
US10546408B2 (en) * 2018-03-20 2020-01-28 Adobe Inc. Retargeting skeleton motion sequences through cycle consistency adversarial training of a motion synthesis neural network with a forward kinematics layer
US10783655B2 (en) * 2018-04-11 2020-09-22 Siemens Healthcare Gmbh System and method for assisted patient positioning
US10416755B1 (en) * 2018-06-01 2019-09-17 Finch Technologies Ltd. Motion predictions of overlapping kinematic chains of a skeleton model used to control a computer system
US10909372B2 (en) * 2018-05-28 2021-02-02 Microsoft Technology Licensing, Llc Assistive device for the visually-impaired
EP3579196A1 (en) * 2018-06-05 2019-12-11 Cristian Sminchisescu Human clothing transfer method, system and device
US10861170B1 (en) * 2018-11-30 2020-12-08 Snap Inc. Efficient human pose tracking in videos
US11036989B1 (en) 2019-12-11 2021-06-15 Snap Inc. Skeletal tracking using previous frames

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11594025B2 (en) 2019-12-11 2023-02-28 Snap Inc. Skeletal tracking using previous frames

Also Published As

Publication number Publication date
US11594025B2 (en) 2023-02-28
WO2021119408A1 (en) 2021-06-17
EP4073758A1 (en) 2022-10-19
US20210248373A1 (en) 2021-08-12
KR20220108812A (ko) 2022-08-03
US20230154042A1 (en) 2023-05-18
US20210182555A1 (en) 2021-06-17
US11036989B1 (en) 2021-06-15

Similar Documents

Publication Publication Date Title
US11557075B2 (en) Body pose estimation
US11798261B2 (en) Image face manipulation
US11594025B2 (en) Skeletal tracking using previous frames
US11763481B2 (en) Mirror-based augmented reality experience
US11508087B2 (en) Texture-based pose validation
US11335022B2 (en) 3D reconstruction using wide-angle imaging devices
KR20210036949A (ko) 눈 텍스처 인페인팅
KR20220114081A (ko) 마커 기반 공유된 증강 현실 세션 생성
US20220300728A1 (en) True size eyewear experience in real time
US20230120037A1 (en) True size eyewear in real time
WO2023154544A1 (en) Interactively defining an object segmentation
WO2024006650A1 (en) Augmented reality image reproduction assistant

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