CN116438573A - 场景布局估计 - Google Patents
场景布局估计 Download PDFInfo
- Publication number
- CN116438573A CN116438573A CN202180075822.4A CN202180075822A CN116438573A CN 116438573 A CN116438573 A CN 116438573A CN 202180075822 A CN202180075822 A CN 202180075822A CN 116438573 A CN116438573 A CN 116438573A
- Authority
- CN
- China
- Prior art keywords
- layout
- environment
- candidate
- images
- mcts
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/35—Categorising the entire scene, e.g. birthday party or wedding scene
- G06V20/36—Indoor scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/653—Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
-
- 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/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Structural Engineering (AREA)
- Architecture (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Civil Engineering (AREA)
- Pure & Applied Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
提供了用于确定环境布局的系统和技术。例如,基于环境的一个或多个图像以及与一个或多个图像相关联的深度信息,可以检测对应于环境的候选布局集和候选对象集。候选布局集和候选对象集可以被组织为结构化树。例如,可以生成包括对应于候选布局集和候选对象集的节点的结构化树。可以在结构化树中选择对象和布局的组合(例如,基于对结构化树的搜索,诸如使用蒙特卡罗树搜索(MCTS)算法或适配的MCTS算法)。可以基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。
Description
技术领域
本公开一般涉及估计图像中场景的布局和对象,并且更具体地,涉及使用场景搜索技术来执行布局和对象估计。
发明内容
在一些实施例中,描述了用于估计图像中描绘的场景或环境的布局(例如,三维(3D)布局)和对象的系统和技术。从图像(例如,红绿蓝(RGB)图像、RGB深度(RGB-D)图像或其他图像)估计3D房间布局(例如,墙壁、地板、天花板等)和对象(例如,椅子、桌子等)对于许多视觉引导任务是有用的,例如室内导航、增强现实(AR)、机器人、汽车、航空、三维场景理解、物体抓取、物体跟踪等任务。例如,知道房间的3D布局为定位提供了稳定的标志。
在某些情况下,场景的布局和对象估计可能很困难。例如,当执行布局和对象估计时,房间或其他空间中的对象的遮挡(例如,房间中的家具引起的遮挡)会导致问题。在一个示例中,由于遮挡,环境的重要图像特征,例如角落或边缘,可能是不可观察到的或者仅仅是部分可观察到的。在其他示例中,遮挡会导致照明效果(例如,阴影、反射等),会导致墙壁和天花板区域缺乏纹理,会导致有限的注释数据(例如,用于机器学习方法)等。
本文描述的系统和技术提供了来自一个或多个图像的改进的布局和对象估计,包括3D布局估计。根据至少一个示例,提供了一种确定一个或多个环境布局和对象的方法。该方法可以包括:基于环境的一个或多个图像和与一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集;生成包括对应于候选布局集和候选对象集的节点的结构化树;在结构化树中选择对象和布局的组合;并且基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。
在另一示例中,提供了一种用于确定一个或多个环境布局和对象的装置。该装置包括至少一个存储器和耦合到该至少一个存储器的至少一个处理器(例如,在电路中实施)。该至少一个处理器被配置为:基于环境的一个或多个图像和与一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集;生成包括对应于候选布局集和候选对象集的节点的结构化树;在结构化树中选择对象和布局的组合;并且基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。
在另一示例中,一种其上存储有指令的非暂时性计算机可读介质,当该指令由一个或多个处理器执行时,使得一个或多个处理器:基于环境的一个或多个图像和与一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集;生成包括对应于候选布局集和候选对象集的节点的结构化树;在结构化树中选择对象和布局的组合;并且基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。
在另一示例中,提供了一种用于确定一个或多个环境布局和对象的装置。该装置包括:用于基于环境的一个或多个图像和与一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集的部件;用于生成包括对应于候选布局集和候选对象集的节点的结构化树的部件;用于在结构化树中选择对象和布局的组合的部件;以及用于基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局的部件。
在一些方面,为了选择结构化树中的对象和布局的组合,上述方法、装置和计算机可读介质可以包括使用蒙特卡罗树搜索(MCTS)算法来执行结构化树的搜索,或者可以基于使用蒙特卡罗树搜索(MCTS)算法对结构化树的搜索。在一些示例中,MCTS算法包括适配的MCTS算法,其中,适配的MCTS算法向在结构化树中搜索的每个节点分配适合度值,适合度值表示与节点相关联的对象和布局中的至少一个出现在环境中的概率。在一些方面,上述方法、装置和计算机可读介质可以为结构化树中的每个节点生成分数,该分数基于适配的MCTS算法,该分数包括为结构化树的每个节点处的一个或多个视图分配的权重、为MCTS导出的探索项以及适合度值。在一些示例中,权重至少部分地基于一个或多个视图的视图分数,视图的视图分数定义了与关联于该视图的节点相关联的候选和来自一个或多个图像的数据以及与该视图相关联的深度信息之间的一致性度量。
在一些方面,候选布局集可以包括3D布局模型和相关联的姿势的集合,并且候选对象集可以包括3D对象模型和相关联的姿势的集合。
在一些方面,一个或多个图像可以包括一个或多个红-绿-蓝图像(RGB),并且深度信息可以包括环境的一个或多个深度图。在一些情况下,一个或多个图像和深度信息可以包括一个或多个RGB-深度(RGB-D)图像。
在一些情况下,检测候选布局集可以包括基于与一个或多个图像相关联的点云的语义分割,识别对应于环境的墙壁和环境的地板中的至少一个的3D点;基于3D点生成3D平面;基于至少一些3D平面之间的交叉点生成多边形;以及基于多边形确定布局候选。
在一些方面,检测候选对象集可以包括检测为环境生成的点云中的对象的3D边界框建议;并且对于每个边界框建议,从数据集中检索候选对象模型集。
在一些情况下,结构化树包括多个级别,其中每个级别包括与环境相关联的不同的不兼容候选集。在一些方面,不同的不兼容候选集包括不兼容的对象和/或不兼容的布局。在一些情况下,当两个或更多候选相交或者不是空域相邻时,来自不同的不兼容候选集的两个或更多候选是不兼容的。
在一些方面,环境包括3D场景。
在一些方面,候选布局集和候选对象集的每个候选包括对应于相交平面的多边形。在一些情况下,相交平面包括一个或多个二维平面。在一些示例中,多边形包括三维多边形。在一些方面,一个或多个多边形包括一个或多个三维多边形。
在一些方面,上述方法、装置和计算机可读介质还包括使用机器学习模型来检测一个或多个平面。
在一些方面,上述方法、装置和计算机可读介质还包括使用机器学习模型和语义分割来检测一个或多个平面。
在一些方面,上述方法、装置和计算机可读介质可以包括基于所确定的环境的3D布局来生成虚拟内容。
在一些方面,上述方法、装置和计算机可读介质可以包括与计算设备共享(例如,发送、上传等)所确定的环境的3D布局。
在一些方面,一个或多个装置是、是其一部分和/或包括相机、移动设备(例如,移动电话或所谓的“智能电话”或其他移动设备)、可穿戴设备、扩展现实(XR)设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)个人计算机、膝上型计算机、服务器计算机、车辆或车辆的计算设备或组件或其他设备。在一些方面,该装置包括用于捕获一个或多个图像的照相机或多个照相机。在一些方面,该装置还包括用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在一些方面,上述装置可以包括一个或多个传感器(例如,一个或多个惯性测量单元(IMU),诸如一个或多个陀螺仪、一个或多个加速度计、其任何组合和/或其他传感器)。
本概要不旨在识别所要求保护的主题的关键或基本特征,也不旨在单独用于确定所要求保护的主题的范围。应通过参考本专利的整个说明书的适当部分、任何或所有附图和每项权利要求来理解主题。
在参考以下说明书、权利要求书和附图时,上述以及其他特征和实施例将变得更加明显。
附图说明
下面参考以下附图详细描述本申请的示例性实施例:
图1A是示出了根据一些示例的用于从输入图像生成估计的三维(3D)场景的示例过程的图;
图1B是示出了根据一些示例的场景估计系统的示例的图;
图2A是示出了根据一些示例的分割图和深度图的示例的图;
图2B至图2D示出了根据一些示例的红-绿蓝-(RGB)-深度(RGB-D)扫描和3D模型的各种示例挑战;
图3是示出根据一些示例的用于理解3D场景的结构化树搜索方法的示例过程的图;
图4是示出了根据一些示例的用于生成房间布局建议的示例过程的图;
图5是示出了根据一些示例的用于对象建议生成的示例的图;
图6A和图6B是示出了根据一些示例的可以为场景选择的建议的示例的图;
图7示出了根据一些示例生成的场景树结构(也称为结构化树);
图8是示出了根据一些示例的用于在结构化树中寻找候选表示的示例蒙特卡罗树搜索(MCTS)操作的图;
图9A至图9E示出了根据一些示例的来自用于有效搜索场景树的基于MCTS的自适应算法的示例结果;
图10A和图10B示出了根据一些示例的来自自动生成的布局和对象注释的示例结果与来自手动布局注释的结果的比较;
图11是示出了根据一些示例的确定一个或多个环境布局和对象的过程的示例的流程图;以及
图12示出了其中可以实施一个或多个实施例的计算系统的示例。
具体实施方式
下面提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合应用,如对于本领域技术人员来说将是显而易见的。在下面的描述中,为了解释的目的,阐述了具体细节,以便提供对本申请的实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实施各种实施例。附图和说明并不旨在限制。
随后的描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,接下来对示例性实施例的描述将为本领域技术人员提供实施示例性实施例的使能描述。应当理解,在不脱离如所附权利要求中所述的应用的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
本文描述了用于从一个或多个图像改进布局和对象估计的系统、装置、过程(也称为方法)和计算机可读介质(本文统称为“系统和技术”)。在一个说明性示例中,一个或多个图像可以包括红绿蓝(RGB)数据和深度数据,其在一些情况下可以包括RGB深度(RGB-D)图像。也可以使用其他类型的图像,例如YUV或YCbCr图像(包括每个像素的亮度或亮度分量Y和色度或色度分量U和V或Cb和Cr)或其他类型的图像。尽管为了说明的目的,本文使用RGB-D图像描述了示例,但是本文描述的系统和技术可以使用任何类型的图像和与图像相关联的深度信息。
在一些方面,人工智能(AI)算法可以用于三维(3D)场景理解。在某些情况下,使用AI算法进行3D场景理解可以减少对训练数据的需求。在一些方面,本文使用的AI算法可以包括蒙特卡罗树搜索(MCTS)算法或技术。在一些方面,本文使用的AI算法可以包括MCTS算法或技术的修改。例如,为了有效地执行布局和对象估计,可以对标准MCTS树构造和探索策略进行改变,以使MCTS在处理3D场景时更有效。AI算法或技术(例如,MCTS或修改后的MCTS等)可用于从图像(例如,有噪声的红绿蓝(RGB)深度(RGB-D)扫描)中联合识别对象和房间布局。
一般来说,MCTS可以用于解决复杂的感知问题,通过将它们投射到某些应用中,例如单人游戏。与基于图形的布局恢复方法相比,MCTS可以优化任何损失。在一些情况下,本文描述的MCTS或修改的MCTS技术可以用于优化对象和房间布局假设的后验概率。这导致了综合分析方法,该方法通过生成具有估计的3D布局和对象的场景的渲染,并将渲染与场景的RGB-D图像/观察进行比较,来探索解决方案空间。
综合分析,也称为反向渲染或渲染和比较,是计算机视觉中从图像理解场景的概念。通过将场景表示的当前估计的渲染与观察到的图像进行比较,可以改进该估计。可以通过深度学习架构来观察综合分析方法的潜力,该架构通过学习预测第一估计和更新规则来利用这一思想。
综合分析深度学习方法可以提供更好的概括,并且比直接推断方法需要更少的训练数据,因为它们能够适应特定于输入图像的条件。一些方法是自监督或弱监督的,这可能是有利的,因为创建带注释的3D训练数据变得非常麻烦。但是,某些方法可能仅限于场景的一小部分,并且可能一次只考虑一个对象。这可能是限制因素,因为真实场景可能非常复杂,对象遮挡和交互会被忽略。
如上所述,本文描述的系统和技术可以应用MCTS来估计场景布局和估计场景中对象的放置(例如,位置和姿势等)。MCTS是一种离散的AI算法,可用于一个或多个应用。在一个说明性示例中,MCTS可用于学习玩游戏。例如,MCTS可以是AlphaGo和AlphaZero的组成部分,AlphaGo和AlphaZero是一种为不同的双人游戏(例如围棋和象棋)实现超人性能的算法。对于任何给定的应用,可以将感知视为(单人)游戏,目标是识别解释场景的正确3D元素。在缺乏监督指导的情况下,这种在开放世界中的识别过程可能会成为一项非常复杂的任务。在一些示例场景中,搜索空间可以具有2N的大小,其中N具有100到1000的数量级。在这种情况下,搜索问题可以被组织成太大而无法进行详尽评估的树结构,MCTS可能是很好的选择。MCTS可以在任何时候被中断,以返回迄今为止找到的最佳解决方案,这对于一些应用(例如,机器人应用、诸如增强现实或虚拟现实的扩展现实(XR)等)可能是有用的。
MCT可用于优化一般损失函数,这些损失函数不需要是可微分损失。因此,系统可以依赖于直接从贝叶斯框架中导出的损失函数,就像在一些综合分析方法中一样。损失函数可以将估计的渲染(可以是但不必是真实的)与输入图像进行比较,并且可以结合场景元素之间的约束。这将MCTS转变为一种综合分析的方法,探索对观察结果的可能解释,并且当解释没有希望时,可能回溯到更好的解释。MCTS的一个示例优点是它可以专注于最有希望的分支上,这使得即使对于具有高组合复杂性的问题也能高效地找到好的解决方案。
原则上,这些系统和技术可以将MCTS(例如,单人MCTS)直接应用于场景理解问题,其中一个动作(例如,一个移动)可以对应于选择一个建议。MCTS的目标可以是通过按顺序选择建议来解释场景。在某些情况下,使用标准MCTS算法可能不是特别有效。可以对标准MCTS算法进行修改,以使场景理解解决方案更有效地获得正确的解决方案。例如,可以基于建议之间的物理约束来构建解决方案树。可以修剪距离已经选择的建议最远的建议,以及那些与已经选择的建议不兼容的建议,例如如果这些建议与它们中的至少一个建议相交。对MCTS的这些修改可以显著加快对正确解决方案的搜索。此外,虽然MCTS可以基于优化的目标分数来优先考虑更多的探索/开发,但是可以基于建议如何局部地改进解决方案来使用分数。这改进了场景结构中细节的检索。
在一些情况下,本文描述的系统和技术可以与基于图优化的方法相关。这些方法依赖于由一元和二元项构成的目标函数,因为这些函数可以用图形算法进行有效优化。然而,这种效率是以问题的一般形式化程度较低为代价的。使用MCTS的一个示例优点是可以使用任何目标函数。这允许使用同时涉及所有对象的客观损失,而不是单个对象的总和,以及多个对象之间的约束,而不仅仅是两个。
在一些示例中,本文公开的系统和技术可以确定高质量的解决方案,这可以比可用的手动注释更准确。一种可能的用途是使用这些系统和技术来自动生成3D注释。在一个说明性示例中,3D注释可以用于训练深度学习方法,以便从单个图像进行快速推断。更一般地,所公开的系统和技术可以为感知问题带来新的途径,还可以实现感知和控制之间的集成架构。例如,系统和技术可以将MCTS或修改后的MCTS应用于机器人运动规划控制、基于XR的场景理解或映射(例如,用于将虚拟对象锚定到场景中的对象、用于生成地图等)等。
在一些示例中,系统和技术可以使用房间布局估计(例如,基于MCTS或修改后的MCTS的使用来确定)来重建布局组件(诸如墙壁、地板和天花板)的位置。一般而言,房间布局估计任务可能非常具有挑战性,因为布局组件通常部分或完全被房间中的家具遮挡。长方体假设将布局约束为盒子的形状,并且可以被假设用于单视图房间布局估计。曼哈顿假设在某种程度上是宽松的先验,并且强制相邻的布局组件彼此正交。从全景图像和点云中恢复布局的一些示例方法可以依赖于这种先验。
虽然这些假设使得布局估计任务更加容易,但是它们极大地限制了可以应用这些方法的布局配置的数量。克服这些注释的一种方法是通过有监督的深度学习。然而,大规模数据集通常受限于长方体或曼哈顿约束,并且注释小布局结构的过程可能是乏味的。这使得深度学习方法对一般布局的健壮性变得更加困难。
与用于布局估计的某些基于点云的方法相比,所公开的系统和技术可以应用于各种类型的数据集,例如应用于不完整的和有噪声的扫描(例如,由扫描网数据集提供的扫描),因为所公开的方法可以以渲染和比较的方式处理错误的建议,这很难仅通过点云数据实现。
一些布局建议生成系统限于曼哈顿布局。例如,一些布局建议生成系统检测单视图设置中的建议,并使用呈现和比较方法来检索布局。然而,这种系统使用穷举搜索来寻找解决方案。本文描述的基于场景结构和MCTS的搜索方法可以用于显著提高效率,即使在这种单视图设置中。
在一些示例中,本文描述的系统和技术可以应用于3D对象检测和模型检索,例如从RGB和深度数据。一些示例可以通过在概率框架中对对象-对象关系建模来预测RGB-D图像中的多个对象的3D边界框。在一些示例中,具有手工制作特征的滑动形状可用于从RGB-D图像预测3D边界框,并随后将其扩展到深层特征。一些示例可以使用霍夫投票方案来从扫描点云生成3D边界框建议。在一些情况下,来自一个或多个视图的RGB特征可以与来自场景的点云或体素网格的特征相结合,以预测对象的3D边界框、其对象性得分和类别。
可以考虑尝试联合重建布局和对象的一种或多种方法分类,例如生成方法和判别模型。生成模型允许通过合并几个先验来对场景进行更详细的语义推理。判别模型依赖于大量的训练数据来学习隐含的语义结构,并且已知如果输入场景与训练场景非常不同,则产生不可信的输出。
综合分析技术可以在几种生成方法中用于完整的场景重建。一些示例可以在长方体假设下估计房间布局,并通过最小化从输入RGB图像和渲染图像中提取的卷积特征的余弦距离来优化场景中多个对象的对齐。一些示例可以在解析图中组织3D场景,并将问题形式化为最大化图像和深度数据以及先验项的可能性。在某些情况下,3D几何短语可用于编码对象之间的3D几何和上下文交互。一些示例可以在其先验项中对人-对象、对象-对象和对象-布局关系进行编码,并使用Markov Chain Monte Carlo方法的变体来搜索最佳布局和对象配置。
虽然前述示例中的一些可能集中于利用对布局的某些假设(例如,立方体假设)来获得准确的对象和布局对齐,但是本文描述的系统和技术可以从大量建议中检索每个对象的最优模型(例如,最优CAD模型),并且可以恢复复杂的布局细节而无需做出任何假设。例如,在一些情况下,系统和技术可以在单个RGB-D图像中生成布局组件和对象的建议。系统和技术可以估计最优建议集,该建议集最小化在图像(例如,RGB图像)和与该图像相关联的深度信息(例如,深度图像或该图像中包括的深度信息,诸如RGB-D)上定义的拟合成本。在某些情况下,可以使用基于样本的模型检索方法。例如,基于样本的模型检索方法会受到训练数据集的大小的限制,并且可以使用爬山技术来执行优化,这易于陷入局部最优,并且不能很好地扩展到更大的搜索空间。在一些情况下,本文描述的系统和技术可以使用合成数据来生成场景(例如,整个场景)的多个对象建议(例如,几百个对象建议,或者在一些示例中或多或少),并且可以依赖于可以潜在地找到全局最优的更结构化和最优的搜索方法(例如,即使有大量建议)。这种系统和技术还允许检索更详细的布局,而无需对布局配置做出任何假设。
在某些情况下,鉴别方法可能会受到训练数据的限制,而训练数据对于完整的场景来说可能很难获得。可以使用从对象和布局的简单长方体表示到完整的CAD模型注释的不同的数据集。也可以使用具有丰富和真实3D环境的合成数据集。一些示例可以包括为全景图像中的对象和布局生成多个3D边界框假设,并训练支持向量机(SVM)来对它们进行整体排序。一些示例可以包括使用合作损失来联合估计单个RGB图像中的布局和对象的边界框。一些示例可以包括预测对象的规范体素表示以及它们的姿势和布局的深度图。一些示例方法可以估计单个RGB图像中每个对象的网格。
一些示例方法可以包括从RGB-D扫描中估计布局和对象,并且通过预测角、边和四边形来遵循分层方法进行布局估计,并且通过代理丢失来加强对象-对象和对象-布局的一致性。在一些示例中,本文描述的系统和技术可以使用自下而上方法和自上而下方法的组合,其中可以从点云中的低级数据为布局组件和对象生成若干建议,并且可以在图像和深度数据中整体地使用显式推理以及物理合理性约束来获得表示或解释场景的建议的最佳子集。
该系统和技术可以在特定数据集(例如,ScanNet数据集)上实施,该数据集可以用于显示使用该系统和技术生成的结果在几个对象类别上优于其他方法。例如,要评估MCTS在真实条件下如何理解3D场景,可以考虑ScanNet数据集。该系统可以旨在检索场景中的对象(例如,家具)和场景布局(例如,墙壁、地板、天花板等)的3D模型。可以使用从图像序列(例如,RGB-D图像序列)生成的点云来生成可能的3D模型的建议。可以应用MCTS(或修改后的MCTS)来确定最佳解释图像序列中的场景的建议组合。在一些情况下,3D场景估计和点云之间的比较可以直接在3D中执行。但是,在某些情况下,部分真实场景可能会从点云中丢失。例如,部分场景可能没有被扫描,或者RGB-D相机(或其他类型的图像和/或深度传感器)可能没有返回场景的某些部分(例如,对应于暗材料、反射材料或场景的其他部分的部分场景)的深度值。在某些情况下,可以渲染场景估计并与RGB-D帧进行比较。这允许系统有效地利用颜色和深度信息。颜色信息可以用于获得图像的语义分割,并与投影对象的遮罩进行比较,这可以避免对逼真渲染的需要。
基于关于数据集的分析,本文描述的系统和技术可以检索比一些手动注释更好的配置。如上所述,所描述的系统和技术可以用于自动生成3D注释。3D注释可用于各种目的,例如用于训练深度学习方法以获得更好(例如,更有效、更快等)推断的合成训练输入。
本文提供了MCTS的概述。MCTS是一种通用算法,它有效地解决了可以形式化为树搜索的高复杂性问题。MCTS通过对整个树中的路径进行采样并评估这些路径的得分来实现这一点。从只包含根节点的树开始,这棵树逐渐向最有希望的方向扩展。
为了识别最有希望的解决方案(例如,从根节点到叶节点的路径),每个节点N存储在“模拟”期间计算的游戏分数的总和Q(N)和它已经被访问的次数。从节点开始的遍历可以选择继续使用已经访问过的具有高分的节点(利用)或者尝试新的节点(探索)。由于严格执行开采会导致局部极大值,MCTS依赖于平衡利用和探索的策略。MCTS在多个树遍历上迭代,每个遍历具有从根节点执行的四个连续阶段,包括选择阶段、扩展阶段、模拟阶段和更新阶段。这些阶段在下面进一步详述。在下面的算法1中给出了对应于本文说明性示例问题的单人非随机MCTS的伪代码的示例:
算法1:非随机单人游戏的通用MCTS
选择–此步骤选择要在当前节点Ncurr的子节点中遍历的树的下一个节点。如果一个或几个子节点尚未被访问,随机选择他们中的一个并且MCTS移动到扩展步骤。如果所有的子节点至少被访问过一次,那么将根据某种标准选择下一个节点。平衡利用和探索最流行的标准是置信上限(UCB),它采用:
其中C(Ncurr)是当前节点的子节点集。在这种情况下,在迭代选择步骤之前,将所选择的节点分配给Ncurr。请注意,双人游戏通常考虑平均值而不是最大值,这更适合于我们的单人游戏。这是因为在单人游戏中,系统不需要考虑对手移动的不确定性,这使得游戏分数更可靠。
扩展–此步骤通过在第一次访问时将所选择的节点添加到树中来扩展树。
模拟–添加新节点后,会运行许多“模拟”来为其分配分数,并在迭代过程中更新所有访问过的节点的分数。每次模拟遵循从新节点到叶节点的随机选择的路径(例如,游戏结束)。
更新–根据模拟计算模拟分数。对于单人游戏,通常取在游戏结束时模拟最好的分数。该分数用于初始化存储在新节点中的Q值,并添加到迭代期间选择的其他节点的Q中。
然后下一次MCTS迭代将使用更新的分数遍历树。
在选定的迭代次数之后,在非随机单人游戏或其他应用的情况下,算法返回的解决方案是获得游戏最佳分数的模拟。
下面进一步描述一些示例方法。在一些示例中,给出了形式化,以及用于生成建议的示例和用于调整MCTS以有效检索好的解决方案的示例。
图1A是示出用于从输入图像102生成估计的3D场景108的示例过程的图。输入图像102可以包括场景的RGB-D扫描或图像,每个像素具有红、绿和蓝颜色分量以及深度信息,或者其他合适的图像。输入图像102可以用于预测场景的布局104和对象106。在一些示例中,场景可以包括室内空间。在一些示例中,一个或多个RGB-D图像可以用于生成3D扫描(例如,输入图像102),该3D扫描可以用于预测布局104和对象106。在某些情况下,室内场景的RGB-D扫描可以通过视觉里程计或同步定位和映射(SLAM)技术以及RGB-D传感器获得。
在一些示例中,布局可以包括空间的墙壁和地板,表示为3D多边形。对象可以由它们的3D模型连同它们的3D姿势(例如,3D旋转和3D平移)来表示。在一些情况下,生成的3D场景可以包括估计的对象106和覆盖在场景上的布局104。
在一些示例中,本文描述的过程和技术可以用于确定具有定义的结构(例如,由一个或多个地板、天花板、墙壁和/或其他对象定义的结构)的房间或其他环境的3D组件(例如,3D布局、对象等)。例如,如下面更详细描述的,该技术可以检测和/或分割输入图像中描绘的环境的平面。在某些情况下,可以丢弃不属于任何特定定义的布局组件或对象的平面。在一个说明性示例中,对应于地板、天花板、墙壁和/或环境中的其他对象的平面被保留,而对应于其他对象或组件的平面被丢弃。在一些示例中,可以计算剩余平面的3D参数,并且基于这些参数来确定平面交点。平面交点可以表示房间布局的候选多边形的顶点。例如,可以基于平面的交点来识别角和边(或边界)。该技术可以基于角和边来确定多边形。例如,可以执行搜索(例如,综合分析方法)来找到图像的最优的布局多边形集。可以基于多边形来确定环境的3D布局。
在一些示例中,本文描述的过程和技术可以用于各种应用,例如但不限于增强现实、机器人导航、自动驾驶等。
图1B是示出示例场景估计系统120的图。场景估计系统120包括一个或多个图像传感器124、存储器126和可选的一个或多个深度传感器122(如图1B中所示的虚线轮廓所示)、处理系统130、平面检测引擎150、参数确定引擎154和多边形确定引擎156。在一些示例中,平面检测引擎150包括机器学习系统152,其可以包括一个或多个神经网络和/或其他机器学习系统。
处理系统130可以包括组件,包括例如但不限于中央处理单元(CPU)132、图形处理单元(GPU)134、数字信号处理器(DSP)136、图像信号处理器(ISP)138、高速缓冲存储器160和/或存储器162,处理系统130可以使用这些组件来执行本文描述的一个或多个操作。例如,CPU 132、GPU 134、DSP 136和/或ISP 138可以包括电子电路或其他电子硬件,例如一个或多个可编程电子电路。CPU 132、GPU 134、DSP 136和/或ISP 138可以实施或执行计算机软件、固件或其任意组合,以执行本文描述的各种操作。软件和/或固件可以包括存储在计算机可读存储介质上并可由处理系统130的一个或多个处理器执行的一个或多个指令。在一些情况下,CPU 132、GPU 134、DSP 136和/或ISP 138中的一个或多个可以实施平面检测引擎150、参数确定引擎154和/或多边形确定引擎156。应当注意,在一些示例中,处理系统130实施图1B中未示出的一个或多个计算引擎。本文提供平面检测引擎150、参数确定引擎154和多边形确定引擎156是为了说明和解释的目的,为了简单起见,没有示出其他可能的计算引擎。
场景估计系统120可以是计算设备或多个计算设备的一部分,或者由计算设备或多个计算设备实施。在一些示例中,场景估计系统120可以是电子设备(或多个设备)的一部分,诸如移动设备(例如,智能手机、蜂窝电话或其他移动设备)、相机系统或设备(例如,数码相机、相机电话、视频电话、IP相机、摄像机、安全相机或其他相机系统或设备)、膝上型或笔记本计算机、平板计算机、机顶盒、电视、显示设备,数字媒体播放器、游戏控制台、视频流设备、扩展现实设备(例如,用于呈现虚拟现实(VR)、增强现实(AR)和/或混合现实(MR)的头戴式显示器(HMD)、AR眼镜或其他扩展现实设备)、平视显示器(HUD)、无人机、车辆中的计算机系统(例如,自动驾驶车辆或人类驾驶的车辆)、物联网(IoT)设备、智能可穿戴设备或任何其他合适的电子设备(多个)。
在一些实施方式中,一个或多个深度传感器122、图像传感器124、存储器126、处理系统130、平面检测引擎150、参数确定引擎154和多边形确定引擎156可以是同一计算设备的一部分。例如,在一些情况下,一个或多个深度传感器122、图像传感器124、存储器126、处理系统130、平面检测引擎150、参数确定引擎154和多边形确定引擎156可以集成到相机、智能手机、膝上型电脑、平板电脑、智能可穿戴设备、HMD、AR眼镜、IoT设备、游戏系统和/或任何其他计算设备中。然而,在一些实施方式中,深度传感器122、图像传感器124、存储器126、处理系统130、平面检测引擎150、参数确定引擎154和多边形确定引擎156中的一个或多个可以是两个或更多个独立计算设备的一部分,或者由两个或更多个独立计算设备实施。
场景估计系统120可以提供一种改进的方法来估计环境的3D布局。例如,场景估计系统120可以使用MCTS或适应的MCTS进行场景理解,如本文进一步描述的。作为另一个示例,代替检测角落(像在RoomNet中)或边界,平面检测引擎150可以检测环境中的平面。在一些情况下,环境中的某些布局组件或对象的平面的3D参数(例如,针对房间的地板、天花板和墙壁检测的平面)可以由参数确定引擎154获得或确定。例如,在一些情况下,参数确定引擎154可以使用深度信息来确定环境中的布局组件或对象的平面的3D参数。在一些示例中,平面的3D参数可以包括平面的法线向量(也称为表面法线)和指示平面距捕获图像的相机中心的距离的平面偏移。角落和边界可以通过计算平面的交点来恢复。用于3D平面检测的注释是丰富的(与房间布局注释相比),提供了训练方法来执行高质量和精确的平面检测的能力。在一些情况下,该方法可以包括几何方法。在其他示例中,该方法可以包括机器学习算法或模型(例如,神经网络)。
在一些情况下,场景估计系统120可以使用3D平面作为主要几何实体。在一些示例中,场景估计系统120可以根从来自一个或多个RGB-D传感器(诸如图像传感器124)的数据获得的RGB-D扫描来推断布局的3D平面。本文介绍了一种算法,该算法可以由多边形确定引擎156实施,以创建构成环境的2D布局的2D多边形。通过结合来自2D多边形和3D平面的信息,多边形确定引擎156获得或确定最终的3D多边形。此外,本文的算法可以执行树结构的MTCS,以从一个或多个RGB-D图像预测场景的布局和对象。
可以使用机器学习(例如,由平面检测引擎150的机器学习系统152)通过识别属于布局的定义的语义类集之一的平面区域(例如,对应于墙的“墙”类、对应于地板的“地板”类以及对应于天花板的“天花板”)来推理图像内容。用于一般房间布局估计,特别是用于3D布局估计的注释数据量可能非常有限。然而,可用的数据集可以用于训练室内环境的语义分割机器学习模型(例如,神经网络),并且在一些情况下可以自动获得用于训练平面区域检测的数据。在一些示例中,可以通过应用机器学习系统152的机器学习模型(例如,卷积神经网络或其他神经网络模型)作为平面区域检测器来识别平面区域(2D或3D)。例如,平面检测和语义分割可以由机器学习系统152使用一个或多个CNN来执行,以将平面区域标记到定义的语义类或类别的集合中(例如,墙壁、地板和天花板)。可以用作平面区域检测器的神经网络模型的一个说明性示例是PlaneRCNN,在CVPR,2019中的Chen Liu等人的“PlaneRCNN:从单个图像进行3D平面检测和重建(PlaneRCNN:3D Plane Detection and Reconstructionfrom a Single Image)”中进行描述,该文献通过引用其整体并入本文并用于所有目的。
在一些示例中,可以使用在Qi,Charles R和Litany,Or和He,Kaiming和Guibas,Leonidas J的“用于点云中的3D对象检测的深度霍夫投票(Deep Hough Voting for 3DObject Detection in Point Clouds)”中描述的Votenet来实施3D对象检测器,该文献通过引用其整体并入本文并用于所有目的。
在一些示例中,可以获得深度信息,并且可以被参数确定引擎154用于由平面检测引擎150确定的布局平面的参数(例如,3D参数)的计算。如上所述,平面的参数可以包括平面的法向量(例如,与平面正交的向量)和/或平面的平面偏移。深度信息可以使用机器学习技术从彩色图像中推断,或者可以从可以提供可靠信息的一个或多个深度传感器122(例如,在一个或多个RGB-D图像中表示)中获得。可以执行几何推理过程,并且该过程可以包括寻找平面交点以构建3D房间布局的假设,该假设可以被验证和细化。例如,3D房间布局的角和边可以通过与3D布局平面相交来确定。本文描述的技术适用于具有定义的结构(例如,由一个或多个地板、天花板、墙壁和/或其他对象定义的结构)的各种类型的环境,例如一般的房间布局。本文描述的布局估计技术不限于盒状布局,如上面讨论的许多方法的情况。
因为不是每个交叉点都是有效的布局角,所以组合“候选”边可以为每个布局平面产生多个可能的多边形。与提取的深度信息相比,布局平面的最终多边形集合是使3D中的差异最小化并且使2D中的多边形与布局的相应平面区域的重叠最大化的集合。
本文描述的布局估计技术允许恢复在图像中不直接可见(例如,它们被家具遮挡)的房间(或其他环境)布局边缘和角落。3D布局158可以包括最终的3D房间布局,其被建模为3D平面和对应的多边形集合(例如,在验证和细化阶段之后)。这种表示允许高效的3D可视化和平面图的生成,以及其他用途。
在示例形式化的一些方面,给定3D场景的NV个配准的RGB图像和深度图的集合场景估计系统120可以确定构成3D场景的对象和墙壁(和/或其他结构)的3D模型及其姿势。这可以通过寻找对象和墙壁(和/或其他结构)的集合来实现,这些对象和墙壁在给定I中的观察值下最大化后验概率:
使用标准推导和假设,场景估计系统120可以确定以下内容:
P(Ii|O)和P(Di|O)是观察的可能性。为了评估P(Ii|O),场景估计系统120可以执行图像Ii的语义分割,以获得每个c类的分割置信度图Si(c)。在一些情况下,场景估计系统120可以使用c∈{墙壁、地板、椅子、桌子、沙发、床},并且可以从RGB-D图像的角度获得建议的渲染分割图在一个说明性示例中,RGB数据(或其他图像数据)的似然项可以定义为:
其中,对于中属于c类的渲染像素,/>为1,否则为0。CS是不影响优化问题的常数。注意,在等式4中用logSi(c)替换Si(c)将使其成为Si(c)和/>的交叉熵。然而,去除对数运算使其对分割错误更加稳健,就像集成方法中分类器的组合一样。
P(O)是建议集O的先验项。这可以用来防止物理上不可能的解决方案。在实践中,这些建议可能无法完美本地化,可以容忍一些交叉点。当两个对象之间的交集(IoU)小于阈值时,场景估计系统120可以容忍该交叉,但是仍然可以惩罚它。例如,系统可以采取:
其中,IoU是对象Oi和Ok的3D模型之间的交集。在一些示例中,3D模型的体素表示可以用于计算它。当两个对象建议之间的交集高于该阈值时,可以采用P(O)=0,例如,这两个建议可能不兼容。在一个说明性示例中,可以使用0.3的阈值。在其他示例中,可以使用其他阈值。
在某些情况下,这可能不是真,例如在椅子-桌子和沙发-桌子的交叉处。在这些情况下,可以首先识别发生交叉的水平表面(例如,桌子的表面、沙发的座位)。交叉点的数量可以通过计算交叉点到水平表面最近边缘的距离来确定。交叉点的数量可以通过水平表面的尺寸来标准化,并且大于阈值(例如,0.3)的比率可以被认为是不兼容的。图6A和图6B示出了为场景创建的对象和布局建议的示例,并在下面描述。
当两个布局建议相交时,或者当布局建议和对象建议相交时,也可以采用P(O)=0。与仍然可以容忍小交叉点的对象建议相反,布局建议的交叉点可能不会被容忍,因为它们的位置往往被更准确地预测。
为了实施结构化布局,如果O中的布局组件构建了一个环,则可以将某个值(诸如0.1)添加到分数中。
下面进一步描述生成Opool和最大化等式2的示例。
在一些示例中,为了生成建议,可以使用各种技术来生成建议集Opool,例如一种技术用于生成对象建议,另一种技术用于生成墙壁和地板建议。图6A和图6B示出了为示例场景生成的示例建议。
每个对象建议可以由3D模型及其6D姿势组成,可能对应于场景中存在的对象。3D模型可以是来自在Angel X.Chang、Thomas A.Funkhouser、Leonidas J.Guibas、PatHanrahan、Qi-Xing Huang、Zimo Li、Silvio Savarese、Manolis Savva、Shuran Song、HaoSu、Jianxiong Xiao、Li Yi和Fisher Yu的“ShapeNet:一个信息丰富的3D模型库(ShapeNet:An Information-Rich 3D Model Repository)”,CoRR,abs/1512.03012,2015中描述的ShapeNet数据集的CAD模型,该文献通过引用其整体并入本文并用于所有目的。在一些示例中,VoteNet可用于检测3D对象,MinkowskiNet可用于提取它们的点云。在Int.Conf.Comput.Vis.,2019中的Charles R Qi、Or Litany、Kaiming He和Leonidas JGuibas的“用于点云中的3d对象检测的深度霍夫投票(Deep hough voting for 3d objectdetection in point clouds)”中描述了VoteNet,该文献通过引用其整体并入本文并用于所有目的。在Choy、Christopher、JunYoung Gwak和Silvio Savarese的“4D时空卷积网络:Minkowski卷积神经网络(4D Spatio-Temporal Convnets:Minkowski convolutionalneural networks)”中描述了MinkowskiNet,该文献通过引用其整体并入本文并用于所有目的。
VoteNet为每个3D边界框检测提供对象的类别,并且系统120可以保持边界框中的3D点根据MinkowskiNet被分类为属于相同的类别。可以基于PointNet++训练网络,以预测CAD模型的嵌入和来自该点云的6D姿势+比例。在Charles R Qi、Li Yi、Hao Su和LeonidasJ Guibas的“Point-Net++:度量空间中点集上的深度层次特征学习(Point-Net++:DeepHierarchical Feature Learning on Point Sets in a Metric Space)”,arXiv预印本arXiv:1706.02413,2017,中描述了PointNet++。该文献通过引用其整体并入本文并用于所有目的。对输入点云进行不同的采样会导致对应于ShapeNet中不同CAD模型的略微不同的嵌入,并且可以使用这些CAD模型中的每一个来生成建议。可以使用从ShapeNet中的CAD模型生成的合成点云来训练网络。可以通过使用CAD模型和点云之间的倒角距离在预测值周围执行小网格搜索来改进姿势和比例估计。
每个布局建议都可以表示为3D多边形,可能对应于场景中的墙或地板(天花板在ScanNet中通常不可见)。给定场景的点云,MinkowskiNet可用于从其余的点中分割属于布局(地板、墙壁)的点。然后,可以使用RANSAC过程来获得拟合点云的平面的参数。可以计算这些平面之间的交点来生成3D多边形。可以包括点云的3D边界框面的平面,以处理偶然的不完整扫描,例如,对于ScanNet数据集,长走廊可能无法在整个长度上被完全扫描。
下面是如何可以调整MCTS以对等式3中的问题执行有效优化的示例。这个变体在本文中也被称为“蒙特卡罗场景搜索”(MCSS)。
在MCTS的情况下,搜索树直接遵循游戏规则。由MCSS探索的搜索树可以被定义为适应场景理解问题并允许如下的高效探索。
每个建议P可以被分配一个适合度值,该适合度值是通过在呈现该建议的每个视图中的像素位置上评估等式3中的评分函数而获得的。请注意,该适合度与建议而不是节点相关联。适合度将指导搜索树的定义和探索。
除了根节点之外,场景树中的节点N与来自池Opool中的建议P(N)相关联。因此,从根节点到叶节点的每条路径对应于建议O的集合,这些建议是等式3的潜在解决方案。
树可以被定义为使得没有路径可以对应于不可能的解决方案,例如,对应于具有P(O)的集合O。这避免了探索与可能的解决方案不对应的分支。考虑在空间上接近当前路径中的建议的第一建议可以显著地加速搜索。树可以按空间邻域来组织。根节点的子节点是包含所有建议中具有最高适合度的建议O的节点;其他节点包含与建议O不相容以及彼此不兼容的建议。
为了定义每个其他节点N的子节点,系统120可以考虑由N中的建议和其所有祖先中的建议组成的集合H,以及不在其中但与其兼容的建议集合Ocomp。那么N的子节点是:包含与N中的建议最接近(就空间距离而言)的建议O的节点;其它节点包含与H∪{O}中的建议不兼容并且彼此不兼容的建议。
如果两个布局建议相交或者不是空域相邻,则认为它们是不兼容的。如果它们共享一条边并且不在同一3D平面上,则它们是空域相邻。为了考虑丢失的建议,可以添加一个不包含建议的特殊节点,以处理当其他子节点都不是最终解决方案的一部分时的情况。
通过连接“布局树”和“对象树”来构建场景树。布局树的每个叶节点都是对象树的根节点。
在某些情况下,可以仅针对给定的迭代次数首先搜索布局树。之后,布局树被冻结,树中的最佳路径被用作对象树的根节点。
在某些情况下,等式1中给出的并存储在每个节点中的UCB准则中的Q可以作为访问该节点后得到的游戏最终分数之和。如果Q更多地关注节点中的建议可见的视图,那么探索可能会更有效。
在MCSS中,在模拟返回解决方案O之后,将分数s添加到包含建议O的节点的Q中,计算如下:
其中如果O在视图i中可见,则wi(O)=1,否则0,以及
MCSS可以将等式1给出的UCB标准修改为:
其中前两项构成了标准的UCB选择标准。第三项鼓励探索更有前途的候选,其权重随着访问次数的增加而降低。回想一下,适合度与建议而不是节点有关。因此,访问包含一些建议的节点将影响包含相同建议的节点的选择。
在一些实验中,可以凭经验发现,设置λ1=1、λ2=0.3、λ3=0.99,通常是有效的。因此,适合度项最初在开始时起作用,但是随着模拟次数的增加而失去重要性。
由于评分函数是确定性的,在选择步骤中,从根到叶的每条路径在搜索期间最多可以被访问一次,以防止不必要的迭代。
每次(在一些情况下,每一次)在候选解决方案中包括组件Oj达到其中Oj可见的任何视图的新的最大分数时,其适合度可以增加一定的量,例如增加0.1。如果这些视图的平均分数非常低,则适合度可以降低一个量,例如降低0.01。例如,如果这些视图的平均分数低于迄今为止这些视图所达到的最佳分数的平均值的0.5,则适合度可以降低一个量,例如降低0.01。通过这样做,可以传播来自包含该建议的所有节点的信息。因此,访问包含一些建议的节点将影响包含相同建议的节点的选择。
MCSS可以运行与算法1中给出的MCTS相同的伪代码,但结果可能会根据等式7中给出的sc(.)返回模拟找到的最佳建议集。
图2B至图2D示出了RGB-D扫描和3D模型的各种挑战。如图2B所示,在某些情况下,RGB-D扫描可能不完整,例如(场景的某些部分丢失)。在某些情况下,由于遮挡、镜面反射等原因,RGB-D扫描可能会有许多漏洞(例如,部分墙壁、地板、对象丢失)。
如图2C所示,在一些情况下,布局可以是复杂的(例如,“非长方体”,可能是多个房间等);在许多情况下,场景可以具有不同的对象,并且对象的3D模型可能不是预先已知的。此外,通常没有可用于监督学习的注释数据集。
图3是示出根据一些示例的用于理解3D场景的结构化树搜索方法的示例过程的图。如图所示,RGB-D图像302可用于生成304一个或多个候选建议。候选建议可以包括对象、墙壁、地板和/或布局候选建议。
一个或多个候选建议可以被组织306为结构化树。可以使用适配的蒙特卡罗树搜索(MCTS)来有效地搜索308结构化树,并基于目标函数找到310最佳对应于实际场景的最优候选集。
在一些示例中,场景理解问题可以被转化为结构化树搜索,其可以包括生成对象、墙壁、地板候选建议,将候选选择组织成结构化树,采用蒙特卡罗树搜索(MCTS)方法来有效地搜索该树,并基于目标函数找到最佳对应于实际场景的最优候选集,如前所述。
MCTS可用于3D场景理解。在其他场景中,MCTS可用于让计算机玩单人或多人游戏(例如,国际象棋、围棋、推箱子等)。本文的技术可用于创建结构化树,并应用MCTS来解决3D场景理解问题。本文的技术可用于修改MCTS以加速对3D场景理解问题的搜索。
图4是示出用于生成房间布局建议的示例过程的图。在一些示例中,可以对输入点云执行语义分割(例如,使用MinkowskiNet等)以生成分割的点云402。分割的点云402可用于找到属于墙壁、地板等的3D点。布局平面404(例如,3D平面)然后可以拟合到基于分割的点云402找到的3D点。房间布局建议406可以作为从布局平面404之间的交叉点生成的多边形来获得。
图5是示出对象建议生成的示例的图。在一些示例中,3D对象检测器可以用于获得场景的输入点云502中的对象的3D边界框建议504。在一些示例中,3D对象检测器可以包括由Qi,Charles R和Litany,Or和He,Kaiming和Guibas,Leonidas J在“用于点云中的3D对象检测的深度霍夫投票”中描述的Votenet,该文献通过引用其整体并入本文并用于所有目的。
对于每个边界框建议,可以从诸如ShapeNet数据集的数据集检索候选对象模型集506。在一些示例中,可以训练深度网络来检索对象模型。可以用包含注释的合成点云的数据集来训练深度网络。
图6A和图6B是示出了为场景602选择建议的示例的图。如图6A所示,如前所述,建议可以包括房间布局建议604和对象建议606。图6B示出了基于房间布局建议604覆盖在场景602上的物体建议604。
图7示出了根据一些示例生成的场景树结构。场景树702可以用不同的不兼容对象集来定义。每个不兼容对象集被分配给场景树702中的一个级别。在一些示例中,场景树702可以基于第一不兼容对象集、第二不兼容对象集和第三不兼容对象集来生成。在一些示例中,不兼容的对象可以包括不能一起处于正确解决方案中的建议,例如,如果它们相交。
图8是示出用于在结构化树中寻找候选表示(例如,布局、对象等)的示例MCTS操作的图。在该示例中,MCTS操作包括选择操作802、扩展操作804、模拟操作806和更新操作808。选择操作802可以包括基于一个或多个因素,例如策略或规则,选择树中的一个或多个子节点。
扩展操作804可以包括向树添加一个或多个子节点以扩展树。模拟操作806可以包括通过运行模拟来评估树中的新节点。在一些示例中,模拟可以基于策略或规则。更新操作808可以包括基于与模拟操作806相关联的模拟结果来更新树中的值和/或统计。
在一些示例中,基于MCTS的自适应算法(如前所述的MCSS)可用于有效地搜索场景树,如本文进一步描述的。如前所述,在一些示例中,MCSS可以将等式1中的置信上限(UCB)标准修改为:
前两项构成标准的UCB选择标准,第三项鼓励利用更有前途的候选,其权重随着访问次数的增加而降低。回想一下,适合度与建议而不是节点有关。Q可以是s之和,其中s在等式11、等式9的si和等式12的sp中定义。如前面参考等式11所解释的,如果O在视图i中可见,则wi(O)=1,否则0。
在一些情况下,对于给定的潜在候选集,视图i的视图分数vi定义了候选与视图i处的RGB和深度数据的一致性程度。在一些示例中,对于场景的每个给定视图,给定的候选集可以被渲染到场景中。对于场景中的每个视图,可以基于几个标准来评估所选候选对象的质量。示例标准可包括以下内容。
2D:语义分割上的像素误差测量渲染的候选集和来自神经网络的预测之间的不一致性(例如,使用MSEG)。在一些示例中,可以使用多领域语义分割(MSEG)。在Lambert、John等人的“MSeg:用于多领域语义分割的复合数据集(MSeg:AComposite Dataset for Multi-domain Semantic Segmentation)”中进一步描述了MSEG,该文献通过引用其整体并入本文并用于所有目的。
3D:深度误差测量渲染的候选集和从深度传感器获得的数据之间的不一致性。
可行性:对建议的解决方案中的对象之间的交叉点进行惩罚和/或对建议的解决方案中在所有渲染视图中都不可见的候选进行惩罚。
在某些情况下,扩展、模拟和更新阶段可以类似于标准的MCTS。
建议适合度可以描述候选符合场景的程度。建议可以被初始化和更新。在一些示例中,可以将建议单独渲染到场景中,以评估其适合度。基于先前在树搜索中使用该建议找到的解决方案的质量,可以不断地更新建议的适合度。
图9A至图9E示出了来自用于有效搜索场景树的基于MCTS的自适应算法的示例结果。在图9A的示例中,结果包括恢复的对象。在图9B的示例中,结果包括恢复的布局。在图9C的示例中,结果包括恢复的房间布局和对象。在图9D和图9E的示例中,结果包括恢复的对象和房间布局。
图10A示出了来自如本文所述的自动生成的布局注释1002的结果与来自SceneCAD的手动布局注释1004的结果的比较。在Avetisyan等人的“SceneCAD:预测RGB-D扫描中的对象对齐和布局”,ECCV 2020,中进一步描述了SceneCAD,该文献通过引用其整体并入本文并用于所有目的。如图10A所示,在自动生成的布局注释1002中,可以从场景CAD中恢复比手动布局注释1004中更详细的布局。
图10B示出了来自本文所述的自动生成的对象注释1020的结果与来自SceneCAD的手动注释1022的结果的比较。如图10B所示,在自动生成的对象注释1020中,可以恢复比在来自SceneCAD的手动对象注释1022中更详细的布局。
图11是示出了用于确定一个或多个环境布局和对象的示例过程1100的流程图。在框1102,过程1100可以包括基于环境的一个或多个图像和与该一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集。在一些情况下,过程1100可以包括获得环境的一个或多个图像和与该一个或多个图像相关联的深度信息。在一些示例中,一个或多个图像可以包括一个或多个红-绿-蓝图像(RGB),并且深度信息可以包括环境的一个或多个深度图。在一些情况下,一个或多个图像和深度信息可以包括一个或多个RGB-深度(RGB-D)图像。在一些方面,环境包括3D场景。
在一些示例中,候选布局集可以包括3D布局模型和相关联的姿势的集合。在一些示例中,候选对象集可以包括3D对象模型和相关联的姿势的集合。在一些情况下,候选布局集和候选对象集的每个候选包括对应于相交平面的多边形。在一些情况下,相交平面包括一个或多个二维平面。在一些示例中,多边形包括三维多边形。在一些示例中,一个或多个多边形包括一个或多个三维多边形。在一些方面,过程1100可以包括使用机器学习模型来检测一个或多个平面。在一些示例中,过程1100可以包括使用机器学习模型和语义分割来检测一个或多个平面。
在一些情况下,为了检测候选布局集,过程1100可以包括基于与一个或多个图像相关联的点云的语义分割来识别对应于环境的墙壁和环境的地板中的至少一个的3D点。过程1100可以包括基于3D点生成3D平面。过程1100还可以包括基于至少一些3D平面之间的交叉点来生成多边形。过程1100可以包括如本文所述的基于多边形确定布局候选。
在一些示例中,为了检测候选对象集,过程1100可以包括检测针对环境生成的点云中的对象的3D边界框建议。对于每个边界框建议,过程1100可以包括从数据集中检索候选对象模型集。
在框1104,过程1100可以包括生成结构化树,该结构化树包括对应于候选布局集和候选对象集的节点。在一些示例中,生成结构化树可以包括将候选布局集和候选对象集组织为结构化树。
在某些情况下,结构化树(或树结构)包括多个级别。例如,每个级别可以包括与环境相关联的不同的不兼容候选集。在一些示例中,不同的不兼容候选集包括不兼容的对象和/或不兼容的布局。在一些情况下,当两个或更多候选相交或者不是空域相邻时,来自不同的不兼容候选集的两个或更多候选是不兼容的。
在框1106,过程1100可以包括选择结构化树中的对象和布局的组合。在一些示例中,选择结构化树中的对象和布局的组合是基于对结构化树的搜索。例如,搜索可以基于蒙特卡罗树搜索(MCTS)算法。例如,为了选择结构化树中的对象和布局的组合,过程1100可以包括使用蒙特卡罗树搜索(MCTS)算法来执行结构化树的搜索。在一些方面,MCTS算法包括适配的MCTS算法。例如,如本文所述,适配的MCTS算法可以向在结构化树中搜索的每个节点分配适合度值。在一些情况下,适合度值表示与节点相关联的对象和布局中的至少一个出现在环境中的概率。
在一些示例中,适配的MCTS算法可以为结构化树中的每个节点生成分数。例如,分数可以基于适配的MCTS算法。在一些示例中,分数可以包括为结构化树的每个节点处的一个或多个视图分配的权重、为MCT导出的探索项以及适合度值。在一些示例中,权重至少部分地基于一个或多个视图的视图分数,视图的视图分数定义了与关联于该视图的节点相关联的候选和来自一个或多个图像的数据以及与该视图相关联的深度信息之间的一致性度量。
在框1108,过程1100可以包括基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。在一些示例中,过程1100可以包括基于所确定的环境的3D布局来生成虚拟内容。例如,过程1100可以使用虚拟内容来增强环境的场景或视图。在一些方面,过程1100可以包括与计算设备共享所确定的环境的3D布局。例如,过程1100可以将3D布局发送到计算设备(例如,在多人游戏或其他应用中),将3D布局上传到计算设备可访问的基于服务器的系统,或者以其他方式共享3D布局。
在一些示例中,过程1100可以由计算设备或装置来执行,诸如实施场景估计系统120的计算设备。在一个示例中,计算设备可以具有图12中所示的计算设备架构1200,其还可以包括场景估计系统120。在某些情况下,计算设备或装置可以包括一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行过程1100的步骤的其他组件(多个)。在一些示例中,计算设备或装置可以包括被配置为捕获图像的相机。例如,计算设备可以包括相机设备。作为另一示例,计算设备可以包括具有相机的移动设备(例如,包括相机的移动电话或平板电脑,或者具有相机的其他类型的设备)。在一些情况下,计算设备可以包括一个或多个通信收发器和/或一个或多个视频编解码器。在一些情况下,计算设备可以包括用于显示图像的显示器。在一些示例中,捕获视频数据的照相机或其他捕获设备与计算设备分离,在这种情况下,计算设备接收捕获的视频数据。计算设备还可以包括配置成传送视频数据的网络接口。网络接口可以被配置为传送基于互联网协议(IP)的数据或任何其他合适的数据。
计算设备的组件(例如,一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其他组件)可以在电路中实施。例如,组件可以包括和/或可以使用电子电路或其他电子硬件来实施,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU),和/或其他合适的电子电路),和/或可包括和/或使用计算机软件、固件或其任何组合来实施,以执行本文所述的各种操作。
过程1100被示为逻辑流程图,其操作表示可在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的上下文中,该操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的操作以实施该过程。
此外,过程1100可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实施为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时的。
图12示出了示例计算设备1200,其结合了可用于执行本文描述的一个或多个技术的计算设备的部分。如图12所示的计算设备可以被合并为任何计算机化系统的一部分,例如场景估计系统120。在一些示例中,计算设备1200可以表示移动设备的一些组件,或者执行本文描述的场景估计系统120的计算设备或相关工具。计算设备1200的示例包括但不限于台式机、工作站、个人计算机、超级计算机、视频游戏控制台、平板电脑、智能手机、笔记本电脑、上网本或其他便携式设备。图12提供了计算设备1200的一个实施例的示意图,计算设备1200可以执行如本文所述的由各种其他实施例提供的方法,和/或可以用作主机计算设备、远程信息亭/终端、销售点设备、移动多功能设备、机顶盒和/或计算设备。图12仅旨在提供各种组件的概括说明,其中的任何一个或全部都可以被适当地利用。因此,图12概括地示出了可以如何以相对分离或相对更集成的方式实施各个系统元件。
计算设备1200被示出为包括可经由总线1205电耦合(或可在适当的情况下以其他方式通信)的硬件元件。硬件元件可以包括一个或多个处理器1210,包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如数字信号处理芯片、图形加速处理器等);一个或多个输入设备1215,其可以包括但不限于相机、传感器1250、鼠标、键盘等;以及一个或多个输出设备1220,其可以包括但不限于显示单元、打印机等。
计算设备1200还可以包括一个或多个非暂时性存储设备1225(和/或与之通信),非暂时性存储设备1225可以包括但不限于本地和/或网络可访问存储,和/或可以包括但不限于磁盘驱动器、驱动器阵列、光存储设备、诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”)的固态存储设备,其可以是可编程的、可闪存更新的等。这种存储设备可被配置为实施任何适当的数据存储,包括但不限于各种文件系统、数据库结构等。
计算设备1200还可以包括通信子系统1230。通信子系统1230可以包括用于接收和发送数据的收发器或者有线和/或无线介质。通信子系统1230还可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或芯片集(例如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)等。通信子系统1230可以允许与网络(例如下面描述的网络,举一个示例)、其他计算设备和/或本文描述的任何其他设备交换数据。在许多实施例中,计算设备1200将进一步包括非暂时性工作存储器1235,其可以包括RAM或ROM设备,如上所述。
计算设备1200可以包括被示为当前位于工作存储器1235内的软件元件,包括操作系统1240、设备驱动程序、可执行库和/或其他代码,例如一个或多个应用程序1245,其可以包括由各种实施例提供的计算机程序,和/或可以被设计成实施由其他实施例提供的方法,和/或配置系统,如本文所述。仅作为示例,关于上面讨论的方法(多个)描述的一个或多个过程可以被实施为可由计算机(和/或计算机内的处理器)执行的代码和/或指令;然后,在一个方面,这样的代码和/或指令可以用于配置和/或适配通用计算机(或其他设备)以根据所描述的方法执行一个或多个操作。
这些指令和/或代码的集合可以存储在计算机可读存储介质上,例如上述存储设备(多个)1225。在一些情况下,存储介质可以被结合在计算设备(诸如计算设备1200)中。在其他实施例中,存储介质可以与计算设备分离(例如,诸如光盘的可移动介质),和/或在安装包中提供,使得存储介质可以用于编程、配置和/或适配其上存储有指令/代码的通用计算机。这些指令可以采取可由计算设备1200执行的可执行代码的形式,和/或可以采取源代码和/或可安装代码的形式,其在编译和/或安装在计算设备1200上时(例如,使用各种普遍可用的编译器、安装程序、压缩/解压缩实用程序等中的任何一种),然后采取可执行代码的形式。
可以根据具体要求进行重大修改。例如,还可以使用定制硬件,和/或特定元件可以在硬件、软件(包括可移植软件,例如小程序等)或两者中实施。此外,可以采用与诸如网络输入/输出设备的其他计算设备1200的连接。
一些实施例可以采用计算设备(例如计算设备1200)来执行根据本公开的方法。例如,计算设备1200可以响应于处理器1210执行包含在工作存储器1235中的一个或多个指令(其可以被并入操作系统1240和/或其他代码,例如应用程序1245)的一个或多个序列来执行所描述的方法的一些或所有过程。这样的指令可以从另一个计算机可读介质(例如一个或多个存储设备(多个)1225)读入工作存储器1235。仅作为示例,包含在工作存储器1235中的指令序列的执行可以使得处理器(多个)1210执行本文描述的方法的一个或多个过程。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备和能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括可以存储数据的非暂时性介质,并且不包括无线或通过有线连接传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带,诸如光盘(CD)或数字通用磁盘(DVD)之类的光学存储介质、闪存、存储器或存储设备。计算机可读介质可以在其上存储有代码和/或机器可执行指令,这些指令可以表示过程、函数、子程序、程序、例程、子程序、模块、软件包、类或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容来耦合到另一代码段或硬件电路。可以通过任何合适的方式(包括内存共享、消息传递、令牌传递、网络发送等)传递、转发或发送信息、自变量、参数、数据等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量,载波信号,电磁波和信号本身的介质。
在上述描述中提供了具体细节,以提供对本文提供的实施例和示例的彻底理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释清楚起见,在某些情况下,本技术可以被呈现为包括单独的功能块,该单独的功能块包括以软件或硬件和软件的组合体现的方法来包括设备,设备组件,步骤或例程的功能块。除了图中所示和/或本文所述的组件之外,还可以使用其他组件。例如,电路、系统、网络、过程和其他组件可以以框图形式被示出为组件,以便不会在不必要的细节上使实施例模糊。在其他情况下,可以在没有不必要的细节的情况下示出已知的电路、过程、算法、结构和技术,以避免使实施例模糊。
各个实施例可以在上面被描述为过程或方法,该过程和方法被描绘为流程图、流程图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序过程,但许多操作可以并行或并发地执行。此外,可以重新安排操作顺序。过程在其操作完成时终止,但可能有其他步骤未包含在图中。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
可以使用存储在计算机可读介质中或以其他方式从计算机可读介质中获得的计算机可执行指令来实施根据上述示例的过程和方法。这些指令可以包括,例如,使得或以其他方式配置通用计算机、专用计算机或处理设备以执行某一功能或功能组的指令和数据。可以通过网络访问使用的部分计算机资源。计算机可执行指令可以是例如二进制文件、中间格式指令(例如汇编语言、固件、源代码等)。可用于存储指令、所使用的信息,和/或在根据所述示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的USB设备、网络存储设备等。
根据这些公开实施过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采取各种形式因素的任何一种。当在软件、固件、中间件或微代码中实施时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。典型的形式因素示例包括膝上型计算机、智能手机、移动电话、平板计算机设备或其他小型个人计算机、个人数字助理、机架安装设备、独立设备等。本文描述的功能还可以体现在外围设备或插件卡中。通过进一步的示例,这种功能还可以在不同芯片之间的电路板上实施,或者在单个设备中执行的不同过程上实施。
指令、用于传送此类指令的介质、用于执行该指令的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例部件。
在前述描述中,参考本申请的具体实施例来描述本申请的各个方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然在此已经详细描述了本申请的说明性实施例,但是应当理解,本公开的概念可以以其他方式不同地体现和应用,并且所附权利要求旨在被解释为包括此类变型,除非受到现有技术的限制。可以单独地或联合地使用上述申请的各种特征和方面。此外,在不脱离本说明书更广泛的精神和范围的情况下,可以在本文所描述的那些环境和应用之外的任何数量的环境和应用中使用实施例。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行这些方法。
普通技术人员将理解,本文中使用的小于(“<”)和大于(“>”)符号或术语可以分别替换为小于或等于(“≤”)和大于或等于(“≥”)符号,而不脱离本说明书的范围。
在将组件描述为被“配置为”执行某些操作的情况下,可以例如通过设计电子电路或其他硬件来执行操作,通过编程可编程电子电路(例如微处理器,或其他合适的电子电路)来执行操作,或其任何组合来实现这种配置。
短语“耦合到”是指物理上直接或间接连接到另一组件的任何组件,和/或与另一组件通信(例如,通过有线或无线连接连接到其它组件,和/或其他合适的通信接口)的任何组件。
权利要求语言或其他语言列举的集合“中的至少一个”和/或集合中的“一个或多个”指示集合中的一个成员或集合中的多个成员(在任何组合中)满足该权利要求。例如,权利要求语言列举的“A和B中的至少一个”或“A或B中的至少一个”是指A、B或A和B。在另一示例中,权利要求语言列举的“A、B和C中的至少一个”或“A、B或C中的至少一个”是指A、B、C、或A和B、或A和C、或B和C、或A和B和C。语言集合“中的至少一个”和/或集合中的“一个或多个”不将集合限制为集合中列出的项目。例如,权利要求书语言列举的“A和B中的至少一个”或“A或B中的至少一个”可以表示A、B或A和B,并且可以另外包括A和B集合中未列出的项目。
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经大体上就其功能性描述了各种说明性组件、块、模块、电路和步骤。这些功能是实现为硬件还是软件取决于施加在整个系统上的特定应用和设计约束。技术人员可以针对每个特定应用以不同的方式实施所描述的功能,但是这种实施方式决定不应被解释为导致偏离本申请的范围。
本文所描述的技术还可以在电子硬件、计算机软件、固件或其任何组合中实施。这些技术可以在各种设备(例如通用计算机、无线通信设备手持机或具有多种用途的集成电路设备,包括在无线通信设备手持机和其他设备中的应用)中的任何一种中实施。描述为模块或组件的任何特征可以在集成逻辑设备中一起实施,或者单独地作为离散但可互操作的逻辑设备来实施。如果以软件实施,则这些技术可以至少部分地由计算机可读数据存储介质实现,该计算机可读数据存储介质包括程序代码,该程序代码包括在执行时执行上述方法中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。计算机可读介质可包括存储器或数据存储介质,例如随机存取存储器(RAM),例如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或替代地,可以至少部分地由计算机可读通信介质来实现这些技术,该计算机可读通信介质以指令或数据结构的形式携带或传送程序代码,并且该程序代码可以由计算机(例如传播的信号或波)访问、读取和/或执行。
该程序代码可由处理器执行,处理器可包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效集成或离散逻辑电路。这样的处理器可以被配置成执行本公开中描述的任何技术。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以实施为计算设备的组合,例如,DSP和微处理器、多个微处理器的组合、一个或多个微处理器与DSP核心的结合、或任何其他这样的配置。因此,如本文所使用的术语“处理器”可指前述结构中的任何一个、前述结构的任何组合、或适于实施本文所述技术的任何其它结构或装置。
本公开的说明性示例包括:
方面1:一种用于确定一个或多个环境布局的装置,包括:至少一个存储器;以及耦合到至少一个存储器的至少一个处理器,并被配置成:获得环境的一个或多个图像和与一个或多个图像相关联的深度信息;基于环境的一个或多个图像和与一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集;生成包括对应于候选布局集和候选对象集的节点的结构化树;在结构化树中选择对象和布局的组合;并且基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。
方面2:根据方面1的装置,其中,为了选择结构化树中的对象和布局的组合,至少一个处理器被配置为使用蒙特卡罗树搜索(MCTS)算法来执行结构化树的搜索。
方面3:根据方面2的装置,其中MCTS算法包括适配的MCTS算法,其中适配的MCTS算法向在结构化树中搜索的每个节点分配适合度值,该适合度值表示与节点相关联的对象和布局中的至少一个出现在环境中的概率。
方面4:根据方面3的装置,其中至少一个处理器还被配置为为结构化树中的每个节点生成分数,该分数基于适配的MCTS算法,该分数包括为结构化树的每个节点处的一个或多个视图分配的权重、为MCTS导出的探索项以及适合度值。
方面5:根据方面4的装置,其中权重至少部分地基于一个或多个视图的视图分数,视图的视图分数定义了与关联于该视图的节点相关联的候选和来自一个或多个图像的数据以及与该视图相关联的深度信息之间的一致性度量。
方面6:根据方面1至5中任一方面的装置,其中候选布局集包括3D布局模型和相关联的姿势的集合,并且其中候选对象集包括3D对象模型和相关联的姿势的集合。
方面7:根据方面1至6中任一方面的装置,其中一个或多个图像包括一个或多个红-绿-蓝图像(RGB),并且深度信息包括环境的一个或多个深度图。
方面8:根据方面1至7中任一方面的装置,其中一个或多个图像和深度信息包括一个或多个RGB-深度(RGB-D)图像。
方面9:根据方面1至8中任一方面的装置,其中检测候选布局集包括:基于与一个或多个图像相关联的点云的语义分割,识别对应于环境的墙壁和环境的地板中的至少一个的3D点;基于3D点生成3D平面;基于至少一些3D平面之间的交叉点生成多边形;以及基于多边形确定布局候选。
方面10:根据方面1至9中任一方面的装置,其中检测候选对象集包括:检测为环境生成的点云中的对象的3D边界框建议;并且对于每个边界框建议,从数据集中检索候选对象模型集。
方面11:根据方面1至10中任一方面的装置,其中结构化树包括多个级别,其中每个级别包括与环境相关联的不同的不兼容候选集,其中不同的不兼容候选集包括不兼容对象和不兼容布局中的至少一个。
方面12:根据方面11的装置,其中当两个或更多候选相交或者不是空域相邻时,来自不同的不兼容候选集的两个或更多候选是不兼容的。
方面13:根据方面1至12中任一方面的装置,其中环境包括3D场景。
方面14:根据方面1至13中任一方面的装置,其中候选布局集和候选对象集的每个候选包括对应于相交平面的多边形。
方面15:根据方面14的装置,其中相交平面包括一个或多个二维平面。
方面16:根据方面14或15中任一方面的装置,其中多边形包括三维多边形。
方面17:根据方面1至16中任一方面的装置,其中装置是包括用于捕获一个或多个图像的相机的移动设备。
方面18:根据方面1至17中任一方面的装置,其中至少一个处理器被配置为:基于所确定的环境的3D布局生成虚拟内容。
方面19:根据方面1至18中任一方面的装置,其中至少一个处理器被配置为:与计算设备共享所确定的环境的3D布局。
方面20:一种用于确定一个或多个环境布局的方法,包括:获得环境的一个或多个图像和与一个或多个图像相关联的深度信息;基于环境的一个或多个图像和与一个或多个图像相关联的深度信息,检测对应于环境的候选布局集和候选对象集;生成包括对应于候选布局集和候选对象集的节点的结构化树;在结构化树中选择对象和布局的组合;并且基于结构化树中的对象和布局的组合来确定环境的三维(3D)布局。
方面21:根据方面20的方法,其中,选择结构化树中的对象和布局的组合是基于使用蒙特卡罗树搜索(MCTS)算法对结构化树的搜索。
方面22:根据方面21的方法,其中,MCTS算法包括适配的MCTS算法,其中,适配的MCTS算法向在结构化树中搜索的每个节点分配适合度值,适合度值表示与节点相关联的对象和布局中的至少一个出现在环境中的概率。
方面23:根据方面22的方法,还包括为结构化树中的每个节点生成分数,该分数基于适配的MCTS算法,该分数包括为结构化树的每个节点处的一个或多个视图分配的权重、为MCTS导出的探索项以及适合度值。
方面24:根据方面23的方法,其中权重至少部分地基于一个或多个视图的视图分数,视图的视图分数定义了与关联于该视图的节点相关联的候选和来自一个或多个图像的数据以及与该视图相关联的深度信息之间的一致性度量。
方面25:根据方面20的方法,其中候选布局集包括3D布局模型和相关联的姿势的集合,并且其中候选对象集包括3D对象模型和相关联的姿势的集合。
方面26:根据方面20或25中任一方面的方法,其中一个或多个图像包括一个或多个红-绿-蓝图像(RGB),并且深度信息包括环境的一个或多个深度图。
方面27:根据方面20至26中任一方面的方法,其中一个或多个图像和深度信息包括一个或多个RGB-深度(RGB-D)图像。
方面28:根据方面20至27中任一方面的方法,其中检测候选布局集包括:基于与一个或多个图像相关联的点云的语义分割,识别对应于环境的墙壁和环境的地板中的至少一个的3D点;基于3D点生成3D平面;基于至少一些3D平面之间的交叉点生成多边形;以及基于多边形确定布局候选。
方面29:根据方面20至28中任一方面的方法,其中检测候选对象集包括:检测为环境生成的点云中的对象的3D边界框建议;并且对于每个边界框建议,从数据集中检索候选对象模型集。
方面30:根据方面20至29中任一方面的方法,其中结构化树包括多个级别,其中每个级别包括与环境相关联的不同的不兼容候选集,其中不同的不兼容候选集包括不兼容对象和不兼容布局中的至少一个。
方面31:根据方面30的方法,其中当两个或更多候选相交或者不是空域相邻时,来自不同的不兼容候选集的两个或更多候选是不兼容的。
方面32:根据方面20至31中任一方面的方法,其中环境包括3D场景。
方面33:根据方面20至32中任一方面的方法,其中布局候选集和对象候选集的每个候选包括对应于相交平面的多边形。
方面34:根据方面33的方法,其中相交平面包括一个或多个二维平面。
方面35:根据方面33或34中任一方面的方法,其中多边形包括三维多边形。
方面36:根据方面20至35中任一方面的方法,还包括基于所确定的环境的3D布局生成虚拟内容。
方面37:根据方面20至36中任一方面的方法,还包括与计算设备共享所确定的环境的3D布局。
方面38:一种在其上存储有指令的非暂时性计算机可读存储介质,当该指令由一个或多个处理器执行时,使一个或多个处理器执行根据方面1至37中任一方面的方法。
方面39:一种装置,包括用于执行根据方面1至37中任一方面的方法的部件。
Claims (30)
1.一种用于确定一个或多个环境布局的装置,包括:
至少一个存储器;和
至少一个处理器,耦合到所述至少一个存储器并且被配置为:
基于环境的一个或多个图像和与所述一个或多个图像相关联的深度信息,检测对应于所述环境的候选布局集和候选对象集;
生成包括对应于所述候选布局集和所述候选对象集的节点的结构化树;
在所述结构化树中选择对象和布局的组合;以及
基于所述结构化树中的对象和布局的所述组合来确定所述环境的三维(3D)布局。
2.根据权利要求1所述的装置,其中,为了选择所述结构化树中的对象和布局的所述组合,所述至少一个处理器被配置为使用蒙特卡罗树搜索(MCTS)算法来执行所述结构化树的搜索。
3.根据权利要求2所述的装置,其中,所述MCTS算法包括适配的MCTS算法,其中,所述适配的MCTS算法向在所述结构化树中搜索的每个节点分配适合度值,所述适合度值表示与所述节点相关联的对象和布局中的至少一个出现在所述环境中的概率。
4.根据权利要求3所述的装置,其中,所述至少一个处理器还被配置为为所述结构化树中的每个节点生成分数,所述分数基于所述适配的MCTS算法,所述分数包括为所述结构化树的每个节点处的一个或多个视图分配的权重、为MCTS导出的探索项以及所述适合度值。
5.根据权利要求4所述的装置,其中,所述权重至少部分地基于所述一个或多个视图的视图分数,视图的所述视图分数定义了与关联于所述视图的节点相关联的候选和来自所述一个或多个图像的数据以及与所述视图相关联的所述深度信息之间的一致性度量。
6.根据权利要求1所述的装置,其中,所述候选布局集包括3D布局模型和相关联的姿势的集合,并且其中所述候选对象集包括3D对象模型和相关联的姿势的集合。
7.根据权利要求1所述的装置,其中,所述一个或多个图像包括一个或多个红-绿-蓝图像(RGB),并且所述深度信息包括所述环境的一个或多个深度图。
8.根据权利要求1所述的装置,其中,所述一个或多个图像和所述深度信息包括一个或多个RGB-深度(RGB-D)图像。
9.根据权利要求1所述的装置,其中,检测所述候选布局集包括:
基于与所述一个或多个图像相关联的点云的语义分割来识别对应于所述环境的墙壁和所述环境的地板中的至少一个的3D点;
基于所述3D点生成3D平面;
基于所述3D平面中的至少一些之间的交叉点生成多边形;以及
基于所述多边形确定布局候选。
10.根据权利要求1所述的装置,其中,检测所述候选对象集包括:
检测为所述环境生成的点云中的对象的3D边界框建议;以及
对于每个边界框建议,从数据集中检索候选对象模型集。
11.根据权利要求1所述的装置,其中,所述结构化树包括多个级别,其中每个级别包括与所述环境相关联的不同的不兼容候选集,其中所述不同的不兼容候选集包括不兼容对象和不兼容布局中的至少一个。
12.根据权利要求11所述的装置,其中,当两个或更多候选相交或者不是空域相邻时,来自所述不同的不兼容候选集的所述两个或更多候选是不兼容的。
13.根据权利要求1所述的装置,其中,所述环境包括3D场景。
14.根据权利要求1所述的装置,其中,所述候选布局集和所述候选对象集的每个候选包括对应于相交平面的多边形。
15.根据权利要求14所述的装置,其中,所述相交平面包括一个或多个二维平面。
16.根据权利要求14所述的装置,其中,所述多边形包括三维多边形。
17.根据权利要求1所述的装置,其中,所述至少一个处理器被配置为:
基于所确定的所述环境的3D布局来生成虚拟内容。
18.根据权利要求1所述的装置,其中,所述至少一个处理器被配置为:
与计算设备共享所确定的所述环境的3D布局。
19.根据权利要求1所述的装置,其中,所述装置是包括用于捕获所述一个或多个图像的相机的移动设备。
20.一种用于确定一个或多个环境布局的方法,包括:
基于环境的一个或多个图像和与所述一个或多个图像相关联的深度信息,检测对应于所述环境的候选布局集和候选对象集;
生成包括对应于所述候选布局集和所述候选对象集的节点的结构化树;
在所述结构化树中选择对象和布局的组合;以及
基于所述结构化树中的对象和布局的所述组合来确定所述环境的三维(3D)布局。
21.根据权利要求20所述的方法,其中,选择所述结构化树中的对象和布局的所述组合是基于使用蒙特卡罗树搜索(MCTS)算法对所述结构化树的搜索。
22.根据权利要求21所述的方法,其中,所述MCTS算法包括适配的MCTS算法,其中,所述适配的MCTS算法向在所述结构化树中搜索的每个节点分配适合度值,所述适合度值表示与所述节点相关联的对象和布局中的至少一个出现在所述环境中的概率。
23.根据权利要求20所述的方法,其中,所述候选布局集包括3D布局模型和相关联的姿势的集合,并且其中所述候选对象集包括3D对象模型和相关联的姿势的集合。
24.根据权利要求20所述的方法,其中,所述一个或多个图像包括一个或多个红-绿-蓝图像(RGB),并且所述深度信息包括所述环境的一个或多个深度图。
25.根据权利要求20所述的方法,其中,所述一个或多个图像和所述深度信息包括一个或多个RGB-深度(RGB-D)图像。
26.根据权利要求20所述的方法,其中,检测所述候选布局集包括:
基于与所述一个或多个图像相关联的点云的语义分割来识别对应于所述环境的墙壁和所述环境的地板中的至少一个的3D点;
基于所述3D点生成3D平面;
基于所述3D平面中的至少一些之间的交叉点生成多边形;以及
基于所述多边形确定布局候选。
27.根据权利要求20所述的方法,其中,检测所述候选对象集包括:
检测为所述环境生成的点云中的对象的3D边界框建议;以及
对于每个边界框建议,从数据集中检索候选对象模型集。
28.根据权利要求20所述的方法,其中,所述结构化树包括多个级别,其中每个级别包括与所述环境相关联的不同的不兼容候选集,其中所述不同的不兼容候选集包括不兼容对象和不兼容布局中的至少一个。
29.根据权利要求20所述的方法,还包括:
基于所确定的所述环境的3D布局来生成虚拟内容。
30.根据权利要求20所述的方法,还包括:
与计算设备共享所确定的所述环境的3D布局。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063113722P | 2020-11-13 | 2020-11-13 | |
US63/113,722 | 2020-11-13 | ||
US17/454,020 US11797724B2 (en) | 2020-11-13 | 2021-11-08 | Scene layout estimation |
US17/454,020 | 2021-11-08 | ||
PCT/US2021/072304 WO2022104325A1 (en) | 2020-11-13 | 2021-11-09 | Scene layout estimation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116438573A true CN116438573A (zh) | 2023-07-14 |
Family
ID=81586739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180075822.4A Pending CN116438573A (zh) | 2020-11-13 | 2021-11-09 | 场景布局估计 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11797724B2 (zh) |
EP (1) | EP4244824A1 (zh) |
KR (1) | KR20230111188A (zh) |
CN (1) | CN116438573A (zh) |
WO (1) | WO2022104325A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734477B2 (en) * | 2018-03-08 | 2023-08-22 | Concurrent Technologies Corporation | Location-based VR topological extrusion apparatus |
WO2022081717A1 (en) * | 2020-10-13 | 2022-04-21 | Flyreel, Inc. | Generating measurements of physical structures and environments through automated analysis of sensor data |
US11657578B2 (en) | 2021-03-11 | 2023-05-23 | Quintar, Inc. | Registration for augmented reality system for viewing an event |
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 |
US11527047B2 (en) | 2021-03-11 | 2022-12-13 | Quintar, Inc. | Augmented reality system for viewing an event with distributed computing |
US11645819B2 (en) | 2021-03-11 | 2023-05-09 | Quintar, Inc. | Augmented reality system for viewing an event with mode based on crowd sourced images |
CN113240789B (zh) * | 2021-04-13 | 2023-05-23 | 青岛小鸟看看科技有限公司 | 虚拟对象构建方法及装置 |
US11887260B2 (en) | 2021-12-30 | 2024-01-30 | Snap Inc. | AR position indicator |
US11928783B2 (en) * | 2021-12-30 | 2024-03-12 | Snap Inc. | AR position and orientation along a plane |
US11954762B2 (en) | 2022-01-19 | 2024-04-09 | Snap Inc. | Object replacement system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325998B (zh) * | 2018-10-08 | 2023-06-30 | 香港理工大学 | 一种基于点云数据的室内3d建模方法、系统及相关装置 |
US10956626B2 (en) * | 2019-07-15 | 2021-03-23 | Ke.Com (Beijing) Technology Co., Ltd. | Artificial intelligence systems and methods for interior design |
-
2021
- 2021-11-08 US US17/454,020 patent/US11797724B2/en active Active
- 2021-11-09 WO PCT/US2021/072304 patent/WO2022104325A1/en unknown
- 2021-11-09 CN CN202180075822.4A patent/CN116438573A/zh active Pending
- 2021-11-09 EP EP21816629.6A patent/EP4244824A1/en active Pending
- 2021-11-09 KR KR1020237015440A patent/KR20230111188A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US11797724B2 (en) | 2023-10-24 |
KR20230111188A (ko) | 2023-07-25 |
WO2022104325A1 (en) | 2022-05-19 |
EP4244824A1 (en) | 2023-09-20 |
US20220156426A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797724B2 (en) | Scene layout estimation | |
US11816907B2 (en) | Systems and methods for extracting information about objects from scene information | |
US11797860B2 (en) | Deep learning system for cuboid detection | |
EP2880633B1 (en) | Animating objects using the human body | |
US20230031646A1 (en) | Providing contextual augmented reality photo pose recommendations | |
US10726599B2 (en) | Realistic augmentation of images and videos with graphics | |
US11328476B2 (en) | Layout estimation using planes | |
US11748905B2 (en) | Efficient localization based on multiple feature types | |
WO2019055096A2 (en) | TREATMENT OF THREE DIMENSIONAL GRAPHICS | |
CN115018992B (zh) | 发型模型的生成方法、装置、电子设备及存储介质 | |
JP2022095591A (ja) | 3dオブジェクト検出のための機械学習 | |
CN115362478A (zh) | 用于标记图像之间的空间关系的强化学习模型 | |
US11410363B2 (en) | Modeling method and apparatus and apparatus using fluid animation graph | |
JP2023536074A (ja) | 単眼カメラからのフル骨格3d姿勢復元 | |
He et al. | Manhattan‐world urban building reconstruction by fitting cubes | |
Ng et al. | Syntable: A synthetic data generation pipeline for unseen object amodal instance segmentation of cluttered tabletop scenes | |
Sim | Real-Time 3D Reconstruction and Semantic Segmentation Using Multi-Layer Heightmaps | |
Hong et al. | Design and Implementation of Path Planning for Wheel‐Track Hybrid Mobile Robot | |
CN116524106A (zh) | 一种图像标注方法、装置、设备及存储介质、程序产品 | |
Khattak | A variational approach to mapping: an exploration of map representation for SLAM |
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 |