CN107646126B - 用于移动设备的相机姿态估计 - Google Patents
用于移动设备的相机姿态估计 Download PDFInfo
- Publication number
- CN107646126B CN107646126B CN201680025894.7A CN201680025894A CN107646126B CN 107646126 B CN107646126 B CN 107646126B CN 201680025894 A CN201680025894 A CN 201680025894A CN 107646126 B CN107646126 B CN 107646126B
- Authority
- CN
- China
- Prior art keywords
- feature points
- image
- image frame
- pose
- camera pose
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/61—Control of cameras or camera modules based on recognised objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Studio Devices (AREA)
Abstract
描述了用于估计相机姿态的系统和方法。该估计可以包括获得包括场景的多个图像帧的图像序列,检测第一图像帧中的第一特征点集,并且在多个后续的图像帧中跟踪第一特征点集。在继续跟踪第一特征点集的同时,该估计可以包括检测第二图像帧中的第二特征点集,跟踪第二特征点集,选择与第一图像帧相关联的第一初始相机姿态和与第二图像帧相关联的第二初始相机姿态,确定投影位置,该投影位置是基于第一初始相机姿态和第二初始相机姿态,以及将与第一特征点集和第二特征点集中的每个特征点相对应的投影位置进行比较。
Description
相关申请的交叉引用
本申请要求于2015年7月16日提交的标题为“Camera Pose Estimation forMobile Devices(用于移动设备的相机姿态估计)”的美国专利申请序列号No.62/193,321的优先权和权益,其公开内容通过引用并入本文。
技术领域
本说明书大体涉及姿态估计。具体地,本说明书涉及当生成用于在虚拟现实(VR)环境中显示的3D立体图像时估计相机姿态度量。
背景技术
在图像中观察到的对象的取向和位置的组合通常被称为对象的姿态。对象的姿态可关于对象相对于坐标系的位置或取向来引用。通常,坐标系可用于参考旋转和平移变换来描述姿态。
发明内容
一个或多个计算机的系统可以被配置为依靠在系统上安装在操作中使得该系统执行动作的软件、固件、硬件、或它们的组合来执行特定的操作或动作。一个或多个计算机程序可以被配置为依靠包括在由数据处理装置执行时使得该装置执行动作的指令来执行特定的操作或动作。
在一个一般的方面,一种计算机实现的方法包括获得包括场景的多个图像帧的图像序列,检测第一图像帧中的第一特征点集,在多个后续的图像帧中跟踪第一特征点集,并且在继续跟踪第一特征点集的同时,检测第二图像帧中的第二特征点集,在多个后续的图像帧中跟踪第二特征点集,并且选择与第一图像帧相关联的第一初始相机姿态和与第二图像帧相关联的第二初始相机姿态。该方法也可以包括确定与第一特征点集和第二特征点集中的每个特征点相对应的多个投影位置,其中投影位置至少部分地基于第一初始相机姿态和第二初始相机姿态。该方法也可以包括:将与第一特征点集中的每个特征点和第二特征点集中的每个特征点相对应的投影位置和对应的所跟踪的第一特征点集和所跟踪的第二特征点集进行比较,以及响应于确定投影位置满足与所跟踪的第一特征点集和所跟踪的第二特征点集相关联的预定义阈值,该方法可以包括针对第一图像帧和第二图像帧生成更新的相机姿态。该方面的其它实施例包括对应的计算机系统、设备以及记录在一个或多个计算机存储设备上的计算机程序,其均被配置来执行所述方法的动作。
实施方式可以包括以下特征中的一个或多个。该计算机实现的方法进一步包括:至少部分地基于确定投影位置满足预定义阈值来为第一图像帧和第二图像帧提供更新的相机姿态。在该计算机实现的方法中,选择第一初始相机姿态和第二初始相机姿态包括:获得与多个图像帧中的每个图像帧相关联的陀螺仪数据,并且使用与第一图像帧相关联的陀螺仪数据来估计与第一特征点集相对应的姿态。该计算机实现的方法进一步包括使用与第二图像帧相关联的陀螺仪数据估计与第二特征点集相对应的姿态。在该计算机实现的方法中,所述陀螺仪数据至少包括与捕获了多个图像帧的移动设备相关联的旋转的原始估计,并且所述陀螺仪数据用于估计与每个图像帧相关联的姿态和图像取向。
在一些实施方式中,该计算机实现的方法也可以包括确定与第一特征点集和第二特征点集中的每个特征点相对应的多个投影位置,该确定包括针对每个特征点,将位置数据和取向数据耦合,选择至少一个约束并且将所述约束应用于所耦合的位置数据和取向数据,以及估计相机姿态,以及向拼接模块提供与每个特征点相关联的更新的相机姿态,其中,拼接模块被配置为基于估计的相机姿态来拼接多个图像帧以生成场景的3D图像。
在一些实施方式中,该方法可以包括等距轨道约束或同心光轴约束中的至少一个约束。在该计算机实现的方法中,约束被选择来将姿态估计算法的搜索空间从六个自由度减少到四个自由度。在该计算机实现的方法中,该图像序列是用移动设备捕获的。在该计算机实现的方法中,多个投影位置对应于捕获了多个图像帧的移动装置的投影中心。所描述的技术的实现可以包括硬件、方法或过程、或者计算机可访问介质上的计算机软件。
在另一个一般的方面,描述了一种系统,所述系统包括一个或多个计算机,其被配置为依靠在该系统上安装在操作中使得该系统执行动作的软件、固件、硬件或其组合来执行特定的操作或动作。一个或多个计算机程序可以被配置为依靠包括在被数据处理装置执行时使得该装置执行动作的指令来执行特定的操作或动作。该系统可以包括在移动计算设备上执行的计算机实现的系统。该系统可以包括具有至少一个处理器的姿态估计模块,该至少一个处理器被配置成为图像序列估计相机姿态。该姿态估计模块可以基于与用移动计算设备捕获图像序列相关联的非均匀的图像捕获路径来模拟均匀的图像捕获路径。
该系统也可以包括具有至少一个处理器的捆集(bundle)调整模块,该至少一个处理器被配置为访问图像序列的至少一部分并且调整该部分以用于在3D空间中渲染。该方面的其它实施例包括对应的计算机系统、装置、和记录在一个或多个计算机存储设备上的计算机程序,其均被配置为执行方法的动作。
该系统的实施方式还可以包括均匀的图像捕获路径,该路径具有在单个平面中并且维持在图像捕获路径中少于一个拐点的路径。该系统的实施方式进一步可以包括非均匀的图像捕获路径,该路径包括在多于一个平面中的路径或在图像捕获路径中具有两个或多个拐点的捕获路径。
实施方式可以包括以下特征中的一个或多个。所述系统,其中捆集调整模块被配置为校正图像序列的多个部分中的移动的偏差。该系统进一步包括拼接模块,其被配置为拼接图像序列的多个部分以生成3D场景。所描述的技术的实现可以包括硬件、方法或过程、或者计算机可访问介质上的计算机软件。
该方面的其它实施例包括对应的计算机系统、装置、和记录在一个或多个计算机存储设备上的计算机程序,其均被配置为执行所述方法的动作。
在下面的附图和描述中阐述了一个或多个实施方式的细节。通过该描述和附图以及通过权利要求书,其它的特征将会是显而易见的。
附图说明
图1是用于捕获图像并且估计相机姿态信息以供在3D虚拟现实(VR)环境中渲染该图像的示例系统的框图。
图2是描绘了使用移动设备捕获图像的示例捕获路径的示意图。
图3是描绘了由移动设备穿越的用于捕获场景的全景图像的示例捕获路径的示意图。
图4是图解估计移动设备的相机姿态的过程的一个实施例的流程图。
图5是可用于实现这里描述的技术的计算机设备和移动计算机设备的示例。
各附图中的相似附图标记指示相似的元素。
具体实施方式
以下公开内容描述了可以用于估计与移动设备相关联的相机姿态的多个技术。移动设备可以被配置为捕获并产生全向立体的全景图。例如,用户可以使用在移动设备上运行的应用来捕获场景的图像。该应用可以在捕获图像时接收图像,并开始估计每个图像的相机位置和相机取向信息(即相机姿态)。在一些实施方式中,接收的图像内容包括视频内容,并且该应用可以在图像捕获期间或之后估计帧或部分帧的相机姿态信息。该应用可以采用本公开中描述的算法使用捕获的图像内容来提供二维(2D)和/或三维(3D)的全景或全方位立体全景图像,并且估计与移动设备相关联的相机姿态信息。
可以使用本公开中描述的算法结合多个特定的约束来执行估计相机姿态。这样的约束作为独立的约束使用、组合使用、或者共同用于估计与移动设备相关联的相机姿态。通常,这里描述的算法可以用作通过将同一坐标系中的相机取向和相机位置信息耦合在一起来估计相机姿态。将相机取向信息与相机位置信息耦合可以减轻用于估计相机姿态的计算。通过将所述信息耦合,用于基于移动设备的全景捕获的捕获方法可以被比作使用坐标系中的球形轨迹来捕获图像内容。这样的捕获可以通过用户将移动设备保持在她手中并且在圆形路径中挥转(例如,移动)手臂(部分或完全伸展)来执行,该圆形路径可以通过穿过用户肩膀上方和下方以及在肩高处直接位于用户前方和后方的点形成。替选地,圆形路径可以朝向用户(例如,在她的头上方)或远离用户(例如,到用户头部的右方或左方)移动。拍摄期间可以使用该动作来收集场景的图像。在一些实施方式中,移动设备在捕获挥转期间的轨迹可以近似为球形轨迹,其中在拍摄期间移动设备上的相机的光轴近似穿过用户双眼之间的点。该捕获路径是一个示例路径,并且其它变动的或替选形状的路径也是可能的。
在一些实施方式中,用户可以在圆形路径(或基本圆形的路径或接近圆形的路径)中挥转(swing)(例如,移动)移动设备,以在挥转期间使用部分臂伸展或全臂伸展来捕获全景图像。挥转可以被比作是在用户身体的左侧或用户身体的右侧挥转的手臂圈。根据基于臂扩展并基于与移动设备相关联的取向的约束,可以将相机位置和相机取向进行耦合。例如,由于用户的手臂是有限的长度,并且无法进一步伸展,因此可以使用最大臂约束。可以利用以下来确定移动设备取向:(a)用户(例如,在捕获期间)正观看移动设备上的屏幕的假设,(b)来自陀螺仪的实际测量或(c)移动设备上的其它传感器。下面详细描述了具体的技术和约束。
图1是用于捕获图像并且估计相机姿态信息以用于在3D虚拟现实(VR)环境中渲染该图像的示例系统100的框图。在示例系统100中,可以使用移动设备102来捕获图像和/或视频并且通过网络104提供那些图像或视频,或者替选地,可以将图像直接提供给图像处理系统107以用于分析和处理。在系统100的一些实施方式中,图像处理系统107被设置为移动设备102的一部分。在其它实施方式中,图像处理系统107的一部分被设置在移动设备102上,同时图像处理系统107的其它部分被设置在另一个计算系统上。
移动设备102可以是可以用于捕获和/或获得图像数据的移动电话、电子平板计算机、膝上型计算机、相机、或其它这样的电子设备。在一些实施方式中,移动设备102可被配置为捕获静止的图像。在一些实施方式中,移动设备102可以被配置为捕获视频并且将这样的内容存储为各个帧或视频(例如.avi文件)的内容,并且这样的存储的图像可以被上传到互联网、另一个服务器或设备,或者本地存储在移动设备102上。在一些实施方式中,传入的图像可以被存储为编码的图像或编码的视频。通常,贯穿本公开描述的图像可以包括场景的多个连续或不连续的图像帧。在一些实施方式中,贯穿本公开描述的图像可以包括连续的图像集和非连续的图像集二者的组合。图像可以被捕获并且以二维或三维渲染。
在设备102的操作中,用户可以访问设备102上的相机(也可以称为捕获设备),将设备102保持在所选择的取向上,并且将设备102四轴摇移(pan)或扫掠以沿着捕获路径捕获图像。通常,沿着捕获路径将扫掠设备102四周扫掠来捕获图像可以包括:使用户围绕着绕其头部或身体(或身体的一部分)的圆形捕获路径(或具有另一种形状或轮廓的捕获路径)移动设备102。在这样的扫掠中,设备102可以远离用户向外定向并且指向风景,同时用户随着圆形捕获路径(或者另一种形状或轮廓的捕获路径)。在一些实施方式中,捕获路径可以被布置在单个平面内或者沿着单个平面对准,可以是弯曲的,可以具有线性部分,和/或可以具有一个或多个不连续性等等。在一些实施方式中,捕获路径可以具有布置在多于一个平面内或沿着多于一个平面对准的部分。当扫掠路径(例如,捕获路径)并捕获图像时,移动设备102可以接收修改特定捕获配置的指示。捕获配置可以包括但不限于移动设备姿态/捕获位置/角度/俯仰/滚转、视野、用于照明/曝光的相机设置、水平或垂直的倾斜或扭曲、相机捕获扫掠速度等。
一旦图像被捕获,图像处理系统107(或移动设备102)可以在图像上执行多个处理来生成可以通过网络104提供给头戴式显示器(HMD)设备110的用于渲染的全景图像。在一些实施方式中,图像处理系统107还可以将经处理的图像提供给移动设备102和/或计算设备112,以用于姿态估计、渲染、存储、或进一步处理。
如图1所示,图像处理系统107包括姿态估计模块116、捆集调整模块118、拼接模块120、和渲染模块122。姿态估计模块116可以被配置为估计与捕获全景图像的移动设备上的捕获设备相关联的姿态。具体地,姿态估计模块116可以被配置为针对特定的全景拍摄会话来确定与移动设备上的捕获设备相关联的可能位置、取向、和焦距。位置、取向、和焦距可以被用作向由姿态估计模块116执行的姿态估计模型的输入。在一些实施方式中,捆集调整模块118是姿态估计模块116的一部分。
通常,通过将对象上的任何参考点的三个线性位移坐标(x,y,z)和三个倾斜角(即,欧拉角(θ,ψ))进行组合可以表达对象的姿态信息,该姿态信息可以描述对象的俯仰、偏转和滚转。因此,可以使用位于3D环境中的不变对象/特征来测量3D环境的绝对相机姿态。在一些实施方式中,绝对姿态是用绝对姿态数据(θ,ψ,x,y,z)来表达的,该绝对姿态数据(θ,ψ,x,y,z)表示相对于诸如例如世界原点的参考位置以世界坐标(X0,Y0,Z0)表达的欧拉旋转对象坐标。还支持用于在3D空间中表达姿态数据并且表示所有的六个自由度(即三个平移自由度和三个旋转自由度)的其它惯例。因此,贯穿本公开,将使用用于表达估计的相机姿态信息的类似惯例。
姿态估计模块116可以使用一个或多个约束124来估计特定图像的姿态。当利用移动设备捕获全景图像时,所使用的可用资源(例如,存储器资源、计算资源、和捕获配置限制)可以促使这样的约束124。即,存储器和计算资源可能受到移动设备图像捕获活动的限制,并且因此,姿态估计模块116可以采用一个或多个约束和技术来减轻移动设备102上的计算负担,同时仍然提供立体3D图像。在一些实施方式中,使用约束124可以用于减少用于估计姿态的任何算法的搜索空间,使得估计可以是鲁棒的,但在计算上是节省的。在一个示例中,用于本文描述的姿态估计算法的搜索空间可以从六个自由度降低到四个自由度或三个自由度。例如,如果存在N个图像并且姿态估计模块116被配置为没有约束地起作用,则自由度[DoF]的数目可以是6*N。如果单独使用同心光轴约束128,则DoF从6*N减小到4*N个DoF。如果使用等距轨道约束126,则DoF可以从6*N DoF减少到3*N+3DoF。如果使用同心光轴约束128和等距轨道约束126二者,则DoF可以减小到3*N+1DoF。
在一些实施方式中,系统100可以基于两个模型约束来采用规则、假设、和/或约束124。例如,姿态估计模块116可以使用基于等距轨道约束126的模型来估计移动设备102的相机姿态。当用户绕捕获路径挥转手臂时,等距轨道约束126表示受限的圆形轨道。因为在捕获期间用户的手臂长度将不会超过最大限制,所以该约束126确保捕获路径行进的轨道与中心点等距。因此,例如如果用户挥转弯曲的臂,则圆形路径可被约束到用户的手臂长度的最大值或略小于手臂长度。限制路径可以提供减轻由移动设备102估计特定影像的相机姿态所使用的计算需求的优点。
在另一示例中,姿态估计模块116可以使用基于同心光轴约束128的模型来估计相机姿态。同心光轴约束128表示用户可以在圆形路径中挥转任何具有相机的移动设备并且这样做使得相机的光轴将穿过世界原点(X0,Y0,Z0)的假设。类似地,如果使用多个相机(即,在被配置为执行相同的圆形挥转运动的相机装备上),则装备上的所有相机可具有穿过世界原点(X0,Y0,Z0)的光轴。可以进一步限定该约束128,这是因为当利用移动设备102捕获全景图像时,设备102可以绕用户的头部旋转,并且光轴大致穿过两只眼睛的中心。
在系统100的操作中,等距轨道约束126和同心光轴约束128可以一起使用或独立使用,从而导致以下的示例组合。在一个非限制性示例中,姿态估计模块116可以组合使用等距轨道约束126和同心光轴约束128。在该示例中,移动设备上的中心位置(即,移动设备102机上的捕获设备)可以由用户操纵以在圆形(例如,球形)路径上旋转,并且因此,姿态估计模块116可以估算在球体上旋转的装置102的中心,其中装置102的光轴穿过世界原点(X0,Yo,Zo)。
在另一个非限制性示例中,姿态估计模块116可以使用等距轨道约束126,而不使用同心光轴约束128。在该示例中,设备102的大致中心可被建模为在球体上旋转,其中设备102的光轴可以不穿过该球体的中心。
在另一个非限制性示例中,姿态估计模块116可以使用同心光轴约束128,不使用等距的轨道约束126。在该示例中,移动设备102可被建模为在球体上旋转,其中光轴穿过世界原点(X0,Y0,Z0),但是到世界原点的距离可能会有所不同。单独使用同心光轴约束128可以提供能够被拼接到立体全景影像中的图像输出。
在又一个非限制性示例中,姿态估计模块116可以不使用等距轨道约束126也不使用同心光轴约束128。在该示例中,移动设备102可以在没有受约束的轴或捕获路径的情况下自由地移动,然而,姿态估计可能是耗时的。
参考图1,捆集调整模块118可以被配置为从一个或多个相机(例如,移动设备102)接收捕获的内容(例如,视频或图像帧),并且可以估计可以与捕获的内容相关联的相机姿态。捆集调整模块118可以访问图像帧的一部分(例如,捆集)并且调整该帧以供在3D空间中渲染。在一些实施方式中,捆集调整模块118可用于校正多个捆集中的相机姿态或移动的偏差,并且经校正的捆集可以被拼接在一起以生成3D全景图像。
在操作中,捆集调整模块118可以检索或选择图像帧捆集。该图像帧捆集可以表示可能或可能不按顺序的图像集。模块118可以从图像帧的捆集中检测第一帧中的第一特征点集。然后,例如,模块118可以在回放期间在后续帧中跟踪第一特征点集。当在各帧中跟踪第一特征点集时,模块118可以检测当帧的序列被滚动(或播放)时可能进入视图中的新特征。例如,新特征可以由第二帧中的第二特征集来表示。除了跟踪第一特征集之外,模块118还可以跟踪新特征(即,第二特征集)。
在一些实施方式中,图像处理系统107可以被安装在移动计算设备上。除其他以外,系统107还可以包括姿态估计模块116和捆集调整模块118。姿态估计模块116可以包括被配置成为图像序列估计相机姿态的至少一个处理器。该姿态估计模块可以基于与利用移动计算设备捕获图像序列相关联的非均匀的图像捕获路径来模拟均匀的图像捕获路径。
均匀的图像捕获路径可以指代在捕获期间图像捕获设备遵循的相对平滑的捕获路径。在一些实施方式中,均匀的图像捕获路径可以指代保持在围绕形状的单个平面中的路径,而没有尖锐的转弯或拐点。这样的示例包括圆、椭圆、或者其中半径保持恒定或半恒定的类似形状。在一些实施方式中,均匀的图像捕获路径包括单个平面中的路径,其中该路径在图像捕获路径中保持小于一个拐点。
不均匀的图像捕获路径可以指代沿着图像采集设备在捕获过程中遵循的捕获路径的锯齿状的和平滑的移动的组合。在一些实施方式中,非均匀的图像捕获路径可以指代多个平面中的路径。在一些实施方式中,不均匀的图像捕获路径包括在图像捕获路径中具有两个或多个拐点的捕获路径。
捆集调整模块118可以包括至少一个处理器,其被配置为访问图像序列的至少一部分以调整该部分以例如用于在3D空间中渲染。在一些实施方式中,捆集调整模块118被配置为校正图像序列的多个部分中的移动偏差。在一些实施方式中,系统107还可以包括拼接模块,其被配置为拼接图像序列的多个部分以生成场景的3D图像。例如,拼接模块可以访问估计的姿态以将场景改写为与最初捕获该场景不同的姿态。该不同的姿态可以纠正任何数目的内容,包括但不限于误差、用户配置、显示配置、用户捕获错误、以及照明等。
在一些实施方式中,系统100可以跟踪和存储例如来自移动设备的陀螺仪数据。该陀螺仪数据可以关于特定的图像帧和/或特征点,并且可以包括在每个特定帧的捕获期间与移动装置相关联的相机旋转的原始估计数据。例如,这样的数据可用于估计与移动设备102相关联的相机姿态的初始估计。使用该初始估计,系统100可以配置优化过程的目标函数。此外,系统100可以将变量配置为对目标函数的输入,以包括a)跟踪的特征点的3D位置,以及b)针对每个捕获的帧的相机位置和取向(例如,从陀螺仪数据或其它传感器或对设备102的输入取回)。系统100可以利用跟踪的特征点的目标函数和3D位置来生成更新的估计。在一些实施方式中,系统100可以使用相机姿态的预定义初始估计来代替陀螺仪数据。可以关于校正场景中的3D特征点到场景中的2D特征点的映射的相机姿态使用相机姿态并结合使用场景中的对象的几何测量来计算初始估计。该初始估计可以由系统100定义以用作实际的相机姿态,直到系统100可以执行额外的估计步骤来计算相机姿态。
目标函数可以被配置为将帧从第一图像平面投影到第二图像平面中。该投影可用作确定3D特征点中的任何误差。目标函数可以用于使用估计的初始相机姿态信息来投影图像帧中的每一个的特征点的3D位置,以找到表示3D特征点的一个或多个假想投影位置。可以将该假想投影位置与系统100已跟踪的特征点位置进行比较。从该比较中,通过评定假想投影位置和跟踪的特征点之间的差异可以确定与特定特征点相关联的误差。一旦确定了误差,系统100就可以将与特定捆集中的所有特征点相关联的所有误差进行求和,以生成目标函数。通常,系统100可以重复初始估计过程,以尝试最小化目标函数,并且进而减少和与特定特征点相对应的姿态相关联的误差。例如,系统100可以针对3D位置来搜索最小化目标函数的一个或多个相机姿态(即,位置和取向)。目标函数可用于确定准确的相机姿态,以与每个图像捆集相关联。对于每个捆集,利用多个估计的相机姿态来应用目标函数的结果使得能够产生准确无失真的全景场景。
在一些实施方式中,捆集调整模块118可以与姿态估计模块116组合使用,以估计针对特定捕获路径中的一部分帧来估计相机姿态。通常,用在捆集调整模块118中的帧可以被编码为视频以优化性能和回放。由捆集调整模块118执行的捆集调整可以包括选择待在其中执行优化调整的图像内容内的帧的一部分(即,捆集)。捆集调整模块118可以例如从姿态估计模块116接收估计的相机姿态信息,并且对于捆集中的每个帧,模块118可以使用估计的相机姿态信息对捆集中的帧执行路线优化(course optimization)。该路线优化可用于将捆集中的帧拼接在一起(即,使用拼接模块120)。可以从捕获的图像内容内的帧生成任何数目的捆集。姿态估计模块116可以估计每个捆集中的一个或多个帧的姿态,并且捆集调整模块118和拼接模块120可以使用该估计来共同拼接全景场景。
在一些实施方式中,捆集调整模块118可以被配置为在捕获后校正图像。例如,在捕获图像之后,模块118可以补偿相对于相机轨迹的非圆形相机轨迹或扫掠、非平行的主(相机)轴、和/或相对于相机轨迹的不正确的观察方向,仅举数例。
再次参考图1,拼接模块120可以被配置为混合或者拼接来自若干图像帧的像素列,以移除伪像并且提供无失真的立体图像。示例伪像包括由于曝光不良(或从图像帧到图像帧的曝光变化)而造成的伪像和/或由于基于与移动设备相机相关联的姿态的未对准误差而造成的伪像。在一些实施方式中,模块120可以在两列像素之间混合附加的内容,以提供图像帧中缺失的内容。在其它实施方式中,模块120可以在两列之间混合附加的内容,以移除图像帧中的伪像。
在一些实施方式中,拼接模块120可以被配置为通过校正在图像捕获期间发生的横滚移动来调整捕获的图像以供渲染在3D空间中。在一些实施方式中,拼接模块120可以被配置为通过校正在图像捕获期间发生的非共形的相机弧形移动来调整捕获的图像以供渲染在3D空间中。在一些实施方式中,拼接模块120可以被配置为通过校正在图像捕获期间发生的不一致的半径测量(与捕获路径相关)来调整捕获的图像以供渲染在3D空间中。
在一些实施方式中,拼接模块120可以确定将哪些列拼接(例如,混合)在一起。例如,模块120可以分析所捕获的图像数据以确定图像之间的至少一个重叠。该重叠可以包括例如来自图像的匹配的像素列或区域。对于发现的每个重叠,模块120可以选择匹配像素的一部分并将它们进行组合,使得每个部分被垂直对准。例如,垂直对准的像素可以被组合,以生成3D场景的一个片段。在没有检测到重叠的事件下,拼接模块120可以生成将在图像之间混合的附加图像内容。例如,拼接的内容可以渲染在头戴式显示器中以供在VR环境中显示内容。
在一些实施方式中,拼接模块120可以被配置为基于利用移动设备102获得的图像来生成3D立体图像。拼接模块120可以被配置为混合来自多个图像部分的像素和/或图像条。在一些实施方式中,混合可以基于由图像插值组件(未示出)确定的流场。例如,拼接模块120可以被配置为确定相邻图像中的相关像素之间的流场(和/或流向量)。流场可以被用于补偿图像已经历的变换,并且用于处理已经历变换的图像。例如,可以使用流场来补偿捕获图像的特定像素网格的变换。在一些实施方式中,模块120可以通过对周围图像的插值来生成不是所捕获图像的一部分的一个或多个图像,并且可以将所生成的图像交织到所捕获的图像中,以生成适于在VR环境中进行显示的场景的附加虚拟现实内容。
在一些实施方式中,系统100可以考虑使用深度、对准、和颜色校正来交织生成的图像以填充任何视觉间隙。例如,拼接模块120可以被配置为在特定场景中跨所有拼接元素来调整全局颜色校正。此外,当将图像帧拼接在一起时,系统100可以使用估计的相机姿态信息和图像像素数据来调整颜色。系统100还可以生成与其它图像数据颜色匹配的图像数据,并且可以将生成的图像数据拼接到其它图像数据中。在一些实施方式中,系统100可以从多个不同图像中确定深度数据,并且可以使用深度信息来将不同的图像拼接成立体的虚拟现实视频。
在一些实施方式中,拼接模块120可以通过调整特定的图像来估计光流。调整可以包括:例如纠正图像的一部分,确定与图像的该部分相关联的估计的相机姿态,以及确定该部分中的图像之间的流。在一些实施方式中,拼接模块120接收描绘特定捕获路径的多个扫掠的图像,以捕获场景中的图像。与捕获路径的多个扫掠相对应的图像可以被拼接在一起,以形成场景的3D立体视图。
一旦图像被适当地调整和拼接,则渲染模块122可以将图像渲染为从虚拟视点提供的外观真实的场景。例如,模块122可以渲染由移动设备捕获的图像的集合,并且例如基于这些图像向HMD设备110中的用户提供虚拟现实内容。渲染的场景可以基于在单个圆形扫掠、部分扫掠、场景的多个扫掠中、和/或在多个姿态位置处捕获的图像。
在一些实施方式中,移动设备102可用作图像处理系统107。例如,在利用设备102捕获的特定图像的组合没有提供准确的3D立体场景的情况下,相同的设备102可以在这样的图像上执行处理,以改善或校正任何随后生成的3D立体场景的精度及渲染。特别地,移动设备102可以被配置成具有图像处理系统,以使用姿态估计和流场来优化捕获的图像来提供用于在VR环境中呈现的场景的准确渲染。
在一些实施方式中,优化可以包括将特定的图像帧拼接在一起。例如,在捕获图像期间,移动设备102可以确定每个捕获的图像帧中的哪些像素列可以被拼接在一起。移动设备102可以分析图像帧,以确定其中拼接将提供衔接场景的特征点/像素列。对于移动设备102选择的用于拼接的每个点/列,设备102可以捕获点/列的放置数据,并且可以将适当的点/列线性地共同拼接成最终的图像。这样的优化可用作校正曝光不一致、校正相机未对准/姿态误差、和/或校正丢失的图像帧。
在本公开中描述的实施方式可以提供一个或多个优点。例如,本文描述的方法和系统可以使用与移动设备上的相机相关联的有限视野,以通过将来自场景的多个捕获事件的内容拼接在一起来产生3D全向立体图像。另外,本文描述的方法和系统可以确保场景中的特定内容或角度通过估计相机姿态并且根据所估计的相机姿态来调整捕获的图像而被正确地捕获。
在一些实施方式中,可以使用多个移动设备来捕获场景的图像。例如,移动设备102可以是布置在相机装备(未示出)上的用于捕获特定场景的附加图像的许多移动设备之一。例如,这样的相机装备可以被配置以供用作图像捕获装置和/或处理装置,以收集用于在VR环境中渲染内容的图像数据。该装备可以包括配置有视频相机、图像传感器、和/或红外相机的移动设备,以及处理捕获的图像的处理电路。图像处理系统107可以估计相机装备(未示出)上的任何或所有设备的相机姿态,以用于将设备捕获的图像或视频的部分拼接在一起。
在示例系统100中,HMD设备110可以表示能够显示虚拟现实内容的虚拟现实头戴式送受话器、眼镜、目镜、或其它可穿戴设备。在操作中,HMD设备110可以执行VR应用(未示出),该应用可以向用户回放接收的和/或处理的图像。在一些实施方式中,VR应用可以由图1中所示的设备102、106或112中的一个或多个托管。在一个示例中,HMD设备110可以提供由移动设备102捕获的场景的静态表示和/或视频回放。通常,该回放可以包括被拼接到3D立体和全景场景中的图像,其为用户提供场景的真实观看。
在示例系统100中,设备106和112可以是膝上型计算机、台式计算机、移动计算设备、或游戏控制台。在一些实施方式中,设备106和112可以是能够被放置和/或以其它方式定位在HMD设备110附近或内部的移动计算设备。例如,该移动计算设备可以包括可用作HMD装置110的屏幕的显示设备。设备102、106和112可以包括用于执行VR应用的硬件和/或软件。此外,当设备102、106和112可以包括硬件和/或软件,其在这些设备被放置在HMD设备110的前方或者被保持在相对于HMD设备110的位置范围内时,能够辨识、监视、和跟踪HMD设备110的3D移动。在一些实施方式中,设备102、106和112可以通过网络104向HMD设备110提供附加的内容。在一些实施方式中,设备102、106、110和112可以通过网络104配对或连接来被连接到彼此中的一个或全部/与彼此中的一个或全部对接。该连接可以是有线的或无线的。网络104可以是公用通信网络或专用通信网络。
系统100可以包括电子存储。该电子存储可以包括电子存储信息的非暂时性存储介质。该电子存储可以被配置为存储捕获的图像、获得的图像、预处理的图像、后处理的图像等。可以对利用所公开的相机或设备中的任何一个所捕获的图像进行处理,并且将其存储为一个或多个视频流,或存储为各个帧。在一些实施方式中,存储可以发生在捕获期间,并且渲染可以直接发生在捕获部分图像之后,以使得能够比捕获和处理同时发生时更早地访问立体的图像内容。
图2是描绘用于使用移动设备102(例如,移动设备204a-c)捕获图像的一个示例捕获路径202的图。这里所示的移动设备204a-c表示当用户206以圆形运动挥转她的手臂以遵循路径202时,处于绕捕获路径202的三个位置处的设备102。可以使用上面例如参考图1描述的多个约束来对捕获路径202建模。如示出的,捕获路径202的形状大约为圆形的。在一些实施方式中,捕获路径202可以是圆形的、半圆形的、部分圆形的、椭圆形的或者处于用户206的臂长内的其它变体形状。
如上所述,捕获资源可以被绑定到特定的用户捕获技术和移动。例如,在捕获期间,当用户挥转她的手臂以捕获场景的全景视图(例如,图像)时,移动设备(例如,移动设备102)的轨迹可以被近似为球形轨迹,其中设备102上的相机光轴近似在用户双眼之间的点处穿过。在整个轨迹中,用户可能无意地倾斜、旋转、或以其它方式修改她的移动设备(例如,204a)。这些修改可能使姿态估计变得困难。因此,与本文描述的估计技术相关联的约束可用于从未知的或未预期的用户驱动的相机轨迹中模拟和/或估计稳定的相机捕获路径。这样的约束可以提供使用最小计算资源进行姿态估计的紧凑参数化的优点,同时能够实现更快的重建,并且显著地稳定姿态估计。约束还可以提供确保任何后续的图像处理和渲染任务比传统的用于移动设备的全景拍摄和姿态估计在计算上更少的优点。
图3是描绘移动设备304所经过的用以捕获场景300的全景图像的示例捕获路径302的图。在该示例中,用户可以使用设备304上的搭载相机主动地捕获场景300的视图。部分场景在捕获正在发生时显示在设备304屏幕上。当用户将设备304跨场景300上扫掠时,可以用新的风景来更新屏幕。
在所描绘的示例中,用户将移动设备304保持在垂直(例如,纵向(portrait))取向并且使设备304沿着捕获路径302进行扫掠。在一些实施方式中,设备304可以被水平地保持(例如,处于横向(landscape)取向中)或被保持在x-y-z平面306中的任何地方,以捕获面向与移动设备304相关联的相机的场景。用户可以通过在部分圆圈、半个圆圈或整个圆圈中扫掠她的手臂或者移动她的整个身体在她的身体周围绕着圆形的路径进行扫掠。用户可以使移动设备304以变化的速度移动并且可以在扫掠中改变速度。通常,用户可以使设备绕原点308进行扫掠,该原点在一些示例中可以表示世界原点(X0,Y0,Z0)。
在一个非限制性示例中,捕获路径302可以被表示为球形空间的表面,其中当利用搭载相机捕获图像时,移动设备304可以围绕路径302进行扫掠。捕获图像可以对应于通过对准移动设备304以穿越捕获路径302来利用设备304记录图像内容。
以下描述包括可以与上面图1中描述的等距轨道约束126和同心光轴约束128二者一起使用的多个定义的变量和等式。所述变量包括:[k]表示相机,[X_k]表示相机[k]的像素位置,[P]表示相机[k]正在捕获的世界中的投影310或点,[R_k]表示相机的旋转,并且[T_k]表示相机平移变换。所述变量还包括:[O_k]表示[R_k]*[T_k]的负取逆,其表示相机[k]的相机中心处的位置。变量另外还包括:矩阵[C]表示3×3相机内参数矩阵,其中[X_k]等于[x_k;y_k;1],其表示相机[k]中[P]310的投影的x-y像素位置。矩阵[C]可以包含相机焦距数据、偏斜因子数据、像素宽高比数据、和主点作为元素。矩阵[C]可以用作将场景中的3D点位置映射到图像中的2D像素坐标。在一些实施方式中,模型可以写成[X_k]=[C]*[R_k]*([P]-[O_k]),或者替选地写成[X_k]=[C]*[R_k]*[P]+[T_k]。可以使用约束的多个组合来应用该模型。以下示例可以由图像处理系统107和姿态估计模块116选择性地实现,以估计与相机[k]相关联的相机姿态。
在一个非限制性的示例中,姿态估计模块116可以使用等距轨道约束126来估计相机姿态。例如,姿态估计模块116可以定义:所有的相机[k]共享用于所有相机[k]n的相机平移变换的相同平移向量(即,[T_k]=[T_0]。尽管在这个示例中平移向量是相同的,但对于[T_k]中的每一个,相机中心位置[O_k](其等于[R_k]*[T_0]的负取逆))仍然可以彼此不同。但是,当使用等距轨道约束时,所有的相机[k]中心可以被认为是被约束在球面上。这种约束通常源自于基于用户的通过扫掠她的手臂来捕获图像全景集的运动,并且这样做使得她手中的移动设备304的位置可以被假定为基本上在球体上旋转。
在一个非限制性的示例中,姿态估计模块116可以使用同心光轴约束128来估计相机姿态。例如,当使用同心光轴时,只有每个平移[T_k]的z轴分量可以不为零。即,[T_k]=[0;0;t_k]。同心光轴约束128可以限定任何或所有的相机光轴穿过世界原点308。
图4是图解估计移动设备的相机姿态的过程400的一个实施例的流程图。在各个实施例中,过程400可以由诸如图1和图5的那些系统的系统使用或产生。在一些实施方式中,过程400在移动设备上执行。在一些实施方式中,过程400在除移动设备之外的计算设备上执行。
框402图示出了在一个实施例中,系统100可以获得图像序列。该图像序列可以利用移动设备102捕获,并且可以从设备102或另一个计算设备或存储设备获得。图像序列可以包括场景的任何或所有部分的多个图像帧。
在框404中,系统100可以检测第一图像帧中的第一特征点集并且在多个后续的图像帧中跟踪该第一特征点集。例如,当图像序列被呈现给计算设备(例如,在回放或编辑期间)时,系统100可以在特征点出现在回放期间并且在附加的帧和该特征点被呈现在计算设备上之后检测并跟踪它们。跟踪可以包括以这样的方式索引对象位置数据、姿态数据、和/或其它图像数据,使得系统100可以在稍后的时间取回数据以执行拼接和渲染任务。
在继续跟踪第一特征点集的同时,系统100可以检测第二图像帧中的第二特征点集。在框406处,系统100还可以跟踪多个后续图像帧中的第二特征点集。
在框408处,系统100可以选择与第一图像帧相关联的第一初始相机姿态和与第二图像帧相关联的第二初始相机姿态。第一和第二初始相机姿态可以对应于用移动设备102捕获的图像帧的位置和姿态信息的假设。例如,系统100可以确定用户正在挥转她的手臂同时保持移动设备102以捕获图像,并且在这样做时,她正在看移动设备102的屏幕。如果该用户正在看移动设备102的屏幕,则系统100可以确定可用于计算相机姿态信息的特定捕获角度。系统100可以使用该假设和/或其它约束来确定从移动设备102到场景中的对象的捕获路径和距离。
在一些实施方式中,选择第一初始相机姿态和第二初始相机姿态可以包括获得与多个图像帧中的每个图像帧相关联的陀螺仪数据,并且使用与第一图像帧相关联的陀螺仪数据来估计与第一特征点集相对应的姿态,并且使用与第二图像帧相关联的陀螺仪数据来估计与第二特征点集相对应的姿态。在一些实施方式中,陀螺仪信息可以至少包括与捕获多个图像帧的移动设备相关联的旋转的原始估计。在一些实施方式中,陀螺仪信息可以用于估计与每个图像帧相关联的姿态和图像取向。
在框410处,系统100可以确定与第一特征点集和第二特征点集中的每个特征点相对应的多个投影位置。世界坐标中的投影位置对应于在捕获特定特征点期间移动设备102上的相机的投影中心。例如,对于捕获第二图像帧的时间点,投影位置可以对应于与设备102相关联的投影中心。类似地,例如,对于捕获第二图像帧的时间点,投影位置可以对应于与设备102相关联的投影中心。可以至少部分地基于第一初始相机姿态和第二个初始相机姿态来计算投影位置。例如,计算投影可以包括:将投影变换为可应用于与移动装置102相关联的3D坐标系的透视图。
在一些实施方式中,确定与第一和第二特征点集中的每个特征点相对应的多个投影位置包括通过将位置数据和取向数据耦合来计算每个特征点的投影,使得使用耦合的对作为单个表示来计算姿态,而不是利用独立的姿态度量和独立的取向度量来计算姿态。确定多个投影位置的方法还可以包括选择至少一个约束并将该约束应用于第一和第二特征点集中的每个特征点的结合的位置数据和取向数据。例如,系统100可以单独应用等距轨道约束或同心光轴约束。在一些实施方式中,系统100可以以组合的方式应用等距轨道约束和同心光轴约束二者。在一些实施方式中,选择特定的约束作为减少用于本文描述的算法的搜索空间的一种方法。该减少可以包括将搜索空间从六个自由度减少到四个自由度。确定多个投影位置的方法还可以包括针对第一和第二特征点集中的每个特征点估计相机姿态。
过程400还可以包括向拼接模块提供与每个特征点相关联的估计的相机姿态,该拼接模块被配置为拼接多个图像帧以生成场景的3D图像。在一些实施方式中,过程400可以包括对由设备102捕获的所有图像帧中的所有特征点执行上述操作。在其它实施方式中,过程400可以包括对特征点的一部分和/或图像帧的一部分执行上述步骤。
在框412处,系统100可以将与第一特征点集中的每个特征点和第二特征点集中的每个特征点相对应的投影位置与对应的跟踪的第一和第二特征点集进行比较。该比较可以用于确定相机姿态中的误差,以便在稍后的时间改进用于拼接任务的图像内容。例如,使用该比较,可以通过评定假想的或初始的投影位置与跟踪的特征点之间的差异来确定与特定特征点相关联的误差。一旦确定了误差,系统100可以将与特定捆集中的对应特征点相关联的所有误差求和,以生成可拼接的图像内容块。
在框414处,系统100可以至少部分地基于确定投影位置是否满足与跟踪的第一和第二特征点集相关联的预定义阈值来为第一和第二图像帧提供更新的相机姿态。该预定义的阈值可以关于失真水平、视差要求、图像度量等。例如,系统100可以被配置为分析跟踪的第一和第二特征点集,以确保(使用预定义的失真水平)相关联的投影位置不会超过特定场景或图像的特定失真百分比。类似地,系统100可以被配置为确保(使用预定的视差阈值)投影位置不超过人的视差不适水平。这样的预定义阈值可以用作确保更新的相机姿态提供具有很少失真或没有失真的场景或图像,同时为人提供适当的视差。
图5示出了可以与这里描述的技术一起使用的通用计算设备500和通用移动计算机设备550的示例。计算设备500旨在表示各个形式的数字计算机,例如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片式服务器、大型主机、以及其它合适的计算机。计算机设备550旨在表示各个形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、以及其它类似的计算设备。这里所示的组件、它们的连接和关系、以及它们的功能仅仅是示例性的,并不意味着限制本文中描述和/或要求保护的发明的实现。
计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508以及连接到低速总线514和存储设备506的低速接口512。组件502、504、506、508、510和512中的每一个均使用各个总线互连,并且可以安装在公共主板上或视情况以其它方式安装。处理器502可以处理用于在计算设备500内执行的指令,包括在存储器504中或在存储设备506上存储的指令,以在诸如耦合到高速接口508的显示器516的外部输入/输出设备上显示用于GUI的图形信息。在其它实施方式中,可以视情况连同多个存储器以及多种类型的存储器一起使用多个处理器和/或多个总线。此外,可以连接多个计算设备500,其中每个设备提供必要操作的一部分(例如,作为服务器库、刀片式服务器群组、或多处理器系统)。
存储器504在计算设备500内存储信息。在一个实施方式中,存储器504是易失性存储器单元。在另一个实施方式中,存储器504是非易失性存储器单元。存储器504还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备506能够为计算设备500提供大容量存储。在一个实施方式中,存储设备506可以是或包含:计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其它类似的固态存储设备,或者包括存储区域网络中的设备或其它配置的设备阵列。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,其在被执行时执行诸如以上描述的方法的一个或多个方法。信息载体是计算机或机器可读介质,诸如存储器504、存储设备506、或者处理器502上的存储器。
高速控制器508管理计算设备500的带宽密集型操作,而低速控制器512管理较低带宽密集型操作。功能的这样的分配仅是示例性的。在一个实施方式中,高速控制器508耦合到存储器504、显示器516(例如,通过图形处理器或加速器)以及可接受各个扩展卡(未示出)的高速扩展端口510。在实施方式中,低速控制器512耦合到存储设备506和低速扩展端口514。可以包括各个通信端口(例如,USB,蓝牙,以太网,无线以太网)的低速扩展端口可以耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪、或者例如通过网络适配器耦合到诸如交换机或路由器的联网设备。
如图所示,计算设备500可以以多种不同形式来实现。例如,它可以被实现为标准服务器520,或者在这样的服务器的群组中多次实现。它也可以被实现为机架式服务器系统524的一部分。此外,它可以在诸如膝上型计算机522的个人计算机中实现。替选地,来自计算设备500的组件可以与诸如设备550的移动设备中的其它组件(未示出)组合。这样的设备中的每一个可以包含计算设备500、550中的一个或多个,并且整个系统可以由彼此通信连接的多个计算设备500、550组成。
计算设备550包括处理器552、存储器564、诸如显示器554、通信接口566、和收发器568的输入/输出设备以及其它组件。设备550还可以设有诸如微驱动器或其它设备的存储设备,以提供额外的存储。组件550、552、564、554、566、和568中的每一个都使用各个总线互连,并且若干个组件可以安装在公共主板上或者视情况以其它方式安装。
处理器552可以执行计算设备550内的指令,包括存储在存储器564中的指令。处理器可以被实现为包括单独的和多个模拟和数字处理器的芯片的芯片组。例如,处理器可以对设备550的其它组件的协调——诸如对用户界面的控制、由设备550运行的应用、以及由设备550进行的无线通信的控制。
处理器552可以通过耦合到显示器554的控制接口558和显示接口556与用户通信。显示器554可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其它适当的显示技术。显示接口556可以包括用于驱动显示器554向用户呈现图形和其它信息的适当电路。控制接口558可以从用户接收命令并将其进行转换以供提交给处理器552。此外,可以提供与处理器552通信的外部接口562,以实现设备550与其它设备的近区域通信。例如,外部接口562可以在一些实施方式中提供有线通信,或者在其它实施方式中提供无线通信,并且还可以使用多个接口。
存储器564存储计算设备550内的信息。存储器564可以被实现为计算机可读介质、易失性存储器单元、或非易失性存储器单元中的一个或多个。还可以提供扩展存储器574并且通过扩展接口572连接到设备550,扩展接口572可以包括例如SIMM(单列直插存储模块)卡接口。这样的扩展存储器574可以为设备550提供额外的存储空间,或者也可以存储设备550的应用或其它信息。具体地,扩展存储器574可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器574可以被设置为设备550的安全模块,并且可以用准许安全使用设备550的指令来编程。此外,可以经由SIMM卡连同附加信息来提供安全应用,诸如以不可非法侵入的方式将识别信息放置在SIMM卡上。
如下所述,存储器可以包括例如闪存和/或NVRAM存储器。在一个实施方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,其在被执行时执行诸如以上描述的那些方法中的一个或多个方法。信息载体是可以例如通过收发机568或外部接口562接收的计算机或机器可读介质,诸如存储器564、扩展存储器574、或处理器552上的存储器。
设备550可以通过通信接口566进行无线通信,通信接口566可以在必要时包括数字信号处理电路。通信接口566可以提供各个模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA 2000、或GPRS等。这样的通信可以例如通过射频收发器568发生。此外,可以诸如使用蓝牙、Wi-Fi、或其它这样的收发器(未示出)来发生短距离通信。此外,GPS(全球定位系统)接收器模块570可以向设备550提供附加的导航和位置相关的无线数据,该数据可以啥情况由在设备550上运行的应用使用。
设备550还可以使用音频编解码器560可听地通信,音频编解码器560可以从用户接收说出的信息并将其转换为可用的数字信息。音频编解码器560同样可以诸如通过例如设备550的送受话器中的扬声器为用户产生可听得见的声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等等),并且还可以包括在设备550上操作的应用生成的声音。
如图所示,计算设备550可以以多种不同形式来实现。例如,它可以被实现为蜂窝电话580。它也可以被实现为智能电话582、个人数字助理、或其它类似的移动设备的一部分。
这里描述的系统和技术的各个实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或其组合中实现。这些各个实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器、至少一个输入设备、和至少一个输出设备,所述可编程处理器可以是专用或通用处理器,其被耦合到存储系统、至少一个输入设备和至少一个输出设备以便从其接收数据和指令并且发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级程序和/或面向对象的编程语言和/或汇编/机器语言实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”指代向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指代用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术可以在计算机上实现,该计算机具有用于:用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学、语音、或触觉输入。
这里描述的系统和技术可以以以下实现:包括后端组件(例如,作为数据服务器)的计算系统,或包括中间件组件(例如,应用服务器)的计算系统,或包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该客户端计算机与这里描述的系统和技术的实施方式进行交互),或者包括这样的后端、中间件、或前端组件的任何组合。系统的组件可以通过数字数据通信(例如,通信网络)的任何形式或介质来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是依靠在相应计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的。
已经描述了许多实施例。然而,应当理解,在不脱离说明书的精神和范围的情况下,可以进行各种修改。
此外,附图中描绘的逻辑流程不需要以所示的特定顺序或连续顺序来实现期望的结果。此外,可以向所描述的流程中提供其它的步骤,或者可以从所描述的流程中消除步骤,并且可以将其它组件添加到所描述的系统中或从所描述的系统中移除。因此,其它实施例处于所附权利要求书的范围内。
根据示例性实施例,描述了用于估计相机姿态的系统和方法。该估计可以包括获得包括场景的多个图像帧的图像序列,检测第一图像帧中的第一特征点集,并且在多个后续的图像帧中跟踪第一特征点集。在继续跟踪第一特征点集的同时,该估计可以包括检测第二图像帧中的第二特征点集,跟踪第二特征点集,选择与第一图像帧相关联的第一初始相机姿态和与所述第二图像帧相关联的第二初始相机姿态,确定投影位置,投影位置是基于第一初始相机姿态和第二初始相机姿态的,并且将与第一和第二特征点集中的每个特征点相对应的投影位置进行比较。
在下文中,描述了根据本公开的系统和方法的进一步示例。
第一示例涉及一种计算机实现的方法,包括:获得包括场景的多个图像帧的图像序列;检测第一图像帧中的第一特征点集;在多个后续的图像帧中跟踪第一特征点集,并且在继续跟踪第一特征点集的同时:检测第二图像帧中的第二特征点集;在多个后续的图像帧中跟踪第二特征点集;选择与第一图像帧相关联的第一初始相机姿态和与第二图像帧相关联的第二初始相机姿态;确定与第一特征点集和第二特征点集中的每个特征点相对应的多个投影位置,投影位置至少部分地基于第一初始相机姿态和第二初始相机姿态;将与第一特征点集中的每个特征点和第二特征点集中的每个特征点相对应的投影位置和对应的所跟踪的第一特征点集和所跟踪的第二特征点集进行比较;以及响应于确定投影位置满足与所跟踪的第一和第二特征点集相关联的预定义阈值,针对第一图像帧和第二图像帧生成更新的相机姿态。
第二示例涉及根据第一示例的方法,还包括至少部分地基于确定投影位置满足预定义阈值来为第一图像帧和第二图像帧提供更新的相机姿态。
在基于第一或第二示例的第三示例中,选择第一初始相机姿态和第二初始相机姿态包括:获得与多个图像帧中的每个图像帧相关联的陀螺仪数据,并且使用与第一图像帧相关联的陀螺仪数据来估计与第一特征点集相对应的姿态。
第四示例涉及根据第三示例的方法,进一步包括使用与第二图像帧相关联的陀螺仪数据来估计与第二特征点集相对应的姿态。
在基于第三或第四示例的第五示例中,陀螺仪数据至少包括与捕获了多个图像帧的移动设备相关联的旋转的原始估计,并且陀螺仪数据用于估计与每个图像帧相关联的姿态和图像取向。
第六示例是基于第一至第五示例中的一个示例,其中,确定与第一和第二特征点集中的每个特征点相对应的多个投影位置包括:对于每个特征点:将位置数据和取向数据耦合;选择至少一个约束并将约束应用于所耦合的位置数据和取向数据;以及估计相机姿态;以及向拼接模块提供与每个特征点相关联的更新的相机姿态,所述拼接模块被配置为基于所估计的相机姿态来拼接多个图像帧以生成场景的3D图像。
第七示例是基于第六示例,其中,至少一个约束包括等距轨道约束或同心光轴约束。
第八示例是基于第六或第七示例中的一个示例,其中,所述约束被选择来将姿态估计算法的搜索空间从六个自由度减少到四个自由度。
第九示例是基于第一至第八示例中的一个示例,其中,该图像序列是由移动设备捕获的。
第十示例是基于第一至第九示例中的一个示例,其中,多个投影位置对应于捕获了多个图像帧的移动设备的投影中心。
第十一示例涉及一种系统,包括:至少一个处理器;存储指令的存储器,该指令在被至少一个处理器执行时使得系统执行操作,该操作包括:获得包括场景的多个图像帧的图像序列;检测第一图像帧中的第一特征点集;在多个后续的图像帧中跟踪第一特征点集,并且在继续跟踪第一特征点集的同时,检测第二图像帧中的第二特征点集;在多个后续的图像帧中跟踪第二特征点集;选择与第一图像帧相关联的第一初始相机姿态和与第二图像帧相关联的第二初始相机姿态;确定与第一特征点集和第二特征点集中的每个特征点相对应的多个投影位置,所述投影位置是至少部分地基于第一初始相机姿态和第二初始相机姿态;将与第一特征点集中的每个特征点和第二特征点集中的每个特征点相对应的投影位置与对应的所跟踪的第一特征点集和所跟踪的第二特征点集进行比较;以及响应于确定投影位置满足与所跟踪的第一和第二特征点集相关联的预定义阈值,针对第一图像帧和第二图像帧生成更新的相机姿态。
第十二示例是基于第十一示例,进一步包括至少部分地基于确定投影位置满足预定义阈值来为第一图像帧和第二图像帧提供更新的相机姿态。
第十三示例是基于第十一或第十二示例,其中选择第一初始相机姿态和第二初始相机姿态包括:获得与多个图像帧中的每个图像帧相关联的陀螺仪数据,并且使用与第一图像帧相关联的陀螺仪数据来估计与第一特征点集相对应的姿态。
基于第十三示例的第十四示例进一步包括使用与第二图像帧相关联的陀螺仪数据来估计与第二特征点集相对应的姿态。
在基于第十三或第十四示例之一的第十五示例中,陀螺仪数据至少包括与捕获了多个图像帧的移动设备相关联的旋转的原始估计,并且陀螺仪数据用于估计与每个图像帧相关联的姿态和图像取向。
在基于第十一至第十五示例之一的第十六示例中,确定与第一和第二特征点集中的每个特征点相对应的多个投影位置包括:对于每个特征点:将位置数据和取向数据耦合;选择至少一个约束并将约束应用于所耦合的位置数据和取向数据;以及估计相机姿态;以及向拼接模块提供与每个特征点相关联的更新的相机姿态,拼接模块被配置为基于所估计的相机姿态来拼接多个图像帧以生成场景的3D图像。
在基于第十六示例的第十七示例中,所述至少一个约束包括等距轨道约束或同心光轴约束。
在基于第十六或第十七示例的第十八示例中,所述约束被选择来将姿态估计算法的搜索空间从六个自由度减少到四个自由度。
在基于第十一至第十八示例之一的第十九示例中,该图像序列是用移动设备捕获的。
在基于第十一至第十九示例之一的第二十示例中,多个投影位置对应于捕获了多个图像帧的移动设备的投影中心。
Claims (20)
1.一种计算机实现的方法,包括:
获得包括场景的多个图像帧的图像序列;
检测第一图像帧中的第一特征点集;
在多个后续的图像帧中跟踪所述第一特征点集,并且在继续跟踪所述第一特征点集的同时:
检测第二图像帧中的第二特征点集;
在所述多个后续的图像帧中跟踪所述第二特征点集;
选择与所述第一图像帧相关联的第一初始相机姿态和与所述第二图像帧相关联的第二初始相机姿态;
确定与所述第一特征点集和所述第二特征点集中的每个特征点相对应的多个投影位置,相应所述投影位置至少部分地基于所述第一初始相机姿态和所述第二初始相机姿态;
将与所述第一特征点集中的每个特征点和所述第二特征点集中的每个特征点相对应的投影位置和对应的所跟踪的第一特征点集和所跟踪的第二特征点集进行比较;以及
响应于确定所述投影位置满足与关联于所跟踪的第一特征点集和所跟踪的第二特征点集的失真相对应的预定义阈值,针对所述第一图像帧和所述第二图像帧生成更新的相机姿态。
2.根据权利要求1所述的计算机实现的方法,进一步包括:至少部分地基于确定所述投影位置满足所述预定义阈值来使用针对所述第一图像帧和所述第二图像帧的所述更新的相机姿态生成所述场景的3D图像。
3.根据权利要求1所述的计算机实现的方法,其中,选择所述第一初始相机姿态和所述第二初始相机姿态包括:获得与所述多个图像帧中的每个图像帧相关联的陀螺仪数据,并且使用与所述第一图像帧相关联的陀螺仪数据来估计与所述第一特征点集相对应的姿态。
4.根据权利要求3所述的计算机实现的方法,进一步包括:使用与所述第二图像帧相关联的陀螺仪数据来估计与所述第二特征点集相对应的姿态。
5.根据权利要求3所述的计算机实现的方法,其中,与每个图像帧相关联的所述陀螺仪数据至少包括与捕获了所述多个图像帧中的相应图像帧的移动设备相关联的旋转的原始估计,并且所述陀螺仪数据用于估计与每个相应图像帧相关联的姿态和图像取向。
6.根据权利要求1所述的计算机实现的方法,其中,确定与所述第一特征点集和所述第二特征点集中的每个特征点相对应的多个投影位置包括:
对于每个特征点:
将位置数据和取向数据耦合;
选择至少一个约束并将所述至少一个约束应用于所耦合的位置数据和取向数据;以及
估计相机姿态;以及
向拼接模块提供与每个特征点相关联的所估计的相机姿态,所述拼接模块被配置为基于每个特征点的所估计的相机姿态来将所述多个图像帧拼接在一起以生成所述场景的3D图像。
7.根据权利要求6所述的计算机实现的方法,其中,所述至少一个约束包括等距轨道约束或同心光轴约束。
8.根据权利要求6所述的计算机实现的方法,其中,所述至少一个约束被选择来将姿态估计算法的搜索空间从六个自由度减少到四个自由度。
9.根据权利要求1所述的计算机实现的方法,其中,所述图像序列是用移动设备捕获的。
10.根据权利要求1所述的计算机实现的方法,其中,所述多个投影位置对应于捕获了所述多个图像帧的移动设备的投影中心。
11.一种系统,包括:
至少一个处理器;
存储指令的存储器,所述指令在被至少一个处理器执行时使得所述系统执行操作,所述操作包括:
获得包括场景的多个图像帧的图像序列;
检测第一图像帧中的第一特征点集;
在多个后续的图像帧中跟踪第一特征点集,并且在继续跟踪第一特征点集的同时:
检测第二图像帧中的第二特征点集;
在所述多个后续的图像帧中跟踪所述第二特征点集;
选择与所述第一图像帧相关联的第一初始相机姿态和与所述第二图像帧相关联的第二初始相机姿态;
确定与所述第一特征点集和所述第二特征点集中的每个特征点相对应的多个投影位置,相应所述投影位置至少部分地基于所述第一初始相机姿态和所述第二初始相机姿态;
将与第一特征点集中的每个特征点和第二特征点集中的每个特征点相对应的投影位置与对应的所跟踪的第一特征点集和所跟踪的第二特征点集进行比较;以及
响应于确定所述投影位置满足与关联于所跟踪的第一特征点集和所跟踪的第二特征点集的失真相对应的预定义阈值,针对所述第一图像帧和所述第二图像帧生成更新的相机姿态。
12.根据权利要求11所述的系统,其中,所述操作进一步包括:至少部分地基于确定所述投影位置满足所述预定义阈值来使用针对所述第一图像帧和所述第二图像帧的所述更新的相机姿态生成所述场景的3D图像。
13.根据权利要求11所述的系统,其中,选择所述第一初始相机姿态和所述第二初始相机姿态包括:获得与所述多个图像帧中的每个图像帧相关联的陀螺仪数据,并且使用与所述第一图像帧相关联的陀螺仪数据来估计与所述第一特征点集相对应的姿态。
14.根据权利要求13所述的系统,其中,所述操作进一步包括:使用与所述第二图像帧相关联的陀螺仪数据来估计与所述第二特征点集相对应的姿态。
15.根据权利要求13所述的系统,其中,与每个图像帧相关联的所述陀螺仪数据至少包括与捕获了所述多个图像帧中的相应图像帧的移动设备相关联的旋转的原始估计,并且所述陀螺仪数据用于估计与每个相应图像帧相关联的姿态和图像取向。
16.根据权利要求11所述的系统,其中,确定与所述第一特征点集和所述第二特征点集中的每个特征点相对应的多个投影位置包括:
对于每个特征点:
将位置数据和取向数据耦合;
选择至少一个约束并且将所述至少一个约束应用于所耦合的位置数据和取向数据;以及
估计相机姿态;以及
向拼接模块提供与每个特征点相关联的所估计的相机姿态,所述拼接模块被配置为基于每个特征点的所估计的相机姿态来将所述多个图像帧拼接在一起,以生成所述场景的3D图像。
17.根据权利要求16所述的系统,其中,所述至少一个约束包括等距轨道约束或同心光轴约束。
18.根据权利要求16所述的系统,其中,所述至少一个约束被选择来将姿态估计算法的搜索空间从六个自由度减少到四个自由度。
19.根据权利要求11所述的系统,其中,所述图像序列是用移动设备捕获的。
20.根据权利要求11所述的系统,其中,所述多个投影位置对应于捕获了所述多个图像帧的移动设备的投影中心。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562193321P | 2015-07-16 | 2015-07-16 | |
US62/193,321 | 2015-07-16 | ||
PCT/US2016/042612 WO2017011793A1 (en) | 2015-07-16 | 2016-07-15 | Camera pose estimation for mobile devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107646126A CN107646126A (zh) | 2018-01-30 |
CN107646126B true CN107646126B (zh) | 2020-12-08 |
Family
ID=56799525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680025894.7A Active CN107646126B (zh) | 2015-07-16 | 2016-07-15 | 用于移动设备的相机姿态估计 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10129527B2 (zh) |
EP (1) | EP3323109B1 (zh) |
CN (1) | CN107646126B (zh) |
WO (1) | WO2017011793A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10365711B2 (en) | 2012-05-17 | 2019-07-30 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display |
US8788968B1 (en) * | 2012-06-04 | 2014-07-22 | Google Inc. | Transitioning an interface to a neighboring image |
US11049476B2 (en) | 2014-11-04 | 2021-06-29 | The University Of North Carolina At Chapel Hill | Minimal-latency tracking and display for matching real and virtual worlds in head-worn displays |
EP3323109B1 (en) * | 2015-07-16 | 2022-03-23 | Google LLC | Camera pose estimation for mobile devices |
US10962780B2 (en) * | 2015-10-26 | 2021-03-30 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
JP2017129567A (ja) * | 2016-01-20 | 2017-07-27 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム |
US10546385B2 (en) * | 2016-02-25 | 2020-01-28 | Technion Research & Development Foundation Limited | System and method for image capture device pose estimation |
WO2017161192A1 (en) * | 2016-03-16 | 2017-09-21 | Nils Forsblom | Immersive virtual experience using a mobile communication device |
US11232583B2 (en) * | 2016-03-25 | 2022-01-25 | Samsung Electronics Co., Ltd. | Device for and method of determining a pose of a camera |
CN107993276B (zh) * | 2016-10-25 | 2021-11-23 | 杭州海康威视数字技术股份有限公司 | 一种全景图像的生成方法及装置 |
US10250801B2 (en) * | 2017-04-13 | 2019-04-02 | Institute For Information Industry | Camera system and image-providing method |
US10740972B2 (en) * | 2017-04-28 | 2020-08-11 | Harman International Industries, Incorporated | System and method for presentation and control of augmented vehicle surround views |
WO2019006189A1 (en) | 2017-06-29 | 2019-01-03 | Open Space Labs, Inc. | AUTOMATED SPACE INDEXING OF IMAGES BASED ON MASS PLAN CHARACTERISTICS |
US10699438B2 (en) * | 2017-07-06 | 2020-06-30 | Siemens Healthcare Gmbh | Mobile device localization in complex, three-dimensional scenes |
CN109215077B (zh) * | 2017-07-07 | 2022-12-06 | 腾讯科技(深圳)有限公司 | 一种相机姿态信息确定的方法及相关装置 |
WO2019019157A1 (en) * | 2017-07-28 | 2019-01-31 | Qualcomm Incorporated | INITIALIZING IMAGE SENSOR IN A ROBOTIC VEHICLE |
US11170531B2 (en) * | 2017-09-13 | 2021-11-09 | Xiaochun Nie | Systems and methods for calibrating imaging and spatial orientation sensors |
CN109076158A (zh) * | 2017-12-22 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 全景拍照方法、拍照设备及机器可读存储介质 |
US11043006B1 (en) | 2017-12-29 | 2021-06-22 | Perceive Corporation | Use of machine-trained network for misalignment identification |
WO2019144289A1 (en) * | 2018-01-23 | 2019-08-01 | SZ DJI Technology Co., Ltd. | Systems and methods for calibrating an optical system of a movable object |
US20190243376A1 (en) * | 2018-02-05 | 2019-08-08 | Qualcomm Incorporated | Actively Complementing Exposure Settings for Autonomous Navigation |
US11030525B2 (en) * | 2018-02-09 | 2021-06-08 | Baidu Usa Llc | Systems and methods for deep localization and segmentation with a 3D semantic map |
CN113487676B (zh) * | 2018-03-19 | 2023-06-20 | 百度在线网络技术(北京)有限公司 | 确定安装于采集实体的相机之间相对姿态角的方法和装置 |
US10715725B2 (en) * | 2018-04-02 | 2020-07-14 | Samsung Electronics Co., Ltd | Method and system for handling 360 degree image content |
US10410372B1 (en) * | 2018-06-14 | 2019-09-10 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer-readable media for utilizing radial distortion to estimate a pose configuration |
EP3591605A1 (en) * | 2018-07-06 | 2020-01-08 | Facebook Technologies, LLC | Systems and methods for offloading image-based tracking operations from a general processing unit to a hardware accelerator unit |
US10916031B2 (en) | 2018-07-06 | 2021-02-09 | Facebook Technologies, Llc | Systems and methods for offloading image-based tracking operations from a general processing unit to a hardware accelerator unit |
CN109462746B (zh) * | 2018-10-26 | 2020-11-06 | 北京双髻鲨科技有限公司 | 一种图像去抖的方法及装置 |
US10944959B2 (en) | 2018-11-12 | 2021-03-09 | Open Space Labs, Inc. | Automated spatial indexing of images to video |
CN109660723B (zh) * | 2018-12-18 | 2021-01-08 | 维沃移动通信有限公司 | 一种全景拍摄方法及装置 |
CN109712249B (zh) * | 2018-12-31 | 2023-05-26 | 成都纵横大鹏无人机科技有限公司 | 地理要素增强现实方法及装置 |
US11080532B2 (en) * | 2019-01-16 | 2021-08-03 | Mediatek Inc. | Highlight processing method using human pose based triggering scheme and associated system |
CN111563840B (zh) * | 2019-01-28 | 2023-09-05 | 北京魔门塔科技有限公司 | 分割模型的训练方法、装置、位姿检测方法及车载终端 |
CN109977847B (zh) * | 2019-03-22 | 2021-07-16 | 北京市商汤科技开发有限公司 | 图像生成方法及装置、电子设备和存储介质 |
CN109992111B (zh) * | 2019-03-25 | 2021-02-19 | 联想(北京)有限公司 | 增强现实扩展方法和电子设备 |
CN111784769B (zh) * | 2019-04-04 | 2023-07-04 | 舜宇光学(浙江)研究院有限公司 | 基于模板的空间定位方法、空间定位装置,电子设备及计算机可读存储介质 |
US11024054B2 (en) * | 2019-05-16 | 2021-06-01 | Here Global B.V. | Method, apparatus, and system for estimating the quality of camera pose data using ground control points of known quality |
CN112313707A (zh) * | 2019-08-30 | 2021-02-02 | 深圳市大疆创新科技有限公司 | 跟踪方法和可移动平台 |
CN110717936B (zh) * | 2019-10-15 | 2023-04-28 | 哈尔滨工业大学 | 一种基于相机姿态估计的图像拼接方法 |
CN111091621A (zh) * | 2019-12-11 | 2020-05-01 | 东南数字经济发展研究院 | 双目视觉的同步定位与构图方法、装置、设备及存储介质 |
WO2021173862A1 (en) * | 2020-02-26 | 2021-09-02 | Magic Leap, Inc. | Cross reality system with buffering for localization accuracy |
CN111462179B (zh) * | 2020-03-26 | 2023-06-27 | 北京百度网讯科技有限公司 | 三维物体跟踪方法、装置及电子设备 |
CN111598927B (zh) * | 2020-05-18 | 2023-08-01 | 京东方科技集团股份有限公司 | 一种定位重建方法和装置 |
CN111569432B (zh) * | 2020-05-19 | 2021-01-15 | 北京中科深智科技有限公司 | 一种从游戏中捕捉6DoF场景图像的系统及方法 |
US11436812B2 (en) | 2020-05-29 | 2022-09-06 | Open Space Labs, Inc. | Machine learning based object identification using scaled diagram and three-dimensional model |
CN111739071B (zh) * | 2020-06-15 | 2023-09-05 | 武汉尺子科技有限公司 | 基于初始值的快速迭代配准方法、介质、终端和装置 |
US11750815B2 (en) | 2020-09-17 | 2023-09-05 | Lemon, Inc. | Versatile video coding track coding |
US11611752B2 (en) | 2020-10-07 | 2023-03-21 | Lemon Inc. | Adaptation parameter set storage in video coding |
CN112907652B (zh) * | 2021-01-25 | 2024-02-02 | 脸萌有限公司 | 相机姿态获取方法、视频处理方法、显示设备和存储介质 |
US20220318948A1 (en) * | 2021-03-27 | 2022-10-06 | Mitsubishi Electric Research Laboratories, Inc. | System and Method of Image Stitching using Robust Camera Pose Estimation |
CN113515201B (zh) * | 2021-07-27 | 2024-03-19 | 北京字节跳动网络技术有限公司 | 光标位置更新方法、装置和电子设备 |
CN114841862B (zh) * | 2022-06-07 | 2023-02-03 | 北京拙河科技有限公司 | 一种基于亿像素阵列式相机的图像拼接方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100158352A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Apparatus and method for real-time camera tracking |
CN103206458A (zh) * | 2012-01-17 | 2013-07-17 | 株式会社捷太格特 | 车轮用滚动轴承装置 |
US8761439B1 (en) * | 2011-08-24 | 2014-06-24 | Sri International | Method and apparatus for generating three-dimensional pose using monocular visual sensor and inertial measurement unit |
CN107646126A (zh) * | 2015-07-16 | 2018-01-30 | 谷歌有限责任公司 | 用于移动设备的相机姿态估计 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495576A (en) | 1993-01-11 | 1996-02-27 | Ritchey; Kurtis J. | Panoramic image based virtual reality/telepresence audio-visual system and method |
US6571024B1 (en) * | 1999-06-18 | 2003-05-27 | Sarnoff Corporation | Method and apparatus for multi-view three dimensional estimation |
US6559846B1 (en) * | 2000-07-07 | 2003-05-06 | Microsoft Corporation | System and process for viewing panoramic video |
US7224382B2 (en) | 2002-04-12 | 2007-05-29 | Image Masters, Inc. | Immersive imaging system |
US9269187B2 (en) * | 2013-03-20 | 2016-02-23 | Siemens Product Lifecycle Management Software Inc. | Image-based 3D panorama |
US9449230B2 (en) * | 2014-11-26 | 2016-09-20 | Zepp Labs, Inc. | Fast object tracking framework for sports video recognition |
-
2016
- 2016-07-15 EP EP16756820.3A patent/EP3323109B1/en active Active
- 2016-07-15 CN CN201680025894.7A patent/CN107646126B/zh active Active
- 2016-07-15 US US15/211,858 patent/US10129527B2/en active Active
- 2016-07-15 WO PCT/US2016/042612 patent/WO2017011793A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100158352A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Apparatus and method for real-time camera tracking |
US8761439B1 (en) * | 2011-08-24 | 2014-06-24 | Sri International | Method and apparatus for generating three-dimensional pose using monocular visual sensor and inertial measurement unit |
CN103206458A (zh) * | 2012-01-17 | 2013-07-17 | 株式会社捷太格特 | 车轮用滚动轴承装置 |
CN107646126A (zh) * | 2015-07-16 | 2018-01-30 | 谷歌有限责任公司 | 用于移动设备的相机姿态估计 |
Non-Patent Citations (3)
Title |
---|
"Image mosaicing using sequential bundle adjustment";Philip F.McLauchlan etc.;《Image and Vision Computing》;20020314;论文摘要,第1节 * |
"Real Time Localiztion and 3D Reconstruction";E.Mouragnon etc.;《Proceedings of the 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition》;20060705;论文摘要,第2节 * |
E.Mouragnon etc.."Real Time Localiztion and 3D Reconstruction".《Proceedings of the 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition》.2006, * |
Also Published As
Publication number | Publication date |
---|---|
CN107646126A (zh) | 2018-01-30 |
EP3323109A1 (en) | 2018-05-23 |
US10129527B2 (en) | 2018-11-13 |
EP3323109B1 (en) | 2022-03-23 |
US20170018086A1 (en) | 2017-01-19 |
WO2017011793A1 (en) | 2017-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107646126B (zh) | 用于移动设备的相机姿态估计 | |
JP6704014B2 (ja) | モバイル装置の全方向立体撮影 | |
US10375381B2 (en) | Omnistereo capture and render of panoramic virtual reality content | |
JP6643357B2 (ja) | 全球状取込方法 | |
US10038887B2 (en) | Capture and render of panoramic virtual reality content | |
JP6427688B2 (ja) | パノラマバーチャルリアリティコンテンツの全方位ステレオキャプチャおよびレンダリング | |
US10152825B2 (en) | Augmenting multi-view image data with synthetic objects using IMU and image data | |
US8330793B2 (en) | Video conference | |
WO2017147178A1 (en) | Separate time-warping for a scene and an object for display of virtual reality content | |
KR101741149B1 (ko) | 가상 카메라의 시점 제어 방법 및 장치 |
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 |