CN113012275A - 视频中的连续局部3d重建细化 - Google Patents

视频中的连续局部3d重建细化 Download PDF

Info

Publication number
CN113012275A
CN113012275A CN202011006174.0A CN202011006174A CN113012275A CN 113012275 A CN113012275 A CN 113012275A CN 202011006174 A CN202011006174 A CN 202011006174A CN 113012275 A CN113012275 A CN 113012275A
Authority
CN
China
Prior art keywords
scene
cameras
camera
beam adjustment
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011006174.0A
Other languages
English (en)
Inventor
埃拉德·陶伯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN113012275A publication Critical patent/CN113012275A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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/30221Sports video; Sports image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

本公开涉及视频中的连续局部3D重建细化。论述了与改进的连续局部3D重建细化有关的技术。这种技术包括实时地构造和求解每3D对象调整模型,来为每个对象调整模型生成点云和/或更新后相机参数。

Description

视频中的连续局部3D重建细化
技术领域
本公开一般涉及图像处理领域,更具体地,涉及视频中的连续局部3D重建细化。
背景技术
在各种情境中,例如对于体育赛事或其他引人注目的事件,多个(例如,大约40个)相机被安装在场景的视野中(例如,安装在体育场周围)。多个相机的安装、分割和3D重建技术被用于创建体积内容,以便为用户提供沉浸式的媒体体验。例如,场景的同时或同期视频被捕捉,并且点云可被构建来创建场景的体积模型,并且该点云随后可被描画有来自每一时刻的场景的多个捕捉图片的捕捉纹理,从而生成场景的照片般逼真的3D模型。此外,3D模型内的虚拟相机或视图随后可用于在此3D空间中巡览并且渲染观察到的视图,来提供多个自由度以获得高度沉浸式的用户体验。
在这种情境中创建事件的实时体积视频要求非常高的计算力。此外,最终系统输出(例如,3D模型上的渲染图像)需要具有非常高的质量以维持沉浸式用户体验并且实时地按意愿操作。正是有鉴于这些和其他考虑事项,所以需要本改进。随着在由多个相机获得的3D场景中提供沉浸式用户体验的愿望变得更普遍,这种改进可变得至关重要。
发明内容
根据本公开的实施例的一方面,提供了一种用于生成场景内的虚拟视图的系统。该系统包括:存储器,对于特定时间实例下场景中的多个单独的重建3D对象中的每个3D对象,存储器用于存储该3D对象的多个3D点、多个2D特征点以及相机集合,每个2D特征点指示出在与该3D对象的3D点相对应的多个2D图像的至少一者中的位置,相机集合指示出多个相机中的相机子集,相机子集用于获得场景中与2D图像相对应的帧;以及耦合到存储器的一个或多个处理器,一个或多个处理器用于:利用3D点、2D特征点、和相机集合中的每个相机的相机参数,来为每个3D对象构造单独的束调整模型,其中,在每个束调整模型中,选中的相机被固定到场景中的当前姿态;至少部分同时地单独求解每个束调整模型,以为每个束调整模型生成相机集合中的每个相机的更新后相机参数或者3D对象的更新后点云的至少一者;并且输出更新后相机参数或者更新后点云的至少一者,以用于场景的3D重建。
根据本公开的实施例的另一方面,提供了一种用于生成场景内的虚拟视图的方法。该方法包括:对于特定时间实例下场景中的多个单独的重建3D对象中的每个3D对象,接收该3D对象的多个3D点、多个2D特征点以及相机集合,每个2D特征点指示出在与该3D对象的3D点相对应的多个2D图像的至少一者中的位置,相机集合指示出多个相机的相机子集,相机子集用于获得场景中与2D图像相对应的帧;利用3D点、2D特征点、和相机集合中的每个相机的相机参数,来为每个3D对象构造单独的束调整模型;至少部分同时地单独求解每个束调整模型,以为每个束调整模型生成相机集合中的相机的更新后相机参数或者3D对象的更新后点云的至少一者;并且输出更新后相机参数或者更新后点云的至少一者,以用于场景的3D重建。
附图说明
在附图中以示例方式而非限制方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰起见,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,附图标记在附图之间被重复以指示出对应的或相似的元素。在附图中:
图1图示了用于通过提供每对象校准建模来生成场景内的虚拟视图的示例系统;
图2图示了为了3D建模在示例场景上训练的示例相机阵列;
图3图示了与示范性3D对象相对应的示范性密集点云和对象标签;
图4图示了场景内的示范性3D对象和相应相机集合;
图5图示了对示范性3D对象的示例束调整(bundle adjustment);
图6图示了用于为点云地标提供束调整的示例情境;
图7图示了用于基于每对象调整建模来更新对象点云和/或相机参数的示范性过程;
图8图示了利用切除和交叉技术来单独构造和求解调整模型的示范性过程;
图9是图示出用于生成场景内的虚拟视图的示例过程的流程图;
图10是用于生成场景内的虚拟视图的示例系统的示意图;
图11是示例系统的示意图;以及
图12图示了全都根据本公开的至少一些实现方式布置的示例装置。
具体实施方式
现在参考附图描述一个或多个实施例或实现方式。虽然论述了具体配置和布置,但应当理解这么做只是为了说明性目的。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将会清楚,本文描述的技术和/或布置也可用在与本文所述不同的各种其他系统和应用中。
虽然接下来的描述阐述了可在诸如片上系统(system-on-a-chip,SoC)架构之类的架构中显现的各种实现方式,但本文描述的技术和/或布置的实现方式不限于特定的架构和/或计算系统,而是可由任何架构和/或计算系统为类似的目的而实现。例如,采用例如多个集成电路(integrated circuit,IC)芯片和/或封装的各种架构和/或诸如机顶盒、智能电话等等之类的各种计算装置和/或消费电子(consumer electronic,CE)装置可实现本文描述的技术和/或布置。另外,虽然接下来的描述可阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等等,但要求保护的主题可在没有这种具体细节的情况下实现。在其他情况中,可能没有详细示出一些素材,例如控制结构和完整软件指令序列,以免模糊本文公开的素材。
本文公开的素材可以在硬件、固件、软件或者其任何组合中实现本文公开的素材。本文公开的素材也可实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算装置)可读的形式存储或传输信息的任何介质和/或机构。例如,机器可读介质可包括只读存储器(read only memory,ROM);随机访问存储器(random access memory,RAM);磁盘存储介质;光存储介质;闪存装置;电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号等等),以及其他。
说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等指示所描述的实现方式可包括特定的特征、结构或特性,但可能不一定每个实施例都包括该特定特征、结构或特性。另外,这种短语不一定指同一实现方式。另外,当联系一实施例来描述特定的特征、结构或特性时,认为联系其他实现方式(无论本文是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内的。
术语“基本上”、“接近”、“大致”、“近似”和“大约”一般指在目标值的+/-10%内。例如,除非在其使用的明确上下文中另有指明,否则术语“基本上等于”、“大约等于”和“大致等于”的意思是在这样描述的事物之间没有超过偶然的差异。在本领域中,这种差异通常不超过预定目标值的+/-10%。除非另有指明,否则使用序数形容词“第一”、“第二”和“第三”等等来描述共同对象只是表明相同对象的不同实例被引用,而并不打算暗示这样描述的对象必须在时间上、空间上、排名上或者以任何其他方式处于给定的序列中。
本文描述的方法、设备、装置、计算平台和物品涉及用于生成场景内的高质量虚拟视图的连续3D重建改良。
如上所述,在使用从在场景上训练的多个相机获得的帧的3D建模的情境和其他情境中,针对场景内的虚拟视图的生成,提供场景的非常高质量的3D重建,可能是必要的。这种虚拟视图的生成试图提供在环境内具有6个自由度(6degrees-of-freedom,6DOF)的实时视频流送,以使得来自不能放置物理相机的位置的视图被提供给用户。这种处理的目标是以高质量提供最小时延,从而结果对于观看者而言是沉浸式的。值得注意的是,由于目标是基于体素(三维像素)呈现场景中的物体和人(例如,运动场、篮球场地板等等上的选手),因此每一个体素的保真度对于沉浸式视频输出的总外观是至关重要的。
例如,如本文所论述的多视图立体(multi view stereo,MVS)处理可包括提供场景的校准的第一阶段和执行密集点云生成的第二阶段。第一阶段可被表征为从运动恢复结构(structure from motion,SfM)处理并且包括从一系列图像上的3D结构的投影重建3D结构(例如,投影几何学)。在这种处理中,输入是从不同的视点取得的同一场景或对象的重叠图像的集合并且输出是对象或场景的3D重建以及所有图像的重建的内在和外在相机参数。这种SfM处理可被划分成包括特征检测和提取、特征匹配和几何验证、以及结构和运动重建在内的阶段。本文论述的技术聚焦于最后一个阶段(结构和运动重建),其优化稀疏点云的相机姿态和特征点的集合,如本文进一步论述的。
例如,第一处理阶段提供场景中的一个或多个对象的稀疏点云并且校准在该一个或多个对象上训练的所有相机。相机校准结果指示出施加在场景上的坐标系统内的相机的三维相机位置和三维取向,以及相机的内在参数。这种参数在本文中被表征为相机参数并且可包括外在和内在相机参数。如本文所使用的,术语“位置(或定位)”一般指的是施加在场景上的坐标系统内的对象、特征点、相机等等的坐标(例如,x、y和z),并且术语“取向”,顾名思义提供了对象在该位置处的取向并且可例如被表述为俯仰、偏摆和滚转。术语“姿态”用于指某一物品的位置和取向两者。值得注意的是,在一些情况中,物品可只被提供位置,而在一些情况中,物品被提供位置和取向两者(即,姿态)。此外,术语“3D定位或3D位置”指的是可具有3个自由度的定位或位置(例如,在空间坐标系统中),而术语2D定位或2D位置指的是可具有2个自由度的定位或位置(例如,在平面坐标系统中,比如在图像平面上)。
在第二阶段中,来自第一阶段的校准被用于生成密集点云。密集点云可基于将来自相邻相机的帧之间的相互二维信息转化到点和特征的三维局部化以获得密集点云。密集点云随后可用于生成场景内的虚拟视图。例如,可利用点云和来自场景的帧的纹理信息来渲染和描画来自场景内的任何位置和取向的视图。这里,术语“帧”用于指从相机获得的场景的视频或图像的帧。术语帧和图像一般是可互换使用的。注意用于渲染虚拟视图的局部化密集点云的准确性和质量受到第一和第二阶段的约束。
在一些实施例中,论述的密集点云生成提供将对象分离成显着的重建3D对象。如本文所使用的,术语“单独”和“显着”被用于指模型或数据集是自立的并且不依赖于另一模型或数据集。例如,一单独或显着的点云完全描述对象,而不依赖于额外的数据。此外,一单独或显着的模型可在不依赖于该模型外部的其他模型或数据(并且不受其影响)的情况下被求解。这种密集点云对于该密集点云的每个点包括该点在3D场景的坐标系统中的估计3D位置、用于定位或创建该点的相机的标识以及与该相机相对应的2D图像中的位置(例如,按x、y坐标),以使得该图像中的位置对应于与该点的3D位置相对应的该图像的2D特征点。例如,图像中的2D特征点是基于与其相对应的区别性特征来提取的(该特征可被称为描述子,因为其独特地描述该2D点)。值得注意的是,在例如束调整之后将该点的估计3D位置重投影到图像平面上可能不会完全匹配图像中的2D特征点。也就是说,每个2D特征点和相应的估计3D位置重投影可提供差异或损耗(或者能量、惩罚等等)。例如,来自多个视图的2D点到由它们三角测量的3D点的匹配特征之间的对应性被确定,并且损耗或能量是重投影误差(例如,2D(x,y)投影点和提取特征之处的原始(x,y)点之间的第二级L2距离)。在束调整模型中可减小点之间的这种损耗的组合(例如,加和)。此外,这种损耗受到相机参数的影响,相机参数在束调整模型的求解中也可变化。也就是说,在求解束调整时可调整点云的点的估计3D位置以及相机参数,包括内在的(例如,焦距等等)和外在的(例如,位置和取向)。
这里,这种束调整建模是在每个对象的基础上执行的,以使得多个模型被同时构造和求解,其中对于场景中的每个对象或二进制大对象(blob)有一个模型。虽然是针对束调整来论述的,但可以构造和求解任何适当的能量模型。如本文所使用的,关于模型的术语“构造”指的是通过建立特征点的初始化参数、相机参数等等来生成模型,以及对参数的约束,例如,固定一些点(例如,在求解模型时不允许它们移动)并且提供建模约束(例如,提供要被最小化的能量函数等等)。关于模型的术语“求解”指的是使用所构造的模型来为被允许在模型中变化的那些参数生成结果参数。术语“求解”不一定指的是找到最优解,因为出于计算效率的目的近似解可能是有利的和/或在这种建模情境中确定或定义最优解可能是不可行的。
在一些实施例中,每对象模型构造(例如,束调整模型)生成能量模型,该能量模型惩罚检测到的特征在帧中的位置(例如,2D特征点)和这些特征从其在3D空间中的估计位置的重投影位置(例如,2D特征点重投影)之间的失配。模型也可包括其他能量项。如上所述,对于一特征,有在从相机获得的帧中检测到的该特征的位置和与该特征相对应的在其被从其在3D坐标系统中在点云上的估计位置重投影时的位置。能量模型的最小化可将这种位置推动得更靠近彼此,同时考虑到来自许多其他特征(例如,数十个或数百个)的误差,以及建模和调整坐标系统内的相机的姿态(以及内在参数)。这种技术同时优化一组相机参数和3D对象点(例如,点云的点)。
在一些实施例中,每个束调整模型有利地固定一个相机(例如,固定该相机的相机参数,以使得它们在求解束调整模型时不能变化)以提供弱约束来将该束调整绑定到全局场景。在一些实施例中,只对动态的(例如,移动的)对象执行这种束调整建模,以使得只有具有特定量的运动的对象被建模。此外,如下文进一步论述的,对于特定的对象,为了简化模型求解和最优收敛的目的,切除(resection)(例如,只改变相机参数,同时固定特征点)和交叉(intersection)(例如,只改变特征点,同时固定相机参数)可被交替。在一些实施例中,求解每个束调整模型会为对象生成更新后点云(可选地是不那么密集的或者稀疏的点云)以及更新后相机参数。
在本文论述的情境中,相机(或者至少大部分相机)是静止的(例如,具有公知的运动),而场景的结构包括静态场景(例如,体育情境中的运动场或球场)与处于不同的运动速度和方向的非刚性动态场景(例如,移动的体育选手和物体)相结合的组合。如本文进一步论述的,公开的技术通过为校准提供每对象建模而提供了具有数百个特征跟踪和视野中的结构的高频率变化的组合动态和静态场景中的实时校准(例如,允许在小于对场景拍摄的视频的帧率的倒数的时间中进行校准和重建)。
图1图示了根据本公开的至少一些实现方式布置的用于通过提供每对象校准建模来生成场景内的虚拟视图的示例系统100。如图1中所示,系统100包括初始化模块101(标注为静态/背景初始化)、密集3D重建模块102、每对象实时校准模块103以及虚拟视图模块104。系统100可实现在任何适当的装置或装置的群组中。在一些实施例中,系统100或者其一些部分是经由服务器计算机、云计算环境、个人计算机、膝上型计算机、平板设备之类的来实现的。在一些实施例中,系统100是经由这种装置的组合来实现的。具体地,为了获得改善的性能,例如计算速度,可在若干个装置之间实现系统100。系统100可实现为例如某个场地或场馆中的硬件和软件系统的一部分,以提供场景内的虚拟视图。
图2图示了根据本公开的至少一些实现方式布置的为了3D建模在示例场景210上训练的示例相机阵列201。值得注意的是,场景210可被系统100进行3D建模,并且可在场景内生成虚拟视图来获得沉浸式用户体验。在图示的实施例中,相机阵列201包括在体育运动场地上训练的36个相机。然而,相机阵列201可包括在场景210上训练的任何适当数目的相机,例如不少于20个相机,其中40个或更多个相机是有利的。例如,相机阵列201可被在场景210上训练以获得场景210的同期或同时并且重叠的视频帧和序列以用于生成场景210的实时3D模型。相机阵列201可被安装到围绕场景210的体育运动场地的体育馆(未示出),被校准,并且被在场景210上训练以捕捉同期或同时的图像或视频。如图所示,相机阵列201的每个相机具有场景210的特定视图。例如,相机202具有场景210的第一视图并且相机203具有场景210的第二视图,依此类推。如本文所使用的,术语“视图”指的是相机阵列201的特定相机的图像平面的图像内容或者从位于场景210内的虚拟相机的任何视图的图像内容。值得注意的是,视图可以是捕捉的视图(例如,利用相机处的图像捕捉获得的视图),以使得多个视图包括同一个人、物体、实体等等的表示。
返回图1,如图所示,初始化模块101从相机阵列201接收初始化帧119,以便在静态或背景设置中初始化场景210,例如当场景210空着并且表演或体育比赛尚未开始时。此外,一旦被初始化,并且在实时实现期间,密集3D重建模块102、每对象实时校准模块103和虚拟视图模块104就可按持续进行的方式接收视频帧118以根据需要用于其各自的处理中。也就是说,系统100接收视频帧118来用于生成本文论述的数据结构。值得注意的是,在每个时间实例处(例如,在每次帧捕捉处),相机阵列201的每个相机从其对场景210的视图获得视频帧,从而获得同步视频。这种同步视频被用于生成场景210的相对于针对场景210建立的坐标系统205(请参考图2)的动态3D模型,并且该动态3D模型进而被用于生成场景内的虚拟图像116。在图2的示例中,坐标系统205具有在比赛场地的中心表面处的原点,然而可以使用任何适当的原点。场景210的3D模型可例如由任何数目的点云来表示,其中每个点云的每个点提供在由该点云表示的对象的表面上的点的坐标。
初始化帧119和视频帧118可以是从相机阵列201、存储器或者任何其他来源获得的。例如,虽然在本文中是对于处理从相机阵列201获得的视频来论述的,但可使用任何视频源。初始化帧119和视频帧118可包括任何图片数据、视频帧数据、图像数据等等,或者表示处于任何适当分辨率的图片的任何数据结构。在一实施例中,初始化帧119和视频帧118具有5k分辨率(例如,大约5000像素的水平分辨率,比如5120×3072像素分辨率)。在一些实施例中,初始化帧119和视频帧118具有不小于4k的分辨率(例如,大约4000像素并且不小于3840像素的水平分辨率,比如3840×2160像素分辨率或者4096×2160像素分辨率)。然而,可以实现输入视频的任何适当分辨率。
初始化模块101接收初始化帧119并且在场景210内的实时事件的记录之前执行初始化SfM过程,例如包括静态场景210(例如包括场地、看台、运动场、地板等等)上的全局束调整或相对束调整。这种SfM处理在这种束调整处理之前也可包括特征检测和提取以及特征匹配和几何验证。虽然在本文中为了呈现的清晰起见是对于体育赛事来图示和论述的,但场景210可包括任何适当的事件,例如娱乐事件(音乐会、独奏会等等)、政治事件,等等。
如图所示,初始化模块101生成一个或多个背景点云110和初始化相机参数111。如本文所使用的,术语“点云”指的是表示坐标系统205内(例如,坐标空间中)的若干个点的任何数据结构。通常,点云指的是表示一个或多个对象的表面的3D点。例如,点云的每个3D点(或者简称为点)可包括对象的表面上的点的x,y,z坐标。这种点云数据可包括其他信息,例如与表面正交的方向、特征的标识、或者该点作为其一部分的对象分部,等等。例如,在密集对象点云的情境中,每个点云可包括对象标签(例如,标识对象)和相机集合(例如,标识具有该点云的视图的相机)并且点云的每个点可指示用于生成或标识该点的(一个或多个)特定相机和来自用于生成该点(例如,特征点)的(一个或多个)相机的(一个或多个)图像内的(一个或多个)x,y坐标。也就是说,(坐标系统205中的)点云的每个3D点可标识与该3D点相对应的(由特定相机获得的帧的图像平面上的)2D特征点。值得注意的是,特征点的x,y坐标和3D点到图像平面上的重投影的x,y坐标可不匹配。
此外,如本文所使用的,术语“相机参数”指的是相机阵列201的每个相机的外在相机参数和内在相机参数中的一者或两者。内在相机参数包括相机本身内在的那些参数,例如焦距等等。外在相机参数包括相机在坐标系统205内的位置(例如,x,y,z坐标)和旋转(例如,俯仰、偏摆和滚转)。位置和旋转一起提供相机的姿态。注意,相机阵列201的一些相机可以是固定的,但其在坐标系统内的姿态仍是场景的3D模型的一部分并且可通过对3D模型的处理被更好地估计。也就是说,相机姿态和对象点云都是要优化的3D模型的变量。
如图所示,背景点云110和初始化相机参数111被提供到密集3D重建模块102以用于在持续进行的处理中生成密集点云112和对象标签113。例如,背景点云110和初始化相机参数111是用于密集多视图立体管线中的初始化参数。密集3D重建模块102接收背景点云110、初始化相机参数111和视频帧118,并且密集3D重建模块102以持续进行的方式,例如在每个帧集合的基础上,生成密集点云112和对象标签113。密集3D重建模块102可利用任何一个或多个适当的技术来生成点云112和对象标签113。
例如,密集3D重建模块102具有背景点云110(例如,静态场景的3D模型)并且密集3D重建模块102接收每对象点云114和相机参数115(如下文进一步论述的)。密集3D重建模块102可在重建密集3D模型的同时对齐相机模型。在这种处理期间,密集3D重建模块102分割3D对象,执行这种3D对象的密集重建,并且既在3D模型中也在2D图像帧空间中跟踪3D对象。这种技术是本领域中已知的并且为了简洁起见不作进一步论述。
图3图示了根据本公开的至少一些实现方式布置的与示范性3D对象301、302、303相对应的示范性密集点云112和对象标签113。如图所示,3D对象301、302、303的每一者被密集3D重建模块102建模和跟踪。值得注意的是,虽然是以选手的相同点云和姿态来图示的,但3D对象301、302、303的实现可以不同并且可包括任何对象,例如人、球等等。此外,3D对象301、302、303由相应的点云341、342、343、对象标签311、312、313、特征集合321、322、323以及相机集合331、332、333来表示。这种数据结构被从密集3D重建模块102作为密集点云112和对象标签113提供到每对象实时校准模块103以用于如本文所述的处理。
例如,对于3D对象301,对象标签311标识该对象并且可包括任何适当的数据结构,例如索引值、对象类型等等中的一个或多个。此外,对象标签311可标识3D对象301是静态的还是动态的(例如,是否在运动)和/或3D对象301的粗略运动值(例如,随着时间的推移在一距离上的运动速率)。点云341(例如,密集点云)如上所述经由坐标系统中的每个点的估计3D位置(例如,每个点的x,y,z坐标)包括密集点云的每个点。此外,点云341、特征集合321和相机集合331对于点云341的每个点提供用于生成或确定该点云的每个点的相机的标识和在来自该相机的图像或帧中与该点云的点相对应的特征点的x,y位置。可利用任何一个或多个适当的技术跨点云341、特征集合321和相机集合331提供这种数据结构。例如,相机集合331可指示出具有对象301的视图的相机阵列201的子集(例如,列出用于生成点云341的3D点的所有相机的索引)并且点云341的每个点可参考相机子集之一并且提供在来自该相机的图像中该特征点的x,y位置。在一些实施例中,特征集合321提供指示与点云341的每个3D点相对应的特征点的数据结构。例如,点云341的3D点可被索引,并且特征集合321可标识相机集合331的相机和由该相机获得的帧的图像平面上的x,y坐标。
类似地,对于3D对象302、303等等的每一者,相应的对象标签312、313、点云342、343、特征集合322、323以及相机集合332、333对于每个3D对象提供以下数据:该3D对象的对象标签(指示出对象类型、该对象是动态的还是静态的、和或该对象的运动)、每一者指示出相对于坐标系统205在3D场景中的位置的任何数目的3D点的点云,以及对于该点云的每个点,用于确定或定位该3D点的相机以及来自用于确定或定位该点云的3D点的相机的帧的x,y位置。
返回图1,每对象实时校准模块103针对特定的时间实例,并且对应于来自相机阵列201的帧的特定集合,接收由密集点云112和对象标签113表示的这种数据。每对象实时校准模块103对于每个3D对象构造和求解单独的束调整模型。值得注意的是,每个束调整模型只使用与一个3D对象相对应的数据并且只为该3D对象调整点云点和/或只为与该3D对象相关的相机集合调整相机参数。也就是说,每个束调整是局部化于一个3D对象和观看该3D对象的相机的。这样的多个单独的束调整模型被实时并且至少部分同时地构造和求解以为每个束调整模型生成更新后3D点云(例如,稀疏点云)和更新后相机参数。例如,对于特定的束调整模型,生成(只)针对该3D对象的点云的更新后3D点和只针对观看该3D对象的相机集合的更新后相机参数。
在一些实施例中,每对象实时校准模块103对于在特定的时间实例场景210中的多个单独的重建3D对象301、302、303的每一者接收每个3D对象的3D点、每一者指示出与每个3D对象的3D点(例如,点云的点)相对应的一个2D帧或图像中的位置的2D特征点、以及指示出与2D图像相对应的相机阵列201的相机的子集的相机集合。为3D对象301、302、303的每一者接收这种信息。例如,对于3D对象301,接收任何数目的3D点的点云341。此外,对于3D对象301,对于每个3D点,接收2D特征点,以使得2D特征点指示出该特征在由相机集合331中的相机之一获得的特定帧或图像内的位置(例如,x,y坐标)。关于3D对象301的这种信息以及关于相机集合331的相机参数将被用于只为3D对象301构造和求解束调整模型。对于3D对象302、303的每一者接收类似的数据并且将构造和求解单独的束调整模型。
如图所示,这种每对象点云114和相机参数115被提供到密集3D重建模块102来用于如本文所述生成密集3D点云。每对象点云114和相机参数115从而提供了实时校准(并且尤其是对相机阵列201的相机的子集的相机校准)来用于3D对象重建中。通过实时提供每对象校准,提供了改进的校准。从而,生成了更鲁棒和准确的3D模型。值得注意的是,由于关于需要的时间的限制和其他限制,完全场景校准技术不能被校准。在一些实施例中,构造和求解每个束调整模型,执行密集3D重建(例如,根据需要更新密集3D重建),并且在由相机阵列201捕捉的帧的下一集合之前生成场景210内的虚拟视图。例如,在小于目标持续时间的持续时间中构造和求解每个束调整模型,以使得目标持续时间是相机阵列201的帧率的倒数减去预定的虚拟视图持续时间(例如,执行对密集3D重建的更新和生成虚拟视图所需要的估计持续时间)。
图4图示了根据本公开的至少一些实现方式布置的场景210内的示范性3D对象301、302和相应相机集合321。如图所示,3D对象301、302可被定位和建模在场景210中的任何位置。此外,3D对象301是利用相机集合331(例如,相机331a,331b,331c,…331h)来重建的。也就是说,相机331a,331b,331c,…331h的每一者被用于重建3D对象301的至少一个点云点。类似地,3D对象302是利用相机集合332(例如,相机332a,332b,332c,…332g)来重建的。
在为3D对象301构造和求解束调整模型时,3D点云341的3D点的位置可被调整和/或相机331a,331b,331c,…331h的相机参数可被调整。这种相机参数可以是内在和/或外在参数。值得注意的是,在为3D对象301构造和求解束调整模型时,3D点云342的点的位置和相机332a,332b,332c,…332g的相机参数不被使用。注意,在一些情况中,相机集合331和相机集合332可共享一个或多个相机。在一些实施例中,当3D对象301的束调整模型和3D对象302的束调整模型都为同一相机提供更新后相机参数时,相机参数可被单独用在3D重建中或者相机参数可被合并(例如,取平均之类的)来用于3D重建中。在相机参数被单独使用的实施例中,(来自第一束调整模型)的相机参数的第一集合被用于3D对象301的3D重建并且(来自第二束调整模型)的相机参数的第二集合被用于3D对象302的3D重建。
如上所述,对于3D对象301、302、303的每一者构造和求解束调整模型。虽然本文中是对于束调整模型来论述的,但可以使用调整3D点云341的点的位置和/或相机参数的任何适当模型。
图5图示了根据本公开的至少一些实现方式布置的对示范性3D对象301的示例束调整。值得注意的是,对于多个3D对象301、302、303的单独束调整可被同时执行,然而,为了清晰起见只图示了一个束调整模型。如图所示,对于3D对象301,到束调整模型的输入包括从密集3D重建模块102接收的3D对象301的当前点云341(点云_0)和3D对象301的当前相机集合331。如上所述,点云341的每个点指示出该点在坐标系统205中的位置、用于确定或定位该点的相机、以及在来自用于确定或定位该点的相机的图像中的特征点的x,y坐标。
值得注意的是,相机331a,331b,331c,…331h的每一者包括初始相机参数,如对于相机331d和331h所示。例如,相机参数501指示出相机331d的内在参数(未示出)和外在参数。图示的相机331d的外在参数包括初始位置和取向(例如,x0,y0,z0,俯仰0,偏摆0,滚转0)。类似地,相机参数503指示出相机331h的内在参数(未示出)和外在参数。值得注意的是,相机331a,331b,331c,…331h的每一者具有这种初始相机参数,但为了清晰起见只示出了相机331d、331h的那些。
图6图示了根据本公开的至少一些实现方式布置的用于为点云地标623提供束调整的示例情境600。例如,地标623可以是坐标系统205中的实际地标(例如,以使得实际地标位置是未知的并且论述的技术试图以高准确度定位它及其他)。当前点云位置(或点)622是在点云341中地标623的估计位置。也就是说,点云位置622是点云341在3D模型中的当前点。值得注意的是,点云位置622(具有坐标系统205中的x,y,z坐标)已被定位得靠近地标623的实际位置,但通过建模和束调整的改进是合乎需要的。
此外,图6图示了点云位置622已由相机集合331的相机331d确定或定位(至少部分地)。此外,3D模型已利用相机姿态615定位和定向了相机331d,以使得相机姿态615指示出相机331d的位置(例如,x,y,z坐标)和取向(例如,俯仰、偏摆、滚转)(由参数501提供)。此外,已为相机331d建立了内在相机参数(未示出)。值得注意的是,也可利用束调整建模来确定和改进这种相机参数(内在和外在)。在每一个每对象束调整模型中,有许多这样的地标/点云位置和相机/相机参数在起作用并且对点云位置622和相机331d的相机参数的调整必须针对所有这种组合(而不单是针对情境600)和一些这种组合来加以优化(一些变量在束调整中可以是固定的,如本文进一步论述的)。
图6还图示了帧611内与点云位置622(如本文所述由点云341或特征集合321标识)相对应的特征点603(xF)。也就是说,帧611可能已由相机331d获得并且特征点603可能已被用于定位或定义点云位置622。值得注意的是,特征点603到3D特征位置621的投影(例如,利用立体技术)可指示出3D特征位置621和点云位置622之间的差异617。类似地,点云位置622到帧611的图像平面的投影提供了相应的2D点云投影点604(xP)。值得注意的是,图像平面上的差异636(其可具有x和y分量)存在于特征点603和2D点云投影点604之间,与差异617的类似。
在构造束调整模型时,差异636(或差异617)提供了在试图更准确地定位地标623时可最小化的误差项(或能量项)。连同许多其他这样的误差项或差异(例如,对于每个点云位置622),束调整模型总体上建模和减小整体误差以生成更新后点云位置(包括点云位置622)和/或更新后相机参数(包括相机姿态615)。值得注意的是,相机参数影响束调整模型(例如,经由到帧611的图像平面上的投影)并且可在其构造和求解中被改变。也就是说,点云位置和/或相机参数被用作在束调整中要求解的变量。束调整可采用任何适当的误差项、损失函数等等来将诸如差异636之类的差异考虑在内。在一些实施例中,根据差异636的差异的平方之和可在束调整模型中被最小化。
返回图5,如上所述,局部束调整模型(例如,只使用与3D对象301相对应的信息)被构造和求解。调整模型针对点云341的每个点,对点云341和检测到的特征点位置之间的误差建模(例如,基于2D图像平面上的检测到的特征点位置和点云点到2D图像平面上的投影位置之间的差异),其中点云中的点的位置和相机参数作为该模型求解的变量。例如,调整模型可以是非线性的并且可利用任何一个或多个适当的技术来求解或估计。
如图5中所示,在操作510求解所构造的局部束调整模型。值得注意的是,在求解构造的局部束调整模型之后,生成更新后点云512(点云_2)和/或更新后相机参数。例如,更新后点云512相对于点云341,对于点云的一些或所有点可具有新位置。在一些实施例中,更新后点云512和点云341可具有不同的点密度,以使得更新后点云512是具有比密集点云341更少的点的稀疏点云。例如,可利用更新后点云512和3D重建技术来重建下一个密集点。
作为附加或替换,如图所示对于相机331d生成更新后相机参数,具有包括更新后位置和取向(例如,x1,y1,z1,俯仰1,偏摆1,滚转1)的更新后外在相机参数511。例如,相机331a,331b,331c,…331h的每一者可具有新的或者更新后的相机参数(内在的和外在的)。
此外,图5图示了在束调整模型的构造和求解中,一个相机(例如,图示的示例中的相机331h)可以是固定的或者绑定的,以使得不允许外在相机参数503在调整模型中发生变化。这种绑定技术可对局部每3D对象束调整提供弱约束以维持坐标系统205内的尺度和位置(全局地)。可利用任何一个或多个适当的技术来选择固定或绑定的相机。
如上所述,利用3D点(例如,点云341的点)、2D特征点(标识与点云341的点相对应的2D图像中的特征点)、和用于生成2D图像的每个相机的相机参数,为每个3D对象构造单独的束调整模型。另外,在一些实施例中,在每个束调整模型中,选中的相机在场景中被固定到当前姿态。每个束调整模型随后至少部分同时被求解以为每个束调整模型生成相机集合中的每个相机的更新后相机参数和/或3D对象的更新后点云。
在一些实施例中,对于每个对象和束调整模型交替采用切除和交叉技术。这种技术在以下两者之间交替:在允许3D点变化的同时固定所有相机参数(交叉),以及在允许相机参数变化的同时固定所有3D点(切除)。这种技术实现了交错细化相机参数(切除)和3D点(交叉)的步骤以有利地减少计算开销的量的束调整。例如,通过将参数细化限制到相机参数或点云的3D点,降低了构造和求解束调整模型的计算复杂度,使得可实现实时处理。
此外,在一些实施例中,只对场景210的被标注为动态(例如,在运动中)的那些对象执行束调整建模(例如,模型构造和求解)。例如,如果对象被标注为静态,则对于当前时间实例可跳过束调整建模。如上所述,3D构造管线(由密集3D重建模块102实现)可分割和标注前景对象(例如,动态或现场移动对象),并且对于每个标注的对象,利用图像中的相互特征实时重建密集点云,同时对于每个对象,单独存储相机图(或相机集合),以使得该相机图(或相机集合)只包含以各自的关键点特征对应性(特征跟踪)覆盖该对象的相机子集。此外,每个对象可被标注为静态或动态,并且可只对动态对象执行束调整建模(例如,静态或动态标签基于对象的运动是否大于或小于阈值)。例如,由于相机阵列201的相机通常是静止的,所以在几次束调整迭代和/或3D重建迭代之后,对于相机的束调整只有很少或者微不足道的贡献并且个体标注对象的相机参数达到松弛。在一些实施例中,对象或其运动的局部化的变化可触发对恢复束调整建模的发起。在一些实施例中,对象位置和/或运动被跟踪并且被用于触发束调整建模(例如,当对象的位置移动了大于阈值的量或者以大于阈值的速率移动时)。
现在返回图1,每对象点云114和相机参数115被提供到密集3D重建模块102以用于以迭代和/或持续进行的方式生成密集3D点云。在一些实施例中,每对象实时校准模块103进行的局部每对象校准可按预定的频率执行(例如,每60帧),而密集3D重建是按每帧执行的。此外,如图所示,密集点云112和对象标签113可(在每帧的基础上,或类似地)被提供到虚拟视图模块104。
虚拟视图模块104接收密集点云112和对象标签113、视频帧118、以及期望的虚拟相机姿态输入(例如,对位置和取向的跟踪的输入)或者指示出场景210内的期望的虚拟视图的其他用户或应用输入(未示出)。虚拟相机姿态可在场景210内的任何位置处并且可指示出用户作出的沉浸式视图选择(例如,从选手的视角、靠近场景动作的头顶相机的视角等等体验场景210)。利用虚拟相机姿态、密集点云112、和视频帧118,虚拟视图模块104从虚拟相机姿态渲染视图。本文论述的技术提供了改进的校准并最终提供了改进的3D建模和虚拟视图创建。
图7图示了根据本公开的至少一些实现方式布置的用于基于每对象调整建模来更新对象点云和/或相机参数的示范性过程700。例如,过程700可由系统100或者本文论述的任何其他系统或装置执行来基于每对象调整模型构造和求解生成更新后点云和/或更新后相机参数以实现连续局部3D重建细化。
过程700开始于操作701,在该操作中接收3D对象,使得对于每个3D对象接收到的数据结构包括点云(包括指示3D坐标系统中的估计点位置的许多3D点)、特征点(对于点云的每个3D点包括特征点,以使得每个特征点指示出该特征点在帧中的位置),以及相机集合(指示出用于获得具有特征点的帧的相机)。值得注意的是,点云、特征点的集合和相机集合是针对每个对象接收的。
处理在操作702继续,在该操作中选择第一对象来处理,并且处理在判决操作703继续,在该操作中判定在操作702选择的对象是否是动态的。可利用任何一个或多个适当的技术来作出关于所选对象是否是动态的判定。例如,每个对象对于当前处理可被标注为动态或静态,只有动态对象被建模。在一实施例中,当对象的运动超过阈值时,该对象被标注为动态。在一些实施例中,所有对象都被标注为动态并且被处理,直到对于该对象检测到很少或者没有检测到运动为止(例如,对象的运动小于阈值)。这种处理允许了为对象提供校准,直到其静止或者只有很少运动为止。在一些实施例中,对于先前静态的对象,当该对象的位置变化或者该对象的运动的速率超过阈值时,该对象可被转变到动态。此外,对象的这种位置变化和运动的速率可以是关于坐标系统中的位置之间的运动的或者是关于点云本身的形状的变化的。
如果在判决操作702对象被确定为是静态的,则处理在操作704继续,在该操作中对于该对象跳过调整建模。值得注意的是,静态对象的调整建模可提供将相机参数松弛到稳定状态,并且额外的建模可不是必要的。如果在判决操作702对象被确定为是动态的,则处理在操作705继续,在该操作中对于该对象使能调整建模。处理在判决操作706继续,在该操作中判定是否已选择场景中的最后单独对象。如果否,则如上所述处理在操作702继续,直到处理了最后的对象为止。
在最后的对象已被处理之后,处理在操作707继续,在该操作中如本文所述对于每个单独对象构造和求解单独的调整模型(例如,束调整模型)。在一些实施例中,每个束调整模型既调整点云点也调整相机参数(其中一个相机具有固定的外在相机参数)。在其他实施例中,每个对象的束调整模型在切除(固定点云点,同时允许除了固定姿态相机以外的相机参数变化)和交叉(固定所有相机参数,同时允许点云点变化)之间交替,如关于图8所述的。
处理在操作708继续,在该操作中每对象更新后点云和/或更新后相机参数被输出以用于如本文所述的密集3D重建中。值得注意的是,过程700以及本文别处论述的技术克服了初始校准的退化和场景内的动态变化,这部分地是通过如下方式来实现的:初始校准触发运动标注对象的重建,该重建进而反馈属于特定重建对象的新特征。在第一阶段之后,应用按主题局部建模来获得改进的局部校准。在一些实施例中,该局部建模可实现切除-交叉(例如,轮流优化相机参数和点云位置)。例如,对于第一帧集合(t),只细化相机参数,并且在第二帧(t+1),只细化点云,依此类推。利用这种技术,优化问题(例如,调整模型)就实时处理而言变得可行。
图8图示了根据本公开的至少一些实现方式布置的用于利用切除和交叉技术来单独构造和求解调整模型的示范性过程800。例如,过程800可在过程700的操作706处实现以获得改进的计算效率。
过程800开始于起始操作801,在该操作中对于对象的调整模型处理开始。注意过程800可如本文所述地对任何数目的对象并行执行,同时每个对象可处于不同的切除/交叉模式中和/或究竟实现切除/交叉与否。例如,一个或多个对象可绕过切除/交叉。此外,对于采用切除/交叉处理的那些对象,一些可处于切除中,而其他的处于交叉中。
处理在判决操作802继续,在该操作中,对于特定的对象,判定当前调整建模和求解是切除迭代还是交叉迭代。这种判定可利用任何一个或多个适当的技术来作出,例如使用与对象相对应的标志来指示当前迭代的切除或交叉。如果对象被标记为具有切除迭代,则处理在操作803继续,在该操作中生成束调整模型,该束调整模型固定或绑定所有点云点(例如,模型将点云点设置为常数)并且不允许它们在求解该束调整模型时发生变化。也就是说,只有相机参数(除了用于将每对象束调整模型松散地绑定到来自运动模型的全局场景和全局结构的一个相机以外)被允许在束调整模型中变化。此外,具有固定点云位置的束调整模型被求解以只生成更新后相机参数。这种更新后相机参数随后被输出来用于如本文所述的密集3D重建中。处理在操作804继续,在该操作中在下一处理迭代的对象的模式被设置为交叉。也就是说,在一些实施例中,切除/交叉对于对象交替。
如果对象在判决操作802被标记为具有切除迭代,则处理在操作805继续,在该操作中生成束调整模型,该束调整模型固定或绑定所有相机参数(例如,模型将相机参数设置为常数)并且不允许它们在求解该束调整模型时发生变化。也就是说,只允许点云点在束调整模型中发生变化。此外,具有固定相机参数的束调整模型被求解以生成更新后点云。更新后点云随后被输出来用于如本文所述的密集3D重建中。处理在操作806继续,在该操作中与操作804类似下一处理迭代中的对象的模式被设置为切除。
虽然是对于交替的切除/交叉论述的,但可使用在切除和交叉建模之间切换的任何模式。例如,具有对相机参数和点云位置两者的调整的建模可按切除/交叉/两者变化模式或者切除/两者变化/交叉模式与切除/交叉混合。作为附加或替换,切除、交叉或者两者变化处理的频率可相对于其他的被增大。
图9是图示出根据本公开的至少一些实现方式布置的用于生成场景内的虚拟视图的示例过程900的流程图。过程900可包括如图9中所示的一个或多个操作901-904。过程900可形成3D模型校准过程、3D模型生成、或者虚拟视图生成过程的至少一部分。作为非限制性示例,过程900可形成如本文所述由系统100执行的3D模型校准过程、3D模型生成、或者虚拟视图生成过程的至少一部分。此外,本文将参考图10的系统1000来描述过程900。
图10是根据本公开的至少一些实现方式布置的用于生成场景内的虚拟视图的示例系统1000的示意图。如图10中所示,系统1000可包括中央处理器1001、图像处理器1002以及存储器1003。还如图所示,图像处理器1002可包括或实现以下各项中的一个或多个:初始化模块101,密集3D重建模块102,每对象实时校准模块103,以及虚拟视图模块104。在系统1000的示例中,存储器1003可存储点云数据、相机参数、特征点数据、帧数据、虚拟图像数据或者本文论述的任何其他数据。
如图所示,在一些示例中,初始化模块101、密集3D重建模块102、每对象实时校准模块103、和虚拟视图模块104中的一个或多个或者一些部分是经由图像处理器1002实现的。在其他示例中,初始化模块101、密集3D重建模块102、每对象实时校准模块103、和虚拟视图模块104中的一个或多个或者一些部分是经由中央处理器1001、图像处理单元、图像处理管线、图像信号处理器之类的实现的。在一些示例中,初始化模块101、密集3D重建模块102、每对象实时校准模块103、和虚拟视图模块104中的一个或多个或者一些部分被用硬件实现为片上系统(SoC)。在一些示例中,初始化模块101、密集3D重建模块102、每对象实时校准模块103、和虚拟视图模块104中的一个或多个或者一些部分是经由FPGA在硬件中实现的。
图像处理器1002可包括任何数目和类型的可提供如本文所述的操作的图像或图形处理单元。这种操作可经由软件或硬件或者其组合来实现。例如,图像处理器1002可包括专用于操纵和/或分析从存储器1003获得的图像的电路。中央处理器1001可包括任何数目和类型的可以为系统1000提供控制和其他高级别功能和/或提供如本文所述的任何操作的处理单元或模块。存储器1003可以是任何类型的存储器,例如易失性存储器(例如,静态随机访问存储器(Static Random Access Memory,SRAM)、动态随机访问存储器(DynamicRandom Access Memory,DRAM)等等)或者非易失性存储器(例如,闪存等等),等等。在非限制性示例中,存储器1003可由缓存存储器实现。在一实施例中,初始化模块101、密集3D重建模块102、每对象实时校准模块103和虚拟视图模块104中的一个或多个或者一些部分是经由图像处理器1002的执行单元(execution unit,EU)实现的。EU可例如包括可编程逻辑或电路,例如可提供多种多样的可编程逻辑功能的一个或多个逻辑核。在一实施例中,初始化模块101、密集3D重建模块102、每对象实时校准模块103、和虚拟视图模块104中的一个或多个或者一些部分是经由诸如固定功能电路之类的专用硬件实现的。固定功能电路可包括专用逻辑或电路并且可提供一组固定功能入口点,这些固定功能入口点可映射到用于固定目的或功能的专用逻辑。
返回对图9的论述,过程900开始于操作901,在该操作中,对于特定时间实例下该场景中的多个单独的重建3D对象的每一者,接收3D对象的多个3D点、多个2D特征点以及相机集合,每个2D特征点指示出在与该3D对象的3D点相对应的多个2D图像的至少一者中的位置,该相机集合指示出多个相机中的相机子集,该相机子集用于获得该场景中与2D图像相对应的帧。例如,3D对象的多个3D点可以是表示该3D对象的点云的一部分或者全部。多个2D特征点可对应于多个3D点,其中每个2D特征点指示出在多个2D图像的一者中的位置。例如,2D特征点可以在由子集中的相机之一为该场景获得的帧中。如上所述,相机的子集(或者相机图)指示出用于生成至少一个2D特征点的那些相机,以使得相机的子集是被安装在场地中并且被在场景上训练来获得场景的同时视频的多个相机的子集。
在一些实施例中,过程900还包括对不存在任何动态对象的该场景的背景执行从运动恢复结构处理,以生成多个相机的每一者的初始相机参数和对于场景内的所标识特征包括3D点的背景点云,以使得每个单独的束调整模型包括初始相机参数。例如,在场景上训练的相机最初可针对空场地或者静态场景之类的被校准,并且这种相机参数可用作束调整建模中的初始化参数。此外,可生成背景点云或静态点云来用于场景的密集3D重建中。
处理在操作902继续,在该操作中利用3D点、2D特征点和相机集合中的每个相机的相机参数来为每个3D对象构造单独的束调整模型。例如,对于N个3D对象,生成N个单独的束调整模型,每一者对于相关3D对象是基于与该3D对象相对应的3D点、2D特征点、和相机子集的相机参数的。在一些实施例中,在每个束调整模型中,选中的相机被固定到场景中的当前姿态,以使得该选中的相机姿态在求解束调整模型时不变化(例如,选中的相机的外在相机参数或者外在和内在相机参数两者被固定或绑定)。在一些实施例中,每个单独的束调整模型包括损失函数之和,每个损失函数测量2D特征点和相应3D点的重投影点之间的差异,以使得重投影点是基于相机参数的。例如,损失函数之和可针对3D点重投影和2D特征点的每个组合对损失函数求和。
处理在操作903继续,在该操作中每个束调整模型被单独地至少部分同时地求解以为每个束调整模型生成相机集合中的相机的更新后相机参数或者3D对象的更新后点云的至少一者。在一些实施例中,更新后相机参数和更新后点云都是通过求解每个束调整模型来生成的。值得注意的是,更新后相机参数可包括除了选中的固定相机以外的所有相机的更新后参数,该选中的固定相机可不具有更新后参数或者只具有内在参数更新。
在一些实施例中,3D点、2D特征点和相机集合对应于在特定时间实例在场景上训练的相机所获得的该场景的多个第一同期帧并且每个束调整模型将每一个相机固定到该场景中的相机的当前姿态。例如,束调整模型可以是切除束调整模型。在一些实施例中,过程900还包括对于多个单独3D对象的每一者,接收该3D对象的多个第二3D点、多个第二2D特征点以及第二相机集合,每个第二2D特征点指示出在与该3D对象的第二3D点相对应的多个第二2D图像的至少一者中的第二位置,该第二相机集合指示出多个相机中与第二2D图像相对应的第二相机子集的;利用第二3D点、第二2D特征点和第二相机集合中的每个相机的相机参数来为每个3D对象构造第二单独束调整模型,以使得在每个第二束调整模型中,选中的第二相机被固定到该场景中的第二当前姿态并且每个对象的所有第二3D点被固定到该场景中的当前第二3D点位置;并且至少部分同时地单独求解第二束调整模型的每一者以为每个第二束调整模型生成第二更新后相机参数,以使得每个3D对象的所有第二3D点保持固定。例如,第二束调整模型可以是交叉束调整模型。在一些实施例中,过程900还包括在场景的同时帧的多个集合上交替地构造和求解具有固定相机姿态的束调整模型以及构造和求解具有固定3D点的第二束调整模型。例如,对于对象中的一个或多个可交替进行切除和交叉。
在一些实施例中,过程900还包括跟踪单独的重建3D对象的每一者的运动,基于单独的3D对象中的第一3D对象的运动的距离小于阈值而对于该第一3D对象检测小运动或无运动,并且响应于检测到小运动或无运动而为该第一3D对象跳过构造第二束调整模型。在一些实施例中,过程900还包括将场景的完全3D模型划分成背景对象和单独的重建3D对象,并且将每个单独的重建3D对象标注为动态的并且将背景对象标注为静态的,以使得响应于单独的重建3D对象被标注为动态而执行所述接收、构造、单独求解和输出,并且对于背景对象跳过所述接收、构造、求解和输出。例如,每个3D对象的单独的束调整模型可基于该3D对象是动态而非静态而被执行。在一些实施例中,每个单独的重建3D对象的3D点包括密集点云,该密集点云具有比来自求解束调整模型的相应更新后点云更大的3D点密度。
处理在操作904继续,在该操作中更新后的相机参数和/或更新后的点云被输出来用于场景内的虚拟视图的生成。例如,更新后的相机参数和/或更新后的点云被用于密集3D模型(包括密集3D点云)的密集3D构造,密集3D模型进而可用于场景内的虚拟视图的生成。例如,可选择场景内的虚拟姿态,并且可利用点云和来自场景的帧的纹理信息来渲染和描画该场景内来自该姿态的视图以生成虚拟视图(例如,来自虚拟姿态的渲染图像)。论述的过程可被实时执行来生成高质量3D重建和高质量虚拟图像。在一些实施例中,论述的过程900的接收、构造、单独求解和输出是在小于目标持续时间的持续时间中执行的,其中目标持续时间等于与多个相机对场景的捕捉相对应的帧率的倒数减去预定的虚拟视图持续时间。
过程900可对任何数目的时间实例、视频的帧的集合、场景等等串行或并行地重复任意多次。过程900可提供3D场景校准、3D场景重建和虚拟视图生成。本文论述的技术提供了高质量重建并且为用户提供了沉浸式观看体验。这种技术既求解了实时从运动恢复结构的问题也求解了非刚性对象的运动中的高频变化变动的问题。这种技术将被跟踪的场景划分成静态和动态标注对象以使得个体从运动恢复结构和按每个标注运动对象的调整成为可能,同时在绑定到静态场景的从运动恢复结构上维持弱约束。此外,论述的技术在场景的整个视频记录期间提供了准确的点云生成,而不考虑场景中的每个对象的局部化。从而,不会出现体积输出中的可见不一致并且用户的沉浸式体验更逼真。
过程900可由任何(一个或多个)适当的装置、(一个或多个)系统、或(一个或多个)平台实现,例如本文论述的那些。在一实施例中,过程900的至少一部分由一装置来实现,该装置具有存储器来存储与单独的重建3D对象相对应的数据以及任何其他论述的数据结构,并且具有一个或多个处理器来执行操作901-904的任何一者。在一实施例中,存储器和处理器是经由单片现场可编程门阵列集成电路实现的。如本文所使用的,术语“单片”指的是一器件与其他器件分立,但是其可为了通信和电力供给而耦合到其他器件。在一些实施例中,存储器和一个或多个处理器被实现在不同的装置中。
本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任何组合来实现。例如,本文论述的装置或系统的各种组件可至少部分地由计算片上系统(SoC)的硬件提供,例如可存在于计算系统中,例如智能电话中。本领域技术人员可认识到,本文描述的系统可包括在相应附图中没有描绘的额外组件。例如,本文论述的系统可包括为了清晰起见而没有描绘的额外组件。
虽然本文论述的示例过程的实现方式可包括按图示顺序开展示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括示出的操作的子集,包括按与图示不同的顺序执行的操作,或者包括额外的操作。
此外,本文论述的操作中的任何一个或多个可响应于由一个或多个计算机程序产品提供的指令来开展。这种程序产品可包括提供指令的信号承载介质,所述指令当被例如处理器执行时可提供本文描述的功能。计算机程序产品可在任何形式的一个或多个机器可读介质中提供。从而,例如,包括一个或多个图形处理单元或处理器核的处理器可响应于被一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而开展这里的示例过程的一个或多个块。一般而言,机器可读介质可通过程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何装置和/或系统实现这些装置或系统的至少一些部分,或者如本文所述的任何其他模块或组件。
按照在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可实现为软件封装、代码和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”例如可包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储被可编程电路执行的指令的固件中的单一一者或其任何组合。模块可集体地或者个体地体现为形成诸如集成电路(IC)、片上系统(SoC)等等之类的更大系统的一部分的电路。
图11是根据本公开的至少一些实现方式布置的示例系统1100的示意图。在各种实现方式中,系统1100可以是移动装置系统,但是系统1100不限于此情境。例如,系统1100可被包含到以下各项中:个人计算机(personal computer,PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personaldigital assistant,PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能装置(例如,智能电话、智能平板或智能电视)、移动互联网装置(mobile internet device,MID)、消息传递装置、数据通信装置、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lensreflex,DSLR)相机)、监视相机、包括相机的监视系统,等等。
在各种实现方式中,系统1100包括耦合到显示器1120的平台1102。平台1102可从内容装置接收内容,其中内容装置例如是(一个或多个)内容服务装置1130或(一个或多个)内容递送装置1140或其他内容源,例如图像传感器1119。例如,平台1102可从图像传感器1119或任何其他内容源接收如本文所述的图像数据。包括一个或多个导航特征的导航控制器1150可用于与例如平台1102和/或显示器1120交互。在下文更详细地描述这些组件的每一者。
在各种实现方式中,平台1102可包括芯片集1105、处理器1110、存储器1112、天线1113、存储装置1114、图形子系统1115、应用1116、图像信号处理器1117和/或无线电装置1118的任何组合。芯片集1105可提供处理器1110、存储器1112、存储装置1114、图形子系统1115、应用1116、图像信号处理器1117和/或无线电装置1118之间的相互通信。例如,芯片集1105可包括能够提供与存储装置1114的相互通信的存储适配器(未图示)。
处理器1110可实现为复杂指令集计算机(Complex Instruction Set Computer,CISC)或者精简指令集计算机(Reduced Instruction Set Computer,RISC)处理器、x86指令集兼容处理器、多核或者任何其他微处理器或中央处理单元(CPU)。在各种实现方式中,处理器1110可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器,等等。
存储器1112可实现为易失性存储器装置,例如但不限于随机访问存储器(RAM)、动态随机访问存储器(DRAM)或者静态RAM(SRAM)。
存储装置1114可实现为非易失性存储装置,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附接存储装置、闪存、电池后备SDRAM(同步DRAM)和/或网络可访问存储装置。在各种实现方式中,例如当包括多个硬盘驱动器时,存储装置1114可包括技术来为有价值的数字媒体增加存储性能增强保护。
图像信号处理器1117可实现为用于图像处理的专用数字信号处理器之类的。在一些示例中,图像信号处理器1117可基于单指令多数据或多指令多数据架构之类的来实现。在一些示例中,图像信号处理器1117可被表征为媒体处理器。如本文所述,图像信号处理器1117可基于片上系统架构和/或基于多核架构来实现。
图形子系统1115可执行诸如静态或视频之类的图像的处理以供显示。图形子系统1115例如可以是图形处理单元(graphics processing unit,GPU)或者视觉处理单元(visual processing unit,VPU)。模拟或数字接口可用于通信地耦合图形子系统1115和显示器1120。例如,该接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD符合技术中的任何一者。图形子系统1115可被集成到处理器1110或芯片集1105中。在一些实现方式中,图形子系统1115可以是通信地耦合到芯片集1105的独立装置。
本文描述的图形和/或视频处理技术可在各种硬件架构中实现。例如,图形和/或视频功能可被集成在芯片集内。可替换地,可使用分立的图形和/或视频处理器。作为另外一种实现方式,图形和/或视频功能可由包括多核处理器在内的通用处理器提供。在另外的实施例中,这些功能可实现在消费电子装置中。
无线电装置1118可包括能够利用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wireless local area network,WLAN)、无线个人区域网(wireless personal area network,WPAN)、无线城域网(wireless metropolitan areanetwork,WMAN)、蜂窝网络和卫星网络。在跨这种网络通信时,无线电装置1118可根据任何版本的一个或多个适用的标准操作。
在各种实现方式中,显示器1120可包括任何电视型监视器或显示器。显示器1120例如可包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的装置和/或电视机。显示器1120可以是数字的和/或模拟的。在各种实现方式中,显示器1120可以是全息显示器。另外,显示器1120可以是可接收视觉投影的透明表面。这种投影可传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(mobile augmented reality,MAR)应用的视觉覆盖。在一个或多个软件应用1116的控制下,平台1102可在显示器1120上显示用户界面1122。
在各种实现方式中,(一个或多个)内容服务装置1130可由任何国家的、国际的和/或独立的服务所容宿并且从而例如是平台1102经由互联网可访问的。(一个或多个)内容服务装置1130可耦合到平台1102和/或显示器1120。平台1102和/或(一个或多个)内容服务装置1130可耦合到网络1160以向和从网络1160传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送装置1140也可耦合到平台1102和/或显示器1120。
图像传感器1119可包括可基于场景提供图像数据的任何适当的图像传感器。例如,图像传感器1119可包括基于半导体电荷耦合器件(charge coupled device,CCD)的传感器、基于互补金属氧化物半导体(complimentary metal-oxide-semiconductor,CMOS)的传感器、基于N型金属氧化物半导体(N-type metal-oxide-semiconductor,NMOS)的传感器,等等。例如,图像传感器1119可包括可检测场景的信息以生成图像数据的任何装置。
在各种实现方式中,(一个或多个)内容服务装置1130可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的装置或家电、以及能够经由网络1160或者直接地在内容提供者与平台1102和/或显示器1120之间单向或双向地传输内容的任何其他类似装置。将会明白,可经由网络1160单向地和/或双向地向和从系统1100中的组件的任何一者和内容提供者传输内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息,等等。
(一个或多个)内容服务装置1130可接收内容,例如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可包括任何有线电视或卫星电视或者无线电或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
在各种实现方式中,平台1102可从具有一个或多个导航特征的导航控制器1150接收控制信号。导航控制器1150的导航特征例如可用于与用户界面1122交互。在各种实施例中,导航控制器1150可以是指点装置,该指点装置可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口装置)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统允许用户利用物理手势控制计算机或电视机和向其提供数据。
导航控制器1150的导航特征的移动可被在显示器上显示的指针、光标、聚焦环或其他视觉指示物的移动复现在显示器(例如,显示器1120)上。例如,在软件应用1116的控制下,位于导航控制器1150上的导航特征例如可被映射到在用户界面1122上显示的虚拟导航特征。在各种实施例中,导航控制器1150可不是单独的组件,而是可被集成到平台1102和/或显示器1120中。然而,本公开并不限于本文示出或描述的元素或者情境。
在各种实现方式中,例如,当被启用时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮像电视机那样即刻开启和关闭平台1102的技术。程序逻辑可允许平台1102即使在平台被“关闭”时也可将内容流送到媒体适配器或(一个或多个)其他内容服务装置1130或(一个或多个)内容递送装置1140。此外,芯片集1105可包括对例如5.1环绕立体声音频和/或高清晰度7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括高速外围组件互连(peripheral component interconnect,PCI)图形卡。
在各种实现方式中,系统1100中示出的组件中的任何一个或多个可被集成。例如,平台1102和(一个或多个)内容服务装置1130可被集成,或者平台1102和(一个或多个)内容递送装置1140可被集成,或者平台1102、(一个或多个)内容服务装置1130、和(一个或多个)内容递送装置1140可被集成。在各种实施例中,平台1102和显示器1120可以是集成的单元。例如,显示器1120和(一个或多个)内容服务装置1130可被集成,或者显示器1120和(一个或多个)内容递送装置1140可被集成。这些示例并不意图限制本公开。
在各种实施例中,系统1100可实现为无线系统、有线系统或者两者的组合。当实现为无线系统时,系统1100可包括适合于通过无线共享介质通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如RF频谱等等。当实现为有线系统时,系统1100可包括适合于通过有线通信介质通信的组件和接口,例如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(network interface card,NIC)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、电缆、金属引线、印刷电路板(printed circuit board,PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
平台1102可建立一个或多个逻辑或物理信道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调,等等。控制信息可以指表示打算用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于将媒体信息路由过系统,或者指示节点以预定的方式处理媒体信息。然而,实施例并不限于图11中示出或描述的元素或情境。
如上所述,系统1100可实现为不同的物理风格或外形参数。图12图示了根据本公开的至少一些实现方式布置的示例小外形参数装置1200。在一些示例中,系统1100可经由装置1200实现。在其他示例中,本文论述的其他系统、组件或模块或者其一些部分可经由装置1200实现。在各种实施例中,例如,装置1200可实现为具有无线能力的移动计算装置。移动计算装置例如可以指具有处理系统和移动电源或供给电源(例如一个或多个电池)的任何装置。
移动计算装置的示例可包括个人计算机(personal computer,PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personal digital assistant,PDA)、蜂窝电话、组合蜂窝电话/PDA、智能装置(例如,智能电话、智能平板或智能移动电视)、移动互联网装置(mobile internet device,MID)、消息传递装置、数据通信装置、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,DSLR)相机),等等。
移动计算装置的示例还可包括被布置为由机动车辆或机器人实现的或者供人穿戴的计算机,例如手腕计算机、手指计算机、指环计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机、和其他可穿戴计算机。在各种实施例中,例如,移动计算装置可实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然作为示例一些实施例可利用被实现为智能电话的移动计算装置来描述,但可明白也可利用其他无线移动计算装置来实现其他实施例。实施例不限于此情境中。
如图12中所示,装置1200可包括具有正面1201和背面1202的外壳。装置1200包括显示器1204、输入/输出(I/O)装置1206、彩色相机1221、彩色相机1222、和集成天线1208。在一些实施例中,彩色相机1221和彩色相机1222获得如本文所述的平面图像。在一些实施例中,装置1200不包括彩色相机1221和1222并且装置1200从另一装置获得输入图像数据(例如,本文论述的任何输入图像数据)。装置1200还可包括导航特征1212。I/O装置1206可包括用于将信息输入到移动计算装置中的任何适当的I/O装置。I/O装置1206的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别装置和软件,等等。信息也可经由麦克风(未示出)被输入到装置1200中或者可被语音识别装置数字化。如图所示,装置1200可包括彩色相机1221、1222,以及集成到装置1200的背面1202(或者别处)的闪光灯1210。在其他示例中,彩色相机1221、1222和闪光灯1210可被集成到装置1200的正面1201,或者可提供正面相机集合和背面相机集合两者。彩色相机1221、1222和闪光灯1210可以是相机模块的组件,该相机模块用于发源具有IR纹理校正的彩色图像数据,该彩色图像数据可被处理成图像或流视频,该图像或流视频例如被输出到显示器1204和/或从装置1200经由天线1208远程传输。
各种实施例可利用硬件元素、软件元素或者两者的组合来实现。硬件元素的示例可包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(application specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(field programmable gate array,FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集,等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(application program interface,API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或者其任何组合。确定一实施例是否利用硬件元素和/或软件元素实现可根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
至少一个实施例的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,该指令当被机器读取时使得该机器制造逻辑来执行本文描述的技术。这种被称为IP核的表示可被存储在有形机器可读介质上并且被提供到各种客户或制造设施以加载到实际制作该逻辑或处理器的制造机器中。
虽然已参考各种实现方式描述了本文记载的某些特征,但此描述并不打算被从限制意义上来解释。因此,对本公开所属领域的技术人员来说明显的,对本文描述的实现方式的各种修改以及其他实现方式被认为落入本公开的精神和范围内。
在一个或多个第一实施例中,一种用于生成场景内的虚拟视图的方法包括:对于特定时间实例下所述场景中的多个单独的重建3D对象中的每个3D对象,接收:该3D对象的多个3D点、多个2D特征点以及相机集合,每个2D特征点指示出在与该3D对象的3D点相对应的多个2D图像的至少一者中的位置,该相机集合指示出多个相机的相机子集,该相机子集用于获得场景中与2D图像相对应的帧,利用所述3D点、所述2D特征点、和所述相机集合中的每个相机的相机参数来为每个3D对象构造单独的束调整模型,至少部分同时地单独求解每个所述束调整模型以为每个束调整模型生成所述相机集合中的相机的更新后相机参数或者3D对象的更新后点云的至少一者,并且输出所述更新后相机参数或者所述更新后点云的至少一者以用于所述场景的3D重建。
在一个或多个第二实施例中,关于所述第一实施例,此外,在每个束调整模型中,选中的相机被固定到所述场景中的当前姿态。
在一个或多个第三实施例中,关于所述第一或第二实施例,此外,所述3D点、所述2D特征点、和所述相机集合对应于在所述特定时间实例由所述多个相机获得的所述场景的多个第一同期帧,并且其中,每个所述束调整模型将每一个相机固定到所述相机在所述场景中的当前姿态。
在一个或多个第四实施例中,关于所述第一至第三实施例的任何一者,此外,所述方法还包括对于所述多个单独3D对象中的每个3D对象,接收该3D对象的多个第二3D点、多个第二2D特征点以及第二相机集合,每个第二2D特征点指示出在与该3D对象的第二3D点相对应的多个第二2D图像的至少一者中的第二位置,该第二相机集合指示出多个相机中与第二2D图像相对应的第二相机子集,利用所述第二3D点、所述第二2D特征点、和所述第二相机集合中的每个相机的相机参数,来为每个3D对象构造第二束调整模型,其中,在每个第二束调整模型中,选中的第二相机被固定到所述场景中的第二当前姿态并且每个对象的所有第二3D点被固定到所述场景中的当前第二3D点位置,并且至少部分同时地单独求解每个所述第二束调整模型,以为每个第二束调整模型生成第二更新后相机参数,其中每个3D对象的所有第二3D点保持固定。
在一个或多个第五实施例中,关于所述第一至第四实施例的任何一者,此外,所述方法还包括在所述场景的同时帧的多个集合上,交替地构造和求解具有固定相机姿态的束调整模型以及构造和求解具有固定3D点的第二束调整模型。
在一个或多个第六实施例中,关于所述第一至第五实施例的任何一者,此外,所述方法还包括对于不存在任何动态对象的所述场景的背景执行从运动恢复结构处理,以为所述多个相机的每一者生成初始相机参数并且为所述场景内的标识的特征生成包括3D点的背景点云,其中每个所述单独束调整模型包括所述初始相机参数。
在一个或多个第七实施例中,关于所述第一至第六实施例的任何一者,此外,每个所述单独束调整模型包括损失函数之和,所述损失函数的每一者测量2D特征点和相应的3D点的重投影点之间的差异,所述重投影点是基于所述相机参数的。
在一个或多个第八实施例中,关于所述第一至第七实施例的任何一者,此外,所述接收、构造、单独求解、和输出是在小于目标持续时间的持续时间中执行的,其中所述目标持续时间等于与所述多个相机对所述场景的捕捉相对应的帧率的倒数减去预定的虚拟视图持续时间。
在一个或多个第九实施例中,关于所述第一至第八实施例的任何一者,此外,所述方法还包括跟踪每个所述单独的重建3D对象的运动,基于所述单独3D对象中的第一3D对象的运动的距离小于阈值而对于该第一3D对象检测到小运动或无运动,并且响应于检测到小运动或无运动,而跳过为该第一3D对象构造第二束调整模型。
在一个或多个第十实施例中,关于所述第一至第九实施例的任何一者,此外,所述方法还包括将所述场景的完全3D模型划分成背景对象和所述单独的重建3D对象,并且将每个所述单独的重建3D对象标注为动态的并且将所述背景对象标注为静态的,其中响应于所述单独的重建3D对象被标注为动态而执行所述接收、构造、单独求解、和输出,并且对于所述背景对象跳过所述接收、构造、求解、和输出。
在一个或多个第十一实施例中,关于所述第一至第十实施例的任何一者,此外,每个单独的重建3D对象的多个3D点包括密集点云,该密集点云具有比来自求解该束调整模型的相应的更新后点云更大的3D点密度。
在一个或多个第十二实施例中,一种装置或系统包括存储器和一个或多个处理器来执行根据上述实施例中任何一者的方法。
在一个或多个第十三实施例中,至少一种非暂态机器可读介质包括多个指令,所述多个指令响应于在计算装置上被执行,使得所述计算装置执行根据上述实施例中任何一者的方法。
在一个或多个第十四实施例中,一种设备可包括用于执行根据上述实施例中任何一者的方法的装置。
将会认识到,实施例不限于这样描述的实施例,而是可在带有修改和变更的情况下实现,而不脱离所附权利要求的范围。例如,上述实施例可包括特征的特定组合。然而,上述实施例不限于此,并且在各种实现方式中,上述实施例可包括仅开展这种特征的子集,开展这种特征的不同顺序,开展这种特征的不同组合和/或开展除明确列出的那些特征以外的附加特征。因此应当参考所附权利要求以及这种权利要求有权享有的等同物的完整范围来确定实施例的范围。

Claims (24)

1.一种用于生成场景内的虚拟视图的系统,包括:
存储器,对于特定时间实例下所述场景中的多个单独的重建3D对象中的每个3D对象,所述存储器用于存储该3D对象的多个3D点、多个2D特征点以及相机集合,每个2D特征点指示出在与该3D对象的3D点相对应的多个2D图像的至少一者中的位置,所述相机集合指示出多个相机中的相机子集,所述相机子集用于获得所述场景中与所述2D图像相对应的帧;以及
耦合到所述存储器的一个或多个处理器,所述一个或多个处理器用于:
利用所述3D点、所述2D特征点、和所述相机集合中的每个相机的相机参数,来为每个3D对象构造单独的束调整模型,其中,在每个束调整模型中,选中的相机被固定到所述场景中的当前姿态;
至少部分同时地单独求解每个所述束调整模型,以为每个束调整模型生成所述相机集合中的每个相机的更新后相机参数或者所述3D对象的更新后点云的至少一者;并且
输出所述更新后相机参数或者所述更新后点云的至少一者,以用于所述场景的3D重建。
2.如权利要求1所述的系统,其中,在每个束调整模型中,选中的相机被固定到所述场景中的当前姿态。
3.如权利要求1所述的系统,其中,所述3D点、所述2D特征点、和所述相机集合与所述特定时间实例下由所述多个相机获得的所述场景的多个第一同期帧相对应,并且其中,每个所述束调整模型将每一个相机固定到所述相机在所述场景中的当前姿态。
4.如权利要求3所述的系统,所述一个或多个处理器还用于:
对于所述多个单独的3D对象中的每个3D对象,接收该3D对象的多个第二3D点、多个第二2D特征点以及第二相机集合,每个第二2D特征点指示出在与该3D对象的第二3D点相对应的多个第二2D图像的至少一者中的第二位置,所述第二相机集合指示出所述多个相机中与所述第二2D图像相对应的第二相机子集;
利用所述第二3D点、所述第二2D特征点、和所述第二相机集合中的每个相机的相机参数,来为每个3D对象构造第二束调整模型,其中,在每个第二束调整模型中,选中的第二相机被固定到所述场景中的第二当前姿态,并且每个对象的所有第二3D点被固定到所述场景中的当前第二3D点位置;并且
至少部分同时地单独求解每个所述第二束调整模型,以为每个第二束调整模型生成第二更新后相机参数,其中每个3D对象的所有第二3D点保持固定。
5.如权利要求4所述的系统,所述一个或多个处理器还用于:
在所述场景的同时帧的多个集合上,交替地构造和求解具有固定相机姿态的束调整模型以及构造和求解具有固定3D点的第二束调整模型。
6.如权利要求1到5中任一项所述的系统,所述一个或多个处理器还用于:
对于不存在任何动态对象的所述场景的背景执行从运动恢复结构处理,以为所述多个相机的每一者生成初始相机参数并且为所述场景内的标识的特征生成包括3D点的背景点云,其中每个所述单独的束调整模型包括所述初始相机参数。
7.如权利要求1到5中任一项所述的系统,其中,每个所述单独的束调整模型包括损失函数之和,所述损失函数的每一者测量2D特征点和相应的3D点的重投影点之间的差异,所述重投影点是基于所述相机参数的。
8.如权利要求1到5中任一项所述的系统,其中,所述一个或多个处理器在小于目标持续时间的持续时间中执行接收、构造、单独求解、和输出,其中所述目标持续时间等于与所述多个相机对所述场景的捕捉相对应的帧率的倒数减去预定的虚拟视图持续时间。
9.如权利要求1到5中任一项所述的系统,所述一个或多个处理器还用于:
跟踪每个所述单独的重建3D对象的运动;
基于所述单独的3D对象中的第一3D对象的运动的距离小于阈值,而对于该第一3D对象检测到小运动或无运动;并且
响应于检测到小运动或无运动,而跳过为该第一3D对象构造第二束调整模型。
10.如权利要求1到5中任一项所述的系统,所述一个或多个处理器还用于:
将所述场景的完全3D模型划分成背景对象和所述单独的重建3D对象;并且
将每个所述单独的重建3D对象标注为动态的并且将所述背景对象标注为静态的,其中所述一个或多个处理器响应于所述单独的重建3D对象被标注为动态的而执行接收、构造、单独求解、和输出,并且所述一个或多个处理器对于所述背景对象跳过接收、构造、单独求解、和输出。
11.如权利要求1到5中任一项所述的系统,其中,每个单独的重建3D对象的多个3D点包括密集点云,该密集点云具有比来自求解所述束调整模型的相应的更新后点云更大的3D点密度。
12.一种用于生成场景内的虚拟视图的方法,包括:
对于特定时间实例下所述场景中的多个单独的重建3D对象中的每个3D对象,接收该3D对象的多个3D点、多个2D特征点以及相机集合,每个2D特征点指示出在与该3D对象的3D点相对应的多个2D图像的至少一者中的位置,所述相机集合指示出多个相机的相机子集,所述相机子集用于获得所述场景中与所述2D图像相对应的帧;
利用所述3D点、所述2D特征点、和所述相机集合中的每个相机的相机参数,来为每个3D对象构造单独的束调整模型;
至少部分同时地单独求解每个所述束调整模型,以为每个束调整模型生成所述相机集合中的相机的更新后相机参数或者所述3D对象的更新后点云的至少一者;并且
输出所述更新后相机参数或者所述更新后点云的至少一者,以用于所述场景的3D重建。
13.如权利要求12所述的方法,其中,在每个束调整模型中,选中的相机被固定到所述场景中的当前姿态。
14.如权利要求12所述的方法,其中,所述3D点、所述2D特征点、和所述相机集合与所述特定时间实例下由所述多个相机获得的所述场景的多个第一同期帧相对应,并且其中,每个所述束调整模型将每一个相机固定到所述相机在所述场景中的当前姿态。
15.如权利要求14所述的方法,还包括:
对于所述多个单独的3D对象中的每个3D对象,接收该3D对象的多个第二3D点、多个第二2D特征点以及第二相机集合,每个第二2D特征点指示出在与该3D对象的第二3D点相对应的多个第二2D图像的至少一者中的第二位置,所述第二相机集合指示出所述多个相机中与所述第二2D图像相对应的第二相机子集;
利用所述第二3D点、所述第二2D特征点、和所述第二相机集合中的每个相机的相机参数,来为每个3D对象构造第二束调整模型,其中,在每个第二束调整模型中,选中的第二相机被固定到所述场景中的第二当前姿态并且每个对象的所有第二3D点被固定到所述场景中的当前第二3D点位置;并且
至少部分同时地单独求解每个所述第二束调整模型,以为每个第二束调整模型生成第二更新后相机参数,其中每个3D对象的所有第二3D点保持固定。
16.如权利要求15所述的方法,还包括:
在所述场景的同时帧的多个集合上,交替地构造和求解具有固定相机姿态的束调整模型以及构造和求解具有固定3D点的第二束调整模型。
17.如权利要求12到16中任一项所述的方法,还包括:
对于不存在任何动态对象的所述场景的背景执行从运动恢复结构处理,以为所述多个相机的每一者生成初始相机参数并且为所述场景内的标识的特征生成包括3D点的背景点云,其中每个所述单独的束调整模型包括所述初始相机参数。
18.如权利要求12到16中任一项所述的方法,其中,每个所述单独的束调整模型包括损失函数之和,所述损失函数的每一者测量2D特征点和相应的3D点的重投影点之间的差异,所述重投影点是基于所述相机参数的。
19.如权利要求12到16中任一项所述的方法,其中,所述接收、构造、单独求解、和输出是在小于目标持续时间的持续时间中执行的,其中所述目标持续时间等于与所述多个相机对所述场景的捕捉相对应的帧率的倒数减去预定的虚拟视图持续时间。
20.如权利要求12到16中任一项所述的方法,还包括:
跟踪每个所述单独的重建3D对象的运动;
基于所述单独的3D对象中的第一3D对象的运动的距离小于阈值,而对于该第一3D对象检测到小运动或无运动;并且
响应于检测到小运动或无运动,而跳过为该第一3D对象构造第二束调整模型。
21.如权利要求12到16中任一项所述的方法,还包括:
将所述场景的完全3D模型划分成背景对象和所述单独的重建3D对象;并且
将每个所述单独的重建3D对象标注为动态的并且将所述背景对象标注为静态的,其中响应于所述单独的重建3D对象被标注为动态的而执行所述接收、构造、单独求解、和输出,并且对于所述背景对象跳过所述接收、构造、求解、和输出。
22.如权利要求12到16中任一项所述的方法,其中,每个单独的重建3D对象的多个3D点包括密集点云,该密集点云具有比来自求解所述束调整模型的相应的更新后点云更大的3D点密度。
23.至少一种机器可读介质,包括:
多个指令,所述多个指令响应于在计算装置上被执行,使得所述计算装置执行如权利要求12到22中任一项所述的方法。
24.一种设备,包括:
用于执行如权利要求12到22中任一项所述的方法的装置。
CN202011006174.0A 2019-12-18 2020-09-23 视频中的连续局部3d重建细化 Pending CN113012275A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/719,557 2019-12-18
US16/719,557 US11295473B2 (en) 2019-12-18 2019-12-18 Continuous local 3D reconstruction refinement in video

Publications (1)

Publication Number Publication Date
CN113012275A true CN113012275A (zh) 2021-06-22

Family

ID=70279651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011006174.0A Pending CN113012275A (zh) 2019-12-18 2020-09-23 视频中的连续局部3d重建细化

Country Status (3)

Country Link
US (1) US11295473B2 (zh)
CN (1) CN113012275A (zh)
DE (1) DE102020125612A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958482B (zh) * 2016-10-17 2021-06-18 杭州海康威视数字技术股份有限公司 一种三维场景模型构建方法及装置
US20230107110A1 (en) * 2017-04-10 2023-04-06 Eys3D Microelectronics, Co. Depth processing system and operational method thereof
US11158087B2 (en) * 2019-12-06 2021-10-26 Intel Corporation Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems
US11295473B2 (en) * 2019-12-18 2022-04-05 Intel Corporation Continuous local 3D reconstruction refinement in video
US11601636B2 (en) * 2020-05-22 2023-03-07 Google Llc Methods, systems, and media for generating an immersive light field video with a layered mesh representation
US11924397B2 (en) * 2020-07-23 2024-03-05 Samsung Electronics Co., Ltd. Generation and distribution of immersive media content from streams captured via distributed mobile devices
KR20220038996A (ko) 2020-09-21 2022-03-29 삼성전자주식회사 특징 임베딩 방법 및 장치
CN112102411B (zh) * 2020-11-02 2021-02-12 中国人民解放军国防科技大学 一种基于语义误差图像的视觉定位方法及装置
CN112767541B (zh) * 2021-01-15 2024-09-13 浙江商汤科技开发有限公司 三维重建方法及装置、电子设备和存储介质
US11527047B2 (en) 2021-03-11 2022-12-13 Quintar, Inc. Augmented reality system for viewing an event with distributed computing
US12003806B2 (en) * 2021-03-11 2024-06-04 Quintar, Inc. Augmented reality system for viewing an event with multiple coordinate systems and automatically generated model
US12028507B2 (en) * 2021-03-11 2024-07-02 Quintar, Inc. Augmented reality system with remote presentation including 3D graphics extending beyond frame
US11657578B2 (en) * 2021-03-11 2023-05-23 Quintar, Inc. Registration for augmented reality system for viewing an event
US11645819B2 (en) 2021-03-11 2023-05-09 Quintar, Inc. Augmented reality system for viewing an event with mode based on crowd sourced images
US11776275B2 (en) * 2021-10-11 2023-10-03 Worlds Enterprises, Inc. Systems and methods for 3D spatial tracking
US20230326075A1 (en) * 2022-04-07 2023-10-12 Verizon Patent And Licensing Inc. Methods and systems for camera calibration based on apparent movement of image content at a scene
CN115100327B (zh) * 2022-08-26 2022-12-02 广东三维家信息科技有限公司 动画立体视频生成的方法、装置及电子设备
WO2024101460A1 (ko) * 2022-11-07 2024-05-16 팜피 주식회사 전처리된 이미지를 이용하여 3d 객체를 생성하는 방법 및 이를 위한 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150070468A1 (en) * 2013-09-10 2015-03-12 Faro Technologies, Inc. Use of a three-dimensional imager's point cloud data to set the scale for photogrammetry
CN107655461B (zh) * 2014-05-05 2020-07-24 赫克斯冈技术中心 测量子系统和测量系统
US10347008B2 (en) * 2017-08-14 2019-07-09 Trimble Inc. Self positioning camera system to 3D CAD/BIM model
US11087549B2 (en) * 2018-10-15 2021-08-10 University Of Maryland, College Park Methods and apparatuses for dynamic navigable 360 degree environments
US10957062B2 (en) * 2018-10-31 2021-03-23 Bentley Systems, Incorporated Structure depth-aware weighting in bundle adjustment
US11295473B2 (en) * 2019-12-18 2022-04-05 Intel Corporation Continuous local 3D reconstruction refinement in video
US20210118182A1 (en) * 2020-12-22 2021-04-22 Intel Corporation Methods and apparatus to perform multiple-camera calibration

Also Published As

Publication number Publication date
DE102020125612A1 (de) 2021-06-24
US20200126257A1 (en) 2020-04-23
US11295473B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
US11295473B2 (en) Continuous local 3D reconstruction refinement in video
US11734798B2 (en) Method and apparatus for person super resolution from low resolution image
US11334975B2 (en) Pose synthesis in unseen human poses
CN107925753B (zh) 利用动态相机进行3d图像捕捉的方法和系统
CN107925755B (zh) 针对图像处理进行平面表面检测的方法和系统
CN110322542B (zh) 重建真实世界3d场景的视图
US9852513B2 (en) Tracking regions of interest across video frames with corresponding depth maps
US11880939B2 (en) Embedding complex 3D objects into an augmented reality scene using image segmentation
CN112561920A (zh) 用于在视频中进行密集语义分割的深度学习
US11869141B2 (en) Automatic point cloud validation for immersive media
CN111971713A (zh) 使用图像和时间跟踪神经网络进行的3d面部捕获和修改
US20130272609A1 (en) Scene segmentation using pre-capture image motion
CN111726597A (zh) 用于连贯且完整的视图合成的多通道附加工具
US12086995B2 (en) Video background estimation using spatio-temporal models
CN113450392A (zh) 基于图像模板的参数化透视的鲁棒表面配准
WO2022021217A1 (en) Multi-camera person association via pair-wise matching in continuous frames for immersive video
CN114648552A (zh) 等量矩形图像的立体对中的准确光流估计
WO2022115991A1 (en) Incremental 2d-to-3d pose lifting for fast and accurate human pose estimation
WO2022061631A1 (en) Optical tracking for small objects in immersive video
Hwang et al. Components for bidirectional augmented broadcasting services on smart TVs

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