CN114365200A - 结构注释 - Google Patents
结构注释 Download PDFInfo
- Publication number
- CN114365200A CN114365200A CN202080063507.5A CN202080063507A CN114365200A CN 114365200 A CN114365200 A CN 114365200A CN 202080063507 A CN202080063507 A CN 202080063507A CN 114365200 A CN114365200 A CN 114365200A
- Authority
- CN
- China
- Prior art keywords
- frame
- model
- annotation
- annotation data
- component
- 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
- 238000000034 method Methods 0.000 claims abstract description 108
- 230000001953 sensory effect Effects 0.000 claims abstract description 76
- 238000009877 rendering Methods 0.000 claims abstract description 21
- 238000012549 training Methods 0.000 claims description 99
- 230000008569 process Effects 0.000 claims description 27
- 230000000007 visual effect Effects 0.000 claims description 18
- 230000004931 aggregating effect Effects 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 15
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008447 perception Effects 0.000 description 46
- 230000011218 segmentation Effects 0.000 description 39
- 230000006870 function Effects 0.000 description 25
- 238000001914 filtration Methods 0.000 description 21
- 238000001514 detection method Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 19
- 230000006399 behavior Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000000644 propagated effect Effects 0.000 description 15
- 230000001902 propagating effect Effects 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 10
- 238000004220 aggregation Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000004807 localization Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 238000007670 refining Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000001627 detrimental effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- 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
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/08—Projecting images onto non-planar surfaces, e.g. geodetic screens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- 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/77—Processing 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/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- 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/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/40—Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- 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
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- 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/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/004—Annotating, labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning 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)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Architecture (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种创建一个或多个经注释感知输入的计算机实施方法,该方法包括:在注释计算机系统中:接收多个捕获帧,每一帧均包括3D结构点集,其中捕获公共结构组件的至少一部分;计算多帧中至少一个参考帧内的参考位置;通过基于该帧内的参考位置选择性提取至少一个参考帧的3D结构点来生成公共结构组件的3D模型;基于用户界面处关于多帧中的目标帧所接收的一个或多个手动对齐输入来确定3D模型在该目标帧内的对齐模型位置,通过渲染3D模型以手动将3D模型与目标帧中的公共结构组件对齐;将对齐模型位置的注释数据与该目标帧的至少一个感知输入相关联地存储在计算机存储器中,以便注释其中的公共结构组件。
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边界框等)。
本公开总体上涉及一种形式的具有注释功能的注释工具,这些注释功能有助于快速高效地注释感知输入。此类注释工具可用于创建用于训练感知组件的注释感知输入。术语“注释工具”泛指编程为或以其他方式配置为实施那些注释功能的计算机系统,或泛指一组一个或多个用于将可编程计算机系统编程为执行那些功能的计算机程序。
本发明一方面提供了一种创建一个或多个经注释感知输入的计算机实施方法,该方法包括:在注释计算机系统中:接收多个捕获帧,每一帧均包括3D结构点集,其中捕获公共结构组件的至少一部分;计算多帧中至少一个参考帧内的参考位置;通过基于该帧内的参考位置选择性提取至少一个参考帧的3D结构点来生成公共结构组件的3D模型;基于用户界面处关于多帧中的目标帧所接收的一个或多个手动对齐输入来确定3D模型在该目标帧内的对齐模型位置,通过渲染3D模型以手动将3D模型与目标帧中的公共结构组件对齐;将对齐模型位置的注释数据与该目标帧的至少一个感知输入相关联地存储在计算机存储器中,以便注释其中的公共结构组件。
这与在目标帧中围绕公共结构组件放置3D边界框或其他3D边界对象相比,允许针对目标帧的感知输入更快速更准确地创建注释数据。这是因为人工注释者更容易看到公共结构组件的3D模型(如从参考帧生成)何时与目标帧中捕获的公共结构组件正确对齐。所述方法利用了如下事实:参考帧中公共结构组件的位置(定位和/或定向)可用于从参考帧生成公共结构组件的3D模型,该模型又可与目标帧中的公共结构组件对齐,以确定公共结构组件在目标帧中的位置。
所述方法使用“自包含(self-contained)”建模,从而使用来自一帧或多帧本身的3D结构点来生成3D模型。因此,该方法的灵活性足以应用于多3D帧中捕获的任何形式的结构组件。
在一些实施例中,所述方法可以采取迭代方式应用,以在对帧进行注释时构建质量渐增的3D模型,同时针对这些帧生成可用的注释数据。例如,注释者可以最初通过将3D边界框定位在单个初始参考帧中来创建3D模型,或可以自动放置3D边界框(请见下文)。在本例中,“参考位置”是3D边界框在该帧内的位置。除了针对该帧提供注释数据,可以又从3D边界框的体积内提取该帧的3D结构点的子集并用于生成初始3D模型。可以又将该3D模型手动或半自动或“传播”到待注释的下一帧(目标帧),与目标帧中的公共结构组件快速准确地对齐,这又提供了目标帧内3D边界框的位置作为对齐模型位置(即,目标帧中3D边界框的位置是目标帧中与该模型与公共结构组件相对齐的3D模型位置)。自此,所述方法可以采取迭代方式执行:目标帧内的3D边界框位置针对目标帧提供了可用的注释数据;此外,可以从3D边界框的体积内提取目标帧(此时视为第二参考帧)的3D结构点子集,并与初始参考帧的那些点聚合以提供更完整的3D模型,然后可以传播到待注释的下一帧(新的目标帧)以进行手动或半自动对齐,等等。
注释数据可以是2D或3D注释数据或者这两者的组合。
3D注释数据可以包括对齐模型位置的位置数据,用来定义3D边界对象(例如3D边界框)在3D空间中相对于目标帧的感知输入的位置。
例如,2D注释数据可以基于所计算的3D模型到目标帧的图像平面的投影或者基于所计算的新3D模型的投影而创建,其中该新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图像,例如在单目深度感知中。
在一些实施例中,对齐模型位置的注释数据可以包括对齐模型位置的位置数据,用于注释目标帧的至少一个感知输入中公共结构组件的位置。
位置数据可以是用于注释公共结构组件在3D空间中的位置的3D位置数据。
对齐模型位置的注释数据可以包括使用对齐模型位置从3D模型派生的注释数据。
所派生的注释数据可以是通过基于对齐模型位置将3D模型投影到图像平面中而派生的2D注释数据。替代地,2D注释数据的派生方式可以是将通过基于对齐模型位置从目标帧中选择性提取3D结构点而生成的单帧或聚合3D模型投影到图像平面中。
2D注释数据可以包括如下至少之一:拟合到3D模型或单帧或聚合3D模型在图像平面中的投影的2D边界对象;以及用于公共结构组件的分割掩膜。
可以基于用户界面处关于参考帧所接收的一个或多个定位输入来计算参考帧的参考位置,同时渲染参考帧内参考位置的视觉指示,用于手动调整参考帧内的参考位置。
可以针对参考帧自动或半自动计算参考位置。
可以通过将感知组件应用于参考帧,自动或半自动计算参考位置。
帧可以是时序帧,参考位置可以是基于时序帧的时间间隔内的公共结构组件路径而自动或半自动计算。
可以针对公共结构组件确定一个或多个边界对象尺寸,其中一个或多个边界对象尺寸可以是如下之一:(i)基于用户界面处关于参考帧所接收的一个或多个尺寸输入而手动确定;(ii)通过将感知组件应用于参考帧而自动确定;(iii)通过将感知组件应用于参考帧并进一步基于关于参考帧所接收的一个或多个尺寸输入而半自动确定;(iv)假设。
从参考帧3D中选择性提取的结构点可以基于在参考帧内所计算的参考位置以及一个或多个边界对象尺寸来从中选择性提取以便生成3D模型。
选择性提取的3D结构点可以是参考位置和一个或多个边界对象尺寸所定义的3D体积内的点子集。
目标帧的至少一个感知输入的注释数据可以进一步包括:用于注释刚性公共结构组件的一个或多个边界对象尺寸,或者用于注释非刚性公共结构组件的一个或多个边界对象尺寸的变换。
一个或多个边界对象尺寸可以基于关于参考帧所接收的一个或多个尺寸输入而手动或半自动确定,其中参考位置的视觉指示可以采取在参考帧内的参考位置处渲染3D边界对象的形式,并使得所述一个或多个边界对象尺寸用于手动调整那些一个或多个边界对象尺寸。
一个或多个边界对象尺寸可以额外地基于用户界面处关于目标帧所接收的一个或多个调整输入来计算,同时在目标帧内的对齐模型位置处渲染3D边界对象;可以同时或随后在参考帧内的参考位置处渲染3D边界对象,其中一个或多个边界对象尺寸根据关于目标帧所接收的一个或多个调整输入来调整。
注释数据可以包括与目标帧的一个或多个感知输入相关联地存储的对齐模型位置的2D注释数据和对齐模型位置的3D注释数据,由此使对齐模型位置用于2D注释和3D注释。
可以存储参考位置的另外注释数据,用于注释参考帧的至少一个感知输入中的公共结构组件,由此将参考帧内所计算的参考位置可用于注释目标帧和参考帧的感知输入。
另外注释数据可以包括用于注释刚性公共结构组件的相同的一个或多个边界对象尺寸,或其用于注释非刚性公共结构组件的变换。
3D模型可以是通过将从参考帧选择性提取的数据点与从如下至少之一中提取的数据点聚合而确定的聚合3D模型:目标帧;以及帧中除目标帧和参考帧之外的第三帧。
上述感知组件可以是经训练的感知组件,其使用目标帧的至少一个感知输入和注释数据来进行重新训练。
所述方法可以包括如下步骤:在训练过程中使用所述或每个感知输入来训练至少一个感知组件,其中,该感知输入的注释数据在训练过程中提供该感知输入的GroundTruth。
每一帧的3D结构点集可以呈点云形式。
可以将参考帧的3D结构点集变换到参考位置的参照系中以选择性提取3D模型的3D结构点。
参考位置和一个或多个边界对象尺寸所定义的3D体积可以是与参照系的坐标轴对齐的长方体。
对齐模型位置可以通过自动初始估计模型位置并且然后根据一个或多个手动对齐输入来对齐估计的模型位置而半自动确定。
可以通过将结构感知组件应用于目标帧来初始估计模型位置。
帧可以是时序帧,模型位置可以是基于时序帧的时间间隔内的公共结构组件路径而初始估计。
模型位置可以是基于3D模型与目标帧中的公共结构组件的自动对齐而初始估计。
本公开其他方面提供了一种包括一个或多个计算机的计算机系统,该计算机系统编程为或以其他方式配置为执行本文公开的任何步骤,以及一种或多种体现于暂时性或非暂时性介质上的计算机程序,用于将计算机系统编程为执行这些步骤。
所述计算机系统可以体现于机器人系统中(例如,自主驾驶车辆或其他移动机器人)或体现为模拟器。
附图说明
下面结合附图举例说明本发明实施例的实施方式,以便更清楚地理解本发明,图中:
图1示出用于训练感知组件的训练系统的高度示意性功能框图;
图2示出自主驾驶车辆的高度示意性框图;
图3示出注释计算机系统的示意性功能框图;
图4示出点云形式的帧的示意性透视图;
图5示出立体图像处理系统的框图;
图6示意性表明立体深度提取的某些原理;
图7A至图8E示出注释3D道路场景的时间序列时由注释计算机系统渲染的图形用户界面(GUI)的各种示例;
图9A示出生成对象模型的方法的流程图;
图9B示出应用于点云的方法的示意图;
图10A至图12C示出注释系统GUI的更多示例,具体示出可应用所生成的对象模型来以3D道路场景的时间序列创建注释的方式;
图13A至图13C示意性表明车辆路径信息可合并到自动或半自动注释过程的方式;
图14示出迭代生成和传播聚合3D对象模型的方法的流程图。
具体实施方式
下面对本发明实施例予以详述。首先,提供有益于所述实施例的一些机构。
图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 Truthyx的离差。该离差由定义的度量(诸如均方误差、交叉熵损失等)来表征。因此,通过将成本函数优化到限定的程度,可将整个训练集108a相对于Ground Truth测得的总体误差减少到可接受的水平。感知组件102例如可为卷积神经网络,其中模型参数w为神经元之间的权重,但本公开不限于此。应当领会,存在数种形式的感知模型,这些感知模型可以对适当注释的感知输入进行有用的训练。
测试数据108b用于尽量减少过度拟合,这是指如下事实:超出某一点,提高检测组件102对训练数据集108a的准确度不利于其将泛化到训练中尚未遇到的感知输入的能力。过度拟合可能被识别为提高感知组件102对训练数据108的准确度会降低(或不提高)其对测试数据的准确度的一点,其中准确度是根据误差函数而测得。训练的目的在于将训练集108a的总误差减至最低,以至能够在不过度拟合的情况下使其最小化。
必要时,验证数据集108c可用于提供对检测组件性能的最终估计。
训练并非当前注释技术的唯一应用。例如,另一种可用的应用为场景提取,其中将注释应用于3D数据以便提取可在模拟器中运行的场景。例如,本注释技术可用于提取注释对象的轨迹(路径和运动数据),允许在模拟器中重播这些对象的行为。
图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图像(的一部分和/或分量)或至少一帧的点云的数据。
图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)认知而转换为距离单位,如下所示:
其中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开始—应当注意,自此开始,传播到下一帧的当前对象模型是合并来自多帧的点信息的聚合对象模型。因此,自此开始,是将当前的聚合对象模型与下一帧中的对象对齐。随着每次过程迭代,添加来自又另一帧的点,从而允许生成逐渐密集且完整的聚合对象模型。
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的最左侧受遮挡部分。
通过使用聚合对象模型会实现类似的效果,例如通过依上述方式聚合来自对应于第一车辆的第一帧和第二帧的点云中的点并将聚合模型应用于第二帧而生成。
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 ofreference)”之间的区别。
例如,由参考位置和一个或多个边界对象尺寸所定义的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误差和可能(预期)行为的对齐成本函数。
为了说明起见,上文描述了本发明具体实施例,但应当理解,它们未必为穷举。本发明的范围不受所述实施例限定,而仅受所附权利要求限定。
Claims (33)
1.一种创建一个或多个经注释感知输入的计算机实施方法,所述方法包括:在注释计算机系统中:
接收多个捕获帧,每一帧均包括3D结构点集,其中捕获公共结构组件的至少一部分;
计算多帧中至少一个参考帧内的参考位置;
通过基于该帧内的参考位置选择性提取至少一个参考帧的3D结构点来生成所述公共结构组件的3D模型;
基于用户界面处关于多帧中的目标帧所接收的一个或多个手动对齐输入来确定3D模型在该目标帧内的对齐模型位置,同时渲染3D模型以手动将3D模型与目标帧中的公共结构组件对齐;及
将所述对齐模型位置的注释数据与该目标帧的至少一个感知输入相关联地存储在计算机存储器中,以便注释其中的公共结构组件。
2.根据任一项前述权利要求所述的方法,其中,所述对齐模型位置的注释数据包括所述对齐模型位置的位置数据,用于注释所述目标帧的至少一个感知输入中公共结构组件的位置。
3.根据权利要求2所述的方法,其中,所述位置数据为用于注释所述公共结构组件在3D空间中的位置的3D位置数据。
4.根据权利要求1、2或3所述的方法,其中,所述对齐模型位置的注释数据包括使用所述对齐模型位置从所述3D模型派生的注释数据。
5.根据权利要求4所述的方法,其中,所派生的数据为通过如下方式派生的2D注释数据:
基于所述对齐模型位置将所述3D模型投影到图像平面中;或
将通过基于所述对齐模型位置从所述目标帧中选择性提取3D结构点而生成的单帧或聚合3D模型投影到图像平面中。
6.根据权利要求5所述的方法,其中,所述2D注释数据包括如下至少之一:拟合到所述3D模型或所述单帧或聚合3D模型在图像平面中的投影的2D边界对象;以及用于所述公共结构组件的分割掩膜。
7.根据任一项前述权利要求所述的方法,其中,基于用户界面处关于所述参考帧所接收的一个或多个定位输入来计算所述参考帧的参考位置,同时渲染所述参考帧内参考位置的视觉指示,用于手动调整所述参考帧内的参考位置。
8.根据任一项前述权利要求所述的方法,其中,针对所述参考帧自动或半自动计算所述参考位置。
9.根据权利要求8所述的方法,其中,通过将感知组件应用于所述参考帧,自动或半自动计算所述参考位置。
10.根据权利要求8或9所述的方法,其中,多帧为时序帧,并且所述参考位置是基于所述时序帧的时间间隔内的公共结构组件路径而自动或半自动计算。
11.根据任一项前述权利要求所述的方法,其中,针对公共结构组件确定一个或多个边界对象尺寸,其中,所述一个或多个边界对象尺寸是如下之一:
(i)基于用户界面处关于所述参考帧所接收的一个或多个尺寸输入而手动确定;
(ii)通过将感知组件应用于所述参考帧而自动确定;
(iii)通过将所述感知组件应用于所述参考帧并进一步基于关于所述参考帧所接收的一个或多个尺寸输入而半自动确定;
(iv)假设。
12.根据权利要求11所述的方法,其中,从所述参考帧中选择性提取的3D结构点是基于在所述参考帧内所计算的参考位置以及一个或多个边界对象尺寸而从中选择性提取以生成所述3D模型。
13.根据权利要求12所述的方法,其中,所述选择性提取的3D结构点为所述参考位置和所述一个或多个边界对象尺寸所定义的3D体积内的点子集。
14.根据权利要求11至13任一项所述的方法,其中,所述目标帧的至少一个感知输入的注释数据进一步包括:所述一个或多个边界对象尺寸,用于注释刚性公共结构组件;或所述一个或多个边界对象尺寸的变换,用于注释非刚性公共结构组件。
15.根据权利要求7、11或其任一项从属权利要求所述的方法,其中,所述一个或多个边界对象尺寸是基于关于所述参考帧所接收的一个或多个尺寸输入而手动或半自动确定,其中,所述参考位置的视觉指示采取在所述参考帧内的参考位置处渲染3D边界对象的形式,并使得所述一个或多个边界对象尺寸用于手动调整那些一个或多个边界对象尺寸。
16.根据权利要求15所述的方法,其中,所述一个或多个边界对象尺寸额外地基于用户界面处关于所述目标帧所接收的一个或多个调整输入来计算,同时在所述目标帧内的对齐模型位置处渲染所述3D边界对象;其中,同时或随后在所述参考帧内的参考位置处渲染所述3D边界对象,其中所述一个或多个边界对象尺寸根据关于所述目标帧所接收的一个或多个调整输入来调整。
17.根据任一项前述权利要求所述的方法,其中,所述注释数据包括与所述目标帧的一个或多个感知输入相关联地存储的所述对齐模型位置的2D注释数据和对齐模型位置的3D注释数据,由此使所述对齐模型位置用于2D注释和3D注释。
18.根据任一项前述权利要求所述的方法,其中,存储所述参考位置的另外注释数据,用于注释所述参考帧的至少一个感知输入中的公共结构组件,由此将所述参考帧内所计算的参考位置用于注释所述目标帧和所述参考帧的感知输入。
19.根据权利要求14的从属权利要求18所述的方法,其中,所述另外注释数据包括用于注释刚性公共结构组件的相同的一个或多个边界对象尺寸,或其用于注释非刚性公共结构组件的变换。
20.根据任一项前述权利要求所述的方法,其中,所述3D模型是通过将从所述参考帧选择性提取的数据点与从如下至少之一中提取的数据点聚合而确定的聚合3D模型:目标帧;以及多帧中除目标帧和参考帧之外的第三帧。
21.根据权利要求9或11或其任一项从属权利要求所述的方法,其中,所述感知组件是经训练的感知组件,其使用所述目标帧的至少一个感知输入和所述注释数据来进行重新训练。
22.根据任一项前述权利要求所述的方法,包括如下步骤:在训练过程中使用所述或每个感知输入来训练至少一个感知组件,其中,该感知输入的注释数据在训练过程中提供该感知输入的Ground Truth。
23.根据任一项前述权利要求所述的方法,其中,每一帧的3D结构点集呈点云形式。
24.根据任一项前述权利要求所述的方法,其中,将所述参考帧的3D结构点集变换到所述参考位置的参照系中以选择性提取用于所述3D模型的3D结构点。
25.根据权利要求13的从属权利要求24所述的方法,其中,所述参考位置和所述一个或多个边界对象尺寸所定义的3D体积为与所述参照系的坐标轴对齐的长方体。
26.根据任一项前述权利要求所述的方法,其中,所述对齐模型位置是通过自动初始估计所述模型位置并然后根据所述一个或多个手动对齐输入来对齐估计的模型位置而半自动确定。
27.根据权利要求26所述的方法,其中,所述模型位置是通过将结构感知组件应用于所述目标帧而初始估计。
28.根据权利要求26或27所述的方法,其中,多帧为时序帧,所述模型位置是基于所述时序帧的时间间隔内的公共结构组件路径而初始估计。
29.根据权利要求26至28中任一项所述的方法,其中,所述模型位置是基于所述3D模型与所述目标帧中的公共结构组件的自动对齐而初始估计。
30.一种包括一个或多个计算机的计算机系统,其编程为或以其他方式配置为执行根据前述权利要求中任一项所述的步骤。
31.一种或多种体现于暂时性或非暂时性介质上的计算机程序,用于将计算机系统编程为执行根据权利要求1至29中任一项所述的步骤。
32.根据权利要求30所述的计算机系统,其体现于机器人系统中或体现为模拟器。
33.根据权利要求31所述的计算机系统,其体现于自主驾驶车辆或其他移动机器人中。
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1910382.9A GB201910382D0 (en) | 2019-07-19 | 2019-07-19 | Structure annotation |
GB1910395.1 | 2019-07-19 | ||
GB1910390.2 | 2019-07-19 | ||
GB1910382.9 | 2019-07-19 | ||
GBGB1910390.2A GB201910390D0 (en) | 2019-07-19 | 2019-07-19 | Structure annotation |
GB1910392.8 | 2019-07-19 | ||
GBGB1910392.8A GB201910392D0 (en) | 2019-07-19 | 2019-07-19 | Structure annotation |
GBGB1910395.1A GB201910395D0 (en) | 2019-07-19 | 2019-07-19 | Structure modelling |
GBGB2004841.9A GB202004841D0 (en) | 2020-04-01 | 2020-04-01 | Structure annotation |
GBGB2004842.7A GB202004842D0 (en) | 2020-04-01 | 2020-04-01 | Structure modelling |
GB2004842.7 | 2020-04-01 | ||
GB2004841.9 | 2020-04-01 | ||
PCT/EP2020/070446 WO2021013793A1 (en) | 2019-07-19 | 2020-07-20 | Structure annotation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114365200A true CN114365200A (zh) | 2022-04-15 |
Family
ID=71738141
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080063511.1A Pending CN114365201A (zh) | 2019-07-19 | 2020-07-20 | 结构注释 |
CN202080063606.3A Pending CN114365195A (zh) | 2019-07-19 | 2020-07-20 | 结构注释 |
CN202080063535.7A Pending CN114424250A (zh) | 2019-07-19 | 2020-07-20 | 结构建模 |
CN202080063507.5A Pending CN114365200A (zh) | 2019-07-19 | 2020-07-20 | 结构注释 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080063511.1A Pending CN114365201A (zh) | 2019-07-19 | 2020-07-20 | 结构注释 |
CN202080063606.3A Pending CN114365195A (zh) | 2019-07-19 | 2020-07-20 | 结构注释 |
CN202080063535.7A Pending CN114424250A (zh) | 2019-07-19 | 2020-07-20 | 结构建模 |
Country Status (4)
Country | Link |
---|---|
US (4) | US20220277515A1 (zh) |
EP (4) | EP3970068A1 (zh) |
CN (4) | CN114365201A (zh) |
WO (4) | WO2021013791A1 (zh) |
Families Citing this family (17)
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 |
WO2021014846A1 (ja) * | 2019-07-22 | 2021-01-28 | 日本電気株式会社 | 情報処理装置、データ生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 |
DE102019216357A1 (de) * | 2019-10-24 | 2021-04-29 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Bereitstellen von annotierten Verkehrsraumdaten |
US11250240B1 (en) * | 2020-07-27 | 2022-02-15 | Pony Ai Inc. | Instance segmentation using sensor data having different dimensionalities |
US20220135074A1 (en) * | 2020-11-02 | 2022-05-05 | Waymo Llc | Classification of objects based on motion patterns for autonomous vehicle applications |
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 |
EP4338056A1 (en) | 2021-06-08 | 2024-03-20 | Five AI Limited | Support tools for autonomous vehicle testing |
CN113792707A (zh) * | 2021-11-10 | 2021-12-14 | 北京中科慧眼科技有限公司 | 基于双目立体相机的地形环境检测方法、系统和智能终端 |
GB202218100D0 (en) | 2022-12-01 | 2023-01-18 | Five Al Ltd | Support tools for autonomous vehicle testing |
GB202218107D0 (en) | 2022-12-01 | 2023-01-18 | Five Al Ltd | Support tools for autonomous vehicle testing |
EP4407482A1 (en) * | 2023-01-24 | 2024-07-31 | Volvo Car Corporation | Training and operating an object detecting system for a vehicle |
TWI819989B (zh) * | 2023-05-17 | 2023-10-21 | 台達電子工業股份有限公司 | 三維物件的建模裝置及建模方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4852764B2 (ja) * | 2005-03-04 | 2012-01-11 | 国立大学法人 奈良先端科学技術大学院大学 | 動き計測装置、動き計測システム、車載機器、動き計測方法、動き計測プログラム、およびコンピュータ読み取り可能な記録媒体 |
JP5013961B2 (ja) * | 2007-05-21 | 2012-08-29 | キヤノン株式会社 | 位置姿勢計測装置及びその制御方法 |
US8072448B2 (en) * | 2008-01-15 | 2011-12-06 | Google Inc. | Three-dimensional annotations for street view data |
EP2751777B1 (en) * | 2011-08-31 | 2019-08-07 | Apple Inc. | Method for estimating a camera motion and for determining a three-dimensional model of a real environment |
JP6435909B2 (ja) * | 2015-02-19 | 2018-12-12 | 富士通株式会社 | 学習装置、学習方法及び学習プログラム |
KR20230074296A (ko) * | 2015-06-29 | 2023-05-26 | 주식회사 윌러스표준기술연구소 | 데이터 전송을 위한 채널 접근 방법, 이를 이용한 무선 통신 방법 및 무선 통신 단말 |
US9609307B1 (en) * | 2015-09-17 | 2017-03-28 | Legend3D, Inc. | Method of converting 2D video to 3D video using machine learning |
EP3408848A4 (en) * | 2016-01-29 | 2019-08-28 | Pointivo Inc. | SYSTEMS AND METHOD FOR EXTRACTING INFORMATION ON OBJECTS FROM SCENE INFORMATION |
WO2018009552A1 (en) * | 2016-07-05 | 2018-01-11 | Nauto Global Limited | System and method for image analysis |
US9990536B2 (en) * | 2016-08-03 | 2018-06-05 | Microsoft Technology Licensing, Llc | Combining images aligned to reference frame |
US10019824B2 (en) * | 2016-08-16 | 2018-07-10 | Lawrence Livermore National Security, Llc | Annotation of images based on a 3D model of objects |
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 |
US10223591B1 (en) * | 2017-03-30 | 2019-03-05 | Amazon Technologies, Inc. | Multi-video annotation |
CN109584295B (zh) * | 2017-09-29 | 2022-08-26 | 阿里巴巴集团控股有限公司 | 对图像内目标物体进行自动标注的方法、装置及系统 |
WO2019113510A1 (en) * | 2017-12-07 | 2019-06-13 | Bluhaptics, Inc. | Techniques for training machine learning |
US10169680B1 (en) * | 2017-12-21 | 2019-01-01 | Luminar Technologies, Inc. | Object identification and labeling tool for training autonomous vehicle controllers |
US11365976B2 (en) * | 2018-03-02 | 2022-06-21 | Nvidia Corporation | Semantic label based filtering of objects in an image generated from high definition map data |
US10412391B1 (en) * | 2018-08-06 | 2019-09-10 | AnyClip Ltd. | Minimize number of encoded video stream frames for content recognition |
CN109102543B (zh) * | 2018-08-17 | 2021-04-02 | 深圳蓝胖子机器智能有限公司 | 基于图像分割的物体定位方法、设备和存储介质 |
US10839530B1 (en) * | 2018-09-04 | 2020-11-17 | Apple Inc. | Moving point detection |
CN109859612A (zh) * | 2019-01-16 | 2019-06-07 | 中德(珠海)人工智能研究院有限公司 | 一种街景数据的三维注释的方法及其系统 |
EP3707473A4 (en) * | 2019-01-30 | 2020-12-30 | Baidu.com Times Technology (Beijing) Co., Ltd. | REAL-TIME MAP GENERATION SYSTEM FOR AUTONOMOUS VEHICLES |
WO2020179065A1 (ja) * | 2019-03-07 | 2020-09-10 | 日本電気株式会社 | 画像処理装置、画像処理方法及び記録媒体 |
US20210004566A1 (en) * | 2019-07-02 | 2021-01-07 | GM Global Technology Operations LLC | Method and apparatus for 3d object bounding for 2d image data |
JP7279848B2 (ja) * | 2020-03-13 | 2023-05-23 | 日本電気株式会社 | 画像処理装置、画像処理方法、およびプログラム |
US20210383096A1 (en) * | 2020-06-08 | 2021-12-09 | Bluhaptics, Inc. | Techniques for training machine learning |
WO2023034665A1 (en) * | 2021-09-02 | 2023-03-09 | Canoo Technologies Inc. | Metamorphic labeling using aligned sensor data |
US20230082899A1 (en) * | 2021-09-14 | 2023-03-16 | Eduardo CORRAL-SOTO | Devices, systems, methods, and media for domain adaptation using hybrid learning |
-
2020
- 2020-07-20 US US17/627,520 patent/US20220277515A1/en active Pending
- 2020-07-20 EP EP20746133.6A patent/EP3970068A1/en active Pending
- 2020-07-20 US US17/627,508 patent/US20220284666A1/en active Pending
- 2020-07-20 WO PCT/EP2020/070444 patent/WO2021013791A1/en unknown
- 2020-07-20 EP EP20745127.9A patent/EP3970067A1/en active Pending
- 2020-07-20 WO PCT/EP2020/070445 patent/WO2021013792A1/en unknown
- 2020-07-20 CN CN202080063511.1A patent/CN114365201A/zh active Pending
- 2020-07-20 CN CN202080063606.3A patent/CN114365195A/zh active Pending
- 2020-07-20 EP EP20743665.0A patent/EP3970066A1/en active Pending
- 2020-07-20 WO PCT/EP2020/070446 patent/WO2021013793A1/en unknown
- 2020-07-20 US US17/627,417 patent/US20220262100A1/en active Pending
- 2020-07-20 EP EP20743666.8A patent/EP3970122A1/en active Pending
- 2020-07-20 CN CN202080063535.7A patent/CN114424250A/zh active Pending
- 2020-07-20 WO PCT/EP2020/070442 patent/WO2021013790A1/en unknown
- 2020-07-20 CN CN202080063507.5A patent/CN114365200A/zh active Pending
- 2020-07-20 US US17/627,404 patent/US20220319043A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114365195A (zh) | 2022-04-15 |
US20220319043A1 (en) | 2022-10-06 |
WO2021013790A1 (en) | 2021-01-28 |
EP3970066A1 (en) | 2022-03-23 |
CN114424250A (zh) | 2022-04-29 |
WO2021013793A1 (en) | 2021-01-28 |
WO2021013791A1 (en) | 2021-01-28 |
CN114365201A (zh) | 2022-04-15 |
EP3970068A1 (en) | 2022-03-23 |
US20220277515A1 (en) | 2022-09-01 |
EP3970122A1 (en) | 2022-03-23 |
US20220284666A1 (en) | 2022-09-08 |
EP3970067A1 (en) | 2022-03-23 |
US20220262100A1 (en) | 2022-08-18 |
WO2021013792A1 (en) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220262100A1 (en) | Structure annotation | |
US11636686B2 (en) | Structure annotation | |
US11064178B2 (en) | Deep virtual stereo odometry | |
EP4191532A1 (en) | Image annotation | |
CN112991413A (zh) | 自监督深度估测方法和系统 | |
CN111563415A (zh) | 一种基于双目视觉的三维目标检测系统及方法 | |
Ding et al. | Vehicle pose and shape estimation through multiple monocular vision | |
CN115049700A (zh) | 一种目标检测方法及装置 | |
Badki et al. | Binary TTC: A temporal geofence for autonomous navigation | |
CN111340922A (zh) | 定位与地图构建的方法和电子设备 | |
US20230121534A1 (en) | Method and electronic device for 3d object detection using neural networks | |
CN110262487B (zh) | 一种障碍物检测方法、终端及计算机可读存储介质 | |
Alcantarilla et al. | Large-scale dense 3D reconstruction from stereo imagery | |
Islam et al. | MVS‐SLAM: Enhanced multiview geometry for improved semantic RGBD SLAM in dynamic environment | |
EP4055518A1 (en) | 3d object detection | |
CN112800822A (zh) | 利用结构约束和物理约束进行3d自动标记 | |
EP4226323A1 (en) | Method for determining a motion model of an object in the surroundings of a motor vehicle, computer program product, computer-readable storage medium, as well as assistance system | |
US20210390720A1 (en) | System of depth estimation and method thereof | |
Mukherjee | Design of Real Time System for SLAM and Semantic Mapping | |
Park | Event-based Optical Flow Estimation via Multi-layer Representation | |
WO2024194218A1 (en) | Detecting objects in point clouds | |
CN117795566A (zh) | 传感器数据中三维对象的感知 | |
CN111815667A (zh) | 一种相机移动条件下高精度检测运动目标的方法 |
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 |