CN108012559B - 用于生成三维模型的方法和系统 - Google Patents

用于生成三维模型的方法和系统 Download PDF

Info

Publication number
CN108012559B
CN108012559B CN201680030189.6A CN201680030189A CN108012559B CN 108012559 B CN108012559 B CN 108012559B CN 201680030189 A CN201680030189 A CN 201680030189A CN 108012559 B CN108012559 B CN 108012559B
Authority
CN
China
Prior art keywords
face
change
tracking points
keyframe
component
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.)
Active
Application number
CN201680030189.6A
Other languages
English (en)
Other versions
CN108012559A (zh
Inventor
S·E·黑尔
E·J·查尔顿
A·J·麦克菲
M·J·埃文斯
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 Group Ltd
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
Priority to CN202110757915.7A priority Critical patent/CN113487742A/zh
Publication of CN108012559A publication Critical patent/CN108012559A/zh
Application granted granted Critical
Publication of CN108012559B publication Critical patent/CN108012559B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • G06F3/012Head tracking input arrangements
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-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/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/167Detection; Localisation; Normalisation using comparisons between temporally consecutive images
    • 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/60Static or dynamic means for assisting the user to position a body part for biometric acquisition
    • G06V40/67Static or dynamic means for assisting the user to position a body part for biometric acquisition by interactive indications to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • 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
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在各种示例实施例中,呈现用于生成和操纵三维(3D)模型的系统和方法。该系统和方法使得呈现包围图像采集装置的视场的界面帧。该系统和方法检测界面帧内的关注对象,生成关于关注对象的运动指令,并且检测关注对象的位置中的第一变化和位置中的第二变化。系统和方法基于位置中的第一变化和位置中的第二变化来生成关注对象的3D模型。

Description

用于生成三维模型的方法和系统
优先权要求
本申请要求于2016年3月24日提交的美国专利申请序列号15/080,367的优先权权益,该申请要求于2015年3月27日提交的美国临时专利申请号62/139,009的优先权权益,在此要求申请中每一个申请的优先权权益,并且其中的每一个申请通过引用全部并入在此。
技术领域
本公开的实施例一般涉及三维模型生成,并且更具体地但不是限制地涉及基于要被建模的对象关于图像采集装置的定向运动来生成三维模型。
背景技术
通常,用于生成三维模型的系统和方法是位置远离模型的预期接收者的第三方系统。三维模型的生成通常利用在模型生成之前采集的多组静态图像。生成三维图像的系统和方法经常执行计算密集型操作,以生成和动画绘制三维模型。
附图说明
附图中的各图仅仅示出了本公开的示例性实施例,并且不能被认为是限制其范围。
图1是示出根据一些示例性实施例的联网系统的框图。
图2是根据各种实施例的示例模型生成系统的框图。
图3是示出根据各种实施例的在图形用户界面内生成三维模型的示例方法的流程图。
图4A是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图4B是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图5是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图6是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图7是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图8是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图9是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图10是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图11是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图12是示出根据各种实施例的三维模型的示例界面图。
图13是示出根据各种实施例的三维模型的示例界面图。
图14是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图15是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图16是示出根据各种实施例的用于在图形用户界面内生成三维模型的示例方法的流程图。
图17是示出根据各种实施例的在图形用户界面内生成三维模型的示例方法的流程图。
图18是示出根据各种实施例的在图形用户界面内生成三维模型的示例方法的流程图。
图19是示出根据各种实施例的在图形用户界面内生成三维模型的示例方法的流程图。
图20是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图21是示出根据各种实施例的模型生成系统的用户界面屏幕的示例界面图。
图22是示出根据一些示例性实施例的可安装在机器上的软件架构的示例的框图。
图23示出根据示例实施例的计算机系统形式的机器的图示,在该计算机系统内可以执行一组指令以使机器执行在此讨论的任何一种或多种方法。
在此提供的标题仅仅是为了方便起见,并不一定影响所使用的术语的范围或含义。
具体实施方式
下面的描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机程序产品。在下面的描述中,为了解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,不一定详细地示出众所周知的指令实例、协议、结构和技术。
在此描述的系统和方法使未经训练的个体能够使用具有附接的一个或多个图像采集装置(例如,相机)的计算装置(例如,智能电话或平板计算机),以在没有其他人的帮助下创建对象的拟合的规范(canonical)三维(3D)网格(mesh)模型。在一些实施例中,对象可以是个人的面部、手部、手臂、腿部或其他身体部分;已识别类型的对象(例如,汽车、杯子、沙发、桌子或其它确定的对象)。系统和方法允许在包含或显示3D图形的其它软件程序和计算系统(诸如视频游戏、虚拟现实环境和商业平台)中导入、可视化和/或操纵3D面部模型。3D面部模型可用于产品、服务、体验、游戏、图形内容、识别和数据分析的个性化。
在一些实施例中,在此所述的系统和方法可以形成终端用户应用程序(EUA)的全部或部分。EUA可以是包括用户界面元素的软件程序,其使未经训练的终端用户能够在附接有一个或多个相机的计算装置上启动EUA,诸如(但不限于)计算机、膝上型计算机、IPAD、智能电话、平板计算机或可用于用户的任何其它移动计算装置。在一些实施例中,EUA可以是独立程序。EUA同样可以是另一软件程序的一部分或嵌入另一软件程序内。
EUA允许未经训练的用户在没有其他人的帮助下创建自己面部的拟合的规范3D网格模型。EUA可以包括以下描述的用于生成深度图、生成3D模型的融合深度图、对象网格拟合、模型评估和数据传输的一个或多个组件。下面详细描述提供3D数据采集、模型创建和完成的模型数据传输的EUA组件。这些组件操纵来自相机的原始数据,并在相机的视场内创建对象(例如,面部)的表面模型,将表面模型拟合到规范的网格,将结果本地存储在装置上,并且可选地将其发送到数据存储平台。
在此公开的系统和方法可以使EUA能够在采集一组图像之前确定条件是否适于建模。例如,EUA可以基于相机曝光和/或国际标准组织(ISO)灵敏度增加或超过预定阈值来检测环境是否太暗。同样可以执行附加检查,诸如确保像素强度落入可接受范围内以避免图像的过度曝光区域。如果系统或EUA确定当前采集条件不合适,则向用户给出指示用户改善条件的消息。
在一些实施例中,为了准备采集,EUA可以生成指示用户相对于相机对准用户面部的消息。可以以各种方式提供消息。在一些情况下,可视化地提供消息。EUA可以使得移动计算装置的屏幕上呈现相机图像以及对准指南。根据指南,EUA可在面部定位后生成消息。面部检测可用于验证用户是否根据指南正确定位了用户的面部。在一些实施例中,可听地提供消息。EUA可以生成并使得呈现音频(例如,通过移动计算装置的音频装置或扬声器播放的语音),该音频包括指示如何将用户的面部相对于相机定位的指令。面部检测可用于确定用户面部的当前位置,其然后可用于发出用于正确定位的指令(例如,“靠得更近”、“稍微向左移动”或“向下移动”)。
在EUA检测到面部对准之后,本公开的系统和方法自动启动采集和建模过程。在一些情况下,可以手动启动采集和建模过程。在任一种情况下,本公开的系统和方法一旦发信号,则启动一个采集组件或一组组件来采集一组图像,并实时跟踪相机相对于用户面部的3D姿态。基于跟踪的姿态和该组图像,本公开的系统和方法生成消息(例如,视觉、音频或触觉反馈),以将相机或对象(例如,用户的面部)的运动引导到使得相机观察对象的所有侧面的位置。例如,在对象是用户的面部的情况下,消息可以指示面部和/或图像采集装置的运动以采集面部、前额、下巴、颈部和面部的其它方面。在一些实施例中,消息可以指示采集对象的图像的图像采集装置的运动。例如,在对象是汽车、桌子或其它对象的情况下,消息可以指示图像采集装置相对于对象的运动。EUA可以提供反馈以确保用户已经采集对象(例如,用户的面部)的所有相关区域,使得可以构建对象的3D模型。EUA同样生成指示所扫描的数据采集的潜在问题的消息或警报。例如,EUA可以生成指示由于移动相机或旋转头部过快导致运动模糊的消息或警报。
在一些实施例中,采集用于3D建模的一组图像的移动计算装置的相机是后置相机。后置相机可以位于移动计算装置的与显示装置相对的一侧。由EUA显示的视觉反馈(例如,警报和消息)可以以镜像形式显示,使得如果用户站在镜子的前面,则用户将能够读取并遵循屏幕上的说明。
参考图1,示出了基于高级客户端-服务器的网络架构100的示例实施例。在基于网络的模型生成系统的示例形式中的网络系统102经由网络104(例如,因特网或广域网(WAN))向一个或多个客户端装置110提供服务器侧功能。图1示出了例如web客户端112(例如,诸如由华盛顿州雷德蒙德的
Figure GDA0003005877630000061
公司开发的诸如INTERNET
Figure GDA0003005877630000062
浏览器的浏览器)、应用程序114和在客户端装置110上执行的编程客户端116。
客户端装置110可以包括但不限于移动电话、台式计算机、膝上型计算机、个人数字助理(PDA)、智能电话、平板计算机、超级笔记本(ultra book)、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏机、机顶盒或用户可以利用来访问网络系统102的任何其它通信装置。在一些实施例中,客户端装置110可以包括显示组件(未示出)以显示信息(例如,以用户界面的形式)。在另外的实施例中,客户端装置110可以包括触摸屏、加速度计、陀螺仪、相机、麦克风、全球定位系统(GPS)装置等中的一个或多个。
客户端装置110可以是用于采集图像并通过网络发送图像和建模数据的用户的装置。一个或多个用户106可以是个人、机器或与客户端装置110交互的其它部件。在实施例中,用户106不是网络架构100的一部分,而是可经由客户端装置110或另一个部件与网络架构100交互。例如,网络104的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、WAN、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网络、无线网络、WiFi网络、WiMax网络、另一类型的网络,或两个或更多个这种网络的组合。客户端装置110中的每一个客户端装置可以包括一个或多个应用程序(也被称为“应用软件”),诸如但不限于web浏览器、消息收发应用程序、电子邮件(email)应用程序等。
一个或多个用户106可以是个人、机器或与客户端装置110交互的其它部件。在示例实施例中,用户106不是网络架构100的一部分,而是可以经由客户端装置110或其它部件与网络架构100交互。例如,用户向客户端装置110提供输入(例如,触摸屏输入或字母数字输入),并且该输入经由网络104传送到网络系统102。在该情况下,网络系统102响应于接收来自用户的输入,经由网络104向客户端装置110传送信息以呈现给用户。以该方式,用户可以使用客户端装置110与网络系统102交互。
应用程序接口(API)服务器120和web服务器122分别耦接到一个或多个应用程序服务器140并分别提供编程和web接口。应用程序服务器140可以托管一个或多个发布系统142和模型生成系统150,其中的每一个可以包括一个或多个组件或应用程序,并且其中的每一个可以被实现为硬件、软件、固件或其任何组合。进而应用程序服务器140被示为耦接到便于访问一个或多个信息存储库或数据库126的一个或多个数据库服务器124。在示例实施例中,数据库126是存储要发布到发布系统142的信息(例如发布或列表)的存储装置。数据库126同样可以根据示例实施例存储对象数据、历史数据和3D模型数据。
在一些情况下,数据库和数据库服务器可以充当用于在客户端装置110内生成的3D模型的数据存储平台。数据库服务器124可以存储关于将模型上传到数据库126的每一个终端用户(例如,用户106)的信息。关于每一个用户采集和保留的信息可以包括但不限于名称、电子邮件地址、密码以及可由数据库服务器124请求的任何附加位置或标识数据。在数据库服务器124或数据库126中存储的每一个模型可以与创建它的终端用户106相关联,或者与由终端用户106创建者授予访问权限的任何第三方相关联。为了商业和系统分析的目的,同样为每个面部模型采集和维护元数据,诸如但不限于下载的数量和发起者。
在一些实施例中,API服务器120包括第三方数据访问接口(TPDAI)。TPDAI是使授权的第三方程序和系统能够代表用户106访问数据库服务器124或数据库126中的模型的API协议。TPDAI使第三方程序和系统能够针对用户106的访问凭证进行身份验证以下载或以其它方式访问模型。TPDAI请求同样可以包含有效的访问令牌,其使数据库服务器124能够确保请求发起自数据库服务器124的授权用户106。有效访问令牌同样允许终端用户应用程序跟踪每个第三方系统的使用量,以及允许其它跟踪和管理操作。响应于来自第三方程序或系统的请求,发送给第三方程序或系统的模型数据可能包含导入、可视化或操纵在软件程序或物理组件以及包含或显示3D图形的计算系统中的模型的所有元素。
另外,在第三方服务器130上执行的第三方应用程序132被示出为具有经由由API服务器120提供的编程接口到网络系统102的编程入口。例如,利用从网络系统102检索的信息,第三方应用程序132支持由第三方托管的网站上的一个或多个特征或功能。
发布系统142可以向访问网络系统102的用户106提供多个发布、存档和数据存储功能和服务。例如,发布系统142可以将对象数据、3D模型数据、2.5维度模型数据以及与生成的模型和模型的应用程序相关的其它数据收集、发布并存储到一个或多个平台或程序。发布系统142可以将对象数据、图像数据和模型数据发布到内部数据库或公开可用数据库,以使得能够基于对象数据、图像数据和运动数据生成3D模型。在一些实施例中,发布系统142访问一个或多个第三方服务器或数据库(例如,第三方服务器130)以在数据库126内检索、修改和提供对象数据。
模型生成系统150可以提供可操作以执行各种模型生成和操纵功能以及用于生成对象、指令、图像和模型编辑效果以及模型修改的图形表示的功能的功能性。例如,模型生成系统150基于由与客户端装置110相关联或耦接到客户端装置110的图像采集装置提供的图像数据来生成对象、身体部分或场景的3D模型。可以基于对象或面部的运动,或相机采集装置的运动来生成3D模型。在一些示例实施例中,模型生成系统150与发布系统142通信,以访问或提供用于第三方程序或系统的3D建模数据。
此外,虽然图1中所示的基于客户端-服务器的网络架构100利用客户端-服务器架构,但是本发明的主题当然不限于这种架构,并且可以同样很好地在例如分布式或对等的架构系统中找到应用程序。各种发布系统142和模型生成系统150同样可以被实现为独立的软件程序,其不一定具有联网能力。
web客户端112可以经由web服务器122支持的web接口访问各种发布和模型生成系统142和150。类似地,编程客户端116经由由API服务器120提供的编程接口访问由发布和模型生成系统142和150提供的各种服务和功能。
另外,在第三方服务器130上执行的第三方应用程序132被示出为具有经由由API服务器114提供的编程接口到网络系统102的编程入口。例如,利用从网络系统102检索的信息,第三方应用程序132可以支持由第三方托管的网站上的一个或多个特征或功能。例如,第三方网站可以例如提供受到网络系统102的相关应用程序支持的一个或多个促销、市场、数据存储库、公司交互或对象跟踪功能。
图2是示出根据一些示例实施例的模型生成系统150的组件的框图。模型生成系统150被示出为包括呈现组件210、检测组件220、通知组件230、位置组件240、建模组件250和模型查看组件260,所有组件被配置为相互通信(例如,经由总线、共享存储器或交换机)。在此描述的任何一个或多个组件可以使用硬件(例如,机器的一个或多个处理器)或硬件和软件的组合来实现。例如,在此描述的任何组件可以配置处理器(例如,在机器的一个或多个处理器中)以执行操作,针对该操作设计该组件。此外,这些组件中的任何两个或多个可以被组合成单个组件,并且在此描述的针对单个组件的功能可以在多个组件之间被细分。
呈现组件210使得呈现由检测组件220、通知组件230、位置组件240和模型查看组件260生成的用户界面和用户界面元素。呈现组件210同样使得呈现由建模组件250生成的3D模型。在一些实施例中,呈现组件210通过经由显示装置在客户端装置110处显现用户界面和用户界面元素来进行呈现。呈现组件210可以与在此描述的一个或多个其它组件协同操作。
检测组件220检测与客户端装置110相关联的图像采集装置的视场内的关注对象。在一些情况下,检测组件220检测在显示装置上呈现的图形用户界面元素内的关注对象以及关注对象的定位。
通知组件230基于由客户端装置110接收的交互、选择、运动和操作来生成用户界面元素、可选择的用户界面元素和指令集。在一些实施例中,通知组件230基于操作和操作的完成状态由在此描述的一个或多个其它组件执行,确定适当的用户界面元素、指令集或其组合。
一旦关注对象被适当地定位在图像采集装置的视场内,则位置组件240检测关注对象的位置中的变化。位置组件240可以与通知组件230协作以引导关注对象关于客户端装置110的运动或客户端装置110关于关注对象的运动。
建模组件250根据从图像采集装置接收的一组图像帧或视频以及与由通知组件230生成的指令对应的关注对象或图像采集装置的运动来生成3D模型。在一些情况下,建模组件250与合并3D模型的图像一起生成3D模型。
模型查看组件260可与呈现组件210协作以生成表示对3D模型的可能修改的用户界面元素。在一些情况下,模型查看组件260从用户界面装置接收修改输入,并使建模组件250基于输入生成修改的模型。
图3是根据一些示例实施例的模型生成系统150在执行在图形用户界面内生成3D模型的方法300的操作的流程图。方法300中的操作可以由模型生成系统150使用在此所述的组件来执行。
在一些情况下,在方法300的启动之前,模型生成系统150可以接收启动指令。模型生成系统150可以在与移动计算装置(例如,客户端装置110)、移动装置、平板计算机、互联网计算机、移动电话或具有采集视频的能力的其它装置相关联的一个或多个图像采集装置上启动终端用户应用程序。模型生成系统150接收启动新的采集会话的启动选择。采集会话的启动可使一个图像采集装置或多个图像采集装置通过访问与图像采集装置相关联的一个或多个模块或组件开始视频采集或使视频采集能够开始。
在操作310中,呈现组件210使得呈现图形用户界面帧,该图形用户界面帧包围移动计算装置的图像采集装置的视场的图形显现。图形用户界面帧可以被生成为在移动计算装置的图像采集装置的视场的内容的显现上呈现的覆盖。例如,如图4A中所示,图形用户界面帧410可以包括一个或多个可选择的用户界面元素420,其被配置为使得在移动计算装置的两个或更多个图像采集装置之间进行选择。图形用户界面帧同样可以包括作为用于EUA操作的消息、警报或指令来操作的通知界面元素430。
如图4A中所示,图形用户界面帧410可配置有基于图像采集装置的视场和预期对象进行大小和形状设定的可视成帧(framing)元素440。在图4中,可视成帧元素440被设定大小和形状以包围面部。可视成帧元素440被表示为位于图像采集装置的视场内的椭圆形。椭圆形被设定大小以使得位于椭圆内并占据椭圆形的预定部分的面部被适当地定位用于3D模型的扫描和生成。虽然可视成帧元素被示出为椭圆形,但是应当理解,可视成帧元素440可以是基于要建模的对象的尺寸(例如,大小或形状)配置的其它合适的形状(例如,正方形、矩形、圆形或多边形)。
一个或多个可选择的用户界面元素420可以位于可视成帧元素440外侧的显示器的一部分上。如图4A中所示,一个或多个可选择的用户界面元素420可以位于可视成帧元素440下方的显示器的底部以及图像采集装置的视场的显现处。一个或多个可选择的用户界面元素420可以是单个用户界面元素,其选择使移动计算装置在第一图像采集装置和第二图像采集装置之间切换。
在一些情况下,在第一图像采集装置和第二图像采集装置之间切换可以使呈现组件210显现可视成帧元素440中的变化。例如,如图4A和4B中所示,可选择的用户界面元素420可以是可选择的,以在用于宽视场中的场景或对象的采集和建模的第一图像采集装置(例如,后置相机)与用于面部的采集和建模的第二图像采集装置(例如,前置相机)之间切换。当可选择的用户界面元素420切换到用于对面部建模的第一图像采集装置时,如图4A中所示,可视成帧元素440(例如,成帧元素440A)可以是椭圆形或用于对在视场内描绘的面部成帧其它合适的形状。如图4B中所示,当可选择的用户界面元素420被切换到用于对场景建模的第二图像采集装置时,可视成帧元素440(例如,成帧元素440B)可以是矩形并且包围与可视成帧元素440A不同的视场部分。
一个或多个可选择的用户界面元素420可以包括一组用户界面元素。该组用户界面元素可以被选择以配置EUA的图像采集的一个或多个方面。例如,用户界面元素可以选择图像采集装置、图像采集特征(例如,闪存)、图像导入(例如,检索先前采集的图像)或取消。取消元素的选择可以停止图像采集模式并且使呈现组件210显现菜单或其它图形用户界面屏幕。
通知界面元素430可以包括用于与图像采集装置、可视成帧元素440或EUA中的一个或多个交互的指令。例如,如图4A所示,通知界面元素430指示用户“将面部放入下面区域”,以使得面部位于可视成帧元素440内。
在操作320中,检测组件220检测图形用户界面帧和图像采集装置的视场内的关注对象。例如,在EUA处于对面部建模的模式的情况下,检测组件220可以检测图形用户界面帧和视场内的面部。在一些实施例中,检测组件220配置有与由可选择的用户界面元素420切换的给定采集模式相关联的预定检测算法。例如,在可选择的用户界面元素420切换到朝向面部的第二位置的情况下,检测组件220可以被配置为运行诸如Viola-Jones检测算法的面部检测算法。在一些情况下,检测组件220在操作320的启动时动态地选择检测算法。为了动态选择检测算法,检测组件可以配置有一组对象检测算法。例如,对象检测算法可以包括边缘检测算法、点检测算法、形状检测算法、对象识别算法、面部检测算法,或识别视场内的关注对象的任何其它合适的算法或方法集。检测组件220可以运行一个或多个对象检测算法,直到针对在视场内的对象识别出对象类型。例如,检测组件220可以以预定的或随机的顺序逐步通过对象检测算法,直到该组对象检测算法中的对象检测算法识别对象的类型(例如,分类)为止。
检测组件220可以使用一种或多种检测方法来检测关注的对象。例如,检测组件220可以使用一个或多个边缘检测操作、点检测操作或面部检测操作。可以基于可选择的用户界面元素420的位置来选择对象检测操作。在可选择的用户界面元素被定位用于采集和建模场景的情况下,检测组件220可以选择用于对象识别的点检测操作或边缘检测操作。在可选择的用户界面元素被定位用于采集和建模面部的情况下,检测组件220可以选择并利用面部检测操作来检测视场内的面部。
在操作330中,通知组件230生成引导在图像采集装置的视场内的对象运动的运动指令。在要建模的对象是场景的情况下,通知组件230可以生成引导图像采集装置或移动计算装置运动的运动指令。在要建模的对象是面部的情况下,通知组件230生成引导面部运动的运动指令。
如图4A、图5和图6所示,在检测组件220检测到面部的情况下,通知组件230可以最初生成包括运动指令的运动元素,该运动指令引导将面部定位在可视成帧元素内的运动。例如,如图5中所示,通知组件230可以最初生成包括“使你的面部靠得更近”的指令的第一运动元素。基于检测组件220检测到在视场内的面部的运动,但是没有正确地定位用于扫描和建模的面部,通知组件230可以从图5交替至图4A,将第一运动元素和运动指令改变为第二运动元素。如图4A中所示,第二运动元素包括“将面部放入下面区域”的指令。
一旦检测组件220检测到可视成帧元素440内的面部,则通知组件230可以生成第三运动元素。第三运动元素可以是被配置为焦点元素的用户元素。焦点元素被配置和定位以引导眼睛的凝视。焦点元素可以位于移动计算装置的图像采集装置附近。例如,如图所示,焦点元素位于显示装置上的图形用户界面中并位于移动计算装置的图像采集装置下方。在一些情况下,第三运动元素包括如图6中所示的“保持静止”的指令。除了第三运动元素之外,通知组件230可以生成姿态元素。在图6中,姿态元素与第三运动元素分离,并且可以引导与第三运动元素的指令不同的运动或姿态。如图所示,姿态元素包括“观察点”的指令,并且包含在视觉上引导指示的姿态的方向元素。姿态元素指令可以指示用户将凝视附加在焦点元素上以使眼睛对准靠近图像采集装置的位置。当凝视指向焦点元素处并且焦点元素与面部一起移动时,模型生成系统150可以采集图像并生成以眼睛的瞳孔和虹膜为中心的3D模型。
在操作340中,位置组件240检测在图像采集装置的视场内的对象(例如,面部)的位置中的第一变化。当检测到对象的位置中的第一变化时,位置组件240使图像采集装置采集用于位置中的第一变化的图像数据。在一些情况下,在除了图像数据之外还检测到传感器数据并且传感器数据指示位置中的第一变化的情况下,位置组件240可以采集传感器数据。
在一些实施例中,输入数据可以包括从图像采集装置获得的原始图像帧以及来自与移动计算装置相关联的传感器的传感器数据,诸如加速度计数据和陀螺仪数据。为了提供用于随后的3D重建(例如,建模)阶段的适当的输入数据,位置组件240和检测组件220指定要由相机观察的一组目标3D姿态。在采集期间,检测组件220和位置组件240监视相机的当前3D姿态并跟踪图像采集装置相对于对象的3D姿态。
在一些实施例中,面部位置中的第一变化是预期的位置变化。预期的位置变化可以包括第一初始位置和第一最终位置。位置中的第一变化同样可以包括第一组中间位置。第一初始位置、第一组中间位置和第一最终位置中的每一个可以与面部的第一侧相关联,其中模型生成系统150被配置为对由图像采集装置采集的面部建模。
在检测到可视成帧元素440内的面部时,检测组件220可以启动图像采集和建模操作。如图7中所示,图像采集操作的启动可使通知组件230生成位置元素710,该位置元素710包括用于面部(例如,视场内的对象)的位置中变化的指令720。在图7中,位置元素710可以为指示位置中的第一变化的第一位置元素730。第一位置元素730可以包括第一起始位置740和第一结束位置750。例如,位置元素可以包括“慢慢地将您的头部向右转”的指令720。
如图8中所示,在操作340中检测到的位置中的第一变化期间,位置组件240在视场内连续地监视(例如,跟踪)对象(例如面部)的运动。位置组件240可以将表示运动的一部分数据传递到通知组件230。通知组件230可以基于运动数据实时地连续地修改图形用户界面。在图8中,通知组件230连续地调节或修改位置元素710。通知组件230可以通过相对于视场内的对象的当前位置和针对对象检测的行进距离来移动第一位置元素730,而修改位置元素710。第一位置元素730可移动第一起始位置740与第一结束位置750之间的距离。第一位置元素730沿该距离的位置可以与起始位置和预期结束位置之间的对象中检测到的运动量成比例。
在操作350中,位置组件240检测在图像采集装置的视场内的对象(例如,面部)的位置中的第二变化。对象的位置中的第二变化可以处于与操作340中描述的对象的位置中的第一变化的轨迹相似或相同的轨迹。在检测到位置中的第二变化时,位置组件240使图像采集装置采集指示位置中的第二变化的图像数据。在一些情况下,如上所述,除了图像数据之外,位置组件240采集指示位置中的第二变化的传感器数据。
在一些情况下,面部位置中的第二变化是预期的位置变化。预期的位置变化可以包括第二初始位置和第二最终位置。在一些实施例中,位置中的第二变化包括第二组中间位置。第二初始位置、第二组中间位置和第二最终位置中的每一个可以与面部的第二侧相关联,其中模型生成系统150被配置为对由图像采集装置采集的面部建模。
如图9-11中所示,在位置中的第一变化完成时,通知组件230生成包括用于对象(例如面部)的位置中的第二变化的指令920的位置元素910。在图9中,位置元素910是包括第二起始位置940和第二结束位置950的第二位置元素930。如图所示,位置元素910可包括“慢慢地将头部向左转”的指令920,指示位置中的第二变化的期望方向。在一些情况下,第二起始位置940可以定位在第一结束位置750处或接近第一结束位置750,使得位置中的第一变化和位置中的第二变化被链接以形成流体运动。如图9-11中所示,通知组件230可监视由位置组件240检测到的位置中的第二变化,并且不断修改位置元素910以成比例地表示位置中的第二变化的初始位置与在位置中的第二变化的预期结束之间的对象(例如,面部)的位置。
虽然描述为响应于位置中的第一变化和位置中的第二变化来采集图像和传感器数据,但是应当理解,位置组件240可以采集图像流(例如,一组图像帧)以及表示位置中的第一变化、位置中的第二变化以及位置中的第一变化与位置中的第二变化之间的运动的传感器数据。在一些情况下,如下面将更详细地解释的,位置中的第一变化、位置中的第二变化和位置中的一个或多个中间变化(例如,沿着位置中的第一变化和位置中的第二变化)可以被识别为用于生成对象的3D模型的图像流内的关键帧。
在一些实施例中,位置组件240在单次扫掠(sweep)运动中检测位置中的第一变化和位置中的第二变化。例如,在模型生成系统150正在采集和建模面部的情况下,面部可以被初始地定位成使得面部的轮廓处于视场内。在一些情况下,位置组件240检测作为横跨两个或多个平面的旋转的位置中的单个变化。例如,位置中的单个变化可以是暴露右侧轮廓、左侧轮廓、前额的最上部以及下巴或颌部的下侧的面部的旋转。位置组件240根据位置中变化可执行上述操作340。随着面部通过中心线,位置组件240可执行操作350。在一些实施例中,位置组件240检测位置中的两个以上的变化。例如,位置组件240可以检测从中心位置向右旋转的面部的位置中的第一变化,从中心位置或从右侧轮廓位置向左旋转的面部的位置中的第二变化,从中心位置向下旋转的面部的位置中的第三变化,以及从中心位置或向下位置向上旋转的位置中的第四变化。
虽然关于采集以面部形式的关注对象的数据来描述,但是应当理解,本方法和系统能够对面部或人体部分以外的场景和对象进行采集和维度建模。
在操作360中,建模组件250生成对象(例如,面部)的3D模型。可以基于从位置中的第一变化和位置中的第二变化采集的图像数据来生成3D模型。如下面将更详细解释的,可以基于各个关键帧和用于跟踪在对象上或周围检测到的点的轨迹来生成3D模型。
在位置中的第二变化完成之后,通知组件230生成处理元素。处理元素可以与位置中的第二变化的结束位置的模糊(obscured)表示一起呈现。处理元素可以显现为生成对象的3D模型的建模组件250的表示。呈现组件210可以引起在与3D模型的生成对应的时间段处理元素的呈现(例如,通过显现围绕圆形、沙漏或横跨显示装置的一部分扫掠的元素行进的光的动画绘制点)。
一旦建模组件250生成对象的3D模型,如图12和图13中所示,则呈现组件210可以将3D模型显现在隔离界面1210中。在一些实施例中,隔离界面1210包括以交互式表示的3D模型1220,而没有在图像数据内采集的背景。交互式表示可以链接到移动计算装置的一个或多个传感器,以实现与3D模型1220的交互。如图12和图13中所示,移动计算装置的运动在运动传感器(例如,陀螺仪或加速度计)内被检测并且引起3D模型1220的代表性操纵。例如,移动移动计算装置的左侧可以由运动传感器和呈现组件210转换成3D模型1220的旋转,该旋转相对于观看者暴露3D模型1220的左侧。移动移动计算装置的右侧、上侧或下侧可以由运动传感器和呈现组件210转换成3D模型1220的旋转,该旋转相对于观看者分别暴露3D模型1220的右侧、顶侧或底侧。
在一些实施例中,响应于生成3D模型,图12和图13中的3D模型的呈现由模型查看组件260启动。模型查看组件260可以使得能够查看由面部采集会话(session)产生的3D模型。在一些情况下,模型查看组件260生成用于操纵、修改和与3D模型交互的一个或多个用户界面元素。建模组件250可以在扫描和采集会话中产生多个模型。每一个采集和创建的模型可以被存储在本地驻留在装置上的数字存储装置(例如,与移动计算装置相关联的非暂态处理器可读存储介质)中。用户可以选择丢弃给定的3D模型,或将其从本地数字存储器发送到位于扫描采集装置外部的数据存储平台,以供稍后检索和/或部署到其它应用程序、移动装置或计算系统。
如图14和图15中所示,结合呈现组件210,模型查看组件260可以使得呈现查看界面1410。查看界面1410可以包括一个或多个查看元素1420(例如,第一、第二和第三查看元素1430、1440和1450)。一个或多个查看元素1420使得能够在一组预定义的修改选项内修改3D模型。如图14和图15中所示,第一查看元素1430使得能够选择一个或多个滤色器、颜色效果、色温过滤器以及配置成修改3D模型的颜色、锐度、色彩、饱和度或色调中的一个或多个的其它过滤器、效果和颜色值调节。在一些情况下,第一查看元素1430的选择使模型查看组件260和呈现组件210生成并导致效果元素的呈现。效果元素可以包括以与指定的界面元素对应的效果显现的3D模型的缩略图或预览。
如图15中所示,第二查看元素1440的选择使模型查看组件260和呈现组件210生成深度调节元素1510。深度调节元素1510的运动使模型查看组件260和建模组件250修改3D模型的深度。例如,如图15中所示,相对于用户,深度调节元素1510向左的运动使建模组件250和呈现组件210将3D模型显现在相对更浅的深度中。相对于用户,深度调节元素1510向右的运动使建模组件250和呈现组件210将3D模型显现在相对更深的深度中。
第三查看元素1450的选择通过使得能够在包含3D模型的所显现的图像内修改焦点来使得能够调节3D模型的场的视深。在一些实施例中,在选择第三查看元素1450时,通知组件230和呈现组件210生成并使得呈现与所显现的图像和3D模型交互的指令。例如,指令可以指示通过在触摸屏界面的期望的焦点处点击来执行对焦点的修改。在接收到所显现的图像和3D模型的一部分的选择之后,模型查看组件260和建模组件250修改所选择的点的焦点水平和包围在预定接近度内选择的点的所显现的图像和3D模型的一部分。
图16是根据一些示例实施例的模型生成系统150在执行在图形用户界面内生成3D模型的方法1600的操作中的操作流程图。图16中所示的操作可以由模型生成系统150使用在此所述的组件来执行。如图16中所示,在一些实施例中,方法1600可以作为上述方法300的一部分或子操作执行。
在操作1610中,检测组件220识别在图像采集装置的视场内的面部上的一组面部跟踪点。在一些实施例中,该组面部跟踪点的识别可以是在图像采集之前的粗糙面部检测。执行粗糙的面部检测以识别对象(例如面部)在视场范围内正确对准。该组面部跟踪点可以是来自适于随时间推移进行跟踪的图像采集装置的一个或多个图像中的像素。每当在采集期间更新参考关键帧时,可执行操作1610或类似的方法,以针对每一个参考关键帧生成这些点。
在一些情况下,该组面部跟踪点是面部的特征点,诸如限定面部、眉毛、嘴巴、鼻子、眼睛和其它合适特征点的形状的点。该组面部跟踪点可以最初是在参考图像中在用户的面部上检测到的二维关注点。可以使用关注点检测算法检测关注点。在一些情况下,使用标准关注点检测算法检测关注点,诸如加速段测试(FAST)的特征、基于加速段测试(AGAST)的自适应和通用角检测、Harris、Shi-Tomasi等。在一些实施例中,为了建立关注点的更均匀分布,视场的区域或预期包含面部的图像(例如,视场中的部分或可视成帧元素内的图像)可被分为格子(grid)。可以根据诸如Harris、Shi-Tomasi等的关注点评分函数来确定格子中的每一个格子单元的关注点。确定针对格子单元的关注点的方法可以对于图像数据以不同的尺度重复,以便识别多个尺度的关注点。
在一些实施例中,响应于在操作340中检测位置中的第一变化和在操作350中检测位置中的第二变化中的一个或多个,通知组件230生成图形用户界面帧内的面部上的该组面部跟踪点的图形表示。如图7所示,在检测位置中的第一变化和位置中的第二变化的持续时间,呈现组件210使得呈现在面部上的该组面部跟踪点的图形表示。
在操作1620中,位置组件240识别第一关键帧,其中该组面部跟踪点具有一组第一位置。当面部足够靠近目标姿态时,检测组件220和位置组件240将与相机帧相关联的信息记录为关键帧以供稍后处理。关键帧包括相机图像以及诸如来自与移动扫描数据采集装置相关联的加速度计和/或陀螺仪,相机的预估3D姿态以及在用户的面部上的关注点的一组2D测量的任何传感器数据。
在操作1630中,位置组件240确定从该组第一位置的一个或多个面部跟踪点的位置中的变化。在识别出关注点之后,位置组件240可以在从图像采集装置接收的后续图像帧中随时间推移跟踪每一个关注点的二维位置。通过位置组件240的该跟踪可以响应于检测到一个或多个面部跟踪点的位置中的变化或响应于位置中的第一变化或位置中的第二变化(如分别在操作340和350中描述的)而被执行。在一些实施例中,位置组件240可以使用诸如Kanade-Lucas-Tomasi跟踪的合适的跟踪算法跟踪每一个关注点的二维位置。
在一些实施例中,操作1630由一个或多个子操作来执行。在操作1632中,响应于一个或多个面部跟踪点的位置中变化的启动,位置组件240识别一个或多个面部跟踪点中的每一个面部跟踪点的轨迹。轨迹可以被识别为远离给定面部跟踪点的初始位置延伸的二维矢量。在面部跟踪点的初始位置是关键帧的情况下,矢量可以在初始位置和指示随时间推移的行进方向的后续位置之间延伸。
随着对象移动,轨迹被跟踪并且长度增加。在对象是面部的实施例中,随着面部关于图像采集装置旋转,随着轨迹长度增加,位置组件240跟踪一个或多个面部跟踪点的轨迹。基于跟踪横跨多个图像帧的一个或多个面部跟踪点,轨迹可以从由图像采集装置采集的图像数据随着关于初始图像帧的每一个连续图像帧而增长。
在操作1634中,位置组件240确定一个或多个面部跟踪点的轨迹的平均长度。可以针对一个或多个面部跟踪点中的每一个面部跟踪点基于初始位置和后续位置之间延伸的矢量的距离来确定轨迹的平均长度。然后可横跨一个或多个面部跟踪点来平均与一个或多个面部跟踪点中的每一个面部跟踪点相关联的距离。平均一个或多个面部跟踪点的距离可以通过计算中值轨迹长度来执行以提供对错误轨道(track)的鲁棒性。
在操作1636中,位置组件240确定平均长度超过轨迹阈值。如上所述,一旦轨迹的平均长度在位置元素的指令所指示的方向中超过轨迹阈值,则如下所述,位置组件240可以识别图像采集装置的目标3D姿态并记录关键帧。
在一些情况下,轨迹阈值可以是由初始位置和预期最终位置之间的面部跟踪点行进的平均距离的预定段。可以在启动图像采集和建模操作之前确定轨迹阈值。在一些情况下,可以在模型生成系统150的配置过程期间确定轨迹阈值。在一些实施例中,可以基于正被建模的对象来启发式地确定轨迹阈值。在一些情况下,轨迹阈值被确定为图像宽度的一部分。例如,轨迹阈值可以是等于图像宽度或图像采集装置的视场的0.5%至10%之间的距离。
在操作1640中,基于位置中的变化,位置组件240识别第二关键帧,其中一个或多个面部跟踪点具有第二位置。可基于一个或多个面部跟踪点处于预期位置(例如,第二位置)的预定接近度内来确定第二关键帧。如在操作1636中,在位置组件240确定平均长度超过轨迹阈值的实施例中,可以基于平均长度超过轨迹阈值的确定来识别第二关键帧。
在一些实施例中,具有从初始关键帧到第二关键帧(例如,新的关键帧)持续(例如,延伸)的轨迹的一个或多个面部跟踪点被用于记录初始关键帧和第二关键帧二者中的测量。持续测量可以指定关键帧中特定关注点的观察到的二维位置。使用针对前两个关键帧的图像采集装置的假设3D姿态,通过对与每一个关注点相关联的两个测量进行三角测量来计算关注点的3D位置的初始估计。
使用关键帧姿态和3D关注点位置的初始估计,位置组件240可以执行束(bundle)调节,以便细化第二关键帧的姿态以及关注点的3D位置。在束调节期间,可以以理论上最小化关键帧中的关注点的二次投影误差的方式来执行鲁棒的非线性最小二乘优化以共同优化3D关键帧姿态和3D关注点位置。二次投影误差可以被定义为关键帧中的关注点的二维投影位置与观察到的实际二维测量之间的距离。
图17是根据一些示例实施例的模型生成系统150在执行在图形用户界面内生成和操纵3D模型的方法1700的操作中的操作流程图。图17中所示的操作可以使用在此所述的组件由模型生成系统150来执行。在一些实施例中,如图17中所示,方法1700可以作为上述方法300的一部分或作为方法300的子操作来执行。
在操作1710中,位置组件240基于沿着轨迹的一个或多个面部跟踪点的位置中的一个或多个变化来识别一个或多个后续关键帧。一个或多个后续关键帧可与关于图16描述的第一关键帧和第二关键帧类似或相同地确定。在一些实施例中,由位置组件240识别的后续关键帧的数量可以基于对象来预定。例如,在对象是面部的情况下,面部可具有与该组面部跟踪点的初始位置和最终位置之间的距离对应的预期运动范围(例如,颈部的转动)。可以将初始位置与最终位置之间的距离平分以确定针对面部的给定侧面的后续关键帧的数量。
在一些情况下,可以将最新的关键帧(例如,最近生成的第二关键帧或后续关键帧)用作当前的参考关键帧。位置组件240针对参考关键帧中每一个现有测量初始化轨道。同样可以使用上述相同的关注点检测方法来初始化新的轨道。可以在距现有轨道预定距离的关注点中初始化新的轨道。
在操作1720中,基于第一关键帧、第二关键帧和一个或多个后续关键帧,位置组件240生成针对移动计算装置的一组相对3D位置估计。该组相对位置估计可指示移动计算装置关于被建模的对象(例如,面部)的相对位置。位置组件240可针对每个关键帧(例如,第一关键帧、第二关键帧和一个或多个后续关键帧)生成该组相对位置估计中的相对位置估计。该组相对位置估计可以使用来自前一帧的3D相机姿态估计来识别具有在当前图像帧中未被跟踪的已知3D位置的关注点。该发现操作可以使得重新采集两帧之间丢失的关注点。
在一些情况下,该组相对位置估计可被用于识别关键帧。在这些情况下,可以将针对当前帧的相对位置估计与下一个目标相对位置估计进行比较。当相对位置估计进入到下一个目标相对位置估计的预定接近度内时,位置组件240识别新的关键帧,并使用当前图像帧以及邻近目标相对位置估计的相对位置估计来记录新的关键帧。可以在新关键帧内对于每一个跟踪的关注点记录测量。对于以前没有3D位置的关注点(例如,在最近的关键帧中的新识别的关注点),轨道(例如,每一个新的关注点的轨迹)可以被过滤以确保满足在参考关键帧和新的关键帧之间的极线约束。满足极线约束的轨道可用于在参考关键帧(例如,先前识别的关键帧)和新的关键帧二者中创建测量。可以使用参考关键帧和新的关键帧中的测量之间的三角测量来初始化相关联关注点的3D位置。
在一些实施例中,在识别新的关键帧之后,可以对在新的关键帧之前并且包括新的关键帧的关键帧执行一个或多个调节过程。一个或多个调节过程可以是如上所述的束调节。束调节可以改善或细化关键帧相对3D位置和关注点的3D位置的估计。每当记录新的关键帧时,可以执行束调节,以共同地细化在新的关键帧之前并且包括新的关键帧的所有关键帧姿态和3D关注点位置的估计。
在操作1730中,基于第一关键帧、第二关键帧、一个或多个后续关键帧以及一组相对位置估计,建模组件250生成一组深度图。在一些实施例中,该组相对深度图包括针对每一个关键帧的深度图。给定该组关键帧和3D关注点(例如,面部跟踪点和轨迹),建模组件250使用多视点立体声技术对于一个或多个关键帧生成2.5维度深度图。
在一些实施例中,通过平面扫掠立体声来执行深度图估计。在这些实施例中,针对深度图中的每一个像素在预定数量的离散深度处计算参考关键帧的图像帧与一个或多个其它关键帧的一个或多个其它图像帧之间的照片一致性。可以通过选择产生视图之间最优照片一致性的每一个深度图像素的深度来产生最终深度图。
在一些情况下,在生成该组深度图之前,建模组件250预处理关键帧的图像帧。预处理可以生成编码纹理和亮度二者的图像帧的表示。对于给定像素,建模组件250对像素周围的5×5贴片(patch)进行采样。建模组件250通过将每一个非中心像素的亮度与贴片的平均亮度进行比较来计算24位二进制签名。将亮度和平均亮度的比较与中心像素的8位亮度组合,以给出可存储在红色、绿色、蓝色、阿尔法(alpha)(RGBA)纹理中并用在图形处理单元(GPU)上查找的单个纹理来采样的32位值。建模组件250可以通过结合二进制签名上的汉明距离和亮度上的欧几里德距离来计算两个这种值之间的照片一致性。
可以从相邻像素汇集(pool)照片一致性值,以便生成鲁棒的照片一致性值。例如,建模组件250可以在给定深度处,从在3×3贴片内的相邻像素中汇集照片一致性值。可以在平面扫掠期间确定鲁棒的照片一致性值。在一些实施例中,建模组件250生成双通(pass)平面扫掠立体声。在这些情况下,如上所述,建模组件250使用第一通平面扫掠来生成深度图。然后,第一通可以在围绕先前生成的深度图的较小深度范围上被建模组件250用作针对后续平面扫掠的起始点。后续的平面扫掠可以修改针对深度图中每一个像素的深度范围。
在一些实施例中,给定关键帧中的3D关注点的测量可用于指导深度图生成。建模组件250可以在深度图生成期间为所选择的区域提供初始化或约束。深度图同样可以被后处理以减少噪声。通过建模组件250的后处理可以包括关键帧之间的一致性检查。建模组件250的后处理操作可以进一步包括中值滤波、双边滤波、基于去噪的全变分(totalvariation),以及形成深度图值的关键帧之间标记的条件随机场。
在一些情况下,操作1730包括一组子操作。在生成该组深度图中,可以对由建模组件250生成的每一个深度图执行操作1730的子操作。在操作1732中,建模组件250生成具有第一分辨率的第一深度图。
在操作1734中,建模组件250生成具有第二分辨率的第二深度图。在一些情况下,第二分辨率是比第一深度图的第一分辨率更高的分辨率。在一些实施例中,建模组件250可以创建多于两个的深度图。建模组件250可以创建具有增加的更高分辨率的深度图预定次数,直到达到预定分辨率,或任何合适分辨率的迭代次数。
图18是根据一些示例实施例的模型生成系统150在执行图形用户界面内生成和操纵3D模型的方法1800的操作中的操作流程图。图18中所示的操作可以由模型生成系统150使用在此所述的组件来执行。在一些实施例中,如图18中所示,方法1800可以作为上述方法1700的一部分或作为方法1700的子操作来执行。
在操作1810中,建模组件250融合该组深度图以生成面部的3D模型。在一些情况下,建模组件250将2.5维度深度图结合到对象(例如,面部)的单个3D表面模型中。
在操作1820中,建模组件250定义用于面部的3D模型的体积3D格子。在组合深度图中,建模组件250在体积3D格子上定义截断有符号距离函数(TSDF)。虽然在单独的操作中描述,但是在一些情况下,在单个操作中执行操作1810和1820,使得具有TSDF的体积3D格子是用于将深度图融合到单个3D模型中的单一方法。
在操作1830中,建模组件250表示体积3D格子内的3D模型的3D表面。格子中的每一个元素(例如,体素)被识别为在3D表面的内侧或外侧,并且被存储为在-1和1之间的标量值。该值的符号定义体素是在3D表面内侧还是在3D表面外侧。可以通过正值和负值之间的边界隐含地定义3D表面。
在一些实施例中,对于每一个关键帧生成的深度图可以提供3D模型的表面的估计。建模组件250可以通过体积3D格子将深度图转换为视图特定TSDF。可以聚集每一个深度图的TSDF以在体积3D格子中的每一个体素处聚集TSDF值的直方图。TSDF值的直方图起到根据生成的深度图的估计的总结的作用。建模组件250可以对TSDF值的直方图执行理论优化,以估计每一个体素处的单个TSDF值,其考虑直方图数据和正则化策略二者以促进平滑度。在一些实施例中,建模组件250使用L1数据项和全变分规则化,导致对噪声深度图数据鲁棒的表面。此外,表面是光滑的并且使小的隔离表面区域最小化。该优化方法同样适用于GPU实现,使优化动作在实践中有效。在一些情况下,由优化的TSDF定义的表面可以使用隐式表面多边形算法(诸如步进立方体(marching cube)或Bloomenthal的方法)转换为多边形表面格子。
在一些情况下,深度图可以是密集的深度图,并且将模型的3D表面表示为网格。可以使用泊松表面重建操作来构造3D表面。
图19是根据一些示例实施例的模型生成系统150在执行在图形用户界面内生成和操纵3D模型的方法1900的操作中的操作流程图。图19中所示的操作可以使用在此所述的组件由模型生成系统150来执行。在一些实施例中,如图19中所示,方法1900可以作为上述方法1800的一部分或作为方法1800的子操作来执行。
在操作1910中,建模组件250识别面部网格。面部网格可以包括一组多边形和连接该多边形的一组顶点。该组顶点可以表示一组面部跟踪点。在一些实施例中,面部网格包括固定数量的顶点和多边形面。该网格中的某些顶点和面可以被标记为对应于特定的面部特征,诸如“鼻尖”、“嘴的左边缘”、“左眼内”和其它合适的特征。这些特征可以在一些或全部关键帧图像中手动或自动标记。
在操作1920中,建模组件250使面部网格的一个或多个部分变形以拟合面部的3D模型。建模组件250可以通过移动连接该组多边形中的两个或更多个多边形的一个或多个顶点来使面部网格变形。一个或多个顶点可以被移动以对应于上述操作1820中定义的体积3D格子内的该组面部跟踪点的一个或多个面部跟踪点的位置。
在一些实施例中,面部网格的部分的变形可以由建模组件250作为优化来执行。该变形调节经受一个或多个约束的面部网格中顶点的位置。例如,面部网格的表面可以变形,以使得表面处于从深度图生成的3D模型的表面的预定接近度内。在一些情况下,面部网格顶点(例如,面部标记(landmark)表示)被变形以投影到靠近3D模型上的面部跟踪点(例如,关注点)的关键帧的图像帧。同样可以修改面部网格,使得面部的整体形状保持在3D模型和面部网格内。在一些实施例中,面部网格包括UV图。UV图允许通过将关键帧的图像帧投影到拟合的面部网格上来构建面部的纹理图。
在一些实施例中,在生成3D模型之后,模型生成系统150可以将3D模型发送到数据存储平台(例如,网络系统102)。用于采集扫描图像数据的装置与终端用户应用程序(诸如移动计算装置(例如,客户端装置110))相关联。终端用户应用程序引导模型生成系统150经由网络104将3D模型数据传送到网络系统102。模型生成系统150同样可以从网络系统102检索3D面部模型数据,以供客户端装置110上的终端用户应用程序使用。在一些情况下,同样可以发送用于生成3D模型的所有数据,使模型重建过程能够在将来的时间执行,或者使用更强大的计算装置、计算机架构(诸如,在非限制性示例中,在云服务器或云网络内)或计算方法。3D模型数据可以对于传输进行优化,以便通过已知的编码、优化或将不在此进一步讨论的其它数据传送技术来最小化传送时间。数据可以链接到与终端用户106相关联的一个或多个帐户标识符,以便终端用户106或代表终端用户106的被授权的第三方在未来的时间容易地检索。
在一些实施例中,模型生成系统150同样可以检索终端用户的3D模型数据,以便填入终端用户应用程序。如果终端用户106在不同于用于采集发送到网络系统102的一个或多个面部模型的客户端装置110的第二装置上安装终端用户应用程序,则模型生成系统150可以检索识别的模型数据。在检索模型数据时,模型生成系统150可使得呈现检索的模型,或者可访问面部数据以操纵在第二装置上检索到的面部模型。
除了3D模型之外,模型生成系统150可以生成2.5维度模型。在一些情况下,2.5D模型可与视场内的指定对象的3D模型结合生成。如图20和图21所示,检测组件220可检测图像采集装置的视场中的场景内的对象或关注点。通知组件230可以生成用户界面元素和指令,指示客户端装置110的运动以使得能够采集场景的多个角度。如图所示,在一些情况下,指令指示单个方向中的运动。在一些实施例中,指令指示在多个方向中的运动。
位置组件240可以关于在场景内识别的一个或多个关注点来检测客户端装置110的位置中的变化。建模组件250可以生成场景的3D或2.5D模型。在建模组件250生成2.5D模型的情况下,2.5D模型可以是对于视场生成的单个深度图。如在上述方法300和其它方法中所描述的,关于图20和图21描述的操作可类似于或相同于关于关注对象或面部描述的操作。
在与用于对象的3D模型一起生成用于场景的模型的实施例中,用于场景的模型可以与用于对象的3D模型同时或分开地生成。例如,由通知组件230生成的指令可指示客户端装置110在一个或多个方向中运动,而对象和场景保持处于静态位置。在一些实施例中,如上所述,模型生成系统150可以使用图像采集装置的运动代替对象的运动来识别和采集视场内的对象。模型生成系统150然后可采集场景。然后,模型生成系统150可生成用于对象的3D模型和用于作为对象背景的场景的2.5D模型。
在一些情况下,模型生成系统150使用关注对象的运动如在方法300中所描述的识别并采集视场内的对象。在采集关注对象之后,通知组件230可以生成用于客户端装置110的运动并采集场景的指令。然后,模型生成系统150可以分别生成用于关注对象的3D模型和用于关注对象后面的背景中的场景的2.5D模型。
根据各种示例实施例,在此所述的一种或多种方法可以基于移动计算装置或图像采集装置的引导运动来帮助3D模型的生成和操纵。用于生成和修改3D模型的方法自动确定与对象的合适运动相关的建模参数以采集和生成3D模型。该方法进一步自动生成指令集和用户界面元素,其被配置为引导和校正用户交互以确保正确生成3D模型。因此,在此所述的一种或多种方法可以具有允许用户生成清晰和准确的对象、面部和场景的3D模型的效果,而不将底层建模数据发送到第三方建模程序或组织。此外,在此所述的方法可以具有减少生成3D模型所需的时间、费用和计算资源的效果。在此所述的方法同样可以实现完成的3D模型的显现和传输,以便直接集成到第三方系统或产品中。
组件和逻辑
某些实施例在此被描述为包括逻辑或多个组件或机制。组件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作并且可以以某种物理方式配置或布置的有形单元。在各种示例性实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)配置为操作以执行如在此所述的某些操作的硬件组件。
在一些实施例中,硬件组件可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括被永久配置为执行某些操作的专用电路或逻辑。例如,硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件同样可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。一旦由这种软件配置,则硬件组件就成为特定的机器(或机器的特定组件),这些机器专门为执行配置的功能而定制,且不再是通用处理器。应当理解,在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中物理上地实现硬件组件的决定可以由成本和时间考虑来驱动。
因此,短语“硬件组件”应被理解为包括有形实体,即被物理构造,永久配置(例如,被硬连线)或临时配置(例如,被编程)的以某些方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的组件”是指硬件组件。考虑到其中硬件组件被临时配置(例如,被编程)的实施例,硬件组件中的每一个硬件组件不需要在任何一个时间上配置或实例化。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件组件)。相应地,软件配置特定的处理器,例如,以在一个时间点构成特定的硬件组件,并在不同的时间点构成不同的硬件组件。
硬件组件可向其它硬件组件提供信息并从其中接收信息。因此,所描述的硬件组件可以被认为是通信耦接的。在多个硬件组件同时存在的情况下,可以通过在两个或更多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线)实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过多个硬件组件访问的存储器结构中的信息的存储和检索来实现这种硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在其通信耦接到的存储器装置中。然后,另一个硬件组件可以在稍后的时间访问存储器装置以检索和处理存储的输出。硬件组件同样可以启动与输入或输出装置的通信,并且可以对资源(例如,信息的集合)进行操作。
至少部分地由临时配置(例如通过软件)或永久配置以执行相关操作的一个或多个处理器来执行在此所述的示例方法的各种操作。无论是临时还是永久配置,这种处理器可以构成操作以执行在此所述的一个或多个操作或功能的处理器实现的组件。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。
类似地,在此所述的方法可以是至少部分地处理器实现的,其中一个特定处理器或多个特定处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的组件执行。此外,一个或多个处理器同样可以操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)中的相关操作的性能。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,互联网)以及经由一个或多个适当的接口(例如,API)访问。
某些操作的性能可以分布在处理器之间,不仅驻留在单个机器内,而且部署在多台机器上。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器场内)。在其它示例实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。
机器和软件架构
结合图2-21描述的组件、方法、应用程序等在一些实施例中在机器和相关联的软件架构的上下文中实现。在各种实施例中,上述组件、方法、应用程序等在分布在网络上并经由网络传送的多个机器以及一个或多个相关联的软件架构的上下文中实现。下面的部分描述了适用于所公开的实施例的代表性软件架构和机器(例如,硬件)架构。
软件架构与硬件架构一起使用以创建针对特定目的而定制的装置和机器。例如,与特定软件架构相结合的特定硬件结构将创建移动装置,诸如移动电话、平板计算机装置等。稍微不同的硬件和软件架构可能产生用于“物联网”的智能装置,而另一组合产生用于云计算架构内的服务器计算机。并不是所有这种软件和硬件架构的组合都在这里呈现,因为本领域技术人员可以容易地理解如何在不同于在此所公开的内容的上下文中实现本实施例。
软件架构
图22是示出可以结合在此所述的各种硬件架构使用的代表性软件架构2202的框图2200。图22仅仅是软件架构的非限制性示例,并且应当理解,可以实现许多其它架构以利于在此所述的功能。软件架构2202可以在诸如图23的机器2300的硬件上执行,该机器2300除其它方面还包括处理器2310、存储器2330和输入/输出(I/O)组件2350。代表性硬件层2204被示出,并且可以表示例如由图22的框图2200表示的机器。代表性硬件层2204包括具有相关联的可执行指令2208的一个或多个处理单元2206。可执行指令2208表示软件架构2202的可执行指令,包括图2-21的方法、组件等的实施方式。硬件层2204同样包括同样具有可执行指令2208的存储器和/或存储组件2210。硬件层2204同样可以包括如2212所示的其它硬件,其表示硬件层2204的任何其它硬件,诸如示为机器2300的一部分的其它硬件。
在图22的示例架构中,软件架构2202可以被概念化为一堆层,其中每一个层提供特定的功能。例如,软件架构2202可以包括诸如操作系统2214、库2216、框架/中间件2218、应用程序2220和呈现层2244的层。在操作上,应用程序2220和/或层内的其它组件可以通过软件堆栈调用API调用2224,并且响应于API调用2224接收如消息2226所示的响应、返回值等。所示的层本质上是代表性的,并且并不是所有的软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件层2218,而另一些可以提供这种层。其它软件架构可以包括附加层或不同层。
操作系统2214可以管理硬件资源并提供公共服务。操作系统2214可以包括例如内核2228、服务2230和驱动程序2232。内核2228可以充当硬件和其它软件层之间的抽象层。例如,内核2228可以负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全设置等。服务2230可以为其它软件层提供其它公共服务。驱动器2232可负责控制底层硬件或与底层硬件进行接口连接。例如,驱动器2232可以包括显示驱动器、相机驱动器、
Figure GDA0003005877630000321
驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(USB)驱动器)、
Figure GDA0003005877630000322
驱动器、音频驱动器、电源管理驱动器等,这取决于硬件配置。
库2216可以提供可由应用程序2220和/或其它组件和/或层利用的公共基础设施。库2216通常提供允许其它软件组件以比底层操作系统2214功能(例如,内核2228、服务2230和/或驱动器2232)直接接口连接更简单的方式执行任务的功能。库2216可以包括可以提供诸如存储器分配功能、字符串操作功能、数学功能等功能的系统2234库(例如,C标准库)。此外,库2216可以包括诸如媒体库(例如,支持诸如运动图像专家组4(MPEG4)、H.264、MP3、高级音频编码(AAC)、自适应多速率(AMR)、联合图像专家组(JPEG)、便携式网络图形(PNG)的各种媒体格式的呈现和操纵的库)、图形库(例如,可用于在显示器上的图形内容中显现二维和三维的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、Web库(例如,可提供Web浏览功能的WebKit)等的API库2236。库2216同样可以包括各种各样的其它库2238,以向应用程序2220和其它软件组件提供许多其它API。
框架2218(有时也称为中间件)可以提供可由应用程序2220和/或其它软件组件利用的更高级别的公共基础设施。例如,框架2218可以提供各种图形用户界面功能、高级别资源管理、高级位置服务等。框架2218可以提供可由应用程序2220和/或其它软件组件使用的广泛的其它API,其中的一些可能特定于特定操作系统或平台。在一些示例实施例中,模型生成组件2219(例如,模型生成系统150的一个或多个组件)可以至少部分地在中间件/框架2218内实现。例如,在一些情况下,提供图形和非图形用户界面功能的呈现组件210的至少一部分可以在中间件/框架2218中实现。类似地,在一些示例实施例中,呈现组件210、通知组件230、建模组件250和模型查看组件260中的一个或多个的一部分可以在中间件/框架2218中实现。
应用程序2220包括内置应用程序2240、第三方应用程序2242和/或模型生成组件2243(例如,模型生成系统150的一个或多个组件的面向用户部分)。代表性内置应用程序2240的示例可以包括但不限于联系人应用程序、浏览器应用程序、书籍阅读器应用程序、位置应用程序、媒体应用程序、消息应用程序和/或游戏应用程序。第三方应用程序2242可以包括任何内置的应用程序以及各种各样的其它应用程序。在具体示例中,第三方应用程序2242(例如,由除了特定平台的供应商之外的实体使用AndroidTM或iOSTM软件开发工具包(SDK)开发的应用程序)可以是在移动操作系统上运行的移动软件,诸如iOSTM、AndroidTM
Figure GDA0003005877630000331
Phone或其它移动操作系统。在该示例中,第三方应用程序2242可以调用由诸如操作系统2214的移动操作系统提供的API调用2224以利于在此所描述的功能。在各种示例实施例中,模型生成组件2243的面向用户部分可以包括关于图2描述的一个或多个组件或组件的一部分。例如,在一些情况下,呈现组件210、检测组件220、通知组件230、位置组件240、建模组件250以及与用户界面元素相关联的模型查看组件260的部分(例如,数据输入和数据输出功能)可以以应用程序的形式来实现。
应用程序2220可以利用内置的操作系统功能(例如,内核2228、服务2230和/或驱动器2232)、库(例如,系统2234、API 2236和其它库2238)、框架/中间件2218来创建与系统的用户交互的用户界面。可替代地或另外,在一些系统中,与用户的交互可以通过呈现层(诸如呈现层2244)发生。在这些系统中,应用程序/组件“逻辑”可以与和用户交互的应用程序/组件的方面分开。
一些软件架构利用虚拟机。在图22的示例中,这由虚拟机2248示出。虚拟机创建软件环境,其中应用程序/组件可以像在硬件机器(例如,诸如图23的机器)上执行一样执行。虚拟机由主机操作系统(图22中的操作系统2214)托管,并且通常(虽然并不总是)具有虚拟机监视器2246,该虚拟机监视器2246管理虚拟机的操作以及与主机操作系统(即操作系统2214)进行接口连接。软件架构在诸如操作系统2250、库2252、框架/中间件2254、应用程序2256和/或呈现层2258的虚拟机内执行。在虚拟机2248内执行的这些软件架构层可以与之前描述的相应层相同或可以是不同的。
示例机器架构和机器可读介质
图23是示出根据一些示例实施例的机器2300的组件的框图,其能够从机器可读介质(例如,非暂态机器可读存储介质)读取指令(例如,处理器可执行指令)并且执行在此讨论的任何一种或多种方法。具体地,图23示出了以计算机系统的示例形式的机器2300的图示表示,在该计算机系统内用于使机器2300执行在此讨论的任何一种或多种方法的指令2316(例如,软件、程序、应用程序、小应用程序(applet)、应用软件或其它可执行代码)可被执行。例如,指令可以使机器执行图3和16-19的流程图。另外或可替代地,指令可以实现图2-21的呈现组件210、检测组件220、通知组件230、位置组件240、建模组件250和模型查看组件260等。指令将通用的非编程机器转换成被编程为以所述的方式执行所述和示出的功能的特定机器。
在替代实施例中,机器2300作为独立装置操作或者可以耦接(例如,联网)到网络系统中的其它机器。在网络部署中,机器2300可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者作为点对点(或分布式)网络环境中的对等机器运行。机器2300可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒、娱乐媒体系统、web装置、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指定机器2300将采取的动作的指令2316的任何机器。在一些示例实施例中,在网络部署中,一个或多个机器可以实现上述组件的至少一部分。与机器2300交互的一个或多个机器可以包括但不限于PDA、娱乐媒体系统、蜂窝电话、智能电话、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)和其它智能装置。此外,虽然仅示出了单个机器2300,但是术语“机器”同样应被认为包括单独地或共同执行指令2316以执行在此所讨论的任何一种或多种方法的机器2300的集合。
机器2300可以包括可被配置为例如经由总线2302彼此通信的处理器2310、存储器2330和I/O组件2350。在示例实施例中,处理器2310(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、GPU、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一个处理器或其任何合适的组合)可以包括例如可以执行指令2316的处理器2312和处理器2314。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可同时执行指令的两个或更多个独立处理器(有时称为“核”)。尽管图23示出了多个处理器,但是机器2300可以包括具有单核的单处理器、具有多核的单处理器(例如,多核处理器)、具有单核的多处理器、具有多核的多处理器,或其任何组合。
存储器/存储装置2330可以包括存储器2332(诸如主存储器或其它存储器存储装置)以及存储单元2336,二者可以经由总线2302访问处理器2310。存储单元2336和存储器2332存储体现在此所述的任何一种或多种方法或功能的指令2316。指令2316同样可以在机器2300对其执行的期间完全或部分地驻留在存储器2332内、存储单元2336内、处理器2310的至少一个处理器2310内(例如,处理器的高速缓存存储器内)或其任何适当的组合中。因此,存储器2332、存储单元2336和处理器2310的存储器是机器可读介质的示例。
如在此所使用的,“机器可读介质”是指能够临时或永久地存储指令和数据的装置,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓存存储器、其它类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。应将术语“机器可读介质”视为包括能够存储指令2316的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样应被视为包括能够存储由机器(例如,机器2300)执行的指令(例如,指令2316)的任何介质或多个介质的组合,使得当由机器2300的一个或多个处理器(例如,处理器2310)执行指令时使机器2300执行在此所述的任何一种或多种方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
I/O组件2350可以包括用于接收输入,提供输出,产生输出,发送信息,交换信息,采集测量等的各种各样的组件。在特定机器中包括的特定I/O组件2350将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入装置或其它这种输入机构,而无头服务器机器可能不包括这种触摸输入装置。应当理解,I/O组件2350可以包括图23中未示出的许多其它组件。根据功能仅将I/O组件2350分组以简化以下讨论,并且分组绝不是限制性的。在各种示例实施例中,I/O组件2350可以包括输出组件2352和输入组件2354。输出组件2352可以包括视觉组件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学组件(例如扬声器)、触觉组件(例如振动电动机、电阻机构)、其它信号发生器等。输入组件2354可以包括字母数字输入组件(例如,键盘,被配置为接收字母数字输入的触摸屏,光电(photo-optical)键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其它触知输入组件)、音频输入组件(例如,麦克风)等。
在另外的示例性实施例中,I/O组件2350可以包括广泛的其它组件中的生物特征组件2356、运动组件2358、环境组件2360或位置组件2362。例如,生物特征组件2356可以包括检测表达(例如手的表达、面部表情、声音表达、身体姿势或眼睛跟踪)的组件,测量生物信号(例如,血压、心率、体温、出汗或脑波),识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件2358可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件2360可以包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近对象的红外传感器)、气体传感器(例如,气体检测传感器,以检测危险气体的安全浓度或测量大气中的污染物)或可能提供对应于周围物理环境的指示、测量或信号的其它组件。位置组件2362可以包括位置传感器组件(例如,GPS接收器组件)、高度传感器组件(例如,高度计或气压计,其检测可从哪个高度得到空气压力)、取向传感器组件(例如磁力计)等。
可以使用各种各样的技术来实现通信。I/O组件2350可以包括通信组件2364,该通信组件2364可被操作为分别经由耦接(coupling)2382和耦接2372将机器2300耦接到网络2380或装置2370。例如,通信组件2364可以包括网络接口组件或与网络2380接口的其它合适的装置。在另一示例中,通信组件2364可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、
Figure GDA0003005877630000371
组件(例如,
Figure GDA0003005877630000372
低能耗)、
Figure GDA0003005877630000373
组件以及经由其它形态提供通信的其它通信组件。装置2370可以是另一台机器或各种各样的外围装置(例如,经由USB耦接的外围装置)中的任何一种。
此外,通信组件2364可以检测标识符(identifier)或包括可被操作为检测标识符的组件。例如,通信组件2364可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码;诸如快速响应(QR)码、阿兹特克码、数据矩阵、数据图、MaxiCode、PDF417、超码、统一商业代码缩减空间符号(UCC RSS)-2D条形码的多维条形码,和其它光学代码)或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信组件2364得到各种信息,诸如经由互联网协议(IP)地理定位的定位、经由
Figure GDA0003005877630000374
信号三角测量的定位、经由检测可以指示特定位置的NFC信标信号的定位等。
传输介质
在各种示例实施例中,网络2380的一个或多个部分可以是自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、因特网、因特网的一部分、PSTN的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure GDA0003005877630000381
网络、另一种类型的网络或两个或更多个这种网络的组合。例如,网络2380或网络2380的一部分可以包括无线或蜂窝网络,并且耦接2382可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其它类型的蜂窝或无线耦接。在该示例中,耦接2382可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线业务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准,由各种标准制定组织定义的其它标准,其它远程协议或其它数据传输技术。
可以经由网络接口装置(例如,在通信组件2364中包括的网络接口组件)使用传输介质通过网络2380发送或接收指令2316,并利用多个公知传输协议中的任何一个协议(例如,超文本传输协议(HTTP))。类似地,指令2316可以经由耦接2372(例如,对等耦接)使用传输介质向装置2370发送或接收。术语“传输介质”应被视为包括能够存储、编码或携载用于由机器2300执行的指令2316的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以利于这种软件的通信。
语言
在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然一个或多个方法的单独操作被示出和描述为单独的操作,但可以同时执行一个或多个单独操作,并且不需要以所示顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为单独的组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。
虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这种实施例在此可以单独地或集体地由术语“发明”指代,仅仅为了方便而不旨在将本申请的范围自愿地限制于任何单个公开内容或发明构思,如果事实上公开了多于一个的话。
在此示出的实施例足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用和从中得到其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此所述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、组件、引擎和数据存储之间的边界是有些任意的,并且特定的操作在特定说明性配置的上下文中示出。功能的其它分配可被设想,并且可落入本公开的各种实施例的范围内。通常,作为示例配置中的单独资源呈现的结构和功能可以被实现为组合结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

Claims (10)

1.一种用于生成三维模型的方法,包括:
使得呈现图形用户界面帧,所述图形用户界面帧包围移动计算装置的图像采集装置的视场的图形显现;
检测所述图形用户界面帧和所述图像采集装置的所述视场内的面部;
生成引导在所述图像采集装置的所述视场内的所述面部运动的运动指令;
检测在所述图像采集装置的所述视场内的所述面部的位置中的第一变化,其中,所述第一变化通过以下方式来检测:
识别在所述图像采集装置的所述视场内的所述面部上的一组面部跟踪点;
识别其中所述一组面部跟踪点具有一组第一位置的第一关键帧;
确定从所述一组第一位置的所述一组面部跟踪点中的一个或多个面部跟踪点的位置中的变化,其中,通过以下方式来确定位置中的所述变化:
响应于所述一个或多个面部跟踪点的位置中的变化的开始,识别所述一个或多个面部跟踪点中的每一个面部跟踪点的轨迹;
确定所述一个或多个面部跟踪点的所述轨迹的平均长度;以及
确定所述平均长度超过轨迹阈值;以及
响应于确定位置中的所述变化和确定所述平均长度超过所述轨迹阈值,识别其中所述一个或多个面部跟踪点具有第二位置的第二关键帧;
检测在所述图像采集装置的所述视场内的所述面部的位置中的第二变化;
基于沿所述轨迹的所述一个或多个面部跟踪点的位置中的一个或多个变化来识别一个或多个后续关键帧;
基于所述第一关键帧、所述第二关键帧和所述一个或多个后续关键帧,生成所述移动计算装置关于所述面部的一组相对位置估计,针对每一个关键帧生成所述一组相对位置估计中的相对位置估计;以及
基于所述第一关键帧、所述第二关键帧、所述一个或多个后续关键帧以及所述一组相对位置估计,生成一组深度图,所述一组深度图包括针对每一个关键帧的深度图并通过以下方式来生成:
生成具有第一分辨率的第一深度图;以及
基于所述第一深度图,生成具有高于所述第一分辨率的第二分辨率的第二深度图;以及
生成所述面部的三维模型。
2.根据权利要求1所述的方法,进一步包括:
基于检测所述图形用户界面内的所述面部,识别所述面部上的所述一组面部跟踪点;
响应于检测位置中的所述第一变化和位置中的所述第二变化中的一个或多个,生成所述图形用户界面帧内的所述面部上的所述一组面部跟踪点的图形表示;以及
在检测位置中的所述第一变化和位置中的所述第二变化的持续时间,使得在所述面部上呈现所述一组面部跟踪点的所述图形表示。
3.根据权利要求1所述的方法,其中所述面部的位置中的所述第一变化是具有第一初始位置和第一最终位置的预期位置变化,并且位置中的所述第一变化具有第一组中间位置,所述第一初始位置、所述第一组中间位置以及所述第一最终位置与所述面部的第一侧相关联。
4.根据权利要求3所述的方法,其中所述面部的位置中的所述第二变化是具有第二初始位置和第二最终位置的预期位置变化,并且位置中的所述第二变化具有第二组中间位置,所述第二初始位置、所述第二组中间位置以及所述第二最终位置与所述面部的第二侧相关联,所述面部的所述第二侧跟所述面部的所述第一侧相对。
5.根据权利要求1所述的方法,进一步包括:
融合所述一组深度图以生成所述面部的所述三维模型;
定义针对所述面部的所述三维模型的体积三维格子;以及
表示所述三维模型的三维表面。
6.根据权利要求5所述的方法,进一步包括:
识别具有一组多边形和连接所述一组多边形的一组顶点的面部网格,所述一组顶点表示所述一组面部跟踪点;以及
通过移动连接所述一组多边形中的两个或更多个多边形的一个或多个顶点来使所述网格的一个或多个部分变形以拟合所述面部的所述三维模型。
7.一种用于生成三维模型的系统,所述系统应用于移动计算装置,所述系统包括:
一个或多个处理器;
图像采集装置,其操作性地耦接到所述一个或多个处理器;以及
存储处理器可执行指令的非暂态处理器可读存储介质,所述处理器可执行指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
使得呈现图形用户界面帧,所述图形用户界面帧包围所述图像采集装置的视场的图形显现;
检测所述图形用户界面帧和所述图像采集装置的所述视场内的面部;
生成引导在所述图像采集装置的所述视场内的所述面部运动的运动指令;
检测在所述图像采集装置的所述视场内的所述面部的位置中的第一变化,其中,所述第一变化通过以下方式来检测:
识别在所述图像采集装置的所述视场内的所述面部上的一组面部跟踪点;
识别其中所述一组面部跟踪点具有一组第一位置的第一关键帧;
确定从所述一组第一位置的所述一组面部跟踪点中的一个或多个面部跟踪点的位置中的变化,其中,通过以下方式来确定位置中的所述变化:
响应于所述一个或多个面部跟踪点的位置中的变化的开始,识别所述一个或多个面部跟踪点中的每一个面部跟踪点的轨迹;
确定所述一个或多个面部跟踪点的所述轨迹的平均长度;以及
确定所述平均长度超过轨迹阈值;以及
响应于确定位置中的所述变化和确定所述平均长度超过所述轨迹阈值,识别其中所述一个或多个面部跟踪点具有第二位置的第二关键帧;
检测在所述图像采集装置的所述视场内的所述面部的位置中的第二变化;
基于沿所述轨迹的所述一个或多个面部跟踪点的位置中的一个或多个变化来识别一个或多个后续关键帧;
基于所述第一关键帧、所述第二关键帧和所述一个或多个后续关键帧,生成所述移动计算装置关于所述面部的一组相对位置估计,针对每一个关键帧生成所述一组相对位置估计中的相对位置估计;以及
基于所述第一关键帧、所述第二关键帧、所述一个或多个后续关键帧以及所述一组相对位置估计,生成一组深度图,所述一组深度图包括针对每一个关键帧的深度图并通过以下方式来生成:
生成具有第一分辨率的第一深度图;以及
基于所述第一深度图,生成具有高于所述第一分辨率的第二分辨率的第二深度图;以及
生成所述面部的三维模型。
8.根据权利要求7所述的系统,其中所述操作进一步包括:
融合所述一组深度图以生成所述面部的所述三维模型;
定义针对所述面部的所述三维模型的体积三维格子;以及
表示所述三维模型的三维表面。
9.根据权利要求8所述的系统,其中所述操作进一步包括:
识别具有一组多边形和连接所述一组多边形的一组顶点的面部网格,所述一组顶点表示所述一组面部跟踪点;以及
通过移动连接所述一组多边形中的两个或更多个多边形的一个或多个顶点来使所述网格的一个或多个部分变形以拟合所述面部的所述三维模型。
10.一种存储处理器可执行指令的非暂态处理器可读存储介质,所述处理器可执行指令在由移动计算装置的一个或多个处理器执行时使所述移动计算装置执行操作,所述操作包括:
使得呈现图形用户界面帧,所述图形用户界面帧包围移动计算装置的图像采集装置的视场的图形显现;
检测所述图形用户界面帧和所述图像采集装置的所述视场内的面部;
生成引导在所述图像采集装置的所述视场内的所述面部运动的运动指令;
检测在所述图像采集装置的所述视场内的所述面部的位置中的第一变化,其中,所述第一变化通过以下方式来检测:
识别在所述图像采集装置的所述视场内的所述面部上的一组面部跟踪点;
识别其中所述一组面部跟踪点具有一组第一位置的第一关键帧;
确定从所述一组第一位置的所述一组面部跟踪点中的一个或多个面部跟踪点的位置中的变化,其中,通过以下方式来确定位置中的所述变化:
响应于所述一个或多个面部跟踪点的位置中的变化的开始,识别所述一个或多个面部跟踪点中的每一个面部跟踪点的轨迹;
确定所述一个或多个面部跟踪点的所述轨迹的平均长度;以及
确定所述平均长度超过轨迹阈值;以及
响应于确定位置中的所述变化和确定所述平均长度超过所述轨迹阈值,识别其中所述一个或多个面部跟踪点具有第二位置的第二关键帧;
检测在所述图像采集装置的所述视场内的所述面部的位置中的第二变化;
基于沿所述轨迹的所述一个或多个面部跟踪点的位置中的一个或多个变化来识别一个或多个后续关键帧;
基于所述第一关键帧、所述第二关键帧和所述一个或多个后续关键帧,生成所述移动计算装置关于所述面部的一组相对位置估计,针对每一个关键帧生成所述一组相对位置估计中的相对位置估计;以及
基于所述第一关键帧、所述第二关键帧、所述一个或多个后续关键帧以及所述一组相对位置估计,生成一组深度图,所述一组深度图包括针对每一个关键帧的深度图并通过以下方式来生成:
生成具有第一分辨率的第一深度图;以及
基于所述第一深度图,生成具有高于所述第一分辨率的第二分辨率的第二深度图;以及
生成所述面部的三维模型。
CN201680030189.6A 2015-03-27 2016-03-25 用于生成三维模型的方法和系统 Active CN108012559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110757915.7A CN113487742A (zh) 2015-03-27 2016-03-25 用于生成三维模型的方法和系统

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562139009P 2015-03-27 2015-03-27
US62/139,009 2015-03-27
US15/080,367 2016-03-24
US15/080,367 US9852543B2 (en) 2015-03-27 2016-03-24 Automated three dimensional model generation
PCT/US2016/024325 WO2016160606A1 (en) 2015-03-27 2016-03-25 Automated three dimensional model generation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110757915.7A Division CN113487742A (zh) 2015-03-27 2016-03-25 用于生成三维模型的方法和系统

Publications (2)

Publication Number Publication Date
CN108012559A CN108012559A (zh) 2018-05-08
CN108012559B true CN108012559B (zh) 2021-07-23

Family

ID=56976689

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680030189.6A Active CN108012559B (zh) 2015-03-27 2016-03-25 用于生成三维模型的方法和系统
CN202110757915.7A Pending CN113487742A (zh) 2015-03-27 2016-03-25 用于生成三维模型的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110757915.7A Pending CN113487742A (zh) 2015-03-27 2016-03-25 用于生成三维模型的方法和系统

Country Status (5)

Country Link
US (6) US9852543B2 (zh)
EP (2) EP3944143A1 (zh)
KR (2) KR102003813B1 (zh)
CN (2) CN108012559B (zh)
WO (1) WO2016160606A1 (zh)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI439960B (zh) 2010-04-07 2014-06-01 Apple Inc 虛擬使用者編輯環境
EP2928174B1 (en) * 2014-03-31 2023-01-04 Open Text S.A. A method and device for capturing a document
US10254831B2 (en) * 2014-04-08 2019-04-09 Umoove Services Ltd. System and method for detecting a gaze of a viewer
US20160232399A1 (en) * 2014-04-08 2016-08-11 Umoove Services Ltd. System and method of detecting a gaze of a viewer
JP6316991B2 (ja) 2014-06-20 2018-04-25 ヴェロ・スリー・ディー・インコーポレイテッド 3次元物体を生成するための方法
US11256792B2 (en) 2014-08-28 2022-02-22 Facetec, Inc. Method and apparatus for creation and use of digital identification
CA3186147A1 (en) 2014-08-28 2016-02-28 Kevin Alan Tussy Facial recognition authentication system including path parameters
US10698995B2 (en) 2014-08-28 2020-06-30 Facetec, Inc. Method to verify identity using a previously collected biometric image/data
US10803160B2 (en) 2014-08-28 2020-10-13 Facetec, Inc. Method to verify and identify blockchain with user question data
US10614204B2 (en) 2014-08-28 2020-04-07 Facetec, Inc. Facial recognition authentication system including path parameters
US9852543B2 (en) 2015-03-27 2017-12-26 Snap Inc. Automated three dimensional model generation
US10516869B2 (en) * 2015-07-09 2019-12-24 Doubleme, Inc. Real-time 3D virtual or physical model generating apparatus for HoloPortal and HoloCloud system
US10338811B2 (en) * 2015-08-06 2019-07-02 Atomic Shapes Oy User interface for three-dimensional modelling
US10360718B2 (en) * 2015-08-14 2019-07-23 Samsung Electronics Co., Ltd. Method and apparatus for constructing three dimensional model of object
US9676145B2 (en) 2015-11-06 2017-06-13 Velo3D, Inc. Adept three-dimensional printing
JP2019507236A (ja) 2015-12-10 2019-03-14 ヴェロ・スリー・ディー・インコーポレイテッド 性能向上した3次元印刷
WO2017143077A1 (en) 2016-02-18 2017-08-24 Velo3D, Inc. Accurate three-dimensional printing
FI20165211A (fi) * 2016-03-15 2017-09-16 Ownsurround Ltd Järjestely HRTF-suodattimien valmistamiseksi
USD987653S1 (en) 2016-04-26 2023-05-30 Facetec, Inc. Display screen or portion thereof with graphical user interface
USD809557S1 (en) 2016-06-03 2018-02-06 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
AU2017100670C4 (en) 2016-06-12 2019-11-21 Apple Inc. User interfaces for retrieving contextually relevant media content
US9716825B1 (en) 2016-06-12 2017-07-25 Apple Inc. User interface for camera effects
DK201670608A1 (en) 2016-06-12 2018-01-02 Apple Inc User interfaces for retrieving contextually relevant media content
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
US10334134B1 (en) 2016-06-20 2019-06-25 Maximillian John Suiter Augmented real estate with location and chattel tagging system and apparatus for virtual diary, scrapbooking, game play, messaging, canvasing, advertising and social interaction
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US10252336B2 (en) 2016-06-29 2019-04-09 Velo3D, Inc. Three-dimensional printing and three-dimensional printers
US11691343B2 (en) 2016-06-29 2023-07-04 Velo3D, Inc. Three-dimensional printing and three-dimensional printers
US10210320B2 (en) * 2016-09-21 2019-02-19 Lextron Systems, Inc. System and method for secure 5-D user identification
CN117193617A (zh) * 2016-09-23 2023-12-08 苹果公司 头像创建和编辑
KR102246841B1 (ko) * 2016-10-05 2021-05-03 매직 립, 인코포레이티드 표면 모델링 시스템들 및 방법들
US10255720B1 (en) * 2016-10-13 2019-04-09 Bentley Systems, Incorporated Hybrid mesh from 2.5D and 3D point data
USD836654S1 (en) * 2016-10-28 2018-12-25 General Electric Company Display screen or portion thereof with graphical user interface
US10661341B2 (en) 2016-11-07 2020-05-26 Velo3D, Inc. Gas flow in three-dimensional printing
US20180137663A1 (en) 2016-11-11 2018-05-17 Joshua Rodriguez System and method of augmenting images of a user
US10611092B2 (en) 2017-01-05 2020-04-07 Velo3D, Inc. Optics in three-dimensional printing
WO2018129715A1 (zh) * 2017-01-13 2018-07-19 浙江大学 一种同时定位与稠密三维重建方法
WO2018160807A1 (en) 2017-03-02 2018-09-07 Velo3D, Inc. Three-dimensional printing of three dimensional objects
US20180281282A1 (en) 2017-03-28 2018-10-04 Velo3D, Inc. Material manipulation in three-dimensional printing
KR102002279B1 (ko) * 2017-04-06 2019-07-23 한국한의학연구원 3차원 안면 진단 장치
DK180859B1 (en) 2017-06-04 2022-05-23 Apple Inc USER INTERFACE CAMERA EFFECTS
US20180357819A1 (en) * 2017-06-13 2018-12-13 Fotonation Limited Method for generating a set of annotated images
USD908728S1 (en) * 2017-08-22 2021-01-26 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
WO2019045713A1 (en) * 2017-08-31 2019-03-07 Sony Mobile Communications Inc. METHODS OF GUIDING A USER WHEN REALIZING THREE-DIMENSIONAL SCAN AND ASSOCIATED MOBILE DEVICES AND COMPUTER PROGRAM PRODUCTS
CN109559371B (zh) * 2017-09-27 2023-12-26 虹软科技股份有限公司 一种用于三维重建的方法和装置
CN111373446A (zh) * 2017-11-02 2020-07-03 马克斯·普朗克科学促进学会 用于流式渲染的实时潜在可见集合
USD887437S1 (en) 2017-11-09 2020-06-16 Siemens Schweiz Ag Display screen or portion thereof with graphical user interface
US11069112B2 (en) * 2017-11-17 2021-07-20 Sony Interactive Entertainment LLC Systems, methods, and devices for creating a spline-based video animation sequence
US10272525B1 (en) 2017-12-27 2019-04-30 Velo3D, Inc. Three-dimensional printing systems and methods of their use
CN108415955B (zh) * 2018-02-06 2021-12-28 杭州电子科技大学 一种基于眼动注视点移动轨迹的感兴趣点数据库建立方法
US10574881B2 (en) * 2018-02-15 2020-02-25 Adobe Inc. Smart guide to capture digital images that align with a target image model
WO2019190142A1 (en) * 2018-03-29 2019-10-03 Samsung Electronics Co., Ltd. Method and device for processing image
FI20185300A1 (fi) 2018-03-29 2019-09-30 Ownsurround Ltd Järjestely päähän liittyvien siirtofunktiosuodattimien muodostamiseksi
US11722764B2 (en) 2018-05-07 2023-08-08 Apple Inc. Creative camera
US10375313B1 (en) 2018-05-07 2019-08-06 Apple Inc. Creative camera
DK180078B1 (en) 2018-05-07 2020-03-31 Apple Inc. USER INTERFACE FOR AVATAR CREATION
US11022861B2 (en) 2018-07-16 2021-06-01 Electronic Arts Inc. Lighting assembly for producing realistic photo images
US10628989B2 (en) * 2018-07-16 2020-04-21 Electronic Arts Inc. Photometric image processing
CN110830704B (zh) * 2018-08-07 2021-10-22 纳宝株式会社 旋转图像生成方法及其装置
WO2020041893A1 (en) * 2018-09-01 2020-03-05 Digital Animal Interactive Inc. Image processing methods and systems
DK201870623A1 (en) 2018-09-11 2020-04-15 Apple Inc. USER INTERFACES FOR SIMULATED DEPTH EFFECTS
US11770601B2 (en) 2019-05-06 2023-09-26 Apple Inc. User interfaces for capturing and managing visual media
US10674072B1 (en) 2019-05-06 2020-06-02 Apple Inc. User interfaces for capturing and managing visual media
US11321857B2 (en) 2018-09-28 2022-05-03 Apple Inc. Displaying and editing images with depth information
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
EP3632369B1 (en) * 2018-10-02 2022-02-09 SIRONA Dental Systems GmbH Method for incorporating photographic facial images and/or films of a person into the planning of odontological and/or cosmetic dental treatments and/or the preparation of restorations for said person
JP1662143S (zh) * 2018-10-13 2020-06-22
CN109409335B (zh) * 2018-11-30 2023-01-20 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机可读介质及电子设备
US11107261B2 (en) 2019-01-18 2021-08-31 Apple Inc. Virtual avatar animation based on facial feature movement
US11113839B2 (en) * 2019-02-26 2021-09-07 Here Global B.V. Method, apparatus, and system for feature point detection
CN109919876B (zh) * 2019-03-11 2020-09-01 四川川大智胜软件股份有限公司 一种三维真脸建模方法及三维真脸照相系统
CN113994396A (zh) 2019-04-01 2022-01-28 陈健 基于增强现实和/或姿势检测技术的用户引导系统
CN110064200B (zh) * 2019-04-25 2022-02-22 腾讯科技(深圳)有限公司 基于虚拟环境的物体构建方法、装置及可读存储介质
US11706521B2 (en) 2019-05-06 2023-07-18 Apple Inc. User interfaces for capturing and managing visual media
KR102274370B1 (ko) * 2019-05-10 2021-07-07 김경아 안면인식장치 및 안면인식 방법
US11423630B1 (en) 2019-06-27 2022-08-23 Amazon Technologies, Inc. Three-dimensional body composition from two-dimensional images
KR20220031745A (ko) 2019-07-26 2022-03-11 벨로3디, 인크. 3차원 물체 형상화에 대한 품질 보증
CN110502305B (zh) * 2019-08-26 2022-12-02 沈阳美行科技股份有限公司 一种动态界面的实现方法、装置及相关设备
US11232629B1 (en) * 2019-08-30 2022-01-25 Amazon Technologies, Inc. Two-dimensional image collection for three-dimensional body composition modeling
EP4032312A4 (en) * 2019-09-18 2023-09-13 Lopez, Camilo SYSTEM AND METHOD FOR GENERATING A VIDEO
US11903730B1 (en) 2019-09-25 2024-02-20 Amazon Technologies, Inc. Body fat measurements from a two-dimensional image
US11069131B2 (en) 2019-09-26 2021-07-20 Amazon Technologies, Inc. Predictive personalized three-dimensional body models
CN111309227B (zh) * 2020-02-03 2022-05-31 联想(北京)有限公司 一种动画制作方法、设备及计算机可读存储介质
CN111311712B (zh) * 2020-02-24 2023-06-16 北京百度网讯科技有限公司 视频帧处理方法和装置
US20210279967A1 (en) * 2020-03-06 2021-09-09 Apple Inc. Object centric scanning
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
CN111462284B (zh) * 2020-03-31 2023-09-05 北京小米移动软件有限公司 动画生成方法、动画生成装置和电子设备
DK202070624A1 (en) 2020-05-11 2022-01-04 Apple Inc User interfaces related to time
US11921998B2 (en) 2020-05-11 2024-03-05 Apple Inc. Editing features of an avatar
US11039074B1 (en) 2020-06-01 2021-06-15 Apple Inc. User interfaces for managing media
US11288859B2 (en) * 2020-06-01 2022-03-29 Disney Enterprises, Inc. Real-time feature preserving rendering of visual effects on an image of a face
US20230300296A1 (en) * 2020-06-10 2023-09-21 Maxell, Ltd. Watching monitoring device and watching monitoring method
US11212449B1 (en) 2020-09-25 2021-12-28 Apple Inc. User interfaces for media capture and management
EP4272077A1 (en) * 2020-12-31 2023-11-08 Snap Inc. Accessing third party resources via client application
US11539876B2 (en) 2021-04-30 2022-12-27 Apple Inc. User interfaces for altering visual media
US11778339B2 (en) 2021-04-30 2023-10-03 Apple Inc. User interfaces for altering visual media
US11232283B1 (en) * 2021-05-17 2022-01-25 Vr Media Technology, Inc. Facial recognition system that compares narrow band ultraviolet-absorbing skin chromophores
US11354924B1 (en) 2021-05-17 2022-06-07 Vr Media Technology, Inc. Hand recognition system that compares narrow band ultraviolet-absorbing skin chromophores
US11714536B2 (en) 2021-05-21 2023-08-01 Apple Inc. Avatar sticker editor user interfaces
US11776190B2 (en) 2021-06-04 2023-10-03 Apple Inc. Techniques for managing an avatar on a lock screen
CN113343879A (zh) * 2021-06-18 2021-09-03 厦门美图之家科技有限公司 全景面部图像的制作方法、装置、电子设备及存储介质
US11854146B1 (en) 2021-06-25 2023-12-26 Amazon Technologies, Inc. Three-dimensional body composition from two-dimensional images of a portion of a body
US11887252B1 (en) 2021-08-25 2024-01-30 Amazon Technologies, Inc. Body model composition update from two-dimensional face images
US11861860B2 (en) 2021-09-29 2024-01-02 Amazon Technologies, Inc. Body dimensions from two-dimensional body images
CN114742984B (zh) * 2022-04-14 2023-04-21 北京数字冰雹信息技术有限公司 一种动态三维模型的编辑方法及装置
WO2024042508A1 (en) * 2022-08-24 2024-02-29 Edgy Bees Ltd. Geosynchronization of an aerial image using localizing multiple features
US20240104807A1 (en) * 2022-09-26 2024-03-28 Sony Interactive Entertainment Inc. Customized digital humans and pets for metaverse

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
DE59708043D1 (de) 1996-06-17 2002-10-02 Siemens Ag Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6807290B2 (en) 2000-03-09 2004-10-19 Microsoft Corporation Rapid computer modeling of faces for animation
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US7103211B1 (en) 2001-09-04 2006-09-05 Geometrix, Inc. Method and apparatus for generating 3D face models from one camera
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
CN1710613A (zh) * 2004-06-16 2005-12-21 甲尚股份有限公司 自动产生动画的系统与方法
WO2007023494A2 (en) 2005-08-22 2007-03-01 Triplay Communications Ltd. Messaging system and method
US20110298829A1 (en) * 2010-06-04 2011-12-08 Sony Computer Entertainment Inc. Selecting View Orientation in Portable Device via Image Analysis
US8285006B2 (en) * 2007-04-13 2012-10-09 Mira Electronics Co., Ltd. Human face recognition and user interface system for digital camera and video camera
WO2008129542A2 (en) 2007-04-23 2008-10-30 Ramot At Tel-Aviv University Ltd System, method and a computer readible medium for providing an output image
US9443227B2 (en) 2010-02-16 2016-09-13 Tigertext, Inc. Messaging system apparatuses circuits and methods of operation thereof
JP5564384B2 (ja) * 2010-09-28 2014-07-30 任天堂株式会社 画像生成プログラム、撮像装置、撮像システム、及び画像生成方法
US8711206B2 (en) * 2011-01-31 2014-04-29 Microsoft Corporation Mobile camera localization using depth maps
EP2680594A4 (en) * 2011-02-24 2014-07-09 Kyocera Corp ELECTRONIC APPARATUS, IMAGE DISPLAY METHOD, AND IMAGE DISPLAY PROGRAM
KR101262164B1 (ko) * 2011-10-04 2013-05-14 강원대학교산학협력단 저 해상도 깊이 맵으로부터 고 해상도 깊이 맵을 생성하는 방법 및 이를 기록한 기록매체
DE102011054658A1 (de) * 2011-10-20 2013-04-25 Bioid Ag Verfahren zur Unterscheidung zwischen einem realen Gesicht und einer zweidimensionalen Abbildung des Gesichts in einem biometrischen Erfassungsprozess
CN103167270B (zh) * 2011-12-14 2016-05-04 杭州普维光电技术有限公司 人员头部拍摄方法、系统及服务器
US20130286161A1 (en) 2012-04-25 2013-10-31 Futurewei Technologies, Inc. Three-dimensional face recognition for mobile devices
US20130335416A1 (en) 2012-05-23 2013-12-19 1-800 Contacts, Inc. Systems and methods for generating a 3-d model of a virtual try-on product
US9195361B1 (en) * 2012-09-07 2015-11-24 Google Inc. Single progress indicator depicting multiple subprocesses of an upload of a content item
US9501140B2 (en) * 2012-11-05 2016-11-22 Onysus Software Ltd Method and apparatus for developing and playing natural user interface applications
WO2014140057A1 (en) 2013-03-15 2014-09-18 Akzo Nobel Coatings International B.V. Hybrid water dispersions, (poly)ethylene (meth)acrylic acid copolymer composite latex emulsions, hybrid (poly)ethylene (meth)acrylic acid organosilane composite latex emulsions, and coating compositions formed therefrom
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US10121060B2 (en) * 2014-02-13 2018-11-06 Oath Inc. Automatic group formation and group detection through media recognition
US9667860B2 (en) * 2014-02-13 2017-05-30 Google Inc. Photo composition and position guidance in a camera or augmented reality system
US9779508B2 (en) * 2014-03-26 2017-10-03 Microsoft Technology Licensing, Llc Real-time three-dimensional reconstruction of a scene from a single camera
US9715903B2 (en) * 2014-06-16 2017-07-25 Qualcomm Incorporated Detection of action frames of a video stream
US9977566B2 (en) * 2014-06-24 2018-05-22 Google Llc Computerized systems and methods for rendering an animation of an object in response to user input
US9852543B2 (en) 2015-03-27 2017-12-26 Snap Inc. Automated three dimensional model generation
WO2017023290A1 (en) * 2015-07-31 2017-02-09 Hewlett-Packard Development Company, L.P. Turntable peripheral for 3d scanning
US10219040B2 (en) * 2015-12-28 2019-02-26 The Directv Group, Inc. Video frame bookmarking user interface component

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
机动目标在三维Jerk模型下的无源跟踪;杨丽;田增山;《数字通信》;20091231(第3期);第60-62页 *

Also Published As

Publication number Publication date
EP3274916A1 (en) 2018-01-31
KR20190089091A (ko) 2019-07-29
US20200066037A1 (en) 2020-02-27
US11450067B2 (en) 2022-09-20
US11010968B2 (en) 2021-05-18
WO2016160606A1 (en) 2016-10-06
US11893689B2 (en) 2024-02-06
US10515480B1 (en) 2019-12-24
KR102148502B1 (ko) 2020-08-26
KR20180015120A (ko) 2018-02-12
US20210233310A1 (en) 2021-07-29
EP3944143A1 (en) 2022-01-26
US20220383592A1 (en) 2022-12-01
US20160284123A1 (en) 2016-09-29
US9852543B2 (en) 2017-12-26
EP3274916B1 (en) 2023-07-26
US20180075651A1 (en) 2018-03-15
KR102003813B1 (ko) 2019-10-01
CN108012559A (zh) 2018-05-08
CN113487742A (zh) 2021-10-08
US10198859B2 (en) 2019-02-05

Similar Documents

Publication Publication Date Title
CN108012559B (zh) 用于生成三维模型的方法和系统
US11431896B2 (en) Augmented reality for three-dimensional model reconstruction
KR102207721B1 (ko) 비디오 스트림에서 객체 모델링 및 대체
CN107851319B (zh) 区域增强现实持久性标签对象
CN107924590B (zh) 增强现实系统中的基于图像的跟踪
KR102624635B1 (ko) 메시징 시스템에서의 3d 데이터 생성
KR102506738B1 (ko) 눈 텍스처 인페인팅
KR20220167323A (ko) 메시징 시스템 내의 3d 데이터를 포함하는 증강 현실 콘텐츠 생성기들
KR20230079177A (ko) 증강 현실 콘텐츠 생성기들을 절차적으로 생성함
CN110089117B (zh) 处理和格式化视频用于交互式呈现
CN115917600A (zh) 基于纹理的姿势验证
KR20230079264A (ko) 증강 현실 콘텐츠 생성기들에 대한 수집 파이프라인
GB2598452A (en) 3D object model reconstruction from 2D images
KR20240009993A (ko) 멀티레벨 특징 추적을 위한 직접 스케일 레벨 선택
KR20240008915A (ko) 모션 블러 완화를 위한 선택적 이미지 피라미드 계산
US11683585B2 (en) Direct scale level selection for multilevel feature tracking under motion blur
KR20240005953A (ko) 증강 현실 경험의 시동 시간 감소
CN117337575A (zh) 用于运动模糊减轻的选择性图像金字塔计算
WO2024118586A1 (en) 3d generation of diverse categories and scenes
CN117441343A (zh) 曝光和iso的动态调整的相关应用
CN117425869A (zh) 后期扭曲中的动态过度渲染

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: London, England

Applicant after: Snape Group Ltd.

Address before: London, England

Applicant before: Snapchat Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20210625

Address after: California, USA

Applicant after: SNAP Inc.

Address before: London, England

Applicant before: Snape Group Ltd.

Effective date of registration: 20210625

Address after: London, England

Applicant after: Snapchat Ltd.

Address before: London, England

Applicant before: Oberweils Engineering Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant