CN115956255B - 使用广角成像设备的3d重建 - Google Patents

使用广角成像设备的3d重建 Download PDF

Info

Publication number
CN115956255B
CN115956255B CN202180049099.2A CN202180049099A CN115956255B CN 115956255 B CN115956255 B CN 115956255B CN 202180049099 A CN202180049099 A CN 202180049099A CN 115956255 B CN115956255 B CN 115956255B
Authority
CN
China
Prior art keywords
wide
pose
angle image
region
distorted
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
CN202180049099.2A
Other languages
English (en)
Other versions
CN115956255A (zh
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 CN115956255A publication Critical patent/CN115956255A/zh
Application granted granted Critical
Publication of CN115956255B publication Critical patent/CN115956255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map
    • G06T3/047Fisheye or wide-angle transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • 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
    • G06T7/579Depth or shape recovery from multiple images from motion
    • 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/20021Dividing image into blocks, subimages or windows
    • 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/20212Image combination
    • G06T2207/20216Image averaging
    • 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/30216Redeye defect
    • 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/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

广角图像的姿态由对广角图像的区域进行去畸变(602)、确定广角图像的经去畸变的区域的估计姿态(604、614)以及从经去畸变的区域的估计姿态导出广角图像的姿态(616、618)来确定。可以通过将经去畸变的区域中的特征与来自一个或更多个先前广角图像的先前经去畸变的区域中的特征进行比较以及通过将经去畸变的区域中的特征与点云中的特征进行比较来确定经去畸变的区域的估计姿态。

Description

使用广角成像设备的3D重建
优先权要求
本申请要求于2020年6月10日提交的美国专利申请第16/897,749号的优先权的权益,该美国专利申请通过引用整体并入本文。
技术领域
本公开内容的实施方式总体上涉及移动计算技术,并且更具体地但不作为限制地涉及用于在客户端设备处呈现增强现实(augmented-reality,AR)内容的系统。
背景技术
增强现实是其中通过计算机生成的感知信息来增强存在于现实世界中的对象的现实世界环境的交互体验,有时跨多个感知模态,包括视觉、听觉、触觉、体感和嗅觉。增强现实的主要价值是数字世界的组成部分融入人对现实世界的感知中的方式,而不是作为数据的简单显示,而是通过作为环境的自然部分感知的沉浸感的集成。
AR系统可以利用虚拟3D模型来定位和跟踪用户的AR设备。3D重建是用于推断由图像集合捕获的场景的几何结构的技术。
发明内容
根据本公开的一个方面的一种使用一个或更多个处理器确定广角图像的姿态的方法包括:对广角图像的区域进行去畸变;通过将广角图像的经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较,确定经去畸变的区域的估计姿态;以及从经去畸变的区域的估计姿态导出广角图像的姿态。
根据本公开的另一个方面的一种数据处理系统包括:一个或更多个处理器;广角图像捕获设备,以及一个或更多个机器可读介质,一个或更多个机器可读介质存储指令,所述指令在由一个或更多个处理器执行时使系统执行操作,所述操作包括:从广角图像捕获设备接收广角图像;对广角图像的区域进行去畸变;通过将广角图像的经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较,确定经去畸变的区域的估计姿态;以及从经去畸变的区域的估计姿态导出广角图像的姿态。
根据本公开的又一个方面的一种包括指令的非暂态机器可读介质,指令在由机器读取时使机器执行用于确定广角图像的姿态的操作,包括:从广角图像捕获设备接收广角图像;对广角图像的区域进行去畸变;通过将广角图像的经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较,确定经去畸变的区域的估计姿态;以及从经去畸变的区域的估计姿态导出广角图像的姿态。
附图说明
为了容易地标识对任何特定元件或动作的讨论,附图标记中的一个或多个最高位数字指代该元件被首次引入时所在的图号。
图1是示出根据一些实施方式的用于通过网络来交换数据(例如,消息和相关联的内容)的示例消息传送系统的框图,其中,该消息传送系统包括增强现实系统。
图2是示出根据示例实施方式的关于消息传送系统的另外的细节的框图。
图3是示出根据某些示例实施方式的增强现实系统的各种模块的框图。
图4示出了将广角图像去畸变(dewarp)为多个经线性校正的图像。
图5A、图5B和图5C示意性地示出了参考3D点云对视点序列进行的处理。
图6是示出根据一个示例的3D重建方法的流程图。
图7示出了根据一个示例的界面流程图。
图8是示出可以与本文中描述的各种硬件架构结合使用并且可以用于实现各种实施方式的代表性软件架构的框图。
图9是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文所讨论的方法中的任何一种或更多种方法的机器的部件的框图。
具体实施方式
如上所述,增强现实(AR)是其中通过计算机生成的感知信息来增强存在于现实世界中的对象的现实世界环境的交互体验。一些AR系统使用点云来生成和呈现AR内容,其中点云是对应于现实世界中的对象的特征和/外表面的数据点的组。
运动恢复结构(Structure from Motion,SfM)是从二维图像序列估计三维结构的技术。输出是每个图像和3D点云的姿态(pose)(即捕获图像的设备的六自由度位置和取向),其中点云中的每个点具有其外观在两个或更多个图像中的描述。一般方案是:
-检测每个图像中的图像特征,诸如拐角点。
-在图像之间匹配各特征。
-估计具有特征匹配的图像对的相对姿态。
-从初始图像对开始,对图像特征进行三角测量以估计它们的3D位置。
-通过针对当前3D点云将图像特征进行匹配来迭代地配准新图像。
-对新图像进行三角测量以将新点添加值点云并优化图像姿态和3D点位置。
当使用诸如鱼眼或360度摄像装置的广角图像源时,由于图像特征的畸变(distortion),该处理是不可靠的。本文的公开内容寻求通过对从这样的广角源接收的广角图像的区域进行去畸变(dewarp),并且在一些示例中使用SfM技术估计经去畸变的区域的姿态来减轻该不可靠性。然后,经去畸变的区域的估计姿态可以用于导出广角图像的姿态,从而导出包括广角图像源的设备的姿态。如本文中所使用的,术语广角旨在覆盖包括故意畸变的任何成像设备的输出。
改进用于定位设备的初始姿态,以及改进定位后设备的跟踪,允许更精确和/或更稳定地定位要在显示设备上显示的图像或图像流中的虚拟对象(或其他增强信息)。因此,本文中所描述的方法和系统改进了包括增强现实功能或以其他方式利用3D重建的设备或系统的功能。
因此,在某些示例实施方式中,提供了一种使用一个或更多个处理器来确定广角图像的姿态的方法,该方法包括:对广角图像的区域进行去畸变;确定广角图像的经去畸变的区域的估计姿态;以及从经去畸变的区域的估计姿态导出广角图像的姿态。确定经去畸变的区域的估计姿态可以包括将经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较。确定估计姿态还可以包括将经去畸变的区域中的特征与点云中的特征进行比较。此外,广角图像的姿态可以从至少一些估计姿态的平均值导出。
在一些示例实施方式中,确定估计姿态包括确定在估计姿态之间具有一致性的经去畸变的区域的组,以及从具有这样的一致性的经去畸变的区域的估计姿态导出广角图像的姿态。可以参考从由运动传感器数据和位置传感器数据构成的组中选择的传感器数据来确定一致性。然后可以从广角图像的姿态导出不处于估计姿态之间具有一致性的经去畸变的区域的组中的经去畸变的区域的姿态。
在一些示例实施方式中,该方法还包括优化经去畸变的区域的估计姿态,然后从经优化的估计姿态中的至少一些导出广角图像的更新姿态。然后可以在优化经去畸变的区域的估计姿态之后优化广角图像的姿态。
在一些示例实施方式中,提供了一种数据处理系统,其包括一个或更多个处理器、广角图像捕获设备以及存储指令的一个或更多个机器可读介质,该指令在由一个或更多个处理器执行时使系统执行以上在段落[0018]至[0020]中所描述的操作,该操作包括但不限于:从广角图像捕获设备接收广角图像,对广角图像的区域进行去畸变,确定广角图像的经去畸变的区域的估计姿态,以及从经去畸变的区域的估计姿态导出广角图像的姿态。
在一些示例实施方式中,提供了一种非暂态机器可读介质,其包括指令,该指令在由机器读取时使该机器执行以上在段落[0018]至[0020]中所描述的操作,该操作包括但不限于:从图像捕获设备接收广角图像,对广角图像的区域进行去畸变,确定广角图像的经去畸变的区域的估计姿态,,并且从经去畸变的区域的估计姿态导出广角图像的姿态。
图1是示出用于通过网络来交换数据(例如,消息和相关联的内容)的示例消息传送系统100的框图。消息传送系统100包括一个或更多个客户端设备102,客户端设备102托管包括消息传送客户端应用104的多个应用。每个消息传送客户端应用104经由网络106(例如,因特网)通信地耦接至消息传送客户端应用104的其他实例和消息传送服务器系统108。
因此,每个消息传送客户端应用104能够经由网络106与另一消息传送客户端应用104以及与消息传送服务器系统108进行通信并交换数据。在消息传送客户端应用104之间以及消息传送客户端应用104与消息传送服务器系统108之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息传送服务器系统108经由网络106向特定消息传送客户端应用104提供服务器侧功能。虽然消息传送系统100的某些功能在本文中被描述为由消息传送客户端应用104或由消息传送服务器系统108执行,但是应当理解,某些功能的位置是在消息传送客户端应用104内还是在消息传送服务器系统108内是设计选择。例如,在技术上可能优选的是:最初将某些技术和功能部署在消息传送服务器系统108内,但是后期将该技术和功能迁移至客户端设备102具有足够处理能力的消息传送客户端应用104。
消息传送服务器系统108支持被提供给消息传送客户端应用104的各种服务和操作。这样的操作包括向消息传送客户端应用104发送数据、从消息传送客户端应用104接收数据以及对由消息传送客户端应用104生成的数据进行处理。在一些实施方式中,作为示例,该数据包括:消息内容、客户端设备信息、地理位置信息、媒体注释和叠加、消息内容持久性条件、社交网络信息以及实况事件信息。在其他实施方式中,使用其他数据。通过经由消息传送客户端应用104的GUI可用的功能来调用和控制消息传送系统100内的数据交换。
具体地,现在转至消息传送服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问其中存储有与由应用服务器112处理的消息相关联的数据的数据库120。
具体讨论应用程序接口(API)服务器110,该服务器在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。特别地,应用程序接口(API)服务器110提供接口(例如,例程和协议)的组,消息传送客户端应用104可以调用或查询该接口的组以调用应用服务器112的功能。应用程序接口(API)服务器110公开应用服务器112所支持的各种功能,包括:帐户注册、登录功能、经由应用服务器112从特定消息传送客户端应用104向另一消息传送客户端应用104发送消息、从消息传送客户端应用104向消息传送服务器应用114发送媒体文件(例如,图像或视频)、以及针对由另一消息传送客户端应用104进行的可能访问而对媒体数据的集合(例如,故事)进行设置、检索客户端设备102的用户的朋友列表、检索这样的集合、检索消息和内容、向社交图添加朋友以及从社交图删除朋友、定位社交图内的朋友、打开并应用(例如,与消息传送客户端应用104相关的)事件。
应用服务器112托管多个应用和子系统,包括消息传送服务器应用114、图像处理系统116、社交网络系统122和AR系统124。根据某些示例实施方式,AR系统124被配置成基于图像数据生成和/或托管点云。在一些实施方式中,AR系统124如图所示位于应用服务器112中,但是AR系统也可以部分地或全部地托管在客户端设备102上。AR系统124的另外的细节可以在下面的图3中找到。
消息传送服务器应用114实现多个消息处理技术和功能,特别地涉及包括在从消息传送客户端应用104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的汇总及其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被汇总成内容集合(例如,被称为故事或图库(gallery))。然后,消息传送服务器应用114使得这些集合对消息传送客户端应用104可用。考虑到对数据的其他处理器和存储器密集处理的硬件要求,也可以由消息传送服务器应用114在服务器侧执行这样的处理。
应用服务器112还包括图像处理系统116,图像处理系统116专用于通常针对在消息传送服务器应用114处的消息的有效载荷内接收的图像或视频执行各种图像处理操作。
社交网络系统122支持各种社交联网功能服务并且使这些功能和服务对消息传送服务器应用114可用。社交网络系统122所支持的功能和服务的示例包括识别消息传送系统100的与特定用户具有关系或正在“追随”该特定用户的其他用户以及还识别特定用户的兴趣和其他实体。
应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问其中存储有与由消息传送服务器应用114处理的消息相关联的数据的数据库120。
图2是示出根据示例实施方式的关于消息传送系统100的另外的细节的框图。具体地,消息传送系统100被示出为包括消息传送客户端应用104和应用服务器112,它们又包含一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
短暂定时器系统202负责实施对由消息传送客户端应用104和消息传送服务器应用114许可的内容的临时访问。为此,短暂定时器系统202包含多个定时器,这些定时器基于与消息、消息集合(例如,媒体集合)或图形元素相关联的持续时间和显示参数,经由消息传送客户端应用104选择性地显示并使得能够访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件图库”或“事件故事”。可以使这样的集合在指定时间段例如内容所涉及的事件的持续时间内可用。例如,可以使与音乐会相关的内容在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责向消息传送客户端应用104的用户界面发布提供存在有特定集合的通知的图标。
集合管理系统204还包括策展接口208,策展接口208使得集合管理者能够管理和策展特定内容集合。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿,以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付使用他们的内容的费用。
注释系统206提供使得用户能够对与消息相关联的媒体内容进行注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与生成和发布由消息传送系统100处理的消息的媒体叠加(media overlay)相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传送客户端应用104提供媒体叠加(例如,过滤器、透镜)。在另一示例中,注释系统206基于其他信息例如客户端设备102的用户的社交网络信息可操作地向消息传送客户端应用104提供媒体叠加。媒体叠加可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标识、动画和音效、以及动画面部模型。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可以被应用于客户端设备102处的媒体内容项(例如,照片或视频)。例如,媒体叠加包括可以叠加在由客户端设备102拍摄所生成的照片之上的文本。在另一示例中,媒体叠加包括位置标识叠加(例如,威尼斯海滩)、实况事件的名称或商家名称叠加(例如,海滩咖啡馆)。在另一示例中,注释系统206使用客户端设备102的地理位置来标识包括客户端设备102的地理位置处的商家的名称的媒体叠加。媒体叠加可以包括与商家相关联的其他标记。媒体叠加可以被存储在数据库120中并通过数据库服务器118访问。
在一个示例实施方式中,注释系统206提供基于用户的发布平台,该基于用户的发布平台使得用户能够选择地图上的地理位置并上传与所选择的地理位置相关联的内容。用户还可以指定应当向其他用户提供特定媒体叠加的环境。注释系统206生成包括所上传的内容的媒体叠加并将所上传的内容与所选择的地理位置相关联。
在另一示例实施方式中,注释系统206提供基于商家的发布平台,该基于商家的发布平台使得商家能够经由投标过程选择与地理位置相关联的特定媒体叠加。例如,注释系统206将最高出价商家的媒体叠加与相应地理位置相关联达预定义时间量。
图3是示出根据某些示例实施方式的AR系统124的部件的框图,其中所述部件将AR系统124配置成执行操作以生成AR参数并执行AR功能。
在一个示例中将AR系统124示出为包括图像模块302、3D重建模块304和点云模块306,所有这些模块被配置成(例如,经由总线、共享存储器或交换机)彼此通信。这些模块中的任何一个或更多个模块可以使用一个或更多个处理器308来实现(例如,通过对这样的一个或更多个处理器进行配置以执行针对该模块所描述的功能)并且因此可以包括一个或更多个处理器308。图像模块302用于对从广角镜头(例如,从鱼眼、360度全景镜头或包括故意畸变的其他镜头)接收的图像进行去畸变和分割。3D重建模块304用于如下文中更详细描述的生成姿态和3D点数据。点云模块306用于存储由3D重建模块304生成的3D点云数据,但是也可以在其他时间基于客户端设备102的GPS坐标下载并存储现有3D云模块的一部分。
所描述的模块中的任何一个或更多个模块可以仅使用硬件(例如,机器的一个或更多个处理器308)或者使用硬件和软件的组合来实现。例如,所描述的AR系统124的任何模块可以在物理上包括被配置成执行本文针对该模块所描述的操作的一个或更多个处理器308(例如,机器的一个或更多个处理器的子组或者机器中的一个或更多个处理器)的布置。作为另一示例,AR系统124的任何模块可以包括软件、硬件或者软件和硬件两者,其对(例如,机器的一个或更多个处理器中的)一个或更多个处理器308的布置进行配置以执行本文针对该模块所描述的操作。因此,AR系统124的不同模块可以包括并配置这样的处理器308的不同布置或者这样的处理器308在不同的时间点的单个布置。此外,AR系统124的任何两个或更多个模块可以被组合成单个模块,并且本文针对单个模块描述的功能可以在多个模块之间细分。此外,根据各种示例实施方式,本文中描述为在单个机器、数据库或设备内实现的模块可以跨多个机器、数据库或设备分布。
图4示出了将广角图像402(例如来自鱼眼、360度全景镜头或包括故意畸变的其他镜头)去畸变400为对应于广角图像402的至少一部分的一个或更多个经线性校正的图像。
可以看出,广角图像402包括多个区域404、406、408,这些区域由于使用广角镜头生成而畸变。在所示实施方式中,广角图像402包括如字母“a”至“h”所示的感兴趣的中心区域406、408等。使用已知的去畸变技术,并且取决于广角镜头的性质,这些区域可以如图4中所示由图像模块302去畸变和线性化。例如,区域406和区域408分别被变换为经去畸变的区域410和经去畸变的区域412。
如图4中示例所示,经去畸变的区域具有已知的相对姿态。也就是说,每个经去畸变的区域410、412等相对于摄像装置框架(camera frame)的姿态是已知的或定义的。这些相对姿态是可配置的并且可以由用户指定。
本文中将使用惯例Nx来指代经去畸变的图像区域,其中N是已捕获的广角图像的数量,而x是对应于经去畸变的区域的字母。注意,尽管图4中的经去畸变的区域显示为正方形、对齐并且直接相邻,但这不是必需的。在一些情况下,可能希望经去畸变的区域交叠,因为这可以提供如以下参照图6所讨论的更好的帧到帧区域匹配(frame-to-frame regionmatching)。
图5示意性地示出了参考点云502对多个视点进行的处理(如在图6中更详细地描述的),点云502如下面更详细地描述的被迭代地创建。(在所示示例中)点云502表示建筑物。多个经去畸变的区域504至512先前已被配准至环境的3D模型,如下文更详细描述的。每个区域504至512被表示为矩形金字塔,该金字塔的顶点表示虚拟摄像装置的位置和取向(即姿态),而该金字塔的底部表示点云502的对应于经去畸变的区域Nx的视图。
通过执行下面描述的方法,将每个经去畸变的区域视为独立的图像,来确定区域504至514中的每个及其对应的姿态。然而,防止了从相同原始广角图像中提取的经去畸变的区域之间的匹配,因为这些匹配不能提供有用的信息。
为了说明的目的,如图5A所示,区域504对应于经去畸变的区域1a,即输入图像的帧1中的经去畸变的区域a(图4中的412),区域506对应于经去畸变的区域1b,区域508对应于经去畸变的区域2d,区域510对应于经去畸变的区域2a,区域512对应于经去畸变的区域2c,而区域514对应于经去畸变的区域2b。区域514(2c)是来自广角图像402的帧2的配准区域。
如图5B所示,新配准区域514(2b)被示为适合于区域510(2a)与512(2c)之间,从而在广角图像的帧2的姿态上提供与区域510(2a)和512(2c)的一致性(consensus)。如图5C所示,现在可以推断出区域508(2d)被误配准,并且可以如箭头516所示对其进行校正,使得区域508位于区域512(2c)的旁边。
图6示出了说明由AR系统124的一个或更多个处理器或模块执行的根据一个示例的3D重建方法的流程图600。
该方法在框602处开始,在框602处,如以上参照图4所述,从多个广角输入图像生成具有已知相对姿态的多个经去扭曲的区域。
然后在框604处对经去畸变的区域执行以下SfM步骤:
-在每个经去畸变的区域中检测图像特征,诸如拐角点。
-在经去畸变的区域之间匹配图像特征以识别匹配特征对。该匹配在广角图像的当前帧的经去畸变的区域与一个或更多个先前帧或后续帧的经去畸变的区域之间进行。为了该匹配,每个经去畸变的区域被视为独立的图像。
-估计具有特征匹配的成对的经去畸变的区域的相对姿态。注意,在这种情况下,这些相对姿态不是单个图像帧中的区域之间的已知相对姿态,而是根据不同帧中的图像区域所共同的2D特征的识别和比较而确定的经去畸变的区域对之间的相对姿态。例如,经去畸变的区域506(1b)可以包括也在经去畸变的区域510(2a)中发现的2D特征,从而允许确定经去畸变的区域506与经去畸变的区域510之间的相对姿态。
这些步骤的执行为每个经去畸变的区域产生2D特征的集合和它们与其他经去畸变的区域中的2D特征的匹配、以及具有2D特征匹配的经去畸变的区域之间的估计相对姿态的输出。
然后,在框606处,最初选择两个经去畸变的区域作为配准区域(registeredregions),这两个经去畸变的区域之间具有较高数量的匹配特征(从而对它们的估计相对姿态有一定置信度)。在该示例中在此时,还不存在3D点云502,尽管该方法也可以用于补充现有的点云。因此,该方法现在转至框608,在框608处,通过对初始配准区域之间的匹配的2D特征进行三角测量来生成点云502的3D点,如本领域中已知的。
然后,该方法转至框610,在框610处,现在采取步骤来优化区域姿态和3D点位置,以便最小化再投影误差,即,区域中的特征的位置与当被投影回它们被观察的区域中时对应的3D点的位置之间的误差。这种优化是SfM中的已知技术并且被称为“捆绑调整(BundleAdjustment)”。在捆绑调整之后,在判定框612中确定是否有更多的区域要配准。如果没有,则方法结束。如果是,则方法在框614处继续。
然后在框614处,通过将所选区域中的2D特征与当前3D点云502中的3D点进行匹配来选择并配准另一经去畸变的区域。使用匹配的2D/3D特征,确定该所选区域的姿态。
然后,在判定框616处,确定该新配准区域与来自相同广角图像的其他配准区域或传感器数据之间是否存在一致性。一致性可以例如是N个经去畸变的区域与源广角图像的3D姿态一致,或者新配准区域与Y个经去畸变的区域一致并且其中该Y个经去畸变的区域与所报告的与广角图像402相关联的位置传感器数据和/或运动传感器数据一致。在具有相关联的GPS数据(从位置部件938获得)的多个图像/区域已经被配准之后,则可以推断点云和其他配准区域的真实世界位置。所需的一致量可以由用户配置。
在第一种情况下,可以指定:在推断可以用于评估一致性的广角图像的姿态之前,配准来自相同广角图像的至少四个区域。在第二种情况下,可以指定:一旦两个配准区域在彼此的(例如)10cm内和在位置传感器数据(例如,由GPS接收器报告并且取决于报告的GPS精度的位置)的(例如)5米内对源广角图像的姿态达成一致,就可以确定与新区域存在一致性。类似地,可以指定:一旦两个区域的姿态在从运动传感器数据(例如从加速度计、陀螺仪、磁力计等获得或导出的取向)推断的姿态的(例如)五度内一致,就可以确定与新区域存在一致性。
来自相同图像帧的不同经去畸变的区域的姿态可以彼此比较,因为它们的相对姿态如上所述是已知的,并且经去畸变的区域的姿态可以与位置或运动传感器数据比较,因为3D模型可以锚定至真实世界,并且每个区域的姿态相对于摄像装置框架是已知的。如果在框616中存在一致性,则方法前进至框618。
如果在判定框616中没有确定一致性,则该方法前进至框608,在框608处,基于在框604中执行的2D特征匹配,使用当前所选区域对新的3D点进行三角测量以进一步生成3D点云502。然后,方法转至框610,在框610处,现在对配准区域执行捆绑调整,以优化图像区域姿态和3D点位置。在捆绑调整之后,在判定框612中确定是否存在任何更多图像帧的任何更多经去畸变的区域要配准。如果没有,则方法结束。如果是,则方法在框614处继续。
现在返回至判定框616,如果已经针对特定广角图像的区域的组确定了一致性,则在框618处推断该广角图像的姿态。一旦已知对具有一致性的配准区域的姿态的估计,并且由于已知相同帧中的每个配准区域与广角图像之间的相对姿态,则可以从具有一致性的相同帧的配准区域的姿态推断广角图像的估计姿态。然后对相同帧的已经确定了具有一致性的每个配准区域的这些估计姿态进行平均,以生成关于源广角图像的真实姿态的最佳猜测。如本文中所使用的,术语“平均值”被定义为计量给定数集的中心趋势的数,包括但不限于加权或未加权的平均值或中值。
在框620处,则通过将每个配准区域的姿态设置为在框618中确定的图像姿态,在每种情况下进行适当的调整以考虑每个配准区域的相对定位,从而校正特定广角图像的每个当前配准区域的姿态(见图5C)。以这种方式,从广角图像的姿态导出不处于估计姿态之间具有一致性的经去畸变的区域的组中的经去畸变的区域的姿态。
在框622处,对特定广角图像的当前未配准区域进行配准。这是迫使尚未配准的广角图像(具有已知姿态)的区域配准的处理。在框618中推断出广角图像的姿态之后,可以通过将每个未配准区域的姿态设置为在框618中确定的图像姿态,并在每种情况下进行适当调整以考虑每个配准区域的相对定位,来指定尚未配准的任何区域的姿态。这比等待未配准区域经由框614至620配准要快。
然后,方法进行至框608,在框608处,基于在框604中执行的2D特征匹配,使用当前所选区域对新的3D点进行三角测量以进一步生成3D点云502。
此时,在框618中推断出特定广角图像的图像姿态、在框620中校正图像区域姿态并且在框622中配准未配准区域之后,相对于广角图像的推断姿态刚性地固定特定广角图像的图像区域的姿态。也就是说,该特定广角图像的各个图像区域姿态只能基于该特定广角图像的推断姿态的改变来调整。
然后,方法转至框610,在框610处,现在执行捆绑调整以优化图像姿态和3D点位置,以便最小化再投影误差。值得注意的是,在框610中执行的捆绑调整取决于到达框610的方法是来自框616中的“无一致性”还是来自框622而不同。在前一种情况下,在对广角图像的姿态获得一致性之前,在框610中独立地优化区域的姿态。这较慢,但提供了稳健性——如果一个区域处于错误位置,则不会影响其他区域。一旦在广角图像的姿态上存在一致性并且区域相对于该姿态被刚性地固定,则仅优化图像的姿态,这比独立地优化各区域要快。由于在相同帧中经去畸变的区域的相对姿态是已知的,所以可以通过将3D点重新投影至其中找到对应2D特征的经去畸变的区域中来确定重新投影误差。
在对特定广角图像的姿态进行捆绑调整之后,在判定框612中确定是否存在任何更多广角图像的任何更多经去畸变的区域要配准。如果没有,则方法结束。如果是,则方法返回至框614。
在610中执行的优化的输出是已经成功配准的所有区域和图像的最终姿态和3D点云502。3D点云502可以如下面参照图7所描述的那样使用。3D点云502可以存储在客户端设备102上,以用于正在进行的SfM或增强现实操作,和/或可以将其上传至应用服务器112以创建或补充在应用服务器112上托管的3D点云。
图7是示出根据某些示例实施方式的由客户端设备102呈现的基于位置的AR内容的显示的示例性界面流程图700。如图7所示,界面流程图包括界面图702和界面图704。
在一个示例中,客户端设备102可以使得在客户端设备102的显示器上显示界面图702的呈现。例如,客户端设备102可以经由摄像装置捕获图像数据并生成由界面图702描绘的界面。
如界面图704所示,客户端设备102可以基于客户端设备102的位置来访问储存库(例如,数据库120)内的媒体内容。包括虚拟对象或其他增强信息或图像的媒体内容(例如,媒体内容706)可以与媒体储存库内的位置相关联,使得对储存库内的位置的引用可以标识媒体内容706。可替选地,媒体内容可以位于客户端设备102的存储器中。媒体内容还可以通过用户偏好或选择来标识。
然后,客户端设备102可以基于从客户端设备102捕获的图像生成的定位或跟踪姿态以及在流程图600中生成的3D云,使得在GUI内的位置处显示媒体内容706的呈现,如在界面图704中所见。
软件架构
图8是示出示例软件架构806的框图,其中示例软件架构806可以与本文中描述的各种硬件架构结合使用。图8是软件架构的非限制性示例,并且应当理解,可以实现许多其他架构以促进本文中描述的功能。软件架构806可以在诸如图9的机器900的硬件上执行,所述硬件包括处理器904、存储器914和I/O部件918等。代表性硬件层852被示出并且可以表示例如图8的机器800。代表性硬件层852包括具有相关联的可执行指令804的处理单元854。可执行指令804表示软件架构806的可执行指令,包括本文中描述的方法、部件等的实现。硬件层852还包括还具有可执行指令804的存储器和/或存储模块,即存储器/存储装置856。硬件层852还可以包括其他硬件858。
在图8的示例架构中,软件架构806可以被概念化为一堆层,其中每个层提供特定功能。例如,软件架构806可以包括诸如操作系统802、库820、应用816和呈现层814的层。在操作上,层内的应用816和/或其他部件可以通过软件堆栈来调用应用编程接口(API)API调用808以及响应于API调用808来接收响应。所示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件818,而其他操作系统可能提供这样的层。其他软件架构可以包括附加层或不同的层。
操作系统802可以管理硬件资源并且提供公共服务。操作系统802可以包括例如核822、服务824和驱动器826。核822可以充当硬件与其他软件层之间的抽象层。例如,核822可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务824可以为其他软件层提供其他公共服务。驱动器826负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器826包括显示器驱动器、摄像装置驱动器、驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、/>驱动器、音频驱动器、电源管理驱动器等。
库820提供由应用816和/或其他部件和/或层使用的公共基础设施。库820提供如下功能,该功能允许其他软件部件以比与底层操作系统802的功能(例如,核822、服务824和/或驱动器826)直接对接的方式更容易的方式来执行任务。库820可以包括系统库844(例如,C标准库),系统库844可以提供函数例如存储器分配函数、串操纵函数、数学函数等。另外,库820可以包括API库846诸如媒体库(例如,支持各种媒体格式诸如MPREG4、H.264、MP3、AAC、AMR、JPG、PNG的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容呈现2D和3D的OpenGL框架)、数据库(例如,可以提供各种关系数据库功能的SQLite)、网络库(例如,可以提供网络浏览功能的WebKit)等。库820还可以包括各种其他库848,以向应用816和其他软件部件/模块提供许多其他API。
框架/中间件818(有时也称为中间件)提供可以由应用816和/或其他软件部件/模块使用的较高级别的公共基础设施。例如,框架/中间件818可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件818可以提供可以由应用816和/或其他软件部件/模块使用的广泛的其他API,其中一些API可以专用于特定的操作系统802或平台。
应用816包括内置应用838和/或第三方应用840。代表性内置应用838的示例可以包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传送应用和/或游戏应用。第三方应用840可以包括由除特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTMPhone的移动操作系统或其他移动操作系统上运行的移动软件。第三方应用840可以调用由移动操作系统(例如,操作系统802)提供的API调用808以促进本文中描述的功能。/>
应用816可以使用内置操作系统功能(例如,核822、服务824和/或驱动器826)、库820和框架/中间件818来创建用户接口以与系统的用户交互。可替选地或另外地,在一些系统中,可以通过呈现层例如呈现层814发生与用户的交互。在这些系统中,应用/部件“逻辑”可以和应用/部件的与用户交互的方面分开。
图9是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器900的部件的框图。具体地,图9示出了呈计算机系统的示例形式的机器900的图形表示,在机器900内可以执行用于使机器900执行本文中讨论的方法中的任何一种或更多种方法的指令910(例如,软件、程序、应用、小程序、应用(app)或其他可执行代码)。因此,可以使用指令910来实现本文中描述的模块或部件。指令910将通用的未经编程的机器900转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器900。在替选实施方式中,机器900作为独立设备操作或者可以耦接(例如,联网)到其他机器。在联网部署中,机器900可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份(capacity)来操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器900可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家用电器)、其他智能设备、网络设备(web appliance)、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器900采取的动作的指令910的任何机器。此外,虽然仅示出了单个机器900,但是术语“机器”还应被认为包括单独地或联合地执行指令910以执行本文中讨论的任何一种或更多种方法的机器的集合。
机器900可以包括可以被配置成例如经由总线902相互通信的处理器904、存储器/存储装置906和I/O部件918。存储器/存储装置906可以包括存储器914例如主存储器或其他存储装置以及存储单元916,处理器904能够例如经由总线902访问存储器914和存储单元916两者。存储单元916和存储器914存储体现本文中描述的方法或功能中的任何一个或更多个方法或功能的指令910。指令910还可以在其被机器900执行期间完全地或部分地驻留在存储器914内、驻留在存储单元916内、驻留在处理器904中的至少一个处理器内(例如,在处理器的高速缓冲存储器内)或者驻留在其任何合适的组合内。因此,存储器914、存储单元916以及处理器904的存储器是机器可读介质的示例。
I/O部件918可以包括用于接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器900中的具体I/O部件918将取决于机器的类型。例如,诸如移动电话的便携式机器将很可能包括触摸输入设备或其他这样的输入机构,而无终端(headless)服务器机器将很可能不包括这样的触摸输入设备。将理解的是,I/O部件918可以包括图9中未示出的许多其他部件。仅出于简化以下讨论的目的,根据功能对I/O部件918进行分组,并且该分组决不是限制性的。在各种示例实施方式中,I/O部件918可以包括输出部件926和输入部件928。输出部件926可以包括视觉部件(例如,诸如等离子体显示面板(PDP)的显示器、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件928可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。输入部件928还可以包括一个或更多个图像捕获设备,诸如摄像装置。摄像装置可以包括广角镜头(例如,鱼眼、360度全景镜头或包括故意畸变的其他镜头),本文中所描述的方法和系统从该广角镜头接收用于处理的广角图像。
在其他示例实施方式中,I/O部件918可以包括生物计量部件930、运动传感器部件934、环境部件936或定位部件938以及各种其他部件。例如,生物计量部件930可以包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动传感器部件934可以包括:加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件936可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声音传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近度传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于检测危险气体的浓度以确保安全或者用于测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量结果或信号的其他部件。定位部件938可以包括位置传感器部件(例如,全球定位系统(GPS)接收器部件)、海拔高度传感器部件(例如,检测可以从其得到海拔高度的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。在这点上,应当注意,磁力计可以被认为是定向传感器和运动传感器,因为磁力计输出的变化也表示旋转运动。
可以使用各种技术来实现通信。I/O部件918可以包括通信部件940,通信部件940能够进行操作以分别经由耦接922和耦接924将机器900耦接至网络932或设备920。例如,通信部件940可以包括网络接口部件或其他合适的设备以与网络932接口。在其他示例中,通信部件940可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,低功耗/>)、/>部件以及经由其他模态提供通信的其他通信部件。设备920可以是另外的机器或各种外围设备中的任何外围设备(例如,经由通用串行总线(USB)耦接的外围设备)。
此外,通信部件940可以检测标识符或者可以包括可操作以检测标识符的部件。例如,通信部件940可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品码(UPC)条形码的一维条形码、诸如快速响应(QR)码的多维条形码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码以及其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件940得到各种信息,例如经由因特网协议(IP)地理位置得到位置、经由信号三角测量得到位置、经由检测可以指示特定位置的NFC信标信号得到位置等。
术语表
该上下文中的“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字通信信号或模拟通信信号或者促进这些指令的通信的其他无形介质。可以经由网络接口设备利用传输介质并且利用多个公知的传输协议中的任何一种传输协议来通过网络发送或接收指令。
该上下文中的“客户端设备”是指与通信网络接口以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
该上下文中的“通信网络”是指网络的一个或更多个部分,网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其他类型的网络或两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(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)或其任何组合。处理器还可以是具有两个或更多个可以同时执行指令的独立处理器(有时称为“内核”)的多核处理器。
该上下文中的“时间戳”指的是标识某个事件何时发生的字符或编码信息的序列,例如,从而给出日期和一天中的时间,有时精确到几分之一秒。
该上下文中的“LIFT”是针对随机选择靶向模型测量的靶向模型在将案例预测或分类为(相对于整个群体)具有增强的响应的方面的性能的量度。
该上下文中的“音素对齐”,音素是区分一个词和另一个词的语音单位。一个音素可以由一系列闭合(closure)、突发(burst)和呼出(aspiration)事件组成;或者,双元音可以从后元音过渡到前元音。因此,语音信号不仅可以用它所包含的音素来描述,而且还可以用音素的位置来描述。因此,可以将音素对齐描述为波形中的音素的“时间对齐”以确定语音信号中的每个音素的适当序列和位置。
该上下文中的“音频向可视转换”是指将可听语音信号转换为可视语音,其中可视语音可以包括表示可听语音信号的嘴形。
该上下文中的“时间延迟神经网络(TDNN)”,TDNN是人工神经网络架构,其主要目的是对顺序数据进行处理。示例是将连续音频转换成分类音素标签流以用于语音识别。
该上下文中的“双向长短期记忆(BLSTM)”是指在任意间隔内记忆值的递归神经网络(RNN)架构。存储的值不会随学习的进行而被修改。RNN允许在神经元之间进行前向连接和后向连接。在给定未知大小的时滞和事件之间的持续时间的情况下,BLSTM非常适合于时间序列的分类、处理和预测。

Claims (16)

1.一种使用一个或更多个处理器确定广角图像的姿态的方法,包括:
对所述广角图像的区域进行去畸变;
通过将所述广角图像的经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较,确定所述经去畸变的区域的估计姿态;以及
从所述经去畸变的区域的估计姿态导出所述广角图像的姿态。
2.根据权利要求1所述的方法,其中,确定估计姿态包括:
确定在估计姿态之间具有一致性的经去畸变的区域的组;以及
从具有这样的一致性的经去畸变的区域的估计姿态导出所述广角图像的姿态。
3.根据权利要求2所述的方法,还包括:
从所述广角图像的姿态导出不处于估计姿态之间具有一致性的经去畸变的区域的所述组中的经去畸变的区域的姿态。
4.根据权利要求2所述的方法,还包括:
优化经去畸变的区域的估计姿态。
5.根据权利要求4所述的方法,其中,所述广角图像的更新姿态是从经优化的估计姿态中的至少一些导出的。
6.根据权利要求4所述的方法,还包括:在优化所述经去畸变的区域的估计姿态之后优化所述广角图像的姿态。
7.根据权利要求1所述的方法,其中,导出所述广角图像的姿态包括:将所述广角图像的姿态确定为所述估计姿态中的至少一些估计姿态的平均值。
8.根据权利要求2所述的方法,其中,参考从由运动传感器数据和位置传感器数据构成的组中选择的传感器数据来确定一致性。
9.一种数据处理系统,包括:
一个或更多个处理器;
广角图像捕获设备,以及
一个或更多个机器可读介质,所述一个或更多个机器可读介质存储指令,所述指令在由所述一个或更多个处理器执行时使所述系统执行操作,所述操作包括:
从所述广角图像捕获设备接收广角图像;
对所述广角图像的区域进行去畸变;
通过将所述广角图像的经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较,确定所述经去畸变的区域的估计姿态;以及
从所述经去畸变的区域的估计姿态导出所述广角图像的姿态。
10.根据权利要求9所述的数据处理系统,其中,确定估计姿态包括:
确定在估计姿态之间具有一致性的经去畸变的区域的组;以及
从具有这样的一致性的经去畸变的区域的估计姿态导出所述广角图像的姿态。
11.根据权利要求10所述的数据处理系统,其中,参考位置传感器数据或运动传感器数据来确定一致性。
12.根据权利要求9所述的数据处理系统,其中,所述操作还包括:
优化经去畸变的区域的估计姿态;以及
在优化所述经去畸变的区域的估计姿态之后优化所述广角图像的姿态。
13.一种包括指令的非暂态机器可读介质,所述指令在由机器读取时使所述机器执行用于确定广角图像的姿态的操作,包括:
从广角图像捕获设备接收广角图像;
对所述广角图像的区域进行去畸变;
通过将所述广角图像的经去畸变的区域中的特征与来自一个或更多个其他广角图像的已经去畸变的其他区域中的特征进行比较,确定所述经去畸变的区域的估计姿态;以及
从所述经去畸变的区域的估计姿态导出所述广角图像的姿态。
14.根据权利要求13所述的非暂态机器可读介质,其中,确定估计姿态包括:
确定在估计姿态之间具有一致性的经去畸变的区域的组;以及
从具有这样的一致性的经去畸变的区域的估计姿态导出所述广角图像的姿态。
15.根据权利要求14所述的非暂态机器可读介质,其中,参考位置传感器数据或运动传感器数据来确定一致性。
16.根据权利要求13所述的非暂态机器可读介质,其中,所述操作还包括:
单独地优化经去畸变的区域的估计姿态;以及
在单独地优化所述经去畸变的区域的估计姿态之后优化所述广角图像的姿态。
CN202180049099.2A 2020-06-10 2021-05-27 使用广角成像设备的3d重建 Active CN115956255B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/897,749 US11335022B2 (en) 2020-06-10 2020-06-10 3D reconstruction using wide-angle imaging devices
US16/897,749 2020-06-10
PCT/US2021/034527 WO2021252201A2 (en) 2020-06-10 2021-05-27 3d reconstruction using wide-angle imaging devices

Publications (2)

Publication Number Publication Date
CN115956255A CN115956255A (zh) 2023-04-11
CN115956255B true CN115956255B (zh) 2024-04-09

Family

ID=76523501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180049099.2A Active CN115956255B (zh) 2020-06-10 2021-05-27 使用广角成像设备的3d重建

Country Status (5)

Country Link
US (2) US11335022B2 (zh)
EP (1) EP4165599A2 (zh)
KR (1) KR20230022236A (zh)
CN (1) CN115956255B (zh)
WO (1) WO2021252201A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US11335022B2 (en) 2020-06-10 2022-05-17 Snap Inc. 3D reconstruction using wide-angle imaging devices
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11847807B2 (en) * 2021-07-02 2023-12-19 Genesys Logic, Inc. Image processing system and processing method of video stream
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609197B1 (en) * 2016-08-19 2017-03-28 Intelligent Security Systems Corporation Systems and methods for dewarping images
CN107871308A (zh) * 2016-09-27 2018-04-03 韩华泰科株式会社 用于处理广角图像的方法和设备
CN108335273A (zh) * 2018-02-06 2018-07-27 大唐终端技术有限公司 大广角鱼眼全景镜头相机的畸变的实时消除方法
CN110276734A (zh) * 2019-06-24 2019-09-24 Oppo广东移动通信有限公司 图像畸变校正方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715739B2 (en) * 2013-11-07 2017-07-25 The Johns Hopkins University Bone fragment tracking
US10628711B2 (en) * 2018-04-24 2020-04-21 Microsoft Technology Licensing, Llc Determining pose of handheld object in environment
US11335022B2 (en) 2020-06-10 2022-05-17 Snap Inc. 3D reconstruction using wide-angle imaging devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609197B1 (en) * 2016-08-19 2017-03-28 Intelligent Security Systems Corporation Systems and methods for dewarping images
CN107871308A (zh) * 2016-09-27 2018-04-03 韩华泰科株式会社 用于处理广角图像的方法和设备
CN108335273A (zh) * 2018-02-06 2018-07-27 大唐终端技术有限公司 大广角鱼眼全景镜头相机的畸变的实时消除方法
CN110276734A (zh) * 2019-06-24 2019-09-24 Oppo广东移动通信有限公司 图像畸变校正方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SVO:Semidirect Visual Odometry for Monocular and Multicamera Systems;FORSTER CHRISTIAN ET AL;IEEE TRANSACTIONS ON ROBOTICS;第33卷(第2期);249-265 *
WANG YAHUI ET AL:"CubemapSLAM:A Piecevise-pinhole Moncular Fisheye SLAM System".ADVANCES IN DATABASES AND INFORMATION SYSTEMS.2019,34-39. *

Also Published As

Publication number Publication date
CN115956255A (zh) 2023-04-11
WO2021252201A3 (en) 2022-01-27
US20220230351A1 (en) 2022-07-21
KR20230022236A (ko) 2023-02-14
US20210390729A1 (en) 2021-12-16
US11810316B2 (en) 2023-11-07
EP4165599A2 (en) 2023-04-19
US11335022B2 (en) 2022-05-17
WO2021252201A2 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
CN115956255B (zh) 使用广角成像设备的3d重建
US20220284656A1 (en) Semantic texture mapping system
CN113383369A (zh) 身体姿势估计
CN111344745A (zh) 动画化的聊天呈现
CN112041891A (zh) 增强表情系统
KR102506738B1 (ko) 눈 텍스처 인페인팅
KR20230107844A (ko) 개인화된 아바타 실시간 모션 캡처
KR20230107655A (ko) 신체 애니메이션 공유 및 재혼합
CN113892096A (zh) 动态媒体选择菜单
CN115698907A (zh) 共享增强现实系统
KR20230072495A (ko) 로케이션을 공유하기 위한 사용자 아바타를 포함하는 증강 현실 콘텐츠 아이템들
CN114786786A (zh) 使用先前帧进行骨骼跟踪
CN115917600A (zh) 基于纹理的姿势验证
US11151408B2 (en) Occlusion detection system
CN115335820A (zh) 用于大规模增强现实的位置映射
US20220101361A1 (en) Augmented reality content items to track user activity and redeem promotions
CN115769260A (zh) 基于光度测量的3d对象建模
KR20230031915A (ko) 카메라 사용자 인터페이스에 대한 서드-파티 수정들
KR20230031921A (ko) 콘텐츠를 발생시키기 위한 카메라 사용자 인터페이스
CN115885247A (zh) 用于启动应用的视觉搜索
CN113966525A (zh) 基于位置的增强现实系统
KR20230027237A (ko) 2d 이미지들로부터의 3d 객체 모델 재구성
KR20230021753A (ko) 외향 디스플레이를 갖는 스마트 안경
WO2023220163A1 (en) Multi-modal human interaction controlled augmented reality
US20240029346A1 (en) Single image three-dimensional hair reconstruction

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
GR01 Patent grant
GR01 Patent grant