CN114365201A - 结构注释 - Google Patents

结构注释 Download PDF

Info

Publication number
CN114365201A
CN114365201A CN202080063511.1A CN202080063511A CN114365201A CN 114365201 A CN114365201 A CN 114365201A CN 202080063511 A CN202080063511 A CN 202080063511A CN 114365201 A CN114365201 A CN 114365201A
Authority
CN
China
Prior art keywords
frame
model
annotation
image
pixel
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
CN202080063511.1A
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.)
Faber Artificial Intelligence Co ltd
Original Assignee
Faber Artificial Intelligence Co ltd
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
Priority claimed from GBGB1910382.9A external-priority patent/GB201910382D0/en
Priority claimed from GBGB1910392.8A external-priority patent/GB201910392D0/en
Priority claimed from GBGB1910390.2A external-priority patent/GB201910390D0/en
Priority claimed from GBGB1910395.1A external-priority patent/GB201910395D0/en
Priority claimed from GBGB2004842.7A external-priority patent/GB202004842D0/en
Priority claimed from GBGB2004841.9A external-priority patent/GB202004841D0/en
Application filed by Faber Artificial Intelligence Co ltd filed Critical Faber Artificial Intelligence Co ltd
Publication of CN114365201A publication Critical patent/CN114365201A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/945User interactive design; Environments; Toolboxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • 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/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • 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/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computational Linguistics (AREA)
  • Architecture (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及一种创建用于注释一个或多个感知输入的2D注释数据的计算机实施方法,包括:在注释计算机系统处接收至少一个包括3D结构点集的捕获帧,该帧中捕获结构组件的至少一部分;计算帧内结构组件的参考位置;通过基于参考位置选择性提取帧的3D结构点来生成结构组件的3D模型;计算3D模型到图像平面的投影;以及将计算出的投影的2D注释数据存储在持久性计算机存储设备中以注释图像平面内的结构组件。

Description

结构注释
技术领域
本公开涉及对图像、点云和其他形式的感知输入中捕获的结构进行注释。这种注释可应用于创建经注释的感知输入以便用于训练机器学习(ML)感知组件。
背景技术
结构感知是指一类数据处理算法,能够有意义地解释感知输入中捕获的结构。这种处理可应用于不同形式的感知输入。感知输入一般是指任何结构表示,即在其中捕获结构的任何数据集。结构感知可应用于二维(2D)和三维(3D)空间。将结构感知算法应用于既定结构输入的结果可编码为结构感知输出。
一种形式的感知输入是二维(2D)图像,即,仅有颜色分量(一个或多个颜色通道)的图像。最基本形式的结构感知是图像分类,即,将图像作为整体相对于一组图像类进行简单分类。更复杂形式的应用于2D空间的结构感知包括2D对象检测和/或定位(例如,2D空间中的定向、位姿和/或距离估计)、2D实例分割等。其他形式的感知输入包括三维(3D)图像,即至少具有深度分量(深度通道)的图像;3D点云,例如使用RADAR或LIDAR捕获或源自3D图像的3D点云;基于体素或网格的结构表示,或任何其他形式的3D结构表示。可应用于3D空间的感知算法例如包括3D对象检测和/或定位(例如,3D空间中的距离、定向或位姿估计)等。单感知输入也可以由多图像形成。例如,可以在一对立体2D图像中捕捉立体深度信息,这对图像可用作3D感知的基础。3D结构感知也可应用于单个2D图像,例如单目深度提取,从单个2D图像中提取深度信息(应当注意,即使无任何深度通道仍可在其一个或多个颜色通道中捕捉一定程度的深度信息)。此类形式的结构感知为不同“感知模态”的示例,正如该术语在本文所用那样。应用于2D或3D图像的结构感知可称为“计算机视觉”。
对象检测是指检测感知输入中捕获的任意数目的对象,通常涉及将每个这样的对象表征为对象类的实例。这种对象检测可涉及或结合一种或多种形式的位置估计执行,诸如2D或3D边界框检测(一种对象定位形式,其目的是在2D或3D空间中定义界定对象的面积或体积)、距离估计、位姿估计等。
在机器学习(ML)情境下,结构感知组件可以包括一个或多个经训练的感知模型。例如,机器视觉处理常用卷积神经网络(CNN)来实施。此类网络需要大量的训练图像,这些图像注释有神经网络需要学习的信息(一种有监督学习形式)。训练时,为网络呈现数千或优选地数十万个这样的注释图像,并且网络自行学习在图像中捕获的特征与之相关联的注释的相关方式。从与注释数据相关联的意义上对每个图像进行注释。图像作为感知输入,相关联的注释数据提供了图像的“Ground Truth(真实标注)”。可将CNN和其他形式的感知模型架构为接收和处理其他形式的感知输入,诸如点云、体素张量等,并感知2D和3D空间中的结构。在训练情境下,感知输入一般可称为“训练样例”或“训练输入”。相比之下,在运行时,由经训练的感知组件捕获以供处理的训练样例可称为“运行时输入”。与训练输入相关联的注释数据为该训练输入提供了Ground Truth,因为注释数据编码了该训练输入的预期感知输出。在监督训练过程中,感知组件的参数被系统地调谐为在定义限度内最小化感知组件在应用于训练集中的训练样例时所生成的感知输出(“实际”感知输出)与相关联的注释数据所提供的对应Ground Truth(“预期”感知输出)之间差异的总体度量。依此方式,从训练样例中“学习”感知输入,而且能够“概括”这种学习,这样一经训练就能为其在训练期间未曾遇到的感知输入提供有意义的感知输出。
此类感知组件是许多成熟和新兴技术的基石。例如,在机器人领域,能够在复杂环境中自主规划路径的移动机器人系统正日益普及。这种快速发展的技术例如有自主驾驶车辆(AV),可在城市道路上自行导航。这类车辆不仅须在人与其他车辆之间执行复杂的操纵,而且还须在频繁这样操纵的同时保证严格约束发生不良事件的概率(例如与环境中其他这些媒介发生碰撞)。为了允许AV安全地进行计划,至关重要的是,它能够准确可靠地观察其环境。这包括需要准确可靠地检测车辆附近的现实世界结构。自主驾驶车辆(又称为自动驾驶车辆)是指具有用于监视其外部环境的传感器系统以及能够使用这些传感器自动做出和实施驾驶决策的控制系统的车辆。这特别是包括基于来自传感器系统的感知输入来自动调适车辆的速度和行驶方向的能力。全自主驾驶或“无人驾驶”的车辆具有足够的决策能力,无需驾驶员的任何输入即可运行。然而,本文所用的术语“自主驾驶车辆”也适用于半自主驾驶车辆,其具有更强的自主决策能力,因此仍然要求驾驶员一定程度上的监督。其他移动机器人正在研发中,例如用于在内外工业区中载运供货。此类移动机器人不会载人,属于一类称作UAV(无人自主载具)的移动机器人。自主空中移动机器人(无人机)也正处于研发中。
因此,在更普遍的自主驾驶和机器人领域中,可能需要一个或多个感知组件来解释感知输入,即,可确定关于既定感知输入中捕获的真实世界结构的信息。
诸如AV等复杂机器人系统可能愈发需要实施多种感知模态,从而准确解释多种形式的感知输入。例如,AV可能配备一对或多对立体光学传感器(相机),从中提取相关联的深度图。在此情形下,AV的数据处理系统可以配置为将一种或多种形式的2D结构感知应用于图像本身(例如,2D边界框检测和/或其他形式的2D定位、实例分割等)加上一种或多种形式的对相关联深度图数据的3D结构感知(例如,3D边界框检测和/或其他形式的3D定位)。此类深度图也可来自于LiDAR、RADAR等或者得自于合并多个传感器模态。
为了针对期望的感知模态训练感知组件,感知组件架构为使其能够接收期望形式的感知输入并作为响应提供期望形式的感知输出。另外,为了基于监督学习训练适当架构的感知组件,需要提供符合期望感知模态的注释。例如,若要训练2D边界框检测器,需要2D边界框注释;同样,若要训练分割组件执行图像分割(各个图像像素的逐像素分类),注释需要编码合适的分割掩膜,模型可从中进行学习;3D边界框检测器需要能够接收3D结构数据以及经注释的3D边界框等。
发明内容
常规上,经注释的训练样例是通过人工注释者手动注释训练样例来创建。即使在2D图像的情形下,每张图像也可能需要数十分钟。因此,创建数十万张训练图像需要巨量的时间和人工成本,这又导致其成为一项高成本的训练。实践中,它会限制实际提供训练图像的数量,这又可能不利于对有限数量的图像上训练感知组件的表现。手动3D注释明显更加繁琐耗时。此外,当需要适应多种感知模态时,问题只会加剧,因为那样关于一种或多种形式的训练输入(例如,一种或多种2D图像、3D图像、点云等)可能需要多种形式的注释数据(例如,两个或更多个2D边界框、分割掩膜、3D边界框等)。
本公开总体上涉及一种形式的具有注释功能的注释工具,这些注释功能有助于快速高效地注释感知输入。此类注释工具可用于创建用于训练感知组件的注释感知输入。术语“注释工具”泛指编程为或以其他方式配置为实施那些注释功能的计算机系统,或泛指一组一个或多个用于将可编程计算机系统编程为执行那些功能的计算机程序。
本发明一方面提供了一种创建用于注释一个或多个感知输入的2D注释数据的计算机实施方法,该方法包括:在注释计算机系统中,在注释计算机系统处接收至少一个包括3D结构点集的捕获帧,该帧中捕获结构组件的至少一部分;计算该帧内结构组件的参考位置;通过基于该参考位置选择性提取帧的3D结构点来生成结构组件的3D模型;计算该3D模型到图像平面的投影;将计算出的投影的2D注释数据存储在持久性计算机存储设备中以注释图像平面内的结构组件。
有利地,这允许基于从帧本身提取的3D模型来自动或半自动地生成2D注释数据。2D注释数据是基于3D建模生成,因此这样的2D注释数据可针对帧本身(即用作3D模型基础的帧)和/或至少部分地捕获相同结构组件的不同帧而生成(在此情境下,结构组件可以称为公共结构组件,即为两帧所共有)。也就是说,3D模型可应用于生成该3D模型的帧,也可以传播到另一帧中并在3D空间中与该不同帧中的公共结构组件对齐,以便生成另一帧的2D注释数据(通过从其对齐位置投影该3D模型,或确定第二模型可以基于该对齐位置从该另一帧中选择性提取3D结构点,然后投影该第二模型;该第二模型可以例如是通过聚合两帧的选择性提取点而确定的聚合模型)。
所述方法使用“自包含(self-contained)”建模,从而使用来自一帧或多帧本身的3D结构点来生成3D模型。因此,该方法的灵活性足以应用于多3D帧中捕获的任何形式的结构组件。
2D注释数据可以包括结构组件的2D边界框(或其他2D边界对象),将其拟合到计算出的3D模型图像平面中的投影。有利地,将2D边界框拟合到3D模型本身的投影能够提供紧密的2D边界框,即当结构组件出现在图像平面中时,该2D边界框与结构组件的外边界紧密对齐。一种替代方法是确定3D空间中公共结构组件的3D边界框(或其他3D边界对象),并将3D边界对象投影到图像平面中;然而,在大多数实际情境下,这样无法在图像平面中提供紧密的2D边界框:即使3D边界对象在3D空间中紧密拟合,也不能保证投影的3D边界框的边界出现在图像平面中时会与结构组件本身的外边界对齐。
另外地或替代地,2D注释数据可以包括用于结构组件的分割掩膜。通过将3D模型本身投影到图像平面中,可以提供分割掩膜,该分割掩膜将模型投影外边界内图像平面的像素标注(注释)为属于结构组件,并将外边界外的像素标注为(注释)为不属于结构组件。应当注意,可以对计算出的投影应用一定程度的处理以提供有用的分割掩膜。例如,可以“平滑”或“填充”投影区域以减少生成3D模型的底层帧中由噪声、稀疏等引起的伪影。在此情形下,计算出的投影的外边界是指应用此类处理后的外边界。
3D模型可以包括选择性提取的结构点本身和/或拟合到选择性提取点的3D网格模型或其他3D表面模型。当使用3D表面模型来创建分割掩膜时,所投影的3D表面模型的外边界定义了分割掩膜(经受计算投影的任何后处理)。3D表面模型是一种提供更高质量分割掩膜的方式。
泛言之,去噪和/或细化可应用于3D模型(在将其投影之前)和计算出的投影中的一者或两者。这可能涉及噪声过滤(以滤除噪声点/像素,例如在定义的阈值距离内具有不足数的相邻点/像素)、预测建模等中的一项或多项。对于预测建模,假设3D模型(相应的投影)不完整或不正确,预测模型应用于3D模型(相应的投影)的现有点(相应的像素)。现有点(相应的像素)充当“先验”,从中可以推断出正确的3D模型(相应的投影)。这会产生添加额外的点/像素或移除确定为不正确的点/像素的效果(因此,预测建模可用于预测丢失的点/像素和/或用作噪声过滤手段)。
在一些实施例中,3D模型是从多帧派生的聚合模型。对于多帧中的每一帧,针对该帧计算参考位置,用于从该帧中选择性提取3D结构点。将从多帧中提取的3D结构点聚合以生成聚合3D模型。聚合3D模型具有诸多优势。例如,此类模型能够考虑到遮挡或其他形式的部分数据捕捉以及数据稀疏和噪声。关于后者,在多帧上聚合意味着更容易识别和纠正噪声伪影(例如,杂散噪点平均会比实际属于相关结构组件的那些点更稀疏,因此能够更可靠地滤除;确实属于相关结构组件的点的密度增高也会为预测建模等提供更强的先验)。因此,结合降噪应用聚合3D模型具有特殊的益处。
在优选实施例中,注释工具基于一组通用注释操作(可以是手动、自动或半自动操作)针对多感知模态提供注释数据(例如2D和3D注释)和/或针对多帧提供注释数据。即,利用相同的操作针对多感知模态和/或多帧来提供注释数据。存在可以这样利用本注释功能的各种方式,包括但不限于下述示例。
为简明起见,下述示例考虑了两帧。当然可以理解,可以跨更多数目的帧生成聚合模型。实际上,通过跨许多帧聚合,能够获得高质量聚合模型(密集和低噪),该模型又可用于针对那些帧(和/或其中捕获公共结构组件的其他帧)高效地生成高质量注释数据。
例1—情境(context):将3D边界框(或其他边界对象)准确定位在第一帧内以界定具体的结构组件。假设使用一种或多种形式的“外部”输入来定位(例如定位和定向)3D边界对象,即在运行时感知组件不可用,则出于监督训练目的提供了有用的Ground Truth。在最简单的情形下,可以手动定位3D边界对象(即通过人工输入提供外部输入);然而,也可以通过利用测量或假设的结构组件路径等上下文信息自动定位3D边界对象(在此情形下,外部输入来自于已知或假设的路径)。3D边界框在第一帧内的位置和尺寸(如适用)又可存储为第一帧的第一感知输入的3D注释数据(即,所包含的感知输入源自于或以其他方式对应于该帧的至少一部分)。
例1—3D转2D;同帧:此外,此时3D边界框已准确定位,它可用作生成所需结构组件的3D模型的基础。对于紧密拟合且准确放置的3D边界对象,可以将第一帧与3D边界框体积的交点用作模型的基础(即,可以提取3D边界框体积内的3D结构点来生成3D模型)。在此情形下,上述“参考位置”计算为3D边界框在第一帧内的位置(应当注意,如下所述,实际上边界框最初无需紧密拟合—至少最初也可使用“粗略”边界框)。
此时可以立即针对第一帧生成2D注释数据:3D模型在第一帧内的对齐位置(即,使3D模型与该帧中结构组件对齐的位置)已知为3D边界框的位置。因此,可以基于该位置将3D模型投影到所需的图像平面中,并将所得的投影用作一种或多种形式的2D注释数据的基础。这样的2D注释数据可以与上述第一帧的第一感知输入或第一帧的另一感知输入相关联地存储。例如,3D注释数据可以与第一帧的点云相关联地存储,2D注释数据可以与第一帧的2D图像相关联地存储(例如,颜色分量与深度分量相关联,其中第一帧至少包括或源自深度分量)。
例1—模型传播:更重要地,此时可将同一3D模型传播到至少部分地捕获同一结构组件的第二帧中。通过将3D模型与第二帧中的公共结构组件对齐(自动、手动或半自动),即定位和/或重定向3D模型,使其结构元素和/或可见特征等与第二帧中公共结构组件的对应结构元素、特征等对齐,确定3D模型在第二帧内的对齐位置。
例1—模型传播;3D转3D:3D边界框相对于3D模型的位置为原本已知,这是基于3D边界框在第一帧内的位置派生3D模型的结果。例如,可以在3D边界框的参照系中定义3D模型的3D结构点,请见下文。因此,通过准确地在第二帧内定位3D模型(使其与公共结构组件对齐),此时3D边界框在第二帧内的准确位置此时视为第二帧中的对齐模型位置。对于刚性对象,可在第一帧和第二帧中应用相同的边界框尺寸。换言之,通过将3D模型传播到第二帧中并将其与公共结构组件对齐,将第一帧内定位的边界框传播到第二帧并正确定位在第二帧中。此时已在第二帧内准确地确定边界框的位置,该位置可存储(如适用,连同边界框尺寸)作为第二帧的第二感知输入(即包括源自于或以其他方式对应于第二帧的至少一部分的感知输入)的3D注释数据。如上所述,对齐可为手动、自动或半自动对齐。在手动对齐的情形下,相比“从头开始”在第二帧中定位第二边界框,通过肉眼(基于特性结构元素、特征等)将3D模型与对应的结构组件准确对齐会明显更为容易。此外,在刚性对象的情形下,可以跨全部帧应用相同的边界框尺寸,这样无需针对该事件中的每一帧单独定义这些边界框尺寸。
例1—模型传播;3D转2D:最后,此时对齐模型位置(或在此情境下等同地,3D边界框位置)视为处于第二帧内,2D注释数据可以是依类似方式通过投影针对第二帧来创建。这可基于:(i)传播模型到所需图像平面的投影;(ii)依相同方式所确定的第二3D模型的投影,但通过从第二帧中边界框的体积内选择性提取第二帧的3D结构点(已使用从第一帧派生的3D模型正确定位);或(iii)通过将这些从第二帧选择性提取的点与来自第一帧的那些点进行聚合而生成的聚合模型(可能还有许多其他帧来构建密集聚合模型)。这样的2D注释数据可以与上述第二帧的第二感知输入或第二帧的另一感知输入相关联地存储。
从例1中可以看出,关于第一帧,利用在第一帧内定位3D边界对象的操作来生成第一帧的2D和3D注释数据。此外,利用那些相同的操作,结合在第二帧中对齐3D模型的操作,针对第二帧附加地提供3D和2D注释数据。举例说明了两帧,但应理解,这些原理可应用于更多数目的帧,从而在注释时间和效率方面提供更为显著的性能优势。
如应理解,上述例1为本注释工具的某些实施例促进的许多有效注释工作流之一。本例仅用于说明注释工具的某些特征,并不限定或限制本发明的范围。出于相同目的,下文描述了更多示例。
本注释工具特别适用于注释时间序列帧,即在一定时间间隔内、通常以相对较短的规则时间间隔捕获的一个或多个帧时间序列。在本文中,这种帧时间序列可称为“3D视频序列”,应当注意,每一帧均包括3D结构点,即在3D空间中捕捉结构的点。一种示例应用是对行驶中的车辆或其他移动对象所捕获的3D视频序列进行注释,以提供非常适合训练一个或多个感知组件以便用于自主驾驶车辆或其他移动机器人的经注释感知输入。例如,这样的帧可以捕获城市或非城市道路场景,这些场景又可以注释为标记自主驾驶车辆需要能够感知和响应的道路结构、其他车辆、行人、骑行人和任何其他形式的结构组件。
在本情境下,“帧”是指任何捕获的3D结构表示,即包括定义3D空间结构的捕获点(3D结构点),提供了该帧中捕获的3D结构的静态“快照”(即静态3D场景)。可以说该帧与单个时刻相对应,但未必暗示需要立即捕获该帧或派生该帧的基础传感器数据—例如,可以由移动对象(mobile object)在LiDAR扫描中以“解扭(untwisted)”方式在短时间内(例如,约100ms)捕获LiDAR测量值,以说明移动对象的任何运动,从而形成单点云。在那种情况下,尽管采用了捕获基础传感器数据的方式,但由于这种解扭,从提供有用静态快照的意义上,单点云仍可以说与单个时刻相对应。在帧时间序列情境下,每一帧对应的时刻是该帧在时间序列内的时间索引(时间戳)(并且时间序列中的每一帧对应于一个不同的时刻)。
在注释工具情境下,术语“对象”和“结构组件”同义使用,是指建模为对象的3D帧的静态3D场景内的可识别结构件。应当注意,根据该定义,在注释工具情境下,对象实际上可能仅对应于真实世界对象的一部分或对应于多个真实世界对象等。即,术语“对象”广泛适用于任何3D场景中捕获的可识别结构件。
关于本文采用的更多术语,术语“定向”和“角位”同义使用,是指2D或3D空间中的对象旋转配置(如适用),除非另作说明。从前述说明中可以清楚看出,术语“位置”在广义上用于涵盖定位和/或定向。因此,关于对象确定、计算、假设等的位置可以仅有定位分量(一个或多个定位坐标)、仅有定向分量(一个或多个定向坐标)或既有定位分量也有定向分量。故泛言之,位置可以包括如下至少之一:定位坐标和定向坐标。术语“位姿(pose)”是指对象的定位和定向的组合,例如全六维(6D)位姿矢量,全面定义了对象在3D空间中的定位和定向(术语“6D位姿”也可用作简写,表示3D空间中的全位姿),除非另作说明。
术语“2D感知”和“3D感知”可以用作简写,分别指代应用于2D和3D空间的结构感知。为免疑义,这类术语不必然隐含所得结构感知输出的维数,例如,全3D边界框检测算法的输出可呈一个或多个九维矢量的形式,每个矢量均定义3D边界框(长方体),如3D定位、3D定向和大小(高度、宽度、长度—边界框尺寸);另例而言,可以在3D空间中估计对象深度,但在此情形下,单维输出可足以捕获估计深度(作为单维深度)。而且,3D感知也可应用于2D图像,例如在单目深度感知中。
一些实施例中,2D注释数据可以包括结构组件的2D边界对象,将2D边界对象在图像平面中拟合到计算出的3D模型投影。
替代地或附加地,2D注释数据可以包括结构组件的分割掩膜。
2D注释数据可以与所述帧的至少一个感知输入相关联地存储以注释其中的结构组件,并可以基于该帧内计算出的参考位置来计算投影。
2D注释数据可以与第二帧的至少一个感知输入相关联地存储以注释第二帧的至少一个感知输入中的结构组件,该第二帧中捕获结构组件的至少一部分。
3D模型还可用于创建3D注释数据以注释3D空间中的结构组件。
可以创建3D注释数据以注释第二帧的至少一个感知输入中的结构组件,该第二帧中捕获结构组件的至少一部分。
可以创建2D或3D注释数据以通过计算3D模型在第二帧内的对齐模型位置来注释第二帧的至少一个感知输入,其中,对齐模型位置是基于如下至少之一来确定:(i)在用户界面关于第二帧所接收的一个或多个手动对齐输入,同时渲染3D模型以手动对齐3D模型与第二帧中的结构组件;(ii)3D模型与第二帧中的结构组件的自动对齐。
注释数据可以包括通过根据选择性提取的3D结构点来应用预测模型所计算出的细化注释数据。
预测模型可以是条件随机场(CRF)或其他概率图形模型。
至少一个感知输入可以包括所述帧或第二帧的2D图像数据或与所述帧或第二帧相关联的2D图像数据,图像平面为图像数据的图像平面。
所述帧或第二帧可以包括3D图像的深度分量的数据,感知输入的图像数据为3D图像的颜色分量的图像数据。
所述方法可以包括如下步骤:对如下至少之一应用噪声过滤以从中滤除噪点:所提取的用于生成3D模型的3D结构点,其中,3D模型包括或源自该事件中的过滤3D结构点;所计算的投影,2D注释数据为该事件中过滤投影的2D注释数据。
可以根据可通过注释计算机系统的用户界面手动调整的过滤标准来应用噪声过滤。
可以基于用户界面处所接收的一个或多个定位输入来计算参考位置,同时渲染帧内参考位置的视觉指示以手动调整帧内参考位置。
可以针对参考帧自动或半自动计算参考位置。
可以通过将感知组件应用于参考帧,自动或半自动计算参考位置。
帧可以是多个时序帧之一,可以基于时序帧的时间间隔内的结构组件路径来自动或半自动计算参考位置。
选择性提取的3D结构点可以是基于参考位置和一个或多个边界对象尺寸而从用于生成3D模型的帧中选择性提取,其中,一个或多个边界对象尺寸是如下之一:(i)基于用户界面处所接收的一个或多个尺寸输入而手动确定;(ii)通过将感知组件应用于帧而自动确定;(iii)通过将感知组件应用于帧并进一步基于一个或多个尺寸输入而半自动确定;(iv)假设。
选择性提取的3D结构点可以是参考位置和一个或多个边界对象尺寸所定义的3D体积内的点子集。
3D注释数据还可以包括用于生成3D模型或其变换的一个或多个边界对象尺寸。
所述方法可以包括如下步骤:在训练过程中使用所述或每个感知输入来训练至少一个感知组件,其中,该感知输入的注释数据在训练过程中提供该感知输入的GroundTruth。
3D注释数据可用于训练3D感知组件,2D注释数据可用于训练2D感知组件。
3D模型可以包括拟合到选择性提取的结构点的3D表面模型,投影包括3D表面模型到图像平面的投影。
3D结构点集可以呈点云形式。
可以将3D结构点集变换到参考位置的参照系中,以便选择性提取3D模型的3D结构点。
参考位置和一个或多个边界对象尺寸所定义的3D体积可以是与参照系的坐标轴对齐的长方体。
可以针对第二帧创建2D注释,其中通过使用对齐模型来生成第二3D模型,基于对齐模型位置来选择性提取第二帧的3D结构点,然后将第二3D模型投影到图像平面中。
第二3D模型可以是通过聚合从第一帧和第二帧选择性提取的3D结构点而生成的聚合3D模型。
可以在所述帧内计算参考位置作为结构组件的现有3D模型的对齐模型位置,这是基于如下至少之一:(i)在用户界面关于所述帧所接收的一个或多个手动对齐输入,同时渲染现有3D模型以手动对齐现有3D模型与所述帧中的结构组件;以及(ii)现有3D模型与所述帧中的结构组件的自动对齐。
现有3D模型可以已从一个或多个其他帧生成,该其他帧中捕获结构组件的至少一部分。
3D模型可以是通过将选择性提取的3D结构点与现有3D模型的3D结构点聚合而确定的聚合3D模型。
自动对齐可以包括计算现有3D模型或3D模型到与所述帧或第二帧相关联的2D图像平面的投影,以及调整3D空间中的模型位置以使投影与2D图像平面内公共结构组件的2D特征相匹配。
2D注释数据可以包括基本上确定为能量函数的实例分割掩膜,其中,该实例分割掩膜为图像平面内一组像素中的每个像素分配实例分类标注,其中,该能量函数具有:在分割掩膜上聚合一元函数的一元项,该一元函数分别应用于每个像素的实例分类标注,其中,该一元函数由一个或多个光线投射值来定义,该光线投射值如投影步骤中通过光线投射穿过该像素并确定光线是否及在何处与3D模型的表面相交而确定;以及在分割掩膜上聚合非一元函数的非一元项,该非一元函数应用于至少两个像素的实例分类标注。
非一元函数可以具有一个或多个项,每个项为标注兼容性函数与核之积,其中,该核测定如下至少之一的差异:像素位置、像素值和像素特征,使得标注兼容性函数的效应随该一个或多个差增大而减小。
像素值可以包括深度值或视差值,并且至少一个项的核测定至少两个像素的至少深度值或视差值之差,使得标注兼容性函数的效应随深度值或视差值之差增大而减小。
标注兼容性函数可以取决于至少两个像素中至少一个像素所属的实例的大小。
实例可以由实例分割掩膜定义。
虽然上述用于确定实例分割掩膜的技术是在上述方面的对象建模技术情境下提出,但可更广泛地应用于需要实例分割掩膜的任何情境下(在线或离线)。
本发明另一方面提供了一种确定图像的实例分割掩膜的计算机实施方法,该方法包括:在注释计算机系统中,接收待注释的图像;确定该图像与3D对象模型之间的相对位姿;光线投射穿过图像平面的每个像素并确定光线是否及在何处与3D模型的表面相交,从而确定像素的一个或多个光线投射值;将实例分割掩膜确定为基本上优化能量函数,其中,该实例分割掩膜为图像平面内一组像素中的每个像素分配实例分类标注,其中,该能量函数具有:在分割掩膜上聚合一元函数的一元项,该一元函数分别应用于每个像素的实例分类标注,其中,该一元函数由一个或多个光线投射值来定义,该光线投射值如投影步骤中通过光线投射穿过该像素并确定光线是否及在何处与3D模型的表面相交而确定;以及在分割掩膜上聚合非一元函数的非一元项,该非一元函数应用于至少两个像素的实例分类标注。
本发明又一方面提供了一种确定图像的实例分割掩膜的计算机实施方法,包括:将实例分割掩膜基本上确定为能量函数,其中,该实例分割掩膜为图像内一组像素中的每个像素分配实例分类标注,其中,该能量函数具有:在分割掩膜上聚合一元函数的一元项,该一元函数分别应用于每个像素的实例分类标注;以及在分割掩膜上聚合非一元函数的非一元项,该非一元函数应用于至少两个像素的实例分类标注,其中,该非一元函数具有一个或多个项,每个项为标注兼容性函数与核之积,其中,像素值包括深度值或视差值,并且至少一个项的核测定至少两个像素的至少深度值或视差值之差,使得标注兼容性函数的效应随深度值或视差值之差增大而减小。
本发明还一方面提供了一种确定图像的实例分割掩膜的计算机实施方法,包括:将实例分割掩膜基本上确定为能量函数,其中,该实例分割掩膜为图像内一组像素中的每个像素分配实例分类标注,其中,该能量函数具有:在分割掩膜上聚合一元函数的一元项,该一元函数分别应用于每个像素的实例分类标注;以及在分割掩膜上聚合非一元函数的非一元项,该非一元函数应用于至少两个像素的实例分类标注,其中,该非一元函数具有一个或多个项,每个项测定如下至少之一的差异量度:像素位置、像素值和像素特征,使得标注兼容性函数的效应随该一个或多个差增大而减小,其中,该标注兼容性函数取决于至少两个像素中至少一个像素所属的实例的大小。
实例可以由实例分割掩膜定义。
请参阅申请日为2019年7月19日的英国专利申请GB1910392.8、GB1910390.2、GB1910395.1和GB1910382.9(更早的申请)以及申请日为2020年4月1日的英国专利申请GB2004842.7,它们均全文引用归并本文。本文教导的全部主题(包括上述方面和实施例)皆可在任何上述情境下实施。
本公开其他方面提供了一种包括一个或多个计算机的计算机系统,该计算机系统编程为或以其他方式配置为执行本文公开的任何步骤,以及一种或多种体现于暂时性或非暂时性介质上的计算机程序,用于将计算机系统编程为执行这些步骤。
所述计算机系统可以体现于机器人系统中(例如,自主驾驶车辆或其他移动机器人)或体现为模拟器。
附图说明
下面结合附图举例说明本发明实施例的实施方式,以便更清楚地理解本发明,图中:
图1示出用于训练感知组件的训练系统的高度示意性功能框图;
图2示出自主驾驶车辆的高度示意性框图;
图3示出注释计算机系统的示意性功能框图;
图4示出点云形式的帧的示意性透视图;
图5示出立体图像处理系统的框图;
图6示意性表明立体深度提取的某些原理;
图7A至图8E示出注释3D道路场景的时间序列时由注释计算机系统渲染的图形用户界面(GUI)的各种示例;
图9A示出生成对象模型的方法的流程图;
图9B示出应用于点云的方法的示意图;
图10A至图12C示出注释系统GUI的更多示例,具体示出可应用所生成的对象模型来以3D道路场景的时间序列创建注释的方式;
图13A至图13C示意性表明车辆路径信息可合并到自动或半自动注释过程的方式;
图14示出迭代生成和传播聚合3D对象模型的方法的流程图;
图15A和图15B表明一种形式的SDF建模的某些几何原理;
图16A表明动态体素缩放原理;
图16B及图16C示出体素树的物理表示和数据结构表示;
图17表明基于最大似然估计的SDF计算的某些原理;
图18示出注释流水线的示例;
图19表明光线跟踪的某些原理。
具体实施方式
下面对本发明实施例予以详述。首先,提供有益于所述实施例的一些机构。
图1示出用于基于一组经注释的感知输入108(即,感知输入连同相关联的注释数据)来训练感知组件102的监督训练系统的高度示意性功能框图。在下文的描述中,感知组件102可以同义地称为结构检测器、结构检测组件或简称为结构检测器。如上所述,用于训练目的的感知输入在本文中可以称为训练样例或训练输入。
在图1中,训练样例标有附图标记104,与之关联的一组注释数据标有附图标记106。注释数据106为与之关联的训练样例104提供Ground Truth。例如,对于图像形式的训练样例,注释数据106可以标记图像104内某些结构组件(诸如道路、车道、路口、不可驾驶区域等)和/或图像内对象(诸如其他车辆、行人、街道标牌或其他基础设施等)的定位。
经注释的感知输入108可以分为训练集、测试集和验证集,分别标有108a、108b和108c。经注释的训练样例因用于测试或验证而无需形成训练集108a的一部分就可用于训练感知组件102。
感知组件102从训练集108a、测试集108b和验证集108c之一接收感知输入,记为x,并处理感知输入x,以便提供相对应的感知输出,记为
y=f(x;w)。
在上文中,w表示感知组件102的一组模型参数(权重),f表示权重定义的函数w以及感知组件102的架构。例如,在2D或3D边界框检测的情形下,感知输出y可以包括一个或多个检测到的从感知输入x派生的2D或3D边界框;在实例分割的情形下,y可以包括一个或多个从感知输入派生的分割图。泛言之,感知输出y的格式和内容取决于感知组件102的选择及其选择的体系结构,并且这些选择又是根据要对其进行训练的一个或多个期望的感知模态而作出。
基于训练集108a的感知输入来训练检测组件102,以将其输出y=f(x)与相关联的注释数据所提供的Ground Truth相匹配。针对感知输入x所提供的Ground Truth在此记为yx。因此,对于训练样例104,由相关联的注释数据106证明Ground Truth。
这是一种递归过程,其中训练系统110的输入组件112系统地将训练集108b的感知输入提供给感知组件102,并且训练系统110的训练组件114调适模型参数w,以试图优化误差(成本)函数,补偿每个感知输出y=f(x;w)与对应Ground Truth yx的离差。该离差由定义的度量(诸如均方误差、交叉熵损失等)来表征。因此,通过将成本函数优化到限定的程度,可将整个训练集108a相对于Ground Truth测得的总体误差减少到可接受的水平。感知组件102例如可为卷积神经网络,其中模型参数w为神经元之间的权重,但本公开不限于此。应当领会,存在数种形式的感知模型,这些感知模型可以对适当注释的感知输入进行有用的训练。
测试数据108b用于尽量减少过度拟合,这是指如下事实:超出某一点,提高检测组件102对训练数据集108a的准确度不利于其将泛化到训练中尚未遇到的感知输入的能力。过度拟合可能被识别为提高感知组件102对训练数据108的准确度会降低(或不提高)其对测试数据的准确度的一点,其中准确度是根据误差函数而测得。训练的目的在于将训练集108a的总误差减至最低,以至能够在不过度拟合的情况下使其最小化。
必要时,验证数据集108c可用于提供对检测组件性能的最终估计。
图2示出自主驾驶车辆200的高度示意性框图,该自主驾驶车辆示为包括经训练的感知组件102的实例,其输入端连接至车辆200的至少一个传感器202且其输出端连接至自主驾驶车辆控制器204。
在使用中,自主驾驶车辆200的经训练的结构感知组件102(的实例)根据其训练实时解释由至少一个传感器202捕获的感知输入内的结构,并且在无任何驾驶员输入或有限驾驶员输入的情况下,自主驾驶车辆控制器204基于结果来控制车辆的速度和方向。
尽管图2中仅示出一个传感器202,但自主驾驶车辆102可配备有多个传感器。例如,可以布置一对图像捕获装置(光学传感器)以提供立体视图,并且道路结构检测方法可应用于从每个图像捕获装置捕获到的图像。AV 102上可以替代地或附加地设置有其他传感器模态,诸如LiDAR、RADAR等。
应当领会,这是对某些自主驾驶车辆功能的高度简化描述。自主驾驶车辆的一般原理已为公知,因此不再赘述。
在图2的情境下,为了训练感知组件102以供使用,可使用相同的车辆或类似装备的车辆来捕捉训练样例,以便捕获与一种或多种形式的运行时输入紧密对应的训练样例,经训练的感知组件102会需要能够在运行时在AV 200上进行解释。可以使用具有相同或仅相似传感器布置的自主或非自主驾驶车辆来捕捉此类训练样例。在本情境下,3D帧用作创建经注释训练样例的基础,需要至少一种3D传感器模态,但应注意,所述术语广泛适用于任何形式的可捕捉大量可用深度信息的传感器数据,包括LiDAR、RADAR、立体成像、渡越时间或甚至单目成像(其中从单个图像中提取深度信息—在此情形下,单个光学传感器足以捕获待注释感知输入的底层传感器数据)。
此外,本文描述的技术能够在场外实施,即在诸如模拟器等计算机系统中实施,该计算机系统将执行用于建模或实验目的的路径规划。在此情形下,可以从作为模拟堆栈的一部分运行的计算机程序中获取传感数据。在任一情境下,感知组件102可以对传感器数据进行运算以识别对象。在模拟情境下,模拟代理可以使用感知组件102来导航模拟环境,并且代理行为可以被记录,例如用于标记安全问题或用作重新设计或重新训练已模拟组件的基础。
现将描述本发明的实施例。
图3示出注释计算机系统300的功能框图,为简明起见,该计算机系统可称为注释系统300。注释系统300的目的是创建可用于训练机器学习组件,诸如2D或3D结构检测器(例如,2D分割组件、2D边界框检测器或3D边界框检测器)。这样的数据可以称为训练数据,注释系统300的训练数据输出组件314以一组具有与之相关联的注释数据的训练样例的形式提供经注释的训练数据。
每个训练样例321呈结构表示形式(诸如2D或3D图像、点云或其中捕获结构的其他传感器数据集)。每个训练样例321与使用注释系统300创建的2D注释数据313和/或3D注释数据309相关联。2D注释数据是指在2D平面(或其他2D表面)中定义的注释数据。例如,可以在图像平面中定义2D注释数据以便注释图像平面内的2D结构。3D注释数据是指在3D空间中定义的注释数据,以便注释深度图、点云或其他3D结构表示中捕获的3D结构。每个训练样例321以及与之相关联的2D/3D注释数据313/309存储在注释计算机系统300可访问的电子存储设备322中。电子存储设备322为一种形式的计算机存储器,每个训练样例321及其相关联的注释数据存储在该电子存储设备的持久区域中,其后持久性存在于该持久区域中,从中可以导出或以其他方式获得以供其他用途,诸如训练一个或多个感知组件(例如,在外部训练系统中)。
如下所述,提供了各种注释功能,这些功能允许自动或半自动生成这样的注释数据,从而提高创建此类数据的速度并减少所需的人力。
在图3中,注释功能总体上由点云计算组件302、道路建模组件304、渲染组件306、3D注释生成器308、对象建模组件310和2D注释数据生成器312来表示。注释系统300还示为包括用户界面(UI)320,用户(人工注释者)可经由该UI 320与注释系统300进行交互。经由UI 320提供用于访问注释功能的注释界面(本文又称为注释工具)。
注释系统300还示为具有用于接收待注释数据(在本例中采取时间序列帧301的形式)的输入端。
在下例中,每一帧均采取在特定时刻捕获的RGBD(Red Green Blue Depth—红绿蓝深度)图像的形式。RGBD图像具有四个通道,其中三个通道(RGB)是对“常规”图像进行编码的色彩通道(色彩分量),而第四个通道则是对图像的至少一些像素的深度值进行编码的深度通道(深度分量)。举例说明RGB,但该描述更普遍适用于具有色彩分量和深度分量的任何图像(或实际上仅具有深度分量的图像)。泛言之,可使用一个或多个色彩通道(包括灰度/单色)在任何适当的色彩空间中对图像的色彩分量进行编码。点云计算组件302将每一帧转换为点云形式,以允许在3D空间中注释该帧。更泛言之,一帧对应于一个特定时刻,并且可以引用已针对该时刻捕捉到静态“快照”结构(即静态3D场景)的任何数据集(诸如多个RGBD图像、一个或多个点云等)。因此,下文关于RGBD图像的全部描述等同适用于其他形式的帧。在注释系统300处采取点云形式接收帧的情况下,无需点云转换。尽管下例是参照从RGBD图像派生的点云来描述,但注释系统可应用于任何形态的点云,诸如单目深度、立体深度、LiDAR、雷达等。通过合并不同传感器的输出,也可从两个或多个这样的感测模态和/或从相同或不同模态的多个传感器组件派生点云。因此,术语“帧的点云”可指代与特定时刻相对应的任何形式的点云,包括在注释计算机系统300处以点云形式接收的帧、由点云计算组件302从帧派生的点云(例如,呈一个或多个RGBD图像的形式)或合并的点云。
如上所述,尽管帧对应于特定时刻,但可以在(通常较短的)时间间隔内捕捉用于派生帧的基础数据,并在必要时进行变换以考虑时间变迁。因此,帧对应于特定时刻(例如,由时间戳表示)未必暗示基础数据已全部被同时捕获。因此,术语“帧”包含在与帧不同的时间戳接收的点云,例如,在特定的时刻(诸如捕捉图像的时间)将在100ms内捕获的激光雷达扫描“解扭”为单个点云。帧301的时间序列又可称为视频片段(应当指出,视频片段的帧不必是图像,并可以例如是点云)。
每个训练样例321包括视频片段301中至少一帧的数据。例如,每个训练样例可以包括至少一帧的RGBD图像(的一部分和/或分量)或至少一帧的点云的数据。
训练并非当前注释技术的唯一应用。例如,另一种可用的应用为场景提取,其中将注释应用于3D数据以便提取可在模拟器中运行的场景。例如,本注释技术可用于提取注释对象的轨迹(路径和运动数据),允许在模拟器中重播这些对象的行为。
图10示出视频序列301中的两个示例帧,如下详述。所描绘的帧为由行驶车辆捕获的道路场景。注释系统300特别适合于注释道路场景,这些道路场景又可用来有效地训练结构检测组件以用于自主驾驶车辆。然而,许多注释功能也可同样有用地应用于其他情境。
本文简要概括了注释系统300所提供的多项注释功能。
某些注释功能是基于“对象模型”,这是对象、即待注释结构件(结构组件)的3D模型。如上所述,在注释工具情境下,术语“对象”一般适用于在注释工具内建模为对象的任何形式的可识别结构(诸如现实世界对象的一部分、多个现实世界对象等)。因此,下面的描述中使用术语“对象”而不影响该广义。
对象模型确定为3D边界框与一帧(或多帧)的点云的交集。
换言之,3D建模组件310从视频序列301本身的一帧或多帧派生待注释对象的对象模型:将3D边界框(或其他3D边界对象,诸如模板)围绕特定帧中相关对象的点放置,并通过隔离该帧的点云内位于3D边界框体积之内的点子集(或等效地,3D边界框与点云的交点)而获得对象模型。这样固有地提供了3D边界框相对于3D对象模型的定位和定向,这可以编码为固定在对象模型的参照系中的参考点和定向矢量。下面将参照图9A和图9B对此予以详述。
这是通过将点云中的全部点转换为与边界框的轴线对齐来快速实现,故可使用简单的幅度比较来确定该点是否被包围。这可以在GPU(Graphics Processing Unit—图形处理单元)上高效实施。
一旦这些点依此方式隔离为对象模型便可例如用于:
1.针对相关对象生成紧密的2D边界框;
2.执行实例分割;
3.手动改进远处框的位姿。
响应式噪声过滤是通过在固定半径内按K个邻居对点进行排序而实现(使用3D树来首先找到K个邻居)。
也可以跨帧累积点(或以其他方式传播点)以便生成更完整/密集的对象模型。使用累积模型可以获取改进的噪声过滤结果,因为更容易将孤立的噪点与跨多帧捕获的对象本身的点分离。
例如,可以通过将模型拟合到其他帧的点云,例如使用迭代最近点(IterativeClosest Point—ICP)算法来获得细化的3D注释位姿估计。
模型传播也可为远处的对象提供改进的实例分割,也可能为近处的对象提供改进的分割(例如,在缺乏深度数据的区域中)。
除了为训练数据生成注释,对象模型还可用于扩充训练样例(即,一种“合成”训练数据的形式)。例如,可以人工将对象引入训练样例并进行注释以提供附加的知识库,结构检测组件可以从中进行学习。例如,这可用于创建更具“挑战性”的训练样例(现有的模型对此表现不佳),这又可以为推理中(即模型运作时)更具挑战性的输入提供性能改进。
扩展上列第3项,进而通过将3D对象模型拟合到第二帧的点云(第二点云),可以针对第二帧自动生成3D注释数据。3D边界框相对于3D对象模型的定位和定向为已知,因此可通过将3D对象模型拟合到第二点云而自动确定3D边界框相对于第二点云(即在第二点云参照系中)的定位和定向。下面参照图1A至图1D对此予以详述。这是将来自一帧的3D对象模型“传播”到第二帧中以便针对第二帧自动或半自动生成注释数据的一种方式示例。一种潜在的假设是可以将对象视作刚性体。
对象模型也可基于在第二帧中手动放置或调整的3D边界框而从一帧传播到第二帧。这样提供了协助注释者在第二帧中放置/调整3D边界框的视觉辅助。在此情形下,人工注释者设置3D边界框在第二帧中的定位和/或定向。这又可用来基于对象模型相对于3D边界框的固定定位和定向来进行3D对象模型在第二帧中的定位和/或定向。当注释者在第二帧中调整3D边界框的位姿(定向和/或定位)时,3D对象模型的定向/定位呈现匹配变化以相对于3D边界框保持固定的定位和定向。这为注释者提供了一种直观的方式来微调3D边界框在第二帧中的定位/定向,以便将3D对象模型与实际对象对齐到在第二帧中可见的范围内:注释者可以看到如果3D模型与第二帧中的实际对象不完全对准,并根据需要微调3D边界框直到对准为止。这样显然比尝试直接在视觉上将3D边界框与相关对象对齐要更为容易,尤其是在对象受到部分遮挡的情况下。稍后将参照图11E至图11G对此予以详述。
这两种对象传播形式并不相互排斥:首先通过将3D对象模型拟合到第二帧的点云,可以在第二帧中自动定位和定向3D边界框,然后注释者可以手动微调3D边界框以使3D模型与第二帧中实际对象之间的任何可见差异最小化(从而精调3D边界框在第二帧中的定位/定向)。
在本文中,生成模型并将模型传播到不同帧中的能力可以称为“x射线视觉特征”(该名称源自特定用例,其中来自另一帧(另些帧)的模型可用于“填充”部分受遮挡的对象区域,但如本文所述更普遍适用模型传播)。
扩展上列第1项和第2项,RGBD图像(或例如该图像的颜色分量)的2D注释数据是通过将3D对象模型投影到该图像的图像平面中而生成。在最简单的情形下,如上所述隔离既定帧内的点云子集,将这个点子集投影到图像平面中并进行处理以生成2D注释数据。2D注释数据可以例如呈拟合到投影点的分割掩膜或2D边界框的形式。在某些情况下,依此方式生成2D注释数据可能有用,但这是基于依上述方式传播自另一帧的3D模型的投影。下面参照图12A至图12C对2D注释数据的生成予以详述。
为了进一步协助注释者,道路建模组件304所提供的3D道路模型可用于在注释道路场景时引导3D边界框的放置。下面将参照图8A至图8E对此予以详述。
首先将说明所述实施例的一些有用情境。
图4示出点云400的高度示意性透视图,该点云400是定义参照系中的一组3D空间点。该参照系是由“3D注释空间”内的坐标系和坐标系原点402定义。在本例中,参照系具有直角坐标系(笛卡尔坐标系),使得点云中的每个点均由笛卡尔坐标(x,y,z)的三元组定义。
本文结合“立体”点云描述了若干示例,即从一个或多个立体深度图派生的点云(但如上所述,注释系统300就此不受限制并可应用于任何形式的点云)。
图5示出立体图像处理系统500的高度示意性框图。立体图像处理系统500示为包括图像校正器504、深度估计器506和深度变换组件508。
立体图像处理系统500示为具有用于接收共同构成立体图像对的左右图像L、R的输入端。立体图像对是由立体相机系统502的左右光学传感器(相机)502L、502R同时捕获的左右图像组成。相机502L、502R呈立体布置,其中相机以重叠的视场彼此错置。这样反映了人眼的几何构造,使人能够感知三维结构。
从左右图像对L、R中提取的深度图D示为提供作为立体图像处理系统500的输出。深度图D为立体图像对的“目标”图像的每个像素(i,j)分配估计深度dij。在本例中,目标图像为右图像R,因此为右图像R的每个像素分配估计深度。另一图像(在本例中为左图像L)用作参考图像。立体深度图D可以例如呈深度图像或图像通道的形式,其中深度图中特定像素的值是分配给目标图像R的对应像素的深度。
参照图6,由应用立体成像原理的深度估计器506估计像素深度。
图6的上部示出图像捕获系统502的示意图,说明了立体成像的基本原理。左侧示出相机502L、502R的平面图(在xz平面中),它们示为水平上(即,在x方向上)相互分开距离b(基线)。右侧示出侧视图(在xy平面中),其中相机502L、502R基本上在垂直(y)方向上对齐,故仅右侧相机502R可见。应当注意,在本情境下,术语“垂直”和“水平”是在相机系统502的参照系下定义,即,垂直是指相机502L、502R沿其对齐的方向而与重力方向无关。
举例而言,左图像L中的像素(i,j')和右图像R中的像素(i,j)示为彼此对应,因为它们各自对应于基本相同的真实世界场景点P。附图标记I表示所捕获的图像L、R的图像平面,图像像素示为位于该平面中。由于相机502L、502R之间的水平错置,左右图像中的那些像素呈现相对“视差”,如图6下部所示。图6下部示出经校正的相机502L、502R所捕获的左右图像L、R以及从这些图像中提取的深度图D的示意图。与目标图像R中既定像素(i,j)相关联的视差是指该像素与参考图像L中的对应像素(i,j')之间的偏移,这是因相机502L、502R的分离所致并取决于现实世界中对应场景点P的深度(沿z轴距相机502R的距离)。
因此,可通过搜索立体图像对的左右图像L、R之间的匹配像素来估计深度:针对目标图像R中的每个像素,搜索参考图像L中的匹配像素。搜索匹配像素可以通固有的几何约束来简化,即,给定目标图像中的某一像素,对应的像素将出现在参考图像中已知的“核线(epipolar line)”上。对于具有垂直对齐的图像捕捉单元的理想立体系统而言,核线皆为水平,从而既定目标图像中的任何像素(i,j),对应的像素(假设其存在)将垂直对齐,即在参考图像L中位于与目标图像R中的像素(i,j)相同的像素行(j)中。实践中可能并非如此,因为立体相机不可能完美对齐。然而,由图像校正器504对图像L、R应用图像校正,以解决任何错位问题,从而确保对应的像素在图像中始终垂直对齐。因此,在图5中,深度估计器506示为从图像校正器504接收左右图像L、R的校正版本,可以从中提取深度图。可以基于相对强度、局部特征等来评估匹配。可以应用若干种立体深度提取算法来估计像素视差,诸如全局匹配(Global Matching)、半全局匹配(Semi-Global Matching)和局部匹配(LocalMatching)算法。在实时情境下,半全局匹配(SGM)一般会在准确性与实时表现之间提供可接受的权衡。
在本例中,假设在像素匹配搜索中,目标图像R中的像素(i,j)与参考图像L中的像素(i,j')正确匹配。因此,视差是分配给右图像R中的像素(i,j)。
Dij=j′-j。
依此方式,将视差分配给目标图像的每个像素,在参考图像中可以找到其匹配像素(这不必是目标图像R中的全部像素:目标图像的一边上一般会存在处于另一相机的视场之外的像素区域,因此参考图像中并无对应的像素;搜索也可能无法找到匹配,或者若深度值不满足特定标准则将它们删除)。
每个这样的目标图像像素的深度最初是在视差空间中计算得出。每个视差进而可以利用相机固有参数(焦距f和基线b)认知而转换为距离单位,如下所示:
Figure BDA0003540404900000221
其中dij为目标图像R中以距离为单位的像素(i,j)的估计深度,即相机502R与对应的真实世界点P之间沿着立体相机系统502的光轴(z轴)的距离,Dij为像素匹配搜索中分配给目标图像R的像素(i,j)的视差。因此,在图5中,深度变换组件508示为在视差空间中接收深度提取组件506的输出并将该输出变换到上述距离空间以便提供以距离为单位的深度图D。在图6下半部分,深度图的像素(i,j)示为具有分配给目标图像R的像素(i,j)的值dij,这是以距离为单位的估计深度。
如上所述,在本例中,右图像R为目标图像而左图像L用作参考图像。但泛言之,两个图像中的任一者均可作为目标图像,另一者作为参考图像。选择哪个图像作为目标图像可以与情境相关。例如,在自主驾驶车辆情境下,立体相机对捕捉车辆前方道路的图像,最靠近道路中心线的相机所捕获的图像可以用作目标图像(即左侧驾驶车辆的右图像,右侧驾驶车辆的左图像)。
简要回顾图4,坐标系原点402对应于在捕获目标图像R时捕捉目标图像R的那个光学传感器502R的位置(在此情形下为右相机502R)。z轴平行于相机502R的光轴,x轴和y轴分别与目标图像R的像素行列方向对齐(即由下标i表示的像素行平行于x轴,由下标j表示的像素列平行于y轴)。
点云计算组件302可以基于已知相机502R的视场而从立体深度图D中计算点云400。如图6上半部分所示,目标图像R的第i列像素对应于相机视场内以xz平面上角度定义的一组角方向αj。类似地,目标图像R的第j行像素对应于相机视场内以xy平面上角度定义的一组角方向βj。因此,目标图像R的像素(i,j)对应于以角度对定义的角方向(αj,βi)。
一旦获知像素(i,j)的深度,便可基于该深度dij和该像素对应的角方向(αj,βi)来计算对应的真实世界点在3D空间中的位置(用3D空间点(xij,yij,zij)表示)。在本例中,角度αj和βi是相对于z轴定义,因此:
xij=dijtanαj
yij=dijtanβi
zij=dij
更泛言之,确定x和y分量作为像素深度和该像素对应的角方向的函数。
如图所示,3D空间点(xij,yij,zij)为点云400内对应于目标图像R中像素(i,j)的点。
此外,点云中的每个点均可与从目标图像R本身派生的颜色信息相关联。例如,对于RGB目标图像,点云中的每个点均可与基于目标图像R中对应像素的RGB值相关联。
回顾图3,点云计算组件302示为具有接收RGBD图像301的输入端,并如上所述处理该RGBD图像301以便确定图6中描绘的对应3D点云400。可以从单个图像或从公共参照系中合并的多个图像中确定点云。
3D注释生成器308允许注释者将3D边界对象在待注释点云400的参照系中进行放置(即定位、定向和调整尺寸)。在下例中,3D边界对象采取3D边界框(长方体)的形式,但该描述同样适用于其他形式的3D边界对象,诸如3D对象模板等。这可以是手动或半自动过程。
替代地,注释者执行的全部步骤也可自动实施,如下所述。
注释者经由注释系统300的UI 320放置3D边界框。因此,3D注释生成器308示为具有耦合到注释系统300的UI 320的第一输入端,用于为此接收用户输入。注释者可以经由UI320手动放置3D边界框,以便在点云400内界定所需的结构元素(诸如车辆、骑行人、行人或其他对象)。这是一种3D注释形式,可用于例如依上述方式训练3D结构检测组件,为此提供作为3D注释数据309的一部分。
道路建模组件304也示为具有用于至少接收RGBD图像的颜色分量的输入端,并对这些颜色分量进行处理以确定3D道路模型。为此,假设配备立体相机设备的车辆(如图2所示)在沿道路行驶时捕捉系列图像301,从而可以基于捕获的系列图像来重构车辆行驶中所沿道路的3D模型。为此,道路建模组件304应用的方法可参阅国际专利申请PCT/EP2019/056356,该申请全文引用归并本文。这是基于“运动恢复结构(Structure from Motion—SfM)”处理,将该处理应用于系列图像以便重构捕捉图像的车辆的3D路径(自身路径)。又将其用作外推车辆行驶经过的道路的3D表面的基础。这是基于视频序列301的图像之间的2D特征匹配。
道路模型也可以依替选方式而确定,例如点云拟合,例如自身路径(ego path)可基于应用于深度图或点云的3D结构匹配和/或使用高精度卫星定位(例如GPS)。替选地,可以加载现有道路模型,并且可以视需要在现有道路模型内部对帧进行定位。
前述参考文献使用从车辆本身路径外推出的3D道路模型来有效地生成2D注释数据,以在原始图像中注释道路结构。在本情境下,将该技术扩展到通过假设其他道路使用者总体上随时间推移遵循道路形状,允许跨视频片段301中的多帧将3D边界框有效地围绕道路上的其他对象放置,诸如其他车辆、骑行人等。
因此,3D注释生成器308示为具有耦合到3D道路建模组件304的输出端的第二输入端。3D注释生成器308使用3D道路模型作为参考以允许注释者将3D边界框“绑定”到3D道路模型。即,采取受3D道路模型控制的方式移动3D边界框,这特别可用于注释其他道路使用者,诸如车辆、骑行人等。例如,可以向注释者提供沿道路移动3D边界框的选项,3D边界框会自动重新定向以匹配道路的形状和坡度或垂直于道路当前方向横跨道路。下面将对此予以详述。
3D注释数据309还示为作为第三输入提供回3D注释组件309。这表示针对一帧定义的3D注释数据可用于自动生成另一帧的3D注释数据。稍后将对此予以详述。
渲染组件306示为具有连接到点云计算组件302、3D道路建模组件304和3D注释生成器308的输出端的输入端以及用于接收RGBD图像的输入端。渲染组件306在注释界面内采取可由人工注释者有意义地解释的方式来渲染3D注释数据309。
1.注释界面:
图7示出可以由渲染组件306经由UI 320渲染的示例注释界面700的示意图。
在注释界面700内,在左侧显示RGBD图像702(当前帧)的色彩分量。在右侧显示该帧的点云400的俯视图704。
此外,将3D道路模型到RGBD图像的图像平面的投影706a叠加在显示的图像702上。同样,将3D道路模型到俯视图中的投影706b显示为叠加在点云400的俯视图上。
提供可选择的选项708,用于为当前帧创建新的3D边界框。一旦完成创建,便提供可选的选项710和712,分别用于移动边界框和重新调整边界框尺寸。
用于移动边界框的选项710包括用于在任一方向上沿道路纵向移动边界框的选项(±R,如俯视图右侧所示),以及跨道路横向移动边界框的选项(±L)。
用于重新调整边界框尺寸的选项712包括用于更改边界框的宽度(w)、高度(h)和长度(l)的选项。
尽管描绘为显示的UI要素,但可替选地使用键盘快捷键、手势等提供相关联的输入。
现将描述用于放置3D注释对象的示例工作流程。应当领会,这只是注释者可利用注释界面700的注释功能的一种示例方式。
图8A示出一旦创建新的边界框800后的注释界面。边界框800放置在3D注释空间中道路高度处的初始位置,并定向为平行于该位置处的道路方向(如在3D道路模型中捕获的方向)。为了辅助注释者,将3D边界框800投影到显示图像702的图像平面和俯视图704中。
如图8B所示,当注释者将边界框800在+R方向上沿道路移动时,边界框800会自动重新定向,以使其与道路方向保持平行。在本例中,注释者的目的是将边界框800手动拟合到图像右半部分中可见并面向图像平面的车辆。
如图8C所示,一旦注释者将边界框800沿道路移动到所需的位置后,便再将其横向(即垂直于道路方向)移动到所需的横向位置—在本例中,沿+L方向移动。
如图8D和图8E所示,注释者再适当地调整边界框800的宽度(在此情形下,以“-w”表示减小)和高度(以“+h”表示增大)。碰巧在本例中无需长度调整,但可视需要采取相同方式调整边界框的长度。边界框800的宽度在边界框800的位置处保持与道路方向平行,而高度在边界框800的位置处保持与路面垂直。
上例假设边界框800在进行调整时仍与3D道路模型保持绑定。虽未示出,但注释界面也可以允许不受3D道路模型约束地“自由”调整,即注释者也能视需要自由移动或旋转边界框800。例如,这可能有益于注释行为有时偏离假设行为的车辆时(例如在转弯或换道期间)的情况。
2. 3D对象建模:
回顾图3,对象建模组件310基于来自3D注释生成器308的输出来实施一种形式的对象建模。如上所述,对象模型是通过隔离在点云参照系中定义的3D边界对象内的点云子集(或等效地确定为边界框与点云的交点)而创建的所需3D结构件(建模为对象)的3D模型。建模对象可以例如对应于单个真实世界对象(诸如为了训练结构检测组件以用于自主驾驶车辆而待注释的车辆、骑行人或行人)、真实世界对象的一部分或一组真实世界对象。
图9A示出从点云创建对象模型的方法的流程图。
在步骤902,接收捕获待建模结构的点云。
在步骤904,将3D边界框(长方体)形式的3D边界对象手动拟合到3D点云中捕获的所需结构件(对象)。
在本例中,例如采取上文参照图8A至图8E所述的方式,基于在用户界面320处提供的用户输入,手动调适3D边界框以拟合结构。这些输入是由人工注释者提供,其目的是实现3D边界框与所需结构尽量紧密的拟合。
替代地,可以自动放置边界框。例如,该边界框可以基于依上述方式为另一帧定义的边界框来自动放置。
另例而言,边界框可以由3D结构检测组件(诸如经训练的神经网络)自动生成。
一旦已放置3D边界框,在步骤906,确定3D边界框中的3D点云子集。在点云参照系中定义3D边界框,因而可以有意义地确定3D点云中的哪些点位于3D边界框的内部体积内。在大多数情况下,这些点将对应于所需结构件。如上所述,这可以在GPU上通过将点变换到坐标系来有效计算,该坐标系的轴与边界框的面相垂直。
图9B示出上述方法的步骤908的示意图。在本例中,点云400已从第一车辆和第二车辆捕获到各自的空间点(分别标有附图标记902和904)。此外,还已捕获周围道路结构的点906。通过将紧密拟合的3D边界框800围绕第二车辆放置到使之在点云800内可见的程度,可以将3D边界框800内的点子集隔离以提供第二车辆902的3D模型912。与单独选择属于所需结构元素的点子集相比,注释者通常更容易围绕该结构元素(在此情形下为第二车辆)定义3D边界框。
回顾图9A,可以对对象模型应用额外的处理以对其进行细化和改进。
例如,可以对所确定的点子集应用噪声过滤(如步骤910a所示)。噪声过滤的目的是滤除“噪点”,即实际上不太可能对应于所需结构件的点。这些点可能例如是因用来派生3D点云的底层传感器测量中的噪声所致。例如,过滤可以是K最近邻(K-NN)过滤,以去除其他相邻点不足数的点(例如,如果某点的定义半径内的点数低于阈值,则可去除该点)。根据可经由用户界面412手动调整的过滤标准来应用过滤(例如,半径和/或阈值可调整)。更泛言之,建模过程的一个或多个参数(诸如过滤参数)可手动配置,这在图3中由从UI 320到对象建模组件310的输入表示。
另例而言,可以跨多帧聚合对象模型(如步骤910b所示)以便构建聚合对象模型。
就此而言,应注意对象建模组件310能够构建“单帧”和“聚合”对象模型。
单帧对象模型是指从单个时刻捕获的传感器数据所派生的对象模型,即从上述意义上的单帧所派生的对象模型。这会包括从单个点云派生的对象模型,也包括从同时捕获的多个点云派生的对象模型。例如,可以由多对立体相机对同时捕捉多个RGBD图像,并合并以提供单个合并点云。
多帧对象模型是指从多个时刻捕获的传感器数据所派生的对象模型,例如从不同时刻捕获的RGBD图像所派生的对象模型,其中至少部分地捕获到待建模的对象。通过在上述事项中隔离每个点云的子集,然后在公共参照系中聚合点云子集,可以从对应于不同时刻的两个或更多个点云确定聚合对象模型。这样既能提供更密集的对象模型,又能通过将一个点云中受遮挡的对象部分使用来自不同时刻捕获的另一个点云的点来有效地“填充”而解决待建模对象的部分遮挡。
为了生成2D或3D注释数据,可以将对象模型应用于从中派生该对象模型的一帧或多帧,以便于生成这一帧或多帧的注释数据。
然而,对象建模组件310也能够在帧间传播对象模型。已使用来自一帧点云的数据所创建的对象模型在应用于另一帧时即称为传播(使点云数据从一帧有效传播到另一帧)以生成这另一帧的注释数据。可以从此意义上传播单帧和聚合对象模型。
如上所述,传播对象模型的目的也可以是生成增强训练样例。
图9A中的附图标记910c表示可选的表面重构步骤,其中将表面网格或其他3D表面模型拟合到选择性点。这种3D表面模型可拟合到从单帧(单帧对象模型)或多帧(聚合对象模型)中选择性提取的点。这样有效地将点云子集(单帧或聚合)“平滑”为3D空间中的连续表面。为此,可以使用公知的表面拟合算法,可以例如是基于有向距离函数(SDF),以使提取的点与重构的3D表面之间的距离度量最小化。应当理解,该描述涉及对象模型,该对象模型可以包括依此方式生成的3D表面模型。
图10描绘出两个示例帧,分别标有附图标记1001(第一帧)和1002(第二帧)。第一对象和第二对象(均为车辆)在两帧中皆可见,分别标有附图标记1021(第一车辆)和1022(第二车辆)。对于每一帧,分别从左侧和右侧描绘出相机视图(在相关帧的图像平面中)和(相关联点云的)俯视图。
在第二帧中,第一车辆部分地受到第二车辆遮挡。本例中是在稍晚时刻捕获的第一帧中,第一车辆不再受遮挡。
还可看出,在第二帧中,两个车辆皆距离较远。结果,如第二帧的俯视图中示意性所示,预计针对第二帧中的每个车辆所捕获的点云数据(即对应于车辆的相关联点云内的点数)将相对较少。远处对象的点云数据一般也会噪声更大且精度更低。一点因素在于,由于视差与距离之间的反比关系,视差空间中的既定误差会变换为距离空间中更远点的更大误差。
然而,在第一帧中,第一车辆已明显更靠近相机。因此,如第一帧的俯视图中示意性所示,第一帧中第一车辆的点云数据大体上更密集且质量更高(误差更小、噪声更少等)。此外,第一车辆也由于不再受遮挡而更加完整(即涵盖第一车辆的更多部分)。
3.对象模型传播:
现将描述对象模型传播的两个示例—即自动边界框对齐(3.1)和手动边界框对齐(3.2)。它们是使用图10的帧作为参照来予以描述。
3.1自动边界框对齐:
图11A示出当前选择用于注释的第一帧(1001,图10)的注释界面700。使用注释界面700内提供的工具,注释者依上述方式准确地将紧密边界框800围绕第一车辆(标有附图标记1021)放置。在第一帧的点云参照系中定义紧密边界框800。
图11B示出注释界面700,但此时第二帧(1002,图10)当前被选择用于注释。第一帧中定义的边界框800已导入(传播)到第二帧中,但此时仅在第二帧内确定了粗略估计位姿1121(定位和定向)。该粗略估计位姿1121是在全局参考中但在第二帧的点云内定义。
粗略估计位姿1121可由注释者手动定义。这一过程简单了当,给注释者带来的负担最小。
替代地,可以自动确定粗略估计位姿1121,例如使用经训练的感知组件—一种“模型在环”(Model in the Loop—MITL)处理形式。
替代地或附加地,粗略估计位姿1121可以基于第一车辆(1021)的假定或测量路径而通过插值确定。请参阅下述详情。
对于刚性对象(即,建模为刚性的对象),边界框800的大小和尺寸在全部注释中保持不变(在全部帧中皆相同的意义上保持不变—可以通过针对一帧应用调整而将尺寸反映到全部帧中)。
通过对跨帧的边界对象尺寸应用适当的变换,可以容纳非刚性对象,例如行人和骑行人。例如,这可以考虑到关于相关对象的类型或类别的信息。
最便利地通过插值或MITL自动获得对边界框位姿1121的粗略估计,使其具有相同“真实”尺寸(宽度、长度和高度)的粗略位姿和方向。
应当注意,虽在本情境下参照了紧密边界框,但不必存在初始紧密的3D边界框:一个或多个“粗略”边界框(即,它们未紧密拟合到待注释对象1021)—这可能是自动或手动生成—可足以确定跨多帧存在的车辆结构(进而应用本公开的注释功能)。因此,尽管边界框800在下文描述中可称为紧密边界框,但边界框800不必紧密也能实施所述特征。
应当注意,未在任何帧中准确定位或调整尺寸的粗略边界框与既定帧中边界框的粗略位姿之间存在区别—对于后者,当在既定帧中定义粗略位置时,可能针对不同的帧已确定或未确定准确的位姿。
如果最初未提供紧密边界框,则注释者可能在某时需要校正轴相对于“优化”框位姿的定向,而这可以在边界框800传播到其他帧之前或之后完成,而且仅需针对一帧进行校正,因为这些校正将自动应用于边界框800传播到的全部帧。
图11C示出对象模型传播方法的流程图并附方法步骤的图形说明。在步骤1142,在第一帧的边界框800内提取第一帧的点云子集以提供第一车辆的对象模型1143。在步骤1144,将来自第一帧的对象模型1143拟合到第二帧的点云子集。如上所述,可以基于ICP或任何其他尝试将对象模型结构与点云结构相匹配的自动对齐算法来执行拟合。与点云中的点相关联的任何颜色信息也可以用作拟合的基础(在此情况下,尝试将模型的点拟合到相似颜色点云中的点,额外还有结构匹配)。对齐过程也可称为将3D模型1143与第二帧的点云“配准”。该算法在点云内搜索模型1143可与之对齐(即,它可与之配准)的匹配结构。
粗略边界框位姿1121可用于限制搜索范围,例如限制到粗略边界框位姿1121所定义的3D空间中的搜索体积内。搜索体积可以额外由边界框800的大小/尺寸来定义。然而,搜索体积不必限制于边界框800内的体积。例如,可以通过围绕3D边界框800的附加“缓冲区”来扩展搜索体积。替代地,例如通过图像中的2D矩形或自由形状的“套索”选择或通过投影的3D视图之一,可以手动定义搜索体积。替代地,可以在第二帧的点云的完整范围内执行搜索,但这样可能效率不高。
图像特征也可用于辅助点云配准,诸如边、角或其他特征描述符,如尺度不变特征变换算法(Scale Invariant Feature Transform—SIFT)。
泛言之,虽然对象模型1143在3D空间中与对象(第一车辆)对齐,但这可能是基于也可能不基于3D结构匹配,即,调整对象模型1142的3D位姿以使对象模型1143的3D特征与第一车辆的对应3D相匹配(例如,使用上述ICP或其他自动3D配准过程)。例如,替代地或附加地,3D空间中的对齐可以是基于2D特征匹配,即,调整对象模型1142的3D位姿以使对象模型1143的2D特征与第一车辆的对应2D特征相匹配(例如,使用上述类型的图像特征)
另例而言,替代地或附加地,3D空间中的对齐可以是基于重投影误差或其他光度成本函数。这涉及将3D对象模型1143投影到图像平面中并调整对象模型1143的3D位姿,以使计算出的投影与出现在图像中的第一车辆相匹配。这也可以是基于图像与对象模型1143到图像平面中的投影之间的图像特征匹配。
在对3D对象模型的点应用噪声过滤的情况下,可以将3D表面模型拟合到经过滤的点(即,在滤除噪点之后剩余的点)。
全部相机和边界框皆有相对于世界(全局)坐标系的位置和定向(位姿)。因此,一旦已在第一帧内确定边界框800的位姿,便有可能找到该边界框800相对于另一相机(即,实际上相同的相机,但是在不同的时刻—例如对应于第二帧),这又允许将边界框800放置(定位和定向)在该相机的点云坐标系中。该点云又可变换到边界框的坐标系中,以便有效地隔离该边界框内的点云子集(参见上文)。
参照图11D,紧密边界框800和3D对象模型1143是在相同的参照系(在此情形下为边界框800的参照系)派生,因此在步骤1142创建模型时,紧密边界框800相对于对象模型1143的定位和定向为已知。因而,在将3D对象模型1143拟合到第二帧的点云时,在步骤1144,自动确定紧密边界框800在第二帧的点云参照系中的定位和定向。这编码为边界框800的参考点(定位)1152和定向矢量1154,其中参考点1152和定向矢量1154相对于对象模型1143的点固定。假设相关对象(本例中为第一车辆)可视为刚性体,则在第一帧中初始定义的紧密边界框800此时将合理准确地定位和定向,以便紧密地拟合第二帧中属于第一车辆的点子集(精度将取决于对象模型与点云的拟合程度)。
依此方式,半自主地针对第二帧生成高质量的3D注释数据,这又可用于训练机器学习3D边界框检测器、定向网络或(例如)距离估计或任何其他形式的3D结构感知组件。
还可以采取更多步骤来针对第二帧的底层图像自动生成2D注释数据,如下所述。
出于上述原因,对边界框位姿1121的粗略估计也用作对3D对象模型1143的位姿粗略估计。这又通过自动、手动或半自动地将3D对象模型1143与第二帧中的第一车辆更佳对齐来细化。
虽在上例中,边界框800是手动放置在第一帧中,但该步骤可为自动放置。在MITL方法中,可以由自动对象检测器(诸如经训练的神经网络)自动放置边界框(可能会也可能不会经受手动精调)。例如,边界框检测器可能在第一帧上针对第一车辆表现良好,但直接应用于第二帧时表现不佳。在此情况下,利用边界框检测器对第一帧的良好表现,可自动或半自动地针对第二帧生成高质量的训练数据。这又能针对第二帧提供高质量的训练数据,这些训练数据进而可用于训练/重新训练以提高对象检测表现。另外地或替代地,可以基于正注释对象的测量或假设路径来通过插值估计位姿(请见下文)。
还应理解,这只是注释者可以利用所提供的注释功能而采用的工作流的一个示例。潜在的效率源于这样的事实,即一帧中3D边界框相对于对象模型所做的变化会自动应用于一个或多个其他帧,以使刚性对象跨帧的3D边界框保持一致。这样,例如注释者可能转而最初对第一帧进行粗略注释,应用上述步骤以使第一帧的粗略边界框在第二帧中定位和定向,然后对第一帧中边界框的定位和/或定向应用调整,这些调整会自动反映到第二帧中。在此情形下,对一帧中边界框的调整会自动应用于多帧。
就此应当注意,从边界框800相对于对象模型1143的定向跨帧保持一致的意义上,边界框800相对于对象模型1143的参考点1152和定向矢量1154为固定—然而,注释者可根据需要调整边界框相对于对象模型的定位和定向(即,他可以更改参考点1152和定向矢量1154),任何此类调整将在该对象模型应用到的全部帧中自动实施。从此意义上,3D边界框800被“锁定”到3D对象模型1143。
3.2手动边界框对齐
继上例后,图11E示出注释界面700的展开图,同时选择第二帧进行注释。可以看出,对象模型1143通过投影(1152)叠加到相机视图和俯视图上,以使注释者能够看到对象模型1143在第二帧的参照系中相对于相关对象1021(第一车辆)的相对定位。
图11F演示出注释者利用这项功能的方式。如图11F上半部分所示,当对象模型1143首次拟合到第二帧的点云时,它可能未与对象1021的实际点完美对齐。这在图11F中很容易看出,原因是对象模型1143与实际对象1021之间的视觉错位。因此,如图11F下半部分所示,注释者可微调边界框800的位姿(定位和定向)以校正错位:从上述意义上,随着调整边界框800,对象模型1143保持锁定到边界框800,对象模型1143的位姿在当前点云参照系中的任何变化应用于该参照系中3D边界框800的位姿。因此,当不再存在任何可感知的错位时,注释者获知边界框800已在第二帧的参照系中正确定位和定向。尽管图11F中未示出,但对象模型1143也投影到俯视图中,使得注释者可同时校正该俯视图中的任何视觉错位。
相比之下,图11G示出与图11F上半部分相同的视图,但未叠加对象模型1143。此时,边界框800仍然错位,但在缺乏模型投影的情况下,这样的错位更难以感知。这一状况的部分原因是第一车辆局部受遮挡。通过从对象未受遮挡的帧传播对象模型1143,校正第二帧中的遮挡,从而协助注释者精调边界框1143。
除了校正遮挡,依此方式传播对象模型还有助于解决点云中特别是远处对象的稀疏性、噪声和不准确性。回顾图10重申,第一车辆在第二帧中距离更远,因此对应于第二车辆的点云子集在第二帧中通常会更稀疏且质量更低。这是可能难以在第二帧中手动准确放置边界框的另一原因,因为这将反映到俯视图的质量中。依上述方式将对象模型1143从第一帧传播到第二帧有助于注释者对此进行补偿。
模型传播也可用于解决传感器覆盖范围内的“缺漏”。例如,借助立体深度图像,深度估计依赖于定位目标图像与参考图像之间的匹配像素。目标图像通常会存在所含的一些像素在参考图像中无对应像素的区域。这对应于在捕捉目标图像的相机的视场内但在捕捉参考图像的相机的视场外的场景部分。对于既定帧中该区域内的对象部分,将无深度信息可用。然而,该深度信息可通过依上述方式传播来自其他帧的对象模型而取自另一帧。这可以例如是最近时间接近度的帧,其中相关对象在深度通道中完全可见。
4.聚合对象模型:
为了创建聚合对象模型,将边界框跨多帧围绕相关对象放置(例如,如上所述,或简单地手动放置)。对于每一帧,在该帧的边界框内隔离点云子集,在公共参照系中聚合点云子集。如上所述,这能提供更密集且更少噪声的对象模型,这又可如上所述应用于一帧或多帧中以生成高质量的注释数据。
继图11A至图11G的上述示例,已经将边界框800准确地放置在第二帧中,可提取该边界框内第二帧的点子集,并与从第一帧中边界框800内提取的对应点子集相合并(聚合)。这提供了第一车辆的更密集模型,进而可依上述方式将该模型传播到其他帧中。
注释者还可使用聚合模型来指导手动注释。当注释者调整目标帧中边界框800的位置/位姿时,可渲染使用目标帧和至少一个其他帧(参考帧)的数据的聚合模型。如果边界框定位或定向不正确,这可能导致聚合模型中出现可见的伪影,诸如“重复”或错位的特征,因为从目标帧中获取的点与从参考帧中获取的点未正确配准。用户即可根据需要微调目标帧中边界框800的位姿,直到不再存在视觉伪影为止。
4.1聚合模型的迭代传播和生成
可以采取迭代方式生成和应用聚合3D模型。
现将参照图14来描述一种示例,本图示出跨多帧(可能大量帧)迭代生成和应用愈加密集的聚合3D模型的方法流程图。
首先,在步骤1402,针对初始单帧生成单帧对象模型(过程中此时的当前对象模型),其中通过将3D边界框围绕该帧中的对象放置(自动、半自动或手动),并在3D边界框内从该帧中提取对象点。
在步骤1404,将当前对象模型传播到下一帧并在3D空间中与该帧中的对象对齐(1406)(手动、自动或半自动)。如此一来,派生该帧中3D边界框的位姿,因此在步骤1408,可从该帧中的3D边界框提取属于对象的点。此时,又可将这些点与当前对象模型的对象点聚合(1410)以生成新的聚合3D模型,该模型合并了从最近帧中提取的点信息。
此时可针对下一帧迭代重复该过程,从步骤1404开始—应当注意,自此开始,传播到下一帧的当前对象模型是合并来自多帧的点信息的聚合对象模型。因此,自此开始,是将当前的聚合对象模型与下一帧中的对象对齐。随着每次过程迭代,添加来自又另一帧的点,从而允许生成逐渐密集且完整的聚合对象模型。
4.2有向距离场(Signed Distance Field—SDF)对象建模
在最简单的情形下,可以将对象建模为聚合点云。然而,如上所述,还有各种其他形式的对象建模可应用于基于跨帧点云聚合来对3D对象表面进行建模。上述示例之一是基于SDF的建模,现将描述这种SDF实施的示例。下文的描述考虑到有向距离场,但同样适用于其他形式的可用来(隐式)表示3D对象表面的距离场。
在本特例中,采取了一种使用自适应采样的有向距离场同时定位和映射的方法。
这种实施方式逐对象生成一个SDF模型,该SDF模型跨一批帧(例如,在10米或100米量级的行驶距离内捕获的帧)聚合该对象的点云数据。所述SDF形式是一种离散SDF,它将3D对象的2D表面表示(建模)为对象参照系中的3D体素(体积像素),其中每个体素编码“有向距离”到3D对象表面;表面上点本身的有向距离为零;为方便起见,该描述假设了一种典型约定,即定义了对象外部的点具有正向距离而对象内部的点具有负向距离,但这只是一种可能选择。SDF内的体素无需具有固定大小,在下述示例中,靠近对象2D表面的体素的大小(3D尺寸)减小(而体素密度对应增高),以提供更多采取节约内存的方式进行颗粒表面建模。
首先参照图15A和图15B提供这种基于SDF的实施方式的简要概述。这种实施方式假设了具有对应点云的RGBD帧,但该描述同样适用于任何形式的具有深度和(可选)颜色分量的像素的3D图像。
对象的3D边界框(手动、半自动或自动放置)用于采取本文其他段落描述的方式针对每一帧中每个对象隔离3D点云子集。这又用于确定该对象和该帧的“掩膜”RGBD图像,该图像由该帧的RGBD像素子集组成,对应于针对该帧中该对象隔离的3D点云子集。即,在每一帧中,基于其手动、自动或半自动估计的6D位姿和3D尺寸,针对每个对象确定深度(或更准确而言,视差)和颜色像素的子集,确定为属于该对象。术语“视差图像”(或视差图)是指其中每个像素(至少一些像素)具有测量视差的图像,例如可以是RGBD图像的深度分量(D)。
4.2.1示例SDF实施概述
图15A示出3D对象边界框800以及对应于3D边界框800内3D点的图像平面1502内的像素子集1504。为简明起见,仅示出点云中的三个点,但实际上每个有效深度像素均有3D点,位于3D边界框800内的那些点的子集将定义相关对象的像素子集1504(对象像素)。图像平面1504内的剩余像素称为对该对象“掩蔽”,是用于构建由边界框800标记的SDF对象模型的非掩蔽对象像素1504。通过对象参照系中由附图标记1500表示的估计6D相机位姿(3D空间中的定位和定向)定义图像平面1502在3D空间中的定向。如下所述,跨一批帧,基于SDF模型在每一帧中估计和细化相对于每个对象的相机位姿。如本文其他段落所述,这可以是迭代方式,其中SDF和相机位姿各自依次细化,例如采取预定次数的迭代或直到满足某些收敛标准为止。更泛言之,确定相机与对象之间的相对位姿,这可以是相机在对象参照系中的位姿或对象在相机参照系中的位姿。
此外,针对每个对象像素,在对应于该像素的那一表面上的点处估计“表面法线”,这是对该对象的2D表面的法矢量(即垂直方向)的估计。
为了估计每个像素的表面法线,形成RGBD图像的超像素分割,并对每个超像素拟合斜面来估计法线。即,将斜面拟合到对应于像素及其近邻的3D对象点的子集(相对较小)。关于一种逐像素估计表面法线的技术的更多详情,请参阅Yamaguchi等人于2014年所著的《Efficient Joint Segmentation,Occlusion Labeling,Stereo and Flow Estimation》,其全文引用归并本文。
图15B示出两个对象像素(即对象像素集1504中的两个像素),j和k,其中下标i代表这些像素所属的帧i。这些像素的测量视差值分别记为dij和dik,像素额外与各自的表面法线
Figure BDA0003540404900000361
相关联,如图所示,它们是对相应3D对象点处对象表面的垂直(法向)方向的估计值。根据对象像素1504的视差值,针对每个对象像素估计表面法线。为了计算SDF,下述示例假设对象表面在每个对象点处局部平坦(平面),如下详述。附图标记1506-j和1506-k用于分别表示对象表面平面在对应于像素的点处的部段j和k。
4.2.2有向距离场
“有向距离场”(SDF)是一种将表面表示为有向距离标量场的模型。在每个点处,该场的取值是该点到对象表面的最短距离,脱点在表面外则为负值,若点在表面内则为正值。
例如,给定半径r,的二维球面(2-sphere)的方程为:
x2+y2+z2=r2
对应SDF的值记为F,如下给出:
Figure BDA0003540404900000362
某点处字段F的值在该点处于表面外时为负而在该点处于表面内时为正。表面可重构为场的零集,即它为零的点集。
虽然在上述简单示例中,SDF可连续定义,但在本情境下,出于实际原因,SDF是在有限数目的点上对其进行近似采样。然后,通过采样率判定可准确记录的表面特征的最小尺寸。例如,若要在常规3D网格上采样点,则无法记录小于网格点之间距离的细节。因此,更高的采样率能够记录更精细的细节。然而,存储此信息所需的内存量与采样率的立方成比例,故对于大型或细节丰富的表面,在规则网格上进行采样并不可行。但实际上仅需表面附近的点来重构表面,表面上细节不多的区域利用相对稀疏的采样就能准确重构。仅仅表面附近具有大量细节的区域需要密集采样来进行重构。通过利用自适应采样法来节省内存,这类方法根据需要不同层次的细节而改变不同位置的采样率。这可通过将采样存储在“体素树”中来实现,诸如八叉树或64位树。
4.2.3体素树
体素树是一种允许依节约内存的方式存储可变分辨率的3D空间定位数据的数据结构,具体方式是将大型3D空间细分为数个不同大小的立方体素,区域中更小的体素需要更高分辨率存储数据。
图16A示出八叉树的示例,其中立方体素可以细分为8个更小的体素,其中每个体素又可以进一步细分为8个还更小的体素,依此类推,根据需要继续直到在所需区域内达到所需分辨率。然后可以将数据与体素本身或其顶点相关联。经细分的每个较大像素可称为“父”体素,其较小的组成体素可称为“子”体素(其中一个或多个体素可以又经进一步细分,进而具有它自己的子体素)。从此意义上,体素构成层次树结构的节点,边代表父子关系。“叶”体素(节点)是本身未细分的体素。叶节点可能出现在任何树层次,对于靠近对象表面的体素,叶节点将出现在较低树层次。
八叉树中的每个体素均可由唯一的位序列标识,称为“莫顿码(Morton code)”。针对每个体素,根据其8个子体素的定位和选取的x、y和z方向,将3位序列与其中每一个字体素相关联。如果子体素位于体素的负x侧,则第一位为0,如果子体素位于体素的正x侧,则第一位为1。类似地,第二位涉及子体素在y方向上的定位,第三位涉及子体素在z方向上的定位。本例采用的约定是:x轴正方向为右,y轴正方向为下,z轴正方向为前。
图16B示出具有动态体素大小的SDF体素网格的示例,图16C示出对应的体素树层次结构。更大的体素(包括标注为Vx1和Vx2的体素)对应于父节点下的第一层节点;图中体素Vx2细分为八个更小的体素(包括体素Vx3和Vx4),在树的第二层示出;图中将这样的体素再次细分为八个还更小的体素(包括Vx5),在树的第三层示出。
例如,在图16B中,经细分的第一级体素Vx2具有3位序列100,因为它是较大红色体素的最右(正x方向)、上(负y方向)、前(负z方向)子体素。类似地,体素Vx4具有3位序列101,体素Vx5具有3位序列101。完整莫顿码是通过串接来自各个体素(包含所选体素)的3位序列(从最大到最小)并在前面附加1而获得。故此,体素Vx5的完整莫顿代码是1-100-101-101。类似地,图16A中标注为1900的体素的莫顿码是1-100-000。
64位树中的原理相同,但每个体素细分为更小体素的8x8x8阵列,而非八叉树中使用的4x4x4阵列。
表示对象的SDF以体素树格式存储。存在一个组成数据结构:体素。每个体素包含如下数据:
·指向其父体素的指针;
•指向其首个子体素的指针(全部这些皆为连续存储,因而仅需一个指针);
•体素中心到对象表面最近点的距离,记为α;
·表示该距离置信度的权重;
·每个体素中RGB颜色各通道的体素颜色均值和方差;
·已用于更新体素数据的测量数计数;
·体素中心的坐标;
·体素树内的体素层次。
每个体素的均值和方差是跨一批帧而确定。颜色通道建模为正态分布,其均值和方差按每帧更新—通过贝叶斯(Bayes)定理。
应当理解,这仅为可能的体素数据结构的一个示例。例如,可用数组下标来引用其他体素,而非指针。
给定3D点,可估计SDF的距离和颜色,其中通过在包含该点的八叉树中寻找叶体素并读取该体素的距离和颜色。也可以通过在两个或更多个相邻体素之间进行插值来寻找距离和颜色。
4.2.4 SDF建模算法
对一批帧内的全部帧分别执行下述处理。使用彩色图像和视差来产生彩色3D点云(应用图6的原理,点云中的每个点与其对应图像像素的颜色分量相关联),这又用于估计相机位姿及修饰SDF结构。使用彩色图像、视差和表面法线来更新SDF数据。整体过程修饰全部帧上的SDF结构,然后更新全部帧上的SDF数据,随后估计全部帧上的相机位姿。应当注意,这些过程可以按照与上述顺序不同的顺序来执行。
4.2.5估计相机位姿
本节描述了一旦计算出对象SDF后便针对每一帧中的每个对象计算细化相机位姿的方式。这是一种位姿细化形式(实现了与上述ICP拟合类似的效果,但在某些方面特定于SDF)。在本特例中,在每一帧中每个对象的对象参照系中执行细化,以便计算该对象和该帧的细化相机位姿。
给定彩色图像和视差,使用对应的彩色3D点云来估计每个对象的相机位姿。这是相机相对于对象的位姿,即对象参照系中的相机位姿。这是针对帧中的每个对象来完成。
对于每个彩色3D点p,将其颜色的RGB分量分别记为p.r、p.g和p.b。可以在点p读取存储在SDF中的平均(均值)颜色,作为存储在包含(相交)该点的体素中的色值;将此颜色的RGB分量分别记为r(p)、g(p)和b(p)。光度误差项计算为在相关帧内的全部对象点上采取的色差之和(下面将对象点集记为P,它是属于相关对象的点云内的点子集):
Figure BDA0003540404900000391
这是光度匹配误差的一个示例,该误差会惩罚对象点与SDF的空间对应体素之间的色差。
这里,t表示初始6D相机位姿(预细化),R表示t的SE(3)变换;R和t将确定既定点关于体素网格所处的位置p,因此确定r(p),g(p)和b(p)的值。
同样地,可在点p读取存储在SDF中的距离,这个距离记为d(p)。几何误差项计算为在相关帧内的全部点上采取的有向距离之和:
Figure BDA0003540404900000392
这个定义利用了SDF的定义-对于对象表面上的点,有向距离应当为零;因而,对于与对象点相交的每个体素,惩罚除零以外的有向距离。这是几何匹配误差的一个示例,该误差惩罚对象点与SDF中编码的对象表面的偏移(作为其零集)。再者,R,t将确定每个点p相对于体素网格的位置,进而确定d(p)的值。
应当理解,上述仅为分别惩罚色差和与对象表面的离差的可能误差函数的示例。可以使用其他形式的误差。例如,在一种替代实施方式中,
Figure BDA0003540404900000393
其中Lδ表示Huber范数。
对每个对象和每个帧执行上述步骤,以计算逐对象逐帧的相机位姿。
虽然上述在对象参照系中执行优化以寻找相机位姿的基本最优SE(3)变换和对象点P,但也可以在相机参照系中执行优化,以确定SDF体素网格的基本最优SE(3)变换(即,位姿细化可转而在相机参照系中执行)。
通过寻找相机位姿t的SE(3)变换R以及对象点P(在相机参照系中表示)估计相机位姿,这会基本上最小化整体匹配误差函数,在本实例下定义为光度和几何误差项的加权平均值:
Figure BDA0003540404900000401
换言之,通过平移和/或旋转6D相机位姿,进而相应地使目标点P相对于SDF平移和/或旋转,以便最小化整体匹配误差E(P)。在上式中,WP,WG为各自的权重,|P|为对象点数目(P的大小)。
最后一项为正则化项;|δR,δt|Lie表示从原始变换到当前变换的6个Lie空间位姿参数的变化。旋转参数和平移参数的权重不同。该项表示Tikhonov正则化(AKA岭回归)阻尼因子。
例如,该SE(3)变换的估计可以使用前向合成算法,对梯度下降步骤使用Levenberg-Marquardt(LM)近似,对Hessian使用Gauss-Newton近似。然而,鉴于上述误差定义,显然可知其他合适的优化方法。
4.2.6修饰SDF结构
如上所述,修饰SDF的体素树结构,使不同区域的分辨率增高或减低。
在帧间移动时,分辨率在新观察到的表面区域周围增高。该算法迭代3D点云中的每个点,在包含该点的八叉树中定位叶体素,并将其细分为多个更小的体素(例如,8个或64个,具体取决于体素树的形式)。这会确保在多帧过程中,靠近表面的体素变得小到足以详细记录表面几何形状,而远离表面的体素仍然较大。
4.2.7更新SDF数据
应当注意,下面使用具有如下定义的符号α和βi。它们与图6中使用的角度不同αj,βi。需要区分的是,替代符号Aj,Bi可以用来代替后者来表示图6中的角度。此外,虽然在上文中,dij用于以距离为单位表示深度,Dij用于以视差为单位表示深度(与距离的倒数成正比),但下文中改为使用di代表视差,在随附的附录B中,Di表示表征视差误差的正态分布。
现将参照图17描述更新对象SDF的体素数据的方法。
图17是SDF更新方法的某些原理的几何表示,并使用上述图15B作为情境。
参照图17,考虑单帧中的单点,其中下标i表示特定帧。在此情境下,点为SDF体素的点p,诸如其中心点或体素的其他参考点。
pi表示点p在相机参照系中的坐标。在图17中,该坐标pi示为延伸自相机1500的3D位置的矢量。投影后,pi返回图像平面1502(即,通过点p与相机之间的光线跟踪),点p与跟踪光线与图像平面1502相交的图像像素相关联)。这个像素具有对应的视差值di和表面法线
Figure BDA0003540404900000411
其中下标i表示相关帧,为简明起见删除表示像素本身的下标(图15B中的j和k)。
应当注意,点p未必位于对象表面上-如上所述,SDF是在3D空间体积上定义,对象表面是由SDF的零子集定义(即SDF为零的点)。点p在帧中i具有视差ki,这是要针对点p测量的视差(这可通过变换点p以距离为单位的已知深度来确定,即它与相机的距离|pi|,基于相机的已知属性,使用上列距离与视差之间的关系)。因为pi未必在对象表面上,故它的计算视差未必与对应像素的测量视差di相匹配;在任何情况下,建模对象表面上的点的计算视差(即有向距离为零)未必与测量视差相匹配,原因是可能存在视差测量误差。
在图17中,x表示在方向pi上从p到对象表面的距离。换言之,x为从p到对象表面上点q的距离,对应于相同的图像像素(通过光线跟踪)。应当注意,这不同于SDF在点p处的有向距离,原因是x并非假定为距对象表面的最小(最短)距离。有向距离定义为距对象表面的最短距离,记为α。
假设3D对象表面在q为局部平面,对应对象点q处的对象平面1506完全由q和针对相应像素计算出的表面法线
Figure BDA0003540404900000412
来定义。有向距离α又是点p与对象平面1506之间的最小距离,是这二者之间在表面法线
Figure BDA0003540404900000413
方向上的距离。
为了针对既定体素计算有向距离α,如下跨一批中的全部帧执行最大似然估计(MLE)(其中和值是针对一批帧F中的全部帧):
Figure BDA0003540404900000414
求和是聚合视差误差函数的一个示例(跨多帧F聚合),其中fi为未知有向距离α的已知函数,定义如下:
Figure BDA0003540404900000415
Figure BDA0003540404900000416
其中·表示矢量点积。
这里的目的是找到相关体素(由点p定义)的有向距离α,以使聚合视差误差基本上最小化。
稍微转变图17的视角,此时处理α作为变量,对应的对象点q此时可视为跟踪光线上与p距离x的任意点(p与相机位置1500相交),其中x由变量α定义。附图标记1700表示对应于点p的像素(通过光线跟踪),附图标记1702定义3D点云中的实际点,由该像素1700的测量视差di来定义。MLE的目标是找到α的值,使得对应的对象点q(其中q由α、穿过p的跟踪光线、对应像素1700的表面法线
Figure BDA0003540404900000421
定义)跨全部帧F都尽可能靠近实际对象点1702。
目标是找到α的值,使得对象点q在全部帧F中都尽可能靠近视差di定义的3D点云中的点,或者同义地,尽可能跨全部帧使对应像素的计算视差fi(α)与测量视差di相匹配。
虽然上述公式是视差空间中的MLE,但应理解,可应用刚刚描述的相同原理用公式表示距离空间中的MLE,例如基于以距离为单位表示深度的深度图。
函数fi是基于图17的几何结构派生得出,为了进一步阐释,本说明书文末的附录A列出fi的几何派生。显然,尽管附录A假设了局部平坦的对象表面,但派生的几何原理可扩展到适应关于对象表面的不同假设(即,在未假设平坦表面的条件下应用相同的原理)。
关于该像素的参考点p,对SDF的每个体素执行MLE,以便计算该体素的有向距离α。
在这个视差空间公式中,fi(α)根据点p的有向距离α计算对象点q的视差。换言之,鉴于特定的有向距离α,假设局部平面的对象表面1506,函数fi返回对应对象点q的视差。优化试图寻找有向距离值α*,使其与跨全部帧F的对应对象点的测量视差di相匹配。
当然,如果每个视差图均无误差,则每个对象点q将在每帧中与3D点中的对应点完全重合,并且q处的体素可具有正好为零的有向距离。然而,跨多帧F的聚合可容许视差测量误差,存在视差测量误差的情况下,SDF的零集将不会与每帧(或任何帧)中点云的3D对象点完全重合。定义最大似然估计的方式具有对视差测量误差的内置容限,这允许存在视差测量误差的情况下确定基本上最优的对象表面(作为SDF零集)。从此意义上,视差fi(α)可以称为对应像素1700的“真实”视差,测量视差di可能因测量误差而与之偏离。如附录B所列,上述MLE处理测量视差di作为来自均值fi(α)和(未知但恒定的)协方差的高斯视差分布的样本。
为了使优化易于处理,fi可以近似为泰勒级数:
Figure BDA0003540404900000431
其中
Figure BDA0003540404900000432
以及
Figure BDA0003540404900000433
其中λ为可调参数。如附录B所述,理论上,逼近1的λ值
Figure BDA0003540404900000434
更为合适于整个视差图的误差水平相对较低时(例如,SDF的零集与每帧中点云的3D对象点良好对齐),而逼近0的值可以提供更大的测量误差容限。对于λ≈0,关于
Figure BDA0003540404900000435
执行泰勒展开,即由系统几何结构确定的点p的视差,而非对应对象点q的测量视差di-因此这与di中的测量误差无关并适用于靠近表面的点,这些点因为会捕获细粒度的表面结构而成为最感兴趣的点。实验结果证明对于λ=0跨全部体素表现良好,但实施不限于此。
对于更详细的论述,附录B列出最大似然估计的派生以及fi近似。
5.自动/半自动2D注释数据生成:
如上所述,除了快速生成3D注释数据并减轻人力,注释者的工作还可用于生成高质量的2D注释数据,而无需或仅需最少的额外人工输入。
图12A示出自动生成2D注释数据的方法的流程图以及方法步骤的图形说明。该方法由2D注释生成器312实施。
为便于参照,在左上方描绘出第一帧。第一车辆为本例中的待注释对象,标有附图标记1021。该车辆的3D模型是通过在该边界框内隔离点云400的子集而确定,如上所述,在步骤1002,将该点云子集投影到相关帧的图像平面中。点云子集(即相关车辆的3D模型)的投影由左下方图像中的附图标记1204表示。可以看出,点云1004的投影与预期的对象1000相符。
在步骤1206,基于3D模型到图像平面的投影1204自动生成用于注释图像702的2D注释数据。
2D注释数据可呈2D分割掩膜1208的形式(右上方),它与图像平面内的对象区域基本匹配(即,它至少近似描绘出图像平面中的对象,跟踪了对象的一个或多个边界)。这样的注释数据可用于训练分割组件执行实例分割,即图像的像素级分类,其中输入图像的每个像素均单独分类。在本例中,注释对象1021属于特定对象类(诸如“汽车”或“交通工具”),图像702与分割掩膜1208结合可用于训练分割组件以例如将图像像素标注为“汽车/非汽车”或“交通工具/非交通工具”,这取决于这些像素是否位于分割掩膜1208的区域内。
3D对象模型的投影1204是基于点的投影,可能太稀疏而不能直接用作可用的分割掩膜(但该问题可通过使用聚合对象模型来缓解)。为了生成分割掩膜1208,可以将诸如条件随机场(CRF)等预测模型应用于投影点,以便填充和平滑投影1204,从而将其转换为可用的分割掩膜,准确地定义了图像平面内的对象区域。在此情境下,3D模型的投影1204用作稀疏先验,从中推断出预测模型以便预测对象的完整分割掩膜。可选地,通过UI 320可调整预测模型的参数,以便达成期望的结果。更泛言之,注释者能够调整CRF的参数和/或超像素分割参数等以实现手动校正。这可以是在生成注释数据之后应用的后处理步骤。
另例而言,2D注释数据可呈紧密拟合的2D边界框1210的形式(左下方)。这是通过将2D边界框(图像平面中的矩形)拟合到3D模型的投影1204而生成。这又可与图像702本身结合用来训练2D边界框检测器。这样的组件一经训练,便能通过针对推理时所接收的图像自动生成2D边界框而自动检测和定位图像内的结构。
一种替代方法是简单地将3D边界框投影到图像平面中,然后将2D边界框拟合到3D边界框的投影。然而,这样一般不会得出紧密的2D边界框:如图12A的右上方图像所示,3D边界框800的形状与车辆的形状不同,因此投影的3D边界框的边缘一般不会与出现在2D图像平面中的车辆的边缘相重合。
一旦生成,注释者便可选择根据需要精调2D注释数据,如图3中从UI 320到2D注释生成器312的输入所示。
如上所述,3D对象模型可以呈拟合到相关提取点的3D表面模型的形式。在此情况下,将3D表面模型投影到图像平面中以创建2D注释数据。因此,投影是连续3D表面的投影,与离散的(可能稀疏的)3D结构点集的投影相比,能够提供更高质量的2D注释数据。
5.1遮挡对象:
可使用单帧或聚合对象模型针对受遮挡的对象生成2D注释数据。注释者可适当地经由UI 320在这两个选项之间进行选择。
图12B以第二帧为例,其中第一车辆部分地受到第二车辆遮挡。在图12B的示例中,第一车辆的单帧3D模型是仅基于第二帧的点云通过隔离围绕第一车辆放置的3D边界框内的点云子集(未示出)而确定。因此,由图12B左下方的附图标记1224表示的第一车辆的单帧模型仅包括第一对象1220的非遮挡点。因此,当将单帧3D模型1224投影回图像平面并用于自动生成2D注释数据时,该2D注释数据将仅标记受遮挡对象1220的可见部分。模型的投影由朝向本图左下方的附图标记1204a表示。这种对2D注释数据的影响如图右侧所示,示出了基于单帧模型的投影1204a生成的分割掩膜1232(右上方)。可以看出,这仅覆盖了受遮挡对象1232的可见部分的区域。类似地,当2D边界框1234(右下方)拟合到单帧模型的投影时,该边界框将紧密拟合到受遮挡对象1220的可见部分。
图12C示出第二示例,其中改为使用从第一帧传播的对象模型11。在此情形下,对象1220的受遮挡部分使用来自该对象部分未受遮挡的一个或多个相关帧的点云数据来“填充”。从图12C的左侧可以看出,当这样的模型被投影回图像帧时,将对象的受遮挡部分“恢复”。传播对象模型1143的投影标有附图标记1204b。
因此,当该投影1204b用作由附图标记1242(右上方)表示的分割掩膜的基础时,这会覆盖对象1220的整个区域,包括受遮挡部分。这在实践中可能不甚理想,但鉴于使用传播(例如聚合)模型会提供的其他优势(密度更高、噪声更少等)而可能仍然可取。在此情形下,可以依同样方式针对遮挡对象确定聚合模型,可以使用遮挡对象的3D模型来“阻挡”3D模型到图像平面的投影,并确保分割掩膜仅覆盖图像平面中可见的对象的非遮挡部分。
类似地,当2D边界框1244(右下方)拟合到传播对象模型的投影时,该边界框将拟合到整体对象,包括受遮挡部分;根据受遮挡部分的定位,这可能导致2D边界框延伸超出对象的可见部分—例如,在图12C右下方,边界框1244的左边缘可以看到延伸超出对象1220的最左侧可见部分而涵盖对象1220的最左侧受遮挡部分。
通过使用聚合对象模型会实现类似的效果,例如通过依上述方式聚合来自对应于第一车辆的第一帧和第二帧的点云中的点并将聚合模型应用于第二帧而生成。
5.2示例注释流水线
图18示出用于可移动对象重构和实例分割的注释流水线1800的示例,其结合了本文中的若干技术。
注释流水线1800接受经注释的立体数据(可用诸如LiDAR点云数据等附加3D结构数据来进行扩充)并输出自动生成的实例分割和对象坐标图。实例分割为每个像素包含该像素处可见的任何对象的索引的图像。对象坐标图为每个像素包含对象表面上对应点的3D坐标的图像,在该对象的参照系中给出。
本图示出输入数据库1802,其保存要通过流水线1800的每批帧。输入数据库1802中的每批帧已用3D边界框粗略注释(手动、自动或半自动),即每一帧与帧中每个注释对象的大小和粗略6D对象位姿相关联。
对象重构组件1804接收来自输入数据库1802的一批帧,并应用上述一种或多种对象建模技术来针对该批帧中的每个经注释对象生成3D模型(即,跨该批中的全部帧应用每个对象一个模型)。在本例中,对象重构组件1804应用上文第4.2节中所述的技术,针对每个对象生成一个SDF模型。如第4.2.5节所述,这一过程还细化了每一帧中每个对象与相机之间的相对位姿。
对象建模和位姿细化可能是也可能不是迭代过程。在最简单的非迭代情形下,生成对象模型(例如SDF),细化位姿,这些就是最终的模型和位姿。在迭代过程中,在计算出对象模型和细化位姿之后,使用细化位姿来更新对象模型,(可选地)使用更新的对象模型来再次细化位姿。这可持续任意次数的迭代,例如某些预定次数的迭代,或直到满足某些终止标准(例如,位姿和对象模型的某些收敛标准)。
对于既定一批帧,对象重构组件180的输出是每个对象的一个对象模型(例如SDF)1805a以及每帧每对象的细化位姿1805b(如上所述,例如可以是对象空间中的相机位姿或相机空间中的对象位姿)。
5.2.1光线投射
重算组件1806针对每一帧中的每个对象计算“光线投射图像”(即每帧每对象一个光线投射图像)。在本文中,术语“光线跟踪”和“光线投射”同义使用。利用上文参照图17描述相似的原理,针对既定帧中的既定对象计算光线投射图像。在图17中,光线投射用作针对对象生成SDF的方法的一部分。
在本情境下,一旦对象重构组件1804已重构对象并细化3D边界框位姿,便基于细化的位姿经由光线投射将数据从SDF体素网格提取成图像。这意味着投射光线通过每个像素并找到光线击中由SDF(隐式)表示的对象表面的位置。
图19示出一帧(帧i)的透视图,其中光线投射用于从对象SDF 1802计算光线投射图像。尽管在SDF情境下予以描述,但这些原理可应用于任何形式的对象模型,诸如(聚合)点云、基于网格的模型等。在SDF情境下,表面是由SDF至少近似为零值(零集)的点定义。然而,下文关于SDF零集的描述同样适用于任何其他形式的对象模型的表面点。
按照图15和图19,图19使用附图标记1502来表示帧i的图像平面。在本例中,图19中的图像平面1502由对象重构组件1804在对象SDF 1805a的参照系中所提供的细化相机位姿1805b定义。
图中示出3D空间中的一点pj,该点是基本上(精确或近似)位于由SDF1805a建模的对象表面上的点,即该点的有向距离基本上(精确或近似)为零。点pj通过光线投射对应于图像像素pij。在本例中,点pij的确定是通过跟踪通过相机和图像平面1502中的像素pij的光线,并确定跟踪光线1902与对象表面相交的点pij。对象表面上的点pij可近似为光线1902与体素1900相交且具有最低有向距离的参考点(例如中心点),或者该点可通过在隐式表示的对象表面附近的两个或更多个相邻体素之间进行插值而确定。
像素pij对应于帧i的原始RGBD图像的像素。优选地执行光线跟踪,以将RGBD图像的每个像素(或至少RGBD像素的定义子集)与由对象SDF 1805a(或更泛言之对象模型)表示的表面上的对应点相关联。流水线中此时光线跟踪的目的是将RGBD图像的每个此类像素与可用的注释数据相关联。这是从上述生成自3D注释数据(在此情形下为细化位姿1805b连同对象SDF 1805a)的意义上(即,从它是在图像平面1502中定义并与下层图像相关联的意义上)的2D注释数据。
从光线击中表面的体素1900中,提取体素1900的颜色分量的均值和方差,连同点pi的对象空间(对象参照系)中的置信权重和3D坐标。替代地,可以在相邻像素之间类似地插值该数据。将该数据记录在光线投射输出中的对应像素处。点pi的深度也被记录(相机参照系中的z坐标),并可以距离为单位或作为视差来记录。通过光线投射依此方式与像素相关联的值可以称为“光线投射值”,在本节后面使用如下符号。
为简明起见,下文中的符号省略了用于表示特定帧的下标。因此,在下述各节中,符号pj表示某个既定帧中的像素j(图19中的pij),p表示3D空间中的对应点(图19中的pj),除非另作说明。
·wy(j)-像素j和对象y的光线投射置信度权重(添加拔(bar)表示归一化权重,请见下文)。
·dy(j)-像素j和对象y的光线投射深度。
光线投射深度dy(j)未必完全匹配对应像素pj的测量视差dj,其原因不仅在于视差测量误差(如上在SDF更新的情境下所述),还在于对象y可能受遮挡,使得测量视差实际上更接近对应于作为(部分)遮挡对象y的不同对象。应当注意,对于受遮挡对象,像素可能与不同的(部分)遮挡/受遮挡对象的多个光线投射深度和权重相关联。
经细化的相机到边界框位姿1805b用于针对一批中每一帧的每个实例执行光线投射。
来自一批中单帧的全部光线投射对象数据与原始RGBD数据相组合以创建实例分割的Bootstrap估计(“一元掩膜”)。
回顾图18,一元掩膜组件1808接收光线投射图像并使用每一帧的光线投射图像1807来计算该帧的一元掩膜1811。然后,通过掩膜细化组件1810对这些掩膜进行细化,以针对每一帧创建经细化的掩膜1811。这种两阶段掩蔽过程使用CRF(条件随机场)模型。
CRF模型的构建方式广泛,如参阅Krahenbuhl等人所著的《Efficient Inferencein Fully Connected CRFs with Gaussian Edge Potentials》(arXiv:1210.5644v1[cs.CV]2012年10月20日),本文献全文引用归并本文,下称DenseCRF论文。然而,本文的CRF模型在某些方面有所不同,在本注释工具的情境下提供了性能改进。
但应注意,该模型的应用完全不同。虽然DenseCRF论文的目的是提供一种CRF,可以训练该CRF对无标注图像执行实例分割,但本文的目的是基于对象模型细化光线投射的结果,以便生成更高质量的实例分割Ground Truth。光线投射的结果用作先验(以一元项编码,请见下文),这与DenseCRF论文中设想的原始应用完全不同。
在实例分割情境下,图像上的条件随机场是每个像素的全部可能实例的随机分布,其中分布以图像为条件。给定这种分布的成本函数,使用图形优化技术来找到最优后验分布。如下详述,本文使用的密集CRF具有一元项和成对势项:
Figure BDA0003540404900000491
其中第二项的求和是关于一维像素下标i小于j的全部像素。为此,图像视为一维数组—例如,从左到右定义,既定行内的像素可以分配递增的像素下标;下一行的第一个像素的下标将分配为递增前一行的最后一个像素的下标。
最大后验(Maximum A Posteriori—MAP)分割可用于通过在每个像素处选取最可能的实例来获得估计的实例分割,如下详述。
5.2.2.一元掩膜
遵循DenseCRF论文第2节所述的符号,一元掩膜充当实例分割的“prior”或“bootstrap”,它是掩膜细化组件1810实施的CRF细化过程的输入。
在本情境下使用了一种新颖的先验形式,定义如下:
Figure BDA0003540404900000492
其中函数ψu可称为一元势函数。对于既定帧,该函数由针对该帧计算的光线投射图像1807定义。这里,xi表示像素i的特定实例分类,即出现在帧或背景中的实例(这里,i用于代替j来表示特定像素,而非特定帧);
Figure BDA0003540404900000493
为“相对概率积”。和值是针对全部考虑中的对象实例和附加背景实例(针对不属于任何考虑中的对象实例的任何像素)。可以看出,分母对全部对象实例和背景的相对概率积进行了归一化。因此,一元势定义为归一化相对概率积的负对数。
应当注意,标注在此情境下唯一标识一个或多个对象类的实例。像素i,j属于不同的实例(即使它们是同一对象类的实例),将具有不同的实例分类标注xi≠xj。术语“对象”和“实例”在此情境下为同义。存在单个背景实例,不属于任何对象实例的全部像素皆属于该背景实例。
对于一批的每一帧,根据光线投射图像1807的输出和原始RGBD序列定义一元掩膜。一元掩膜是每个像素均为跨帧和背景中全部实例的离散分布的图像,即,每个像素具有n+1个通道,其中n为该帧中的实例数,每个通道代表该像素是对应的实例或背景的概率。
相对概率积定义为:
Figure BDA0003540404900000494
其中冒(hat)表示与背景相比的“相对”概率,即,既定像素比背景更有可能成为既定实例的概率。应当注意,这些相对概率在定义一元势时被重新归一化。当xi为非背景,相对概率积定义为如下定义的六个因子之积。它们之中除α(调整参数)外的每一个以某个小常数值∈进行裁剪。
5.2.2.1调整参数
调整参数α为常数,其值由对Ground Truth数据集的搜索来决定。高值偏向可移动对象,低值偏向背景。
5.2.2.2归一化光线投射权重
Figure BDA0003540404900000501
为来自对象在像素i处的光线投射SDF的权重,对每帧每对象进行归一化,以使光线投射图像的最大权重为1,随后以小的最小值进行裁剪∈。在光线与重构对象表面不相交的位置,将权重设定为这个最小值。这是重构中置信度的代理。
5.2.2.3色差
色差因子
Figure BDA0003540404900000502
降低来自重构的光线投射颜色统计数据与瞬时颜色观察匹配不佳的实例的权重。这对于从实例分割中去除静态场景遮挡十分有效。
对于每个非背景实例xi,在像素i处观察到的瞬时颜色通过使用重构颜色的光线投射均值和方差而建模为在RGB颜色空间上具有高斯分布的随机变量。色差因子
Figure BDA0003540404900000503
为寻找比观察到更极端颜色的(ε裁剪)概率:
Figure BDA0003540404900000504
其中Rx(i)为像素i处实例xi的光线投射均值RGB颜色;Ii为观察到的像素i的RGB颜色(即,它在原始RGBD图像中的RGB值);σx(i)为像素i处实例xi的RGB颜色的光线投射协方差。σx(i)对角线上取小的正则化值以确保非奇异性,并假设对角协方差。
5.2.2.4色差
重构间遮挡因子
Figure BDA0003540404900000505
使用同一光线上遮挡的其他重构来降低重构实例的权重。
给定像素处i出现的全部对象y的重构的光线投射深度dy(i)和归一化的光线投射权重
Figure BDA0003540404900000506
对象的重构间遮挡因子xi定义为:
Figure BDA0003540404900000511
其中
Figure BDA0003540404900000512
为条件X下的指示函数:
Figure BDA0003540404900000513
应当注意下项:
Figure BDA0003540404900000514
为遮挡重构的平均归一化权重。
然后,重构间遮挡因子的作用是通过遮挡重构的平均归一化权重来降低有遮挡对象的一元掩膜的权重。
5.2.2.5 2D边界框
对象xi在像素i处的2D边界框因子
Figure BDA0003540404900000515
定义为:
Figure BDA0003540404900000516
这具有将一元掩膜裁剪到2D边界框的效果。
5.2.2.6 3D边界框
3D边界框因子
Figure BDA0003540404900000517
提高落到3D边界框之内的深度点的权重,降低落到3D边界框之外的深度点的权重。它的定义如下:
Figure BDA0003540404900000518
其中k为大于1的常数,对象xi的“视差不确定性裕度”定义为以因子c(xi)绕其中心扩张的边界框内但不在原始边界框内的空间区域,其中
Figure BDA0003540404900000519
其中b为立体基线,f为相机焦距,s为距边界框基础中心点的斜距,δ为表示视差估计中不确定性的调整参数。这表示变换为“斜距空间”时以等价于视差的因子缩放边界框。在扩张因子的定义中,允许可能的除零(zero-division)给出无限正的结果,这解释为无限视差不确定性裕度。
5.2.3 CRF细化
掩膜细化组件1810采取作为一元掩膜1809的估计“软”分割并对像素的全连接图上定义的成本函数执行优化。成本函数(吉布斯能)定义为平滑输入一元掩膜并将实例边界吸附到输入RGBD数据中的任何深度和颜色边界:
Figure BDA0003540404900000521
其中x为可能的分割掩膜(将每个像素标注为对象类之一或标注为背景)。目标是找到使吉布斯能最小化的最大后验(MAP)分割掩膜:
Figure BDA0003540404900000522
项ψu为上述一元势(结合来自光线投射图像1807的先验信息),第二项为成对势,通过添加深度敏感项并引入实例大小感知兼容性而改进DenseCRF成对势(请见DenseCRF论文中有关符号的更多详情):
Figure BDA0003540404900000523
其中pi表示像素i的位置,zi表示像素i的瞬时深度,θα,θβ,θγ,θδ,θ,θζ为特征尺度,μmaxα,μmaxγ,μmaxδ为最大兼容性。
在上式中,zi可以是RGBD深度图中与像素i相关联的测量深度。替代地,它可以是适用对象的光线投射深度。深度敏感核可根据深度或视差来定义。
可以看出,大小感知系数应用于具有适用特征尺度的每个核。大小感知系数定义为:
Figure BDA0003540404900000524
其中α为调整参数,
Figure BDA0003540404900000525
为均匀分布在对象xk的2D边界框内时像素位置的标准离差。
上式使用了来自输入数据集的2D边界框x。替代地,2D边界框可由考虑中的分割掩膜x定义,其中例如通过将2D矩形拟合到x中标注属于同一对象xk(即同一实例—重申一下,在此情境下不同的实例具有不同的标注)的像素子集。在此情形下,
Figure BDA0003540404900000531
取决于考虑中的分割掩膜x,特别是取决于针对每个对象实例定义的2D边界框的大小(忽略背景—请见下文)。
给定边界框的宽度w和高度h,
Figure BDA0003540404900000532
更多详情及以上派生可参阅本说明书文末的附录C。
背景类的边界框定义为无穷小,使其对兼容性计算不作贡献。实例大小感知兼容性的作用是降低小类平滑效果(与其2D边界框尺寸成正比),因此这些类不会不成比例地过度平滑而遗忘,这正是传统恒定兼容性面临的问题。
定义深度核时,必须注意无效深度
Figure BDA0003540404900000533
例如部分遮挡的区域或几乎无纹理的区域。为了确保无效区域获得近似恒定的小平滑成本,将无效深度替换为大的随机混洗值。
在上式中,像素特征采取原始颜色矢量Ii,Ij的形式。然而,CRF就此不受限制。附录C在特征矢量fi,fj方面使用了更通用公式,它可以采取任何有助于于像素间进行有意义特征比较的形式。
5.2.4 OCS掩蔽
为了减小输出数据库1814的大小,OCS掩膜组件1812输出单个对象坐标图,而非输出每帧每对象的对象坐标图,其中每个像素包含通过MAP分割给出的对应对象的对象坐标。如上所述,通过从经细化的CRF掩膜1811中针对每个像素获取最可能的实例类来确定MAP分割。
5.2.5参考帧约定
输出对象坐标图的参考帧约定来自于使用x轴前半轴、y轴左半轴、z轴上半周且原点为基础中心点。
6.基于车辆路径的插值
参阅英国专利申请GB1815767.7,其全文引用归并本文。该文献公开了一种可根据重构的车辆自身路径来推断在外车辆的路径的方法。
在本情境下,重构的车辆路径可用于自动确定边界框800的位姿1121的初始粗略估计(图11B)。
参照图13A和图13B,可选附加特征允许车辆路径精度随着位置估计细化而增高。
图13A示出相机在沿着重构的车辆自身路径的相应时刻t1、t2的已知位姿,该车辆自身路径记为EP(Ego Path)。基于自身路径EP,已针对待注释对象(上述第一车辆)推断出对象路径(OP)。基于时刻t1和t2,可通过从对象路径OP进行插值来初步推断对象的相应位姿,如P1和P2。这样提供了分别在时刻t1和t2利用点云而手动或自动配准第一车辆的3D模型的起点。
图13B示出通过依上述方式分别在时刻t1和t2将3D模型1143与点云对齐而确定经细化的(更准确的)位姿P1'、P2'。
附加地,如图13B所示,既然获知那些更准确的位姿P1'、P2',可以基于它们来确定更新的车辆路径OP'。
这可用于各种目的—例如,提供关于其他帧的更准确的初始位姿估计。
关于车辆路径的信息也可合并到结构匹配过程中,以惩罚偏离预期车辆行为模型的3D边界框800/3D模型1143的位姿变化,即导致车辆路径的意外变化。
在图13C中示例的情形下,分别在t1和t2的位姿P1”和P2”可能恰好提供了3D模型1143与分别在t1和t2的点的良好配准。然而,这些位姿P1”和P2”暗示了第一车辆的不切实际的路径,记为OP”,应根据预期行为模型对此进行惩罚。
这种对预期行为的依赖性可以归入成本函数中,该函数会奖励良好配准但惩罚车辆路径中的意外变化。应用将模型1143与相关帧的点云配准的自动对齐过程以优化成本函数。因此,在图13C的示例中,如果成本函数分配给路径OP”的惩罚太高,则可改为选择替代位姿。
6.1迭代路径细化
上述原理可依迭代方式应用,这是通过从初始粗略注释迭代构建,即通过创建初始注释、对齐位姿、细化运动模型、基于经细化的运动模型重复细化更多位姿等。
如上所述,粗略注释可以通过如下方式提供:
1. 2D或3D中的模型在环(例如神经网络或移动对象检测器);
2.边界框的粗略动力学模型(如恒速);
3.通过提供“单击”对象功能点或点周围的2D“套索”功能;
d.最小化某一考虑2D误差、3D误差和可能行为的成本函数。
参照图2,感知组件102的实例是指感知组件102的一个或多个底层感知模型的任何有形实施例,它可以是软件或硬件实例或者软件硬件组合实例。这样的实例可以使用诸如通用处理器(例如CPU、诸如GPU等加速器等)或现场可编程门阵列(FPGA)或任何其他形式的可编程计算机的可编程硬件来体现。因此,用于对计算机进行编程的计算机程序可采取在通用处理器上执行的程序指令、用于对FPGA进行编程的电路描述代码等形式。感知组件的实例也可使用诸如专用集成电路(ASIC)等不可编程硬件来实施,这种硬件在本文中可称为不可编程计算机。泛言之,感知组件可以体现于一台或多台计算机中,该计算机可能为可编程也可能为不可编程,并编程为或以其他方式配置为执行感知组件102。
参照图3,图3中的组件302-314是可采取各种方式用硬件级实施的注释计算机系统300的功能组件:尽管图3未示出,注释计算机系统300包括执行上述组件的功能的一个或多个处理器(计算机)。处理器可以采取通用处理器的形式,诸如中央处理单元(CPU)或加速器(例如GPU)等,也可以采取更专用硬件处理器的形式,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。虽未单独示出,但UI 320通常包括至少一个显示器和至少一个用于接收用户输入以允许注释者与注释系统300交互的用户输入设备,诸如鼠标/触控板、触摸屏、键盘等。参照图5,图像校正器504、深度估计器506和深度变换组件508是可采取不同方式用硬件级实施的立体图像处理系统500的功能组件。例如,立体图像处理系统500的功能可用软件实施,即通过在一个或多个处理器上执行的计算机代码实施,诸如CPU、加速器(例如GPU)等,或者可用硬件(例如FPGA结构)和/或专用集成电路(ASIC)或者使用硬件软件组合来实施。举例而言,英国专利申请GB1807392.4和GB1817390.6公开了半全局匹配中基于FPGA实施的示例,这些文献均全文引用归并本文,可应用于本情境下。
应当理解,上述内容仅为举例说明。本公开其他方面和实施例参阅下文。
3D转2D
本公开第一方面(方面A)提供了一种创建用于注释一个或多个感知输入的2D注释数据的计算机实施方法,该方法包括:在注释计算机系统中,在注释计算机系统处接收至少一个包括3D结构点集的捕获帧(第一帧),该帧中捕获结构组件的至少一部分;计算该帧内结构组件的参考位置;通过基于该参考位置选择性提取帧的3D结构点来生成结构组件的3D模型;计算该3D模型到图像平面的投影;将计算出的投影的2D注释数据存储在持久性计算机存储设备中以注释图像平面内的结构组件。
方面A的实施例可以提供如下一种或多种:手动注释、自动注释和半自动注释。
在方面A的实施例(实施例A1)中,2D注释数据可以与所述帧的至少一个感知输入相关联地存储以注释其中的结构组件,并可以基于该帧内计算出的参考位置来计算投影。也就是说,也可针对用来生成3D模型的第一帧创建2D注释数据,这是通过将3D模型应用于这同一帧。
一些这样的实施例可以进一步针对第一帧创建3D注释数据,其中该3D注释数据包括参考位置或派生自参考位置。优选地,使用一组公共注释操作针对第一帧创建2D和3D注释数据。
在方面A的替代实施例(实施例A2)中,2D注释数据可以与第二帧的至少一个感知输入相关联地存储以注释第二帧的至少一个感知输入中的结构组件,该第二帧中捕获结构组件的至少一部分。也就是说,可以从第一帧(或在聚合模型情形下第一帧和第二帧的组合)生成3D模型,并将其应用于第二帧以针对第二帧创建2D注释数据。正如本文中使用的术语而言,这是一种“模型传播”示例。
在实施例A1的情境下,结构组件可称为公共结构组件(为两帧共有)。就此应当注意,有关多帧中捕获的公共结构组件的全部描述同样适用于如实施例A1所述的一帧或多帧中捕获的结构组件,除非情境另作要求。
在方面A的一般情境下,用来生成3D模型的第一帧可称为“参考帧”,术语“目标帧”可用于指代针对其创建注释数据的帧。应当注意,在实施例A1的情境下,第一帧既是目标帧又是参考帧。在实施例A2的情境下,第二帧是目标帧。
在方面A的实施例中,3D模型还可用于创建3D注释数据以注释3D空间中的结构组件。
例如,可以创建3D注释数据以注释第二帧的至少一个感知输入中的结构组件,该第二帧中捕获结构组件的至少一部分。即,3D模型可以从第一帧生成并应用于第二帧以便针对第二帧创建3D注释数据。
可以创建2D或3D注释数据来注释第二帧(针对其生成2D和/或3D注释数据的帧)的至少一个感知输入,这是通过计算3D模型在第二帧内的对齐模型位置(请见下文)。
替代地,基于在目标帧内确定的对齐模型位置,通过将从参考帧生成的3D模型投影到与目标帧相关联的图像平面中,针对目标帧创建2D注释数据。这意味着从参考帧的选择性提取点所派生的投影用于针对目标帧创建2D注释数据。
替代地,针对目标帧创建2D注释数据可以是通过使用对齐模型位置(如使用从参考帧生成的3D模型确定)来生成第二3D模型,基于对齐模型位置来选择性提取目标帧的3D结构点,然后将第二3D模型(如从目标帧生成)投影到与目标帧相关联的图像平面中。在此情形下,2D注释数据包括或派生自第二3D模型的投影,该投影是从目标帧生成但使用从参考帧生成的3D模型定位。
另例而言,第二3D模型可以是通过聚合从目标帧和参考帧选择性提取的3D结构点而生成的聚合3D模型。
选择性提取的3D结构点可以是基于参考位置和一个或多个边界对象尺寸而从用于生成3D模型的帧中选择性提取。
一个或多个边界对象尺寸可为如下之一:
(i)基于用户界面处所接收的一个或多个尺寸输入而手动确定;
(ii)通过将感知组件应用于帧而自动确定;
(iii)通过将感知组件应用于帧并进一步基于一个或多个尺寸输入而半自动确定;及
(iv)假设。
选择性提取的3D结构点可以是参考位置和一个或多个边界对象尺寸所定义的3D体积内的点子集。
上述3D注释数据还可以包括用于生成3D模型或其变换的一个或多个边界对象尺寸(从而针对适用的感知输入定义3D边界框)。
上述第二模型可以是基于对齐模型位置以及相同的一个或多个边界对象尺寸(用于注释刚性公共结构组件)或其变换(用于注释非刚性公共结构组件)而从目标帧生成。
模型传播
本公开第二方面和第三方面(分别是方面B和方面C)均提供了一种创建一个或多个经注释感知输入的计算机实施方法,该方法包括:在注释计算机系统中,接收多个捕获帧,每一帧均包括3D结构点集,其中捕获公共结构组件的至少一部分;计算帧中的参考帧内的参考位置;通过基于该帧内的参考位置选择性提取参考帧的3D结构点来生成公共结构组件的3D模型;确定3D模型在目标帧内的对齐模型位置;将对齐模型位置的注释数据与该目标帧的至少一个感知输入相关联地存储在计算机存储器中,以便注释其中的公共结构组件。
根据方面B,对齐模型位置的确定是基于:
(i)在用户界面关于目标帧所接收的一个或多个手动对齐输入,同时渲染3D模型以手动对齐3D模型与目标帧中的公共结构组件。
根据方面C,对齐模型位置的确定是基于:
(ii)3D模型与目标帧中的公共结构组件的自动对齐。
在一些实施例中,自动对齐可以将3D模型的特征(2D或3D)与公共结构组件的特征(2D或3D)相匹配。然而,方面C的主题就此不受限制并且自动对齐形式可行(请见下述更多示例)。
示例注释数据
术语“对齐模型位置的注释数据”是指包括对齐模型位置或以其他方式使用对齐模型位置派生的注释数据。
例如,对齐模型位置的注释数据可以包括对齐模型位置的位置数据,用于注释目标帧的至少一个感知输入中公共结构组件的位置。这种位置数据是“直接”从对齐模型位置派生(根据需要经受任何几何变换到合适的参照系),即,一旦使用3D模型确定了对齐模型位置,它便不再在创建此类注释数据时发挥作用。
位置数据例如可以是用于注释公共结构组件在3D空间中的位置的3D位置数据(一种3D注释数据形式)。
替代地或附加地,对齐模型位置的注释数据可以包括使用对齐模型位置从3D模型派生的注释数据(派生注释数据)。也就是说,3D模型既可用于确定对齐模型位置,并且一旦确定了对齐模型位置,它又可用于从3D模型本身派生注释数据。
另例而言,从参考帧生成的3D模型(第一3D模型)可用于确定目标帧中的对齐模型位置。然后,可以使用该对齐模型位置从目标帧生成第二3D模型(请见上文)。因此,在此情况下,对齐模型位置的注释数据可以包括使用对齐模型位置从第二3D模型派生的注释数据。
派生注释数据的示例是通过基于对齐模型位置将适用的3D模型投影到图像平面中而派生的2D注释数据。这样的2D注释数据可以例如包括拟合到图像平面中的3D模型投影的2D边界对象,或者包括或派生自所计算的投影的分割掩膜。
在方面B和方面C的实施例中,注释数据可以是与目标帧的一个或多个感知输入相关联地存储的2D注释数据、3D注释数据或者2D注释数据与3D注释数据的组合(即,每种形式的注释数据均可与目标帧的各自不同感知输入中的相同感知输入相关联地存储)。
注释数据可以包括通过根据3D点云子集来应用预测模型所计算的细化注释数据。
在3D注释数据的情形下,预测模型可应用于3D模型本身。
在2D注释数据的情形下,预测模型可应用于3D模型本身(在其投影之前)或所计算的3D模型在图像平面中的投影。
无论预测模型是应用于3D模型还是在2D注释数据的情形下应用于所计算的投影,预测模型都会得出这样的细化注释数据。
细化注释数据可以例如具有为结构组件提供“填充”或“平滑”注释的效果。
预测模型可以是条件随机场(CRF)。
模型对齐
方面B的实施例可以通过将3D模型传播到目标帧中而提供手动注释(即,仅(i))和半自动注释(即,基于(i)和(ii)的组合)之中一者或两者。
方面C的实施例可以通过将3D模型传播到目标帧中而提供自动注释(即,仅(ii))和半自动注释(即,基于(i)和(ii)的组合)之中一者或两者。
即,对齐模型位置是通过将3D模型与第二帧中捕获的(部分)公共结构组件对齐而手动(仅基于手动对齐输入)、自动(仅基于自动对齐)或半自动(基于手动对齐输入和自动对齐)确定,视情况而定。
方面A的实施例A2可以为手动、自动或半自动,即基于(i)、(ii)或(i)和(ii)组合。
在前后任一情况下,3D模型可以是通过聚合从两帧或更多帧选择性提取的3D结构点而确定的聚合3D模型。
聚合模型
3D模型可以是通过将从参考帧选择性提取的数据点与从目标参考帧提取的数据点聚合而确定的聚合3D模型,其中自动对齐通过将从参考帧中提取的3D模型的3D结构点与目标帧中的公共结构组件相匹配而使得聚合3D模型与目标帧中的公共结构组件相匹配。
该方法可以包括基于对齐模型位置从目标帧中选择性提取3D结构点并将它们与从第一帧选择性提取的点聚合而生成聚合3D模型。
替代地或附加地,3D模型可以是通过将从参考帧选择性提取的数据点与至少从帧中除目标帧和参考帧之外的第三帧内提取的数据点聚合而确定的聚合3D模型。
当然可以理解,可从多于两帧(可能是更多帧以构建密集的聚合3D模型)生成聚合模型。
该方法可以包括对聚合3D结构点应用噪声过滤以从中滤除噪点而生成聚合3D模型的步骤。
替代地或附加地,聚合3D模型包括拟合到聚合3D结构点的3D表面模型(在应用噪声过滤的情形下,这可以拟合到经过滤的3D结构点,即已经从中滤除噪点的3D结构点)。
替代地或附加地,该方法可以包括根据聚合3D表面点来应用预测模型的步骤。例如,将预测模型应用于聚合3D表面点以生成3D模型和/或将预测模型应用于聚合3D模型的2D投影以创建分割掩膜或其他2D注释数据。
虽然噪声过滤、预测建模和/或表面拟合既可应用于单帧又可应用于聚合3D模型,但特别有利的是,将其中一种或多种应用于聚合3D模型。对于噪声过滤,聚合结构点集内的噪点要比实际属于公共结构组件的点更为稀疏,进而能够更精确地滤除。对于预测建模,聚合点提供了更强的先验。
下面提供了聚合模型特征的更多示例。
手动/半自动对齐
可以有效地渲染聚合3D模型以协助手动对齐聚合3D模型与目标帧中的公共结构组件。
例如,在手动或半自动对齐情境下,当在用户处接收到一个或多个手动对齐输入时,可以更新和重新渲染聚合3D模型,从而将第二参考位置与第二帧中的公共结构组件对齐,具有校正经渲染的聚合3D模型中因第二参考位置的初始错位所致的视觉伪影的效果。
这种视觉伪影是因目标帧内的模型位置相对于参考帧中的参考位置错位造成。例如,注释者能够看到聚合3D模型中重复或错位的结构元素、特征等。通过调整模型位置直到那些伪影不再可见,注释者可在目标帧内找到正确的模型位置。
在此情境下,简单地渲染3D聚合模型以便手动将聚合3D模型与目标帧中的公共结构组件对齐便足矣—实际上不必用聚合3D模型来实际渲染目标帧本身的任何部分。实践中,可能便利的是,在目标帧内渲染聚合3D模型,以便注释者可通过另一种方式查看调整的效果。在某些情形下,可以提供渲染聚合3D模型的放大版本的选项,注释者可以选取使用该版本来进行最终调整。
对齐模型位置可以是基于一个或多个手动对齐输入而确定,而非使用任何自动对齐。
下面提供了关于聚合3D模型的进一步公开。
自动/半自动模型对齐
自动对齐可以包括迭代最近点(Iterative Closest Point)。
另外地或替代地,自动对齐可以使用以下至少之一:颜色匹配、2D特征匹配和3D特征匹配。
另外地或替代地,自动对齐可以包括:计算3D模型到与目标帧相关联的2D图像平面的投影,以及调整3D空间中的模型位置以使投影与2D图像平面内公共结构组件的2D特征相匹配。
例如,可以调整模型位置以使重投影误差或其他光度成本函数最小化。
例如,目标帧可以包括3D图像的深度分量数据,并且投影与3D图像的颜色分量中捕获的公共结构组件的2D特征相匹配。
对齐模型位置可以自动确定,而无需任何手动对齐输入。
一些这类实施例仍可基于初始粗略估计然后再进行精调来操作。
即,确定对齐模型位置可以是通过初始估计目标帧内的模型位置,然后应用自动对齐来调整估计的模型位置。
虽然在半自动对齐中,可以将模型位置初始估计为手动定义的位置,由用户界面处所接收的一个或多个手动位置输入来表示,但在全自动对齐中,自动初始估计模型位置。
可以通过将结构感知组件应用于目标帧来初始估计模型位置。
基于结构组件路径的自动/半自动模型对齐
另例而言,帧可以是时序帧,模型位置可以基于时序帧的时间间隔内的(公共)结构组件路径而自动初始估计。
此外,可以基于应用于目标帧的自动对齐来更新公共结构组件路径。
更新后的公共结构组件路径可用于计算公共结构在除目标帧外的多帧之一中的位置。
该方法可以包括如下步骤:存储针对所述一帧所计算的位置的2D或3D注释数据,用于注释该帧的至少一个感知输入中的公共结构组件。
可以执行自动对齐以优化定义的成本函数,其奖励3D模型与公共结构组件的匹配,同时惩罚公共结构组件的意外行为,如公共结构组件的预期行为模型所定义。
例如,定义的成本函数可以惩罚公共结构组件路径的意外变化,如预期行为模型所定义。
这有利地结合了获知测量或假设的行为以提供更可靠的跨帧对齐。
公共结构组件路径也可用于计算参考帧内的参考位置以生成3D模型(在更新路径之前)。
半自动模型对齐
对齐模型位置可以通过自动初始估计模型位置并且然后根据一个或多个手动对齐输入来对齐估计的模型位置而半自动确定。
即,可以自动粗略对齐,然后手动调整。
替代地或附加地,可以通过将结构感知组件应用于目标帧来初始估计对齐模型位置。
替代地或附加地,在帧是时间序列帧的情形下,可以基于时间序列帧的时间间隔内的公共结构组件路径来初始估计模型位置。
替代地或附加地,可以基于3D模型与目标帧中的公共结构组件的自动对齐来初始估计模型位置。
另例而言,可以通过根据一个或多个手动对齐输入来初始估计模型位置并且然后根据自动对齐过程来对齐估计的模型位置而半自动确定对齐模型位置。
即,可以手动粗略对齐,然后自动调整。
计算参考位置
在手动或自动对齐的实施例中,即(i)或(i)和(ii),可以基于用户界面处关于参考帧所接收的一个或多个定位输入来计算参考帧的参考位置,同时渲染参考帧内参考位置的视觉指示,用于手动调整参考帧内的参考位置。
可以针对参考帧自动或半自动计算参考位置。
可以基于用户界面处所接收的一个或多个定位输入来计算参考位置,同时渲染帧内参考位置的视觉指示以手动调整帧内参考位置。
可以针对参考帧自动或半自动计算参考位置。
可以基于时序帧的时间间隔内的(公共)结构组件路径来自动或半自动计算参考位置。
可以通过将感知组件应用于参考帧,自动或半自动计算参考位置。
替代地或附加地,可以基于时序帧的时间间隔内的公共结构构件路径来自动或半自动计算参考位置。
聚合3D模型的迭代生成和传播
可以在参考帧内计算参考位置作为结构组件的现有3D模型的对齐模型位置,这是基于如下至少之一:(i)在用户界面关于所述帧所接收的一个或多个手动对齐输入,同时渲染现有3D模型以手动对齐现有3D模型与参考帧中的结构组件;以及(ii)现有3D模型与参考帧中的结构组件的自动对齐。
现有3D模型可以已从一个或多个其他帧生成,该其他帧中捕获结构组件的至少一部分。
3D模型可以是通过将选择性提取的3D结构点与现有3D模型的3D结构点聚合而确定的聚合3D模型。
自动对齐可以包括:计算现有3D模型到与参考帧相关联的2D图像平面的投影,以及调整3D空间中的模型位置以使投影与2D图像平面内公共结构组件的2D特征相匹配。
界定对象尺寸
可以针对公共结构组件确定一个或多个边界对象尺寸。
一个或多个边界对象尺寸可以是如下之一:
(i)基于用户界面处关于参考帧所接收的一个或多个尺寸输入而手动确定;
(ii)通过将感知组件应用于参考帧来自动确定;
(iii)通过将感知组件应用于参考帧并进一步基于关于参考帧所接收的一个或多个尺寸输入而半自动确定;
(iv)假设。
从参考帧3D中选择性提取的结构点可以基于在参考帧内所计算的参考位置以及一个或多个边界对象尺寸来从中选择性提取以便生成3D模型。
选择性提取的3D结构点可以是参考位置和一个或多个边界对象尺寸所定义的3D体积内的点子集。
目标帧的至少一个感知输入的注释数据可以进一步包括:用于注释刚性公共结构组件的一个或多个边界对象尺寸,或者用于注释非刚性公共结构组件的一个或多个边界对象尺寸的变换。
一个或多个边界对象尺寸可以基于关于参考帧所接收的一个或多个尺寸输入而手动或半自动确定,其中参考位置的视觉指示采取在参考帧内的参考位置处渲染3D边界对象的形式,并使得所述一个或多个边界对象尺寸用于手动调整那些一个或多个边界对象尺寸。
一个或多个边界对象尺寸可以额外地基于用户界面处关于目标帧所接收的一个或多个调整输入来计算,同时在目标帧内的对齐模型位置处渲染3D边界对象。可以同时或随后在参考帧内的参考位置处渲染3D边界对象,其中一个或多个边界对象尺寸根据关于目标帧所接收的一个或多个调整输入来调整(以允许注释者在参考帧的情境下看到目标帧中进行任何调整的效果)。
2D/3D注释数据
下面参照2D注释数据和3D注释数据。这是指为了注释目标帧的至少一个感知输入中的结构组件而创建的2D或3D注释数据,除非另作说明。
但应注意,上述任一方面的实施例可以附加地创建和存储用于注释参考帧的至少一个感知输入中的公共结构组件的另外注释数据。这些实施例可以有利地利用一组公共注释操作(手动、自动或半自动操作)来创建目标帧和参考帧的注释数据。
此外,在上述任一实施例中,可以创建2D注释数据以及3D注释数据。在一些这样的实施例中,可以创建这样一种类型的注释数据来注释目标帧的一个或多个感知输入,也可以创建另一种类型的注释数据来注释目标帧的一个或多个感知输入。这可以类似地利用一组公共注释操作来创建这两种类型的注释数据。
举例而言,公共注释操作可用于创建:
-目标帧和参考帧的2D注释数据;
-目标帧和参考帧的3D注释数据;
-参考帧的2D注释数据和目标帧的3D注释数据;
-目标帧的2D注释数据和3D注释数据。
上例仅为说明目的而非旨在穷举。
注释数据可以包括与目标帧的一个或多个感知输入相关联地存储的对齐模型位置的2D注释数据和对齐模型位置的3D注释数据,由此使对齐模型位置用于目标帧的一个或多个感知输入的2D注释和3D注释。
替代地或附加地,可以存储参考位置的另外注释数据,用于注释参考帧的至少一个感知输入中的公共结构组件,由此将参考帧内所计算的参考位置用于注释目标帧和参考帧的感知输入。
另外注释数据可以包括用于注释刚性公共结构组件的相同的一个或多个边界对象尺寸,或其用于注释非刚性结构组件的变换。
一些实施例中,2D注释数据可以包括结构组件的2D边界对象,将2D边界对象在图像平面中拟合到计算出的3D模型投影。
替代地或附加地,2D注释数据可以包括结构组件的分割掩膜。
聚合3D模型(续)
本公开第四方面(方面D)提供了一种对公共结构组件进行建模的计算机实施方法,该方法包括:在建模计算机系统中,接收多个捕获帧,每一帧均包括3D结构点集,其中捕获公共结构组件的至少一部分;计算帧中第一帧内的第一参考位置;基于针对第一帧所计算的第一参考位置来选择性提取第一帧的第一3D结构点;计算帧中第二帧内的第二参考位置;基于针对第二帧所计算的第二参考位置来选择性提取第二帧的第二3D结构点;聚合第一3D结构点和第二3D结构点,从而基于第一参考位置和第二参考位置生成公共结构组件的聚合3D模型。
在方面D的实施例中,聚合3D模型可用于生成用于注释多帧中一帧的训练样例中的公共结构组件的注释数据,所述一帧为多帧中的第一帧、第二帧或第三帧。
但应注意,方面D就此不受限制,聚合3D模型可以替代地(或附加地)用于其他目的—请见下文。
在一些实施例中,注释数据可以是根据任何方面A至C或其任何实施例而生成。
注释数据可以包括如下至少之一:通过将3D模型投影到图像平面中而派生的2D注释数据和3D注释数据。
所述一帧可以是第三帧,该方法可以包括如下步骤:计算第三帧内3D模型的对齐模型位置,注释数据是该计算位置的注释数据,其中对齐模型位置是基于如下至少之一:
(i)3D模型与第三帧中的公共结构组件的自动对齐;
(ii)在用户界面关于第三帧所接收的一个或多个手动对齐输入,同时渲染3D模型以手动对齐3D模型与第三帧中的公共结构组件。
可以初始估计第二帧内的第二参考位置以生成聚合3D模型,该方法包括随后将第二参考位置与第二帧中的公共结构组件对齐的步骤,这是基于如下至少之一:
(i)从第一帧中提取的第一3D结构点与第二帧中的公共结构组件的自动对齐,以自动对齐聚合3D模型与第二帧中的公共结构组件;
(ii)在用户界面处关于第二帧所接收的一个或多个手动对齐输入,同时渲染聚合3D模型,以手动对齐聚合3D模型与第二帧中的公共结构组件;
其中,可以基于第二帧和第二帧内对齐的第二参考位置来更新聚合3D模型。
可以通过选择性提取第一3D结构点来生成第一3D模型,其中第二参考位置与第二帧中的公共结构组件对齐,以基于如下至少之一来生成聚合3D模型:(i)第一3D模型与第二帧中的公共结构组件的自动对齐;(ii)在用户界面处关于第二帧所接收的一个或多个手动对齐输入,同时渲染第一3D模型,以手动对齐第一3D模型与第二帧中的公共结构组件。
可以在第三帧中捕捉公共结构组件的至少一部分,该方法可以包括将第三参考位置与第三帧中的公共结构组件对齐,这是基于如下至少之一:(i)3D聚合模型与第三帧中的公共结构组件的自动对齐,以及(ii)用户界面处关于第三帧所接收的一个或多个手动对齐输入,同时渲染聚合3D模型,以手动对齐聚合3D模型与第三帧中的公共结构组件;基于第三参考位置来选择性提取第三帧的第三3D结构点;聚合第一3D结构点、第二3D结构点和第三3D结构点,从而基于第一参考位置、第二参考位置和第三参考位置来生成公共结构组件的第二聚合3D模型。
可以将第三帧的3D结构点集变换到第三参考位置的参照系,以选择性提取第三3D结构点。
可以初始估计第二帧内的第二参考位置以生成聚合3D模型,并可以基于第二帧和第二帧内对齐的第二参考位置来更新聚合3D模型。
聚合3D模型可以经由用户界面渲染,并随着用户界面处关于第二帧所接收的一个或多个手动对齐输入来更新和重新渲染,以便手动对齐第二参考位置与公共结构组件,从而将第二参考位置与第二帧中的公共结构组件对齐,效果是校正经渲染的聚合3D模型中因第二参考位置的初始错位所致的视觉伪影。
应当注意,在此情境下,对齐的第二参考位置等同于本公开其他段落提及的“对齐模型位置”,其中第二帧担任目标帧。全部上述关于模型位置的描述在此情境下同样适用于第二参考位置(例如包括初始估计第二参考位置,然后使用任一种上述手动、自动或半自动过程来进行调整)。
当在用户处接收到一个或多个手动对齐输入时,可以更新和重新渲染聚合3D模型,从而将第二参考位置与第二帧中的公共结构组件对齐,效果是校正经渲染的聚合3D模型中因第二参考位置的初始错位所致的视觉伪影。
如上所述,这为注释者提供了手动对齐第二参考位置(或调整其对齐)的手段并具有上述优势。
所述一帧可以是第二帧,注释数据为对齐的第二参考位置的注释数据。
注释数据可以包括对齐的第二参考位置的位置数据,用于在目标帧的至少一个训练样例中注释公共结构组件的位置,例如用于在3D空间中注释公共结构组件的位置的3D位置数据。
另外地或替代地,例如,注释数据可以包括使用对齐的第二参考位置从聚合3D模型派生的数据,例如通过基于对齐的第二参考位置将3D模型投影到图像平面中而派生的2D注释数据。
第一3D结构点可以是基于第一参考位置和一个或多个边界对象尺寸而从用于生成3D模型的第一帧中选择性提取。第二3D结构点可以是基于第二参考位置以及如下之一而从用于生成3D模型的帧中选择性提取:
(a)用于建模刚性对象的相同的一个或多个边界对象尺寸;
(b)用于建模非刚性对象的一个或多个边界对象尺寸的变换。
一个或多个边界对象尺寸可为如下之一:
(i)基于针对第一帧和第二帧中的至少一帧所接收的一个或多个尺寸输入而手动确定;
(ii)通过将感知组件应用于第一帧和第二帧之中至少一帧而自动确定;
(iii)通过将感知组件应用于至少一帧并进一步基于针对至少一帧所接收的一个或多个尺寸输入而半自动确定;
(iv)假设。
第一3D结构可以是由第一参考位置和一个或多个边界对象尺寸所定义的第一3D体积内的点子集。第二3D结构点可以是由第二参考位置和相同的一个或多个边界对象尺寸或其变换所定义的第二3D体积内的点子集。
该方法可以包括对聚合3D结构点应用噪声过滤以从中滤除噪点而生成聚合3D模型的步骤。
聚合3D模型可以包括拟合到聚合3D结构点的3D表面模型。
该方法可以包括将预测模型应用于聚合的3D表面点以生成3D模型的步骤。
该方法可以包括如下步骤:使用经注释的感知输入来训练至少一个感知组件,其中该感知输入的注释数据在训练过程中提供该感知输入的Ground Truth。
即,在图1的符号中,感知输入为x,注释数据提供了Ground Truth yx
训练数据增强
如上所述,使用聚合3D模型不限于创建经注释的感知输入。例如,根据方面D确定的聚合3D模型可以替代地或附加地用于如下一项或多项:
(a)训练数据增强;
(b)模拟。
训练数据增强
聚合3D模型可用于借助聚合3D模型的模型数据来增强多帧中一帧的数据,从而创建至少一个增强感知输入,包括所述一帧的数据和3D模型的模型数据,所述一帧为多帧中的第一帧、第二帧或第三帧。
模型数据可以包括如下至少之一:通过将3D模型投影到图像平面中而创建的2D增强数据;3D模型数据。
该方法可以包括如下步骤:使用增强感知输入来训练至少一个感知组件,由此在训练期间将模型数据和所述一帧的数据的组合作为相同感知输入的一部分提供给感知组件。
即,在图1的符号中,帧数据和模型数据各自形成相同感知输入x的一部分。
增强感知输入可用于如下之一:
(a)无监督训练过程,其中未给增强感知输入提供任何Ground Truth(即在图1的符号中无yx);
(b)有监督训练过程,其中权利要求2或其任一项从属权利要求所述的注释数据给增强感知输入提供Ground Truth。
模拟
另外地或替代地,可以将聚合3D模型输入到模拟器以在模拟环境下进行渲染,其中执行至少一个自主代理以自主导航模拟环境,并将自主代理响应于模拟环境的行为记录在电子行为日志中。
自主代理可以使用应用于模拟感知输入的经训练感知组件的模拟实例来导航模拟环境,其中电子行为日志的数据可用于重新训练和/或重新设计感知组件以应用于现实世界感知输入。
该方法可以包括在现实世界自主机器人控制系统中体现重新训练或重新设计的感知组件以用于基于现实世界感知输入进行自主决策制定的步骤。
高效模型生成
为了有效地(进而快速地)生成3D模型,可以将参考帧的3D结构点集变换到参考位置的参照系中,以便选择性提取3D模型的3D结构点。
请注意这里“(3D)参考帧(reference frame)”与几何意义上使用的术语“参照系(frame of reference)”之间的区别。
例如,由参考位置和一个或多个边界对象尺寸所定义的3D体积可以是与参照系的坐标轴对齐的长方体。这允许例如在GPU上高效计算该体积内的3D结构点子集。
例如,可以通过在上述参考帧中执行的标量比较,从参照系中选择性提取3D结构点。
对于聚合3D模式,可以将第一帧的3D结构点集变换到第一参考位置的参照系,以选择性提取第一3D结构点;可以将第二帧的3D结构点集变换到第二参考位置的参照系,以选择性提取第二3D结构点。
第一3D体积可以与第一参考位置的参照系的坐标轴对齐,第二3D体积可以与第二参考位置的参照系的坐标轴对齐。
感知输入—范例
至少一个感知输入可以包括所述帧或第二帧的2D图像数据或与目标帧相关联的2D图像数据,图像平面为图像数据的图像平面。
目标帧可以包括3D图像的深度分量的数据,感知输入的图像数据可以是3D图像的颜色分量的图像数据。
该方法可以包括对如下至少之一应用噪声过滤以从中滤除噪点的步骤:所提取的用于生成3D模型的3D结构点,其中3D模型包括或源自该事件中的过滤3D结构点;所计算的投影(在2D注释数据的情形下),其中2D注释数据为该事件中过滤投影的2D注释数据。
可以根据可通过注释计算机系统的用户界面手动调整的过滤标准来应用噪声过滤。
所述帧或每一帧可以是多个时序帧之一。
经注释感知输入—用例
任何上述用于促进自动或半自动注释的感知组件可以是经训练的(机器学习)感知组件。在此情况下,可以使用任何上述经注释的训练输入来重新训练经训练的感知组件。在此情境下使用经训练的感知可以称为“模型在环(Model in the Loop)”。
更泛言之,该方法可以包括如下步骤:在训练过程中使用所述或每个感知输入来训练至少一个感知组件,其中该感知输入的注释数据在训练过程中提供该感知输入的Ground Truth。
例如,感知组件可以是如下之一:2D边界框检测器、3D边界框检测器、实例分割组件、定位估计组件、定向估计组件和距离估计组件。
例如,3D注释数据可用于训练3D感知组件,2D注释数据可用于训练2D感知组件。
示例3D帧
所述帧或每一帧的3D结构点集可以呈点云形式。
可以已使用具有一种或多种传感器模态的一个或多个传感器捕获3D结构点集。
每一帧可以对应于不同的单个时刻。
帧中至少一帧可以包括在多个时刻捕获的3D结构点,这些点已经变换成对应于该帧所对应的单个时刻。
每一帧可以是多个时序帧之一。例如,目标帧和参考帧可以是时间序列帧中的与该序列中各不同时刻相对应的帧。
帧的3D结构点集可以是通过合并不同传感器捕获的至少两组3D结构点集而生成的合集。
示例3D模型
任何上述3D模型可以包括拟合到选择性提取的3D结构点的3D表面模型。这可以是拟合到从单帧中选择性提取的3D结构点的单帧模型,或者是拟合到从多帧中选择性提取并聚合的点的聚合3D模型。
这可用于例如创建包括或基于3D表面模型的投影的3D注释数据。
本发明主题的另一方面提供了一种创建一个或多个经注释感知输入的计算机实施方法,该方法包括:在注释计算机系统中,接收至少一个包括3D结构点集的捕获帧,该帧中捕获结构组件的至少一部分;接收结构组件的3D模型;基于3D模型与帧中结构组件自动对齐,确定帧内3D模型的对齐模型位置;将对齐模型位置的注释数据与该帧的至少一个感知输入相关联地存储在计算机存储器中,以便注释其中的结构组件。
在一些实施例中,3D模型可以通过基于参考帧内所计算的参考位置来选择性提取至少一个参考帧的3D结构点而生成。
然而,3D模型也可以是结构组件的CAD(计算机辅助设计)模型或其他外部生成模型。
也就是说,上述自动或半自动模型对齐特征也可应用于外部生成模型。故可理解,上文关于从至少一个参考帧生成的3D模型的全部描述在此情境下同样适用于外部生成的3D模型。
更多范例
为了进一步说明本公开的各种注释特征可单独或组合使用的方式,下面列出这些特征支持的一些更多示例性用例和工作流程。鉴于本文提出的教导应当理解,它们决非旨在穷举。
1. 3D转2D注释:给定完整或部分的3D模型:
a.生成紧密的2D边界框;
b.生成实例分割掩膜(或用于CRF/注释者/其他方法来细化分割掩膜的先验);
c.使用来自不同帧的投影点来辅助注释(使用上述X射线视觉特征),从而提高注释的一致性和准确性。
2.自单帧提取的3D模型:可以通过将帧的全部点转换为与3D边界框的轴线对齐而高效生成,这意味着能够使用简单的标量比较来确定是否包围任何既定点。
3.跨多帧提取的3D模型(聚合3D模型):使用来自多帧的边界框来提取和聚合全部包围的点云点(以生成聚合点云)。通过将上述变换应用到位于该帧中的3D边界框的每一帧,能够对每一帧有效地执行提取。
a.然后可以从聚合点云中滤除噪声。
b.待生成的聚合点云可以用表面来平滑,例如使用SDF。
c.累积点的优势包括:
i.改进的实例分割先验,其中应用了预测模型(例如CRF);或甚至聚合点云本身可能足以用于实例分割(即,不应用预测模型或拟合表面模型等);
ii.改进的噪声过滤/表面,因为会有比单帧更多的点;
iii.聚合模型与单帧模型相比更有益于增强训练数据,因为会有更高的质量和更大范围的适用视点;
iv.2D边界框可绘制为包含部分遮挡对象的遮挡部分。
4.自动3D注释:借助如下一种或多种方式:
a.从一帧生成3D模型,将其与另一帧中的点云相匹配(例如通过迭代最近点),然后组合成单个模型,并重复下一帧(使用组合模型作为匹配参考);
b.将3D模型投影到图像中并最小化光度误差(即,允许注释者自动“目测”X射线视觉对齐);
c.2D和/或3D中的特征匹配,并最小化匹配特征的重投影误差;
d.从初始粗略注释开始迭代构建,即,确定初始注释,对齐位姿,细化运动模型,并重复更多位姿。可以通过如下方式提供粗略注释:
i.2D或3D中的模型在环(例如神经网络或移动对象检测器);
ii.跨帧边界框的初始动力学模型(预期行为模型),例如假设对象以恒定速度行进;
iii.“单击”对象点(即,通过选择单个对象点)或对象点周围的“2D套索”(即,通过选择诸如图像平面或俯视图等2D平面内的对象点集)。
e.最小化考虑例如2D误差、3D误差和可能(预期)行为的对齐成本函数。
为了说明起见,上文描述了本发明具体实施例,但应当理解,它们未必为穷举。本发明的范围不受所述实施例限定,而仅受所附权利要求限定。
附录A
参照图17,本附录示出第4.2.7节部分的函数fi是如何基于系统几何导出。
定义
Figure BDA0003540404900000741
假设局部平坦的对象表面1506,该表面距点p的最短距离t为α=x cosθ,故:
Figure BDA0003540404900000742
点p的视差ki
Figure BDA0003540404900000743
成正比,点q的视差fi(α)与
Figure BDA0003540404900000744
成正比,故:
Figure BDA0003540404900000745
附录B
本附录示出第4.2.7节的MLE如何派生。
考虑单帧i处的单个点。用pi表示该点在相机参照系中的坐标。将pi投影回图像平面之后,可以将其与图像像素相关联。该像素具有对应的视差值di和表面法线
Figure BDA0003540404900000751
假设测量视差值为正态分布,均值μi对应于真实值,标准离差σ恒定。因此,对于每一帧,存在来自正态分布随机变量Di的样本di,其均值μi作为未知参数α的已知函数fi,即从点到表面的距离。这里的任务是估计参数α。
Di~N(fi(α),σ)。
若假设这些随机变量中的每一个均为自变量,则可进行最大似然估计。
Figure BDA0003540404900000752
取每一边的负对数,丢弃常数项,得出如下结果:
Figure BDA0003540404900000753
将这个表达式关于α微分,结果等于0则得出如下等式:
Figure BDA0003540404900000754
若假设表面为平面,一些简单的几何体关于fi,fi -1,fi'给出下式:这里,ki表示点pi的视差,βi表示值
Figure BDA0003540404900000755
Figure BDA0003540404900000756
Figure BDA0003540404900000757
Figure BDA0003540404900000758
这一点上,可以简单地将这个fi显式代入最大似然估计并求解所得的方程。然而,这其实非常难解。取而代之,通过其一阶泰勒级数在某个值
Figure BDA0003540404900000759
近似fi
Figure BDA0003540404900000761
Figure BDA0003540404900000762
将这个近似值代入最大似然估计,得出下式:
Figure BDA0003540404900000763
因其形式简化,该方程可明确求解,得出如下α公式:
Figure BDA0003540404900000764
剩下就是选取
Figure BDA0003540404900000765
值。
Figure BDA0003540404900000766
越接近真实值α,线性近似越佳。这里将研究两种可能的选择。
对于第一种选择,可以选取
Figure BDA0003540404900000767
成立如下关系式:
Figure BDA0003540404900000768
这对应于假设测量视差di逼近真实视差μi。当视差准确时,这应当会给出良好的结果,但可能对噪声响应不佳。实现这一点的
Figure BDA0003540404900000769
值如下:
Figure BDA00035404049000007610
α公式则化为如下加权平均值:
Figure BDA00035404049000007611
Figure BDA00035404049000007612
对于第二种选择,可以选取α成立如下关系式:
Figure BDA00035404049000007613
这对应于假设点pi逼近表面。这应当会在表面附近提供良好的结果,对视差的准确性做最小假设。实现这一点的
Figure BDA00035404049000007614
值如下:
Figure BDA00035404049000007615
α公式则化为如下加权平均值:
Figure BDA0003540404900000771
Figure BDA0003540404900000772
替代地,可以通过在它们之间进行插值来归纳前两解。选取值λ∈[0,1];当λ=1或λ=0时,将恢复前解。可以选取
Figure BDA0003540404900000773
成立如下关系式:
Figure BDA0003540404900000774
实现这一点的
Figure BDA0003540404900000775
值如下:
Figure BDA0003540404900000776
α公式则化为如下加权平均值:
Figure BDA0003540404900000777
Figure BDA0003540404900000778
例如,取
Figure BDA0003540404900000779
作为两个极端解之间的折衷,可以选取
Figure BDA00035404049000007710
成立如下关系式:
Figure BDA00035404049000007711
实现这一点的
Figure BDA00035404049000007712
值如下:
Figure BDA00035404049000007713
α公式则化为如下加权平均值:
Figure BDA00035404049000007714
Figure BDA00035404049000007715
附录C
CRF标注兼容性派生。
本节列出上述第5.2.2节和第5.2.3节的DenseCRF如何派生。
这样尝试最小化像素全连接图上的如下吉布斯能:
Figure BDA0003540404900000781
其中x为标注集,i和j为一维像素下标,ψn为一元势(在本例中来自输入和重构的聚合数据),ψp为成对势。
就特征矢量fi和fj以及像素i和j的位置pi和pj而言,成对势具有K个高斯核的加权和的形式:
Figure BDA0003540404900000782
其中每个核m由对称正定精度矩阵∧(m)表征,并由对称标注兼容性函数μ(m)(xi,xj)加权。
技术问题
标注x代表图像上的实例分割。成对势通过将边界对齐到特征矢量场中的边缘来平滑输入一元势。然而,这种平滑只有单个参数sxy,它代表高斯势的标准离差。理想情况下,希望它以某种方式对应于实例掩膜内像素的标准离差,以便适当地缩放平滑度。如果未适当地缩放平滑度,则会看到较小的实例(诸如远处或受遮挡的对象)消失,因为移除整个实例要比平滑其边界的成本更低。然而,sxy为全局参数,无法在逐实例的基础上访问这个参数。
解决方案
可以适当地选取兼容性,以减少较小实例的平滑效果。可能希望采取的方式是将指数中的项
Figure BDA0003540404900000783
乘以
Figure BDA0003540404900000784
分母是关于实例
Figure BDA0003540404900000785
内像素的标准离差。无法实现这一点的原因在于,若将指数乘以每实例的兼容性,所能达成的最好结果是将兼容性设定为指数来有效地将一项添加到指数中。可能采取的方式是添加常数项来有效地增加像素之间的距离度量,该常数项与实例掩膜中点的方差成反比。这会确保随着实例掩膜大小的减小,点之间的有效距离增大,因此平滑效果会降低。综上所述,可以选择:
Figure BDA0003540404900000791
其中
Figure BDA0003540404900000792
确保两个实例之间的兼容性完全由这两个实例中的最小者决定,引入了两个调整参数:最大兼容性μmax和平滑尺度α,作为标准离差比例。例如,设置
Figure BDA0003540404900000793
直观地对应于将平滑半径限制到实例掩膜中像素位置的标准离差的二分之一。
将其代入ψp(xi,xj)的定义,给出:
Figure BDA0003540404900000794
其中k为两个实例掩膜i,j中的较小者。
使用2D边界框作为实例掩膜的代理,因为无法访问Ground Truth掩膜。对于宽度为w且高度为h的边界框,这会引起将对应的方差
Figure BDA0003540404900000795
定义为2D边界框上定义的矩形均匀分布的方差。应当注意,这等于在边界框中独立选取的两点之间的预期距离,其中i>j,这在归一化成对核的情境下也很合理。算式如下:
Figure BDA0003540404900000796
Figure BDA0003540404900000797
Figure BDA0003540404900000798
Figure BDA0003540404900000799

Claims (44)

1.一种创建用于注释一个或多个感知输入的2D注释数据的计算机实施方法,所述方法包括:在注释计算机系统中:
在所述注释计算机系统处接收至少一个包括3D结构点集的捕获帧,该帧中捕获结构组件的至少一部分;
计算所述帧内结构组件的参考位置;
通过基于所述参考位置选择性提取所述帧的3D结构点来生成所述结构组件的3D模型;
计算所述3D模型到图像平面的投影;及
将计算出的投影的2D注释数据存储在持久性计算机存储设备中以注释所述图像平面内的结构组件。
2.根据权利要求1所述的方法,其中,所述2D注释数据包括所述结构组件的2D边界对象,将所述2D边界对象在所述图像平面中拟合到计算出的3D模型投影。
3.根据权利要求1或2所述的方法,其中,所述2D注释数据包括所述结构组件的分割掩膜。
4.根据权利要求1至3中任一项所述的方法,其中,所述2D注释数据与所述帧的至少一个感知输入相关联地存储以注释其中的结构组件,并基于该帧内计算出的参考位置来计算所述投影。
5.根据权利要求1至3中任一项所述的方法,其中,所述2D注释数据与第二帧的至少一个感知输入相关联地存储以注释所述第二帧的至少一个感知输入中的结构组件,该第二帧中捕获结构组件的至少一部分。
6.根据任一项前述权利要求所述的方法,其中,所述3D模型还用于创建3D注释数据以注释3D空间中的结构组件。
7.根据权利要求6所述的方法,其中,创建所述3D注释数据以注释第二帧的至少一个感知输入中的结构组件,该第二帧中捕获结构组件的至少一部分。
8.根据权利要求5或7所述的方法,其中,创建所述2D或3D注释数据以通过计算所述3D模型在所述第二帧内的对齐模型位置来注释所述第二帧的至少一个感知输入,其中,所述对齐模型位置是基于如下至少之一来确定:
(i)在用户界面关于所述第二帧所接收的一个或多个手动对齐输入,同时渲染所述3D模型以手动对齐所述3D模型与所述第二帧中的结构组件;及
(ii)所述3D模型与所述第二帧中的结构组件的自动对齐。
9.根据任一项前述权利要求所述的方法,其中,所述注释数据包括通过根据选择性提取的3D结构点来应用预测模型所计算出的细化注释数据。
10.根据权利要求6所述的方法,其中,所述预测模型为条件随机场(CRF)。
11.根据权利要求4或5或其任一项从属权利要求所述的方法,其中,所述至少一个感知输入包括所述帧或第二帧的2D图像数据或与所述帧或第二帧相关联的2D图像数据,所述图像平面为所述图像数据的图像平面。
12.根据权利要求11所述的方法,其中,所述帧或第二帧包括3D图像的深度分量的数据,所述感知输入的图像数据为所述3D图像的颜色分量的图像数据。
13.根据任一项前述权利要求所述的方法,包括如下步骤:
对如下至少之一应用噪声过滤以从中滤除噪点:
所提取的用于生成3D模型的3D结构点,其中,所述3D模型包括或源自该事件中的过滤3D结构点;及
所计算的投影,所述2D注释数据为该事件中过滤投影的2D注释数据。
14.根据权利要求13所述的方法,其中,根据可通过所述注释计算机系统的用户界面手动调整的过滤标准来应用噪声过滤。
15.根据任一项前述权利要求所述的方法,其中,基于用户界面处所接收的一个或多个定位输入来计算所述参考位置,同时渲染帧内参考位置的视觉指示以手动调整所述帧内参考位置。
16.根据任一项前述权利要求所述的方法,其中,针对参考帧自动或半自动计算所述参考位置。
17.根据权利要求16所述的方法,其中,通过将感知组件应用于所述参考帧,自动或半自动计算所述参考位置。
18.根据权利要求16或17所述的方法,其中,所述帧为多个时序帧之一,基于所述时序帧的时间间隔内的结构组件路径来自动或半自动计算所述参考位置。
19.根据任一项前述权利要求所述的方法,其中,所述选择性提取的3D结构点是基于所述参考位置和一个或多个边界对象尺寸而从用于生成所述3D模型的帧中选择性提取,其中,所述一个或多个边界对象尺寸是如下之一:
(i)基于用户界面处所接收的一个或多个尺寸输入而手动确定;
(ii)通过将感知组件应用于帧而自动确定;
(iii)通过将感知组件应用于帧并进一步基于一个或多个尺寸输入而半自动确定;及
(iv)假设。
20.根据权利要求19所述的方法,其中,所述选择性提取的3D结构点为所述参考位置和所述一个或多个边界对象尺寸所定义的3D体积内的点子集。
21.根据权利要求6的从属权利要求19或20所述的方法,其中,所述3D注释数据还包括用于生成所述3D模型或其变换的一个或多个边界对象尺寸。
22.根据任一项前述权利要求所述的方法,包括如下步骤:
在训练过程中使用所述或每个感知输入来训练至少一个感知组件,其中,该感知输入的注释数据在训练过程中提供该感知输入的Ground Truth。
23.根据权利要求6或21的从属权利要求22所述的方法,其中,所述3D注释数据用于训练3D感知组件,所述2D注释数据用于训练2D感知组件。
24.根据任一项前述权利要求所述的方法,其中,所述3D模型包括拟合到选择性提取的结构点的3D表面模型,所述投影包括所述3D表面模型到图像平面的投影。
25.根据任一项前述权利要求所述的方法,其中,所述3D结构点集呈点云形式。
26.根据任一项前述权利要求所述的方法,其中,将所述3D结构点集变换到所述参考位置的参照系中,以便选择性提取所述3D模型的3D结构点。
27.根据权利要求20的从属权利要求26所述的方法,其中,所述参考位置和所述一个或多个边界对象尺寸所定义的3D体积为与所述参照系的坐标轴对齐的长方体。
28.根据权利要求5、8或其任一项从属权利要求所述的方法,其中,针对第二帧创建2D注释,其中通过使用对齐模型来生成第二3D模型,基于对齐模型位置来选择性提取所述第二帧的3D结构点,然后将所述第二3D模型投影到图像平面中。
29.根据权利要求28所述的方法,其中,所述第二3D模型为通过聚合从第一帧和第二帧选择性提取的3D结构点而生成的聚合3D模型。
30.根据任一项前述权利要求所述的方法,其中,在所述帧内计算参考位置作为所述结构组件的现有3D模型的对齐模型位置,这是基于如下至少之一:
(i)在用户界面关于所述帧所接收的一个或多个手动对齐输入,同时渲染现有3D模型以手动对齐现有3D模型与所述帧中的结构组件;及
(ii)现有3D模型与所述帧中的结构组件的自动对齐。
31.根据权利要求30所述的方法,其中,所述现有3D模型已从一个或多个其他帧生成,该其他帧中捕获结构组件的至少一部分。
32.根据权利要求31所述的方法,其中,所述3D模型为通过将所述选择性提取的3D结构点与所述现有3D模型的3D结构点聚合而确定的聚合3D模型。
33.根据权利要求8或30所述的方法,其中,所述自动对齐包括计算所述现有3D模型或所述3D模型到与所述帧或所述第二帧相关联的2D图像平面的投影,以及调整3D空间中的模型位置以使所述投影与2D图像平面内公共结构组件的2D特征相匹配。
34.根据任一项前述权利要求所述的方法,其中,所述2D注释数据包括基本上确定为能量函数的实例分割掩膜,其中,所述实例分割掩膜为所述图像平面内一组像素中的每个像素分配实例分类标注,其中,所述能量函数具有:
在分割掩膜上聚合一元函数的一元项,所述一元函数分别应用于每个像素的实例分类标注,其中,所述一元函数由一个或多个光线投射值来定义,该光线投射值如所述投影步骤中通过光线投射穿过该像素并确定光线是否及在何处与所述3D模型的表面相交而确定;及
在分割掩膜上聚合非一元函数的非一元项,所述非一元函数应用于至少两个像素的实例分类标注。
35.根据权利要求34所述的方法,其中,所述非一元函数具有一个或多个项,每个项为标注兼容性函数与核之积,其中,所述核测定如下至少之一的差异:像素位置、像素值和像素特征,使得所述标注兼容性函数的效应随该一个或多个差增大而减小。
36.根据权利要求35所述的方法,其中,所述像素值包括深度值或视差值,并且至少一个项的核测定所述至少两个像素的至少深度值或视差值之差,使得所述标注兼容性函数的效应随所述深度值或视差值之差增大而减小。
37.根据权利要求35或36所述的方法,其中,所述标注兼容性函数取决于所述至少两个像素中至少一个像素所属的实例的大小。
38.一种确定图像的实例分割掩膜的计算机实施方法,所述方法包括:在注释计算机系统中:
接收待注释的图像;
确定所述图像与3D对象模型之间的相对位姿;
光线投射穿过图像平面的每个像素并确定光线是否及在何处与3D模型的表面相交,从而确定所述像素的一个或多个光线投射值;及
将实例分割掩膜确定为基本上优化能量函数,其中,所述实例分割掩膜为所述图像平面内一组像素中的每个像素分配实例分类标注,其中,所述能量函数具有:
在分割掩膜上聚合一元函数的一元项,所述一元函数分别应用于每个像素的实例分类标注,其中,所述一元函数由一个或多个光线投射值来定义,该光线投射值如所述投影步骤中通过光线投射穿过该像素并确定光线是否及在何处与所述3D模型的表面相交而确定;及
在分割掩膜上聚合非一元函数的非一元项,所述非一元函数应用于至少两个像素的实例分类标注。
39.一种确定图像的实例分割掩膜的计算机实施方法,包括:
将实例分割掩膜基本上确定为能量函数,其中,所述实例分割掩膜为所述图像内一组像素中的每个像素分配实例分类标注,其中,所述能量函数具有:
在分割掩膜上聚合一元函数的一元项,所述一元函数分别应用于每个像素的实例分类标注;及
在分割掩膜上聚合非一元函数的非一元项,所述非一元函数应用于至少两个像素的实例分类标注,其中,所述非一元函数具有一个或多个项,每个项为标注兼容性函数与核之积,其中,所述像素值包括深度值或视差值,并且至少一个项的核测定所述至少两个像素的至少深度值或视差值之差,使得所述标注兼容性函数的效应随所述深度值或视差值之差增大而减小。
40.一种确定图像的实例分割掩膜的计算机实施方法,包括:
将实例分割掩膜基本上确定为能量函数,其中,所述实例分割掩膜为所述图像内一组像素中的每个像素分配实例分类标注,其中,所述能量函数具有:
在分割掩膜上聚合一元函数的一元项,所述一元函数分别应用于每个像素的实例分类标注;及
在分割掩膜上聚合非一元函数的非一元项,所述非一元函数应用于至少两个像素的实例分类标注,其中,所述非一元函数具有一个或多个项,每个项测定如下至少之一的差异量度:像素位置、像素值和像素特征,使得所述标注兼容性函数的效应随该一个或多个差增大而减小;
其中,所述标注兼容性函数取决于所述至少两个像素中至少一个像素所属的实例的大小。
41.一种包括一个或多个计算机的计算机系统,其编程为或以其他方式配置为执行根据前述权利要求中任一项所述的步骤。
42.一种或多种体现于暂时性或非暂时性介质上的计算机程序,用于将计算机系统编程为执行根据权利要求1至33中任一项所述的步骤。
43.根据权利要求41所述的计算机系统,其体现于机器人系统中或体现为模拟器。
44.根据权利要求43所述的计算机系统,其体现于自主驾驶车辆或其他移动机器人中。
CN202080063511.1A 2019-07-19 2020-07-20 结构注释 Pending CN114365201A (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GB1910390.2 2019-07-19
GBGB1910382.9A GB201910382D0 (en) 2019-07-19 2019-07-19 Structure annotation
GB1910395.1 2019-07-19
GBGB1910392.8A GB201910392D0 (en) 2019-07-19 2019-07-19 Structure annotation
GBGB1910390.2A GB201910390D0 (en) 2019-07-19 2019-07-19 Structure annotation
GBGB1910395.1A GB201910395D0 (en) 2019-07-19 2019-07-19 Structure modelling
GB1910382.9 2019-07-19
GB1910392.8 2019-07-19
GB2004841.9 2020-04-01
GBGB2004842.7A GB202004842D0 (en) 2020-04-01 2020-04-01 Structure modelling
GBGB2004841.9A GB202004841D0 (en) 2020-04-01 2020-04-01 Structure annotation
GB2004842.7 2020-04-01
PCT/EP2020/070442 WO2021013790A1 (en) 2019-07-19 2020-07-20 Structure annotation

Publications (1)

Publication Number Publication Date
CN114365201A true CN114365201A (zh) 2022-04-15

Family

ID=71738141

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202080063535.7A Pending CN114424250A (zh) 2019-07-19 2020-07-20 结构建模
CN202080063511.1A Pending CN114365201A (zh) 2019-07-19 2020-07-20 结构注释
CN202080063606.3A Pending CN114365195A (zh) 2019-07-19 2020-07-20 结构注释
CN202080063507.5A Pending CN114365200A (zh) 2019-07-19 2020-07-20 结构注释

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080063535.7A Pending CN114424250A (zh) 2019-07-19 2020-07-20 结构建模

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202080063606.3A Pending CN114365195A (zh) 2019-07-19 2020-07-20 结构注释
CN202080063507.5A Pending CN114365200A (zh) 2019-07-19 2020-07-20 结构注释

Country Status (4)

Country Link
US (4) US20220262100A1 (zh)
EP (4) EP3970068A1 (zh)
CN (4) CN114424250A (zh)
WO (4) WO2021013792A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159811B2 (en) * 2019-03-15 2021-10-26 Tencent America LLC Partitioning of coded point cloud data
DE102019216357A1 (de) * 2019-10-24 2021-04-29 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bereitstellen von annotierten Verkehrsraumdaten
US11636685B1 (en) * 2020-12-18 2023-04-25 Zoox, Inc. Multi-resolution top-down segmentation
US20220289237A1 (en) * 2021-03-10 2022-09-15 Gm Cruise Holdings Llc Map-free generic obstacle detection for collision avoidance systems
CN113012122B (zh) * 2021-03-11 2022-07-29 复旦大学 一种类别级6d位姿与尺寸估计方法及装置
US11676383B2 (en) * 2021-03-15 2023-06-13 Sensormatic Electronics, LLC Object counting system for high volume traffic
US11676384B2 (en) 2021-03-15 2023-06-13 Sensormatic Electronics, LLC Object counting system for high volume traffic
US11710254B2 (en) * 2021-04-07 2023-07-25 Ford Global Technologies, Llc Neural network object detection
IL308799A (en) 2021-06-08 2024-01-01 Five Ai Ltd Support tool for autonomous vehicle testing
TWI819989B (zh) * 2023-05-17 2023-10-21 台達電子工業股份有限公司 三維物件的建模裝置及建模方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8072448B2 (en) * 2008-01-15 2011-12-06 Google Inc. Three-dimensional annotations for street view data
WO2013029675A1 (en) * 2011-08-31 2013-03-07 Metaio Gmbh Method for estimating a camera motion and for determining a three-dimensional model of a real environment
WO2018009552A1 (en) * 2016-07-05 2018-01-11 Nauto Global Limited System and method for image analysis
US10032310B2 (en) * 2016-08-22 2018-07-24 Pointivo, Inc. Methods and systems for wireframes of a structure or element of interest and wireframes generated therefrom
CN109859612A (zh) * 2019-01-16 2019-06-07 中德(珠海)人工智能研究院有限公司 一种街景数据的三维注释的方法及其系统

Also Published As

Publication number Publication date
US20220284666A1 (en) 2022-09-08
CN114365200A (zh) 2022-04-15
WO2021013793A1 (en) 2021-01-28
EP3970066A1 (en) 2022-03-23
WO2021013792A1 (en) 2021-01-28
US20220319043A1 (en) 2022-10-06
EP3970067A1 (en) 2022-03-23
US20220262100A1 (en) 2022-08-18
EP3970122A1 (en) 2022-03-23
CN114365195A (zh) 2022-04-15
WO2021013790A1 (en) 2021-01-28
WO2021013791A1 (en) 2021-01-28
EP3970068A1 (en) 2022-03-23
US20220277515A1 (en) 2022-09-01
CN114424250A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
CN114365201A (zh) 结构注释
US11900627B2 (en) Image annotation
Menze et al. Object scene flow
Guerry et al. Snapnet-r: Consistent 3d multi-view semantic labeling for robotics
US11064178B2 (en) Deep virtual stereo odometry
Pontes et al. Scene flow from point clouds with or without learning
WO2019153245A1 (en) Systems and methods for deep localization and segmentation with 3d semantic map
CN112991413A (zh) 自监督深度估测方法和系统
KR20210042942A (ko) 비디오 데이터를 이용한 객체 인스턴스 매핑
EP3844672A1 (en) Structure annotation
Ding et al. Vehicle pose and shape estimation through multiple monocular vision
Lovi Incremental free-space carving for real-time 3d reconstruction
Bešić et al. Dynamic object removal and spatio-temporal RGB-D inpainting via geometry-aware adversarial learning
US20230121534A1 (en) Method and electronic device for 3d object detection using neural networks
He et al. Ground and aerial collaborative mapping in urban environments
Gomez-Donoso et al. Three-dimensional reconstruction using SFM for actual pedestrian classification
CN112800822A (zh) 利用结构约束和物理约束进行3d自动标记
Zhu et al. Monocular depth prediction through continuous 3D loss
Mukherjee Design of Real Time System for SLAM and Semantic Mapping
Zhang et al. Recent Advances in Robot Visual SLAM
Tumu et al. Monocular-Cues Based 3-D Reconstruction: A Comparative Review
Greene Leveraging prior information for real-time monocular simultaneous localization and mapping
Zhu Event-Based Algorithms for Geometric Computer Vision
CN117795566A (zh) 传感器数据中三维对象的感知
Rickesh Speeding up of SLAM with fast feature extraction using GPU

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