CN112912890A - 用于使用生成模型生成合成点云数据的方法和系统 - Google Patents

用于使用生成模型生成合成点云数据的方法和系统 Download PDF

Info

Publication number
CN112912890A
CN112912890A CN201980058780.6A CN201980058780A CN112912890A CN 112912890 A CN112912890 A CN 112912890A CN 201980058780 A CN201980058780 A CN 201980058780A CN 112912890 A CN112912890 A CN 112912890A
Authority
CN
China
Prior art keywords
data
projected
point cloud
point clouds
generative model
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
CN201980058780.6A
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.)
Royal Institute For Learning Promotion / Mcgill University
Huawei Technologies Co Ltd
Original Assignee
Royal Institute For Learning Promotion / Mcgill University
Huawei Technologies 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
Application filed by Royal Institute For Learning Promotion / Mcgill University, Huawei Technologies Co Ltd filed Critical Royal Institute For Learning Promotion / Mcgill University
Publication of CN112912890A publication Critical patent/CN112912890A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • 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
    • 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/20084Artificial neural networks [ANN]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Optics & Photonics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

本申请描述了用于生成合成点云数据的方法和系统。通过将3D点云投影到具有旋转同变性的2D网格中来生成投影的2D数据网格。使用所投影的2D数据网格来学习生成模型,其中使用例如在生成对抗网络中的柔性卷积和转置柔性卷积运算来实现生成模型。学习到的生成模型被用于生成合成点云。

Description

用于使用生成模型生成合成点云数据的方法和系统
技术领域
本申请涉及一种学习用于生成合成点云数据的生成模型的系统和方法,以及一种使用学习到的生成模型根据分布中选择的数据生成合成点云数据的系统和方法。
背景技术
在许多自主任务中,了解环境起着关键作用。自主设备(例如,机器人或车辆)在执行自主任务中的成功取决于健壮的感观数据输入以及用于处理感观数据的算法。在许多情况下,感官数据带有噪声或一些感观数据缺失。为了能够处理这种情况,自主设备需要能够“理解”这类感观数据。人类具有这种能力。例如,如果一些视频帧中的一些像素丢失,则人类可以容易地“预测/想象”丢失的数据(例如,基于其具有关于那些像素的时间和空间信息,在其大脑中生成那些丢失的样本),并且对该视频仍具有相同的感知。
此外,许多自主任务需要在模拟器环境中进行测试甚至训练,因为在真实环境中训练和测试自主设备可能较困难,例如可能成本较高和/或安全性低(例如,在自主驾驶的情况下)。然而,许多传统的模拟器不能为自主设备提供真实的感观数据。结果,在模拟器中训练和测试的自主设备可能在真实环境中不能很好地操作。因此,需要建立能够产生更真实数据的模拟器。
为了解决上述问题,需要一种用于生成合成数据的有效方法。近年来,研究人员已经成功地使用生成模型来生成图像和视频数据,例如Goodfellow等人在其论文(神经信息处理系统的进展,第2672-2680页,2014),以及Zhu等人在其论文(arXiv预印本,2017)进行了相关描述。然而,在大多数情况下,自主设备需要对真实环境进行三维(three-dimensional,3D)理解以便良好地操作,而这依赖于准确的3D感观数据(例如,以点云的形式)。生成点云是当前一项具有挑战性的任务。
生成模型是一类机器学习方法,其目的是从与训练数据相同的分布中生成样本。生成模型有不同的类型,如变分自编码器(variational auto-encoder,VAE)和生成对抗网络(generative adversarial network,GAN)。在其体系结构中使用卷积神经网络(convolution neural network,CNN)的许多生成模型需要逆卷积运算(例如,在VAE中的解码器中或者在GAN环境中的生成器中)。对于常规的卷积,该运算是转置卷积。许多基于深度学习的方法以不可逆的方式捕获局部特征。
因此,需要一种用于生成合成数据的系统和方法,以解决至少部分上述问题。
发明内容
本申请提供了用于以点云的形式生成合成数据的方法和系统。所公开的方法和系统在训练阶段从点云学习生成模型,并且在推理阶段从学习到的生成模型生成合成点云。在一些示例中,所公开的方法和系统可以利用深度神经网络(deep neural network,DNN)体系结构。本申请还描述了用于将数据点从点云排序和投影到基于网格的数据结构中的方法和系统,其有助于提高在训练阶段学习生成模型的效率。
根据本申请的一个方面,提供了一种方法,所述方法包括:获得表示3D环境的第一批点云;通过将所述第一批点云中的每一个点云投影到具有旋转同变性的投影二维(two-dimensional,2D)数据网格中,为第一批点云中的每一个点云生成投影2D数据网格;在训练阶段,学习生成一批或多批合成点云的生成模型,通过为所述生成模型提供第一批次每一个点云的投影2D数据网格来学习生成模型,其中,生成模型包括柔性卷积运算和转置柔性卷积。
根据前述方面,所述方法还包括:使用学习到的生成模型,从数据中生成一个或多个批次的合成点云,所述数据从一个分布中采样得到。
根据任一前述方面,所述生成所述投影的2D数据网格还包括:通过将所述网格的元素从所述投影的2D数据网格的一条边缠绕到相对边来填充所述投影的2D数据网格;在所述训练阶段,利用投影后的2D数据网格对填充后的生成模型进行学习。
根据任一前述方面,使用以下公式将第一批点云中的每个点云投影到所投影的2D数据网格:
Figure BDA0002967721790000021
其中x、y和z表示点云中数据点的3D坐标。
根据前述方面,通过添加包含来自所投影的2D数据网格的原始最右列的元素的添加的最左列,以及添加包含来自所投影的2D数据网格的原始最左列的元素的添加的最右列,来填充所投影的2D数据网格,其中所填充的列的数目由卷积核的大小来确定。
根据任一前述方面,投影的2D数据网格中的每一行对应于点云中的相应闭环。
根据任一前述方面,所述方法还包括:使用所述一个或多个批次的合成点云来补充来自所述第一批次中的点云的任何缺失数据点。
根据前述的方面,所述方法还包括:将所述生成模型与序列模型相结合,其中,所述序列模型生成用于从所述第一批中的点云预测任何缺失数据点的合成时间数据。
根据前述的方面,学习到的生成模型是递归神经网络(recurrent neuralnetwork,RNN)。
根据任一前述方面,所述方法还包括:使用学习到的生成模型,根据自主设备的动作,从分布采样的数据生成一个或多个批次的合成点云。
根据本申请的一个方面,提供了一种方法,所述方法包括:获得表示3D环境的第一批点云;通过将第一批点云中的每一个点云投影到具有旋转同变性的投影2D数据网格中,为第一批点云中的每一个点云生成投影2D数据网格;在训练阶段,学习生成一批或多批合成点云的生成模型,所述生成模型是通过向所述生成模型提供所述第一批点云来学习的,其中所述投影的2D数据网格被用于识别最近的邻居,用于在学习期间执行柔性卷积运算和转置柔性卷积运算。
根据前述的方面,所述方法还包括使用学习到的生成模型从分布采样的数据生成一个或多个批次的合成点云。
根据前述方面,所述生成所述投影的2D数据网格还包括:通过将所述网格的元素从所述投影的2D数据网格的一条边缠绕到相对边来填充所述投影的2D数据网格;在所述训练阶段,利用投影后的2D数据网格对填充后的生成模型进行学习。
根据任一前述方面,所述方法还包括:将所述生成模型与序列模型相结合,其中,所述序列模型从所述第一批点云中的点云捕获用于预测任何缺失数据点的时间数据。
根据任一前述方面,学习到的生成模型是递归神经网络RNN。
根据本申请的另一个方面,提供了一种处理单元,所述处理单元包括:处理器;一种存储计算机可执行指令的存储器,所述计算机可执行指令在由所述处理器执行时使所述处理单元执行:获得表示3D环境的第一批点云;通过将第一批点云中的每一个点云投影到具有旋转同变性的投影2D数据网格中,为第一批点云中的每一个点云生成投影2D数据网格;在训练阶段,学习生成一批或多批合成点云的生成模型,通过为所述生成模型提供第一批次每一个点云的投影2D数据网格来学习生成模型,其中,生成模型包括柔性卷积运算和转置柔性卷积。
附图说明
现在将通过示例参考示出本申请的示例实施例的附图,其中:
图1是说明示例自主车辆的一些组件的框图;
图2示出了用于实现用于学习生成合成点云的生成模型的方法的处理系统的一些组件的框图;
图3是概念性地说明2D卷积如何被应用于基于网格的数据的图;
图4是相对于3D光检测和测距(light detection and ranging,LIDAR)坐标的2D图像坐标的示意图;
图5是根据本文描述的示例的投影2D网格的填充的示意图;
图6A-图6C是根据本文所述的示例的点云向2D网格的示例投影的示意图;
图7是用于学习生成合成点云的生成模型的示例方法的流程图。
在不同的附图中可以使用类似的附图标记来表示类似的部件。
具体实施方式
本申请的一些示例在自主车辆的环境下进行描述。然而,本文所公开的方法和系统也可适用于在自主设备之外的实现,例如在非车载设备和/或半自主设备的环境下。例如,需要使用点云训练和/或测试和/或可以受益于在操作期间合成点云的能力的任何系统或设备可以受益于本申请。此外,本申请的示例可用于学习在其他环境中生成合成点云的生成模型。
尽管本文描述的示例可以将汽车称为自主车辆,但是本申请的教导可以与其他形式的自主或半自主设备相关,所述自主或半自主设备包括例如电车,地铁、卡车、公共汽车、水面和水下船舶、飞机、无人机(也称为无人驾驶飞行器(unmanned aerial vehicle,UAV))、仓库设备、建筑设备或农场设备,并且可以包括载人车辆以及非载人车辆。本文所公开的方法和系统还可以与非车载装置(例如自主真空吸尘器和割草机)相关。
图1是示例性自主车辆100的某些组件的框图。尽管被描述为是自主的,但是所述车辆100可以以完全自主、半自主或完全用户控制的模式操作。在本申请中,所述车辆100描述在汽车的实施例中;然而,如上所述,本申请可以在其他车载或非车载机器中实现。
例如,所述车辆100包括传感器系统110、数据分析系统120、路径规划系统130、车辆控制系统140和机电系统150。其他系统和部件可以适当地包括在所述车辆100中。所述车辆的各种系统和部件可以相互通信,例如进行有线或无线通信。例如,所述传感器系统110可以与所述数据分析系统120、所述路径规划系统130和所述车辆控制系统140通信;所述数据分析系统120可以与所述路径规划系统130和所述车辆控制系统140通信;所述路径规划系统130可以与所述车辆控制系统140通信;所述车辆控制系统140可以与所述机械系统150通信。
所述传感器系统110包括用于收集关于所述车辆100的内部和/或外部环境的信息的各种传感单元。在所示的示例性实施例中,所述传感器系统110包括雷达单元112、LIDAR单元114、摄像头116和全球定位系统(global positioning system,GPS)单元118。所述传感器系统110可以包括其他传感单元,例如温度传感器、降水传感器或麦克风等。
在示例性实施例中,所述LIDAR单元114可以包括一个或多个LIDAR传感器,并且可以捕获关于所述车辆100的宽视图(例如,360°视图)中的数据。LIDAR数据(例如,由一个或多个LIDAR传感器获取的原始传感器数据)可以包括关于环境的3D信息,并且可以被处理以在3D空间中形成一组数据点。在本申请中,术语“3D点云”或“点云”将被用于指在空间中具有3D结构的一组数据点。3D点云中的每个数据点表示在3D空间中感测对象的3D坐标(例如,x、y和z值)。3D点云中的数据点组可以不规则地间隔开,这取决于被感测的环境。在一些示例中,除了3D坐标之外,点云中的每个数据点还可以包含其他信息,例如反射光的强度或检测时间。
使用各种传感单元112、114、116、118,所述传感器系统110可以收集关于所述车辆100的局部环境(例如,任何直接围绕的障碍物)的信息以及来自较宽附近区域的信息(例如,所述雷达单元112和所述LIDAR单元114可以收集来自所述车辆100周围高达100m半径或更大半径的区域的信息)。所述传感器系统110还可以收集关于所述车辆100相对于参考系的位置和方向的信息(例如,使用所述GPS单元118)。
所述传感器系统110与所述数据分析系统120通信,以便能够检测和识别所述车辆100的环境中的物体,例如检测和识别静止障碍物,或行人或另一车辆。所述数据分析系统120可以使用软件来实现,所述软件可以包括任何数量的独立或互连的模块或功能,例如包括机器学习算法和图像处理功能。所述数据分析系统120可以使用一个或多个专用图像处理单元来实现,或者可以使用所述车辆100的一个或多个通用处理单元来实现。所述数据分析系统120可以重复地(例如,以规则的间隔)从所述传感器系统110接收原始传感器数据,处理原始传感器数据,并实时或准实时地进行图像分析。所述数据分析系统120的输出可以包括例如2D和/或3D空间中的对象的标识,所述对象包括对象类别、对象位置和对象边界。
由所述传感器系统110获取并由所述数据分析系统120处理的数据可以被提供给所述路径规划系统130。所述车辆控制系统140用于基于由所述路径规划系统130设定的目标来控制所述车辆100的操作。所述车辆控制系统140可用于为所述车辆100提供完全的、部分的或辅助的控制。所述机电系统150从所述车辆控制系统140接收控制信号以操作所述车辆100的机械和/或机电部件,例如发动机、变速器、转向系统和制动系统。
所述传感器系统110、所述数据分析系统120、所述路径规划系统130和所述车辆控制系统140可以单独地或组合地至少部分地在所述车辆100的一个或多个处理单元中实现。
在真实环境中操作之前,可能需要训练和/或测试所述车辆100进行所需操作。在训练和/或测试期间,可以在所述车辆100的环境之外训练和/或测试所述数据分析系统120、所述路径规划系统130和/或所述车辆控制系统140。例如,所述数据分析系统120的一个或多个模块可以是基于机器学习的模块,其实现使用诸如深度学习的机器学习算法学习的模型。所述基于机器学习的模块可以使用诸如卷积神经网络CNN的神经网络来实现,所述神经网络可以被训练和/或测试。训练和/或测试卷积神经网络可以使用真实数据(例如,通过在真实环境中操作所述车辆100而获得)和/或使用合成数据来进行。通常生成合成数据以模拟将经由所述传感器系统110接收的真实数据。
在真实操作期间,所述车辆100还可以利用合成数据。例如,所述传感器系统110的一个或多个传感器可以被阻挡或以其他方式阻止在真实操作中的某一点获得感测数据(例如,由于LIDAR单元114的临时遮挡)。所述车辆100可以生成合成数据以估计至少一些丢失的数据。例如,所述传感器系统110可以实现用于在缺失数据时生成这种合成数据的学习生成模型。
作为示例,图2示出了处理单元200的示例,所述处理单元200可以用于在训练阶段从多批真实点云中学习生成模型,并且用于实现学习到的生成模型,以从下面进一步详细描述的分布中采样的数据中生成合成数据。在一些实施例中,所述处理单元200例如可以在图1的所述车辆100中实现,以便实现用于在所述车辆100的操作期间生成合成数据的学习到的生成模型。所述处理单元200还可以设置在所述车辆100的外部,例如,为了实现学习到的生成模型,所述生成模型生成用于在真实环境(例如,在模拟内)外部训练和/或测试所述车辆100的合成数据。
在该示例中,所述处理单元200包括耦合到电子存储器220和一个或多个输入和输出接口或设备230的一个或多个物理处理器210(例如,微处理器、图形处理单元、数字信号处理器或其他计算元件)。所述电子存储器220可以包括有形存储器(例如闪存)和瞬态存储器(例如RAM)。所述有形存储器可存储指令、数据和/或软件模块以供处理器执行以执行本文所述的示例。所述电子存储器220可以包括任何合适的易失性和/或非易失性存储和检索设备。所述电子存储器220可以包括随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、硬盘、光盘、用户识别模块(subscriber identity module,SIM)卡、存储棒、安全数字(secure digital,SD)存储卡等中的一个或多个。
在图2的示例中,计算机指令和数据被存储在所述处理单元200的所述电子存储器220中,其使得所述处理器210能够生成合成数据,如本发明所公开的。
合成数据可能需要是3D点云的形式。例如,由LIDAR单元获取的原始数据通常是点云的形式,并且可能希望以类似的形式生成合成数据。
对2D图像应用卷积的成功已经导致希望使用卷积来处理3D点云。然而,与2D图像不同,3D点云通常对于排列是不变的。已经进行了使用深度神经网络DNN处理点云数据的研究。PointNet(例如,如Qi等人在会刊计算机视觉和模式识别(CVPR)(IEEE,1(2),4,2017中所述)是使用排列不变运算(最大运算)的DNN的一个示例,所述排列不变运算能够有效地捕获全局特征。然而,已经发现PointNet在提取局部特征方面是不成功的。其他DNN,例如Pointnet++(例如,如Qi等人在神经信息处理系统的进展,第5099-5108页,2017中所述)、Pointnet CNN(例如,如Li等人在arXiv预印本(arXiv编号:1801.07791,2018)所述),以及其他CNN,例如ModelNet(例如,如Simonovsky等人在会刊CVPR,2017年7月)介绍了能够提取局部和全局特征的点云卷积的变体。
对于生成模型,期望算子相对于数据点在3D点云中的位置是可微分的(例如,如由x、y、z坐标所定义的)。这有助于实现更好的梯度流,以便在训练阶段能更有效地学习梯度模型。梯度流对于所有机器学习算法通常都是重要的。
生成对抗网络GAN是一种生成合成数据的生成模型。GAN生成模型包括生成器和鉴别器。所述生成器用于生成合成点云,并且所述鉴别器评估所述合成点云。所述生成器的目的是生成不能被鉴别器从真实点云(例如,从原始LIDAR传感器数据生成的点云)中区分的合成点云。通常,在训练阶段,使用真实点云训练GAN,直到由生成器(使用学习到的生成模型)生成的合成点云不能被鉴别器从真实点云中区分出来。可以使用诸如CNN的神经网络来实现所述鉴别器,并且可以使用另一种神经网络诸(例如,去卷积神经网络)来实现所述生成器。尽管本申请描述了使用神经网络来学习和部署生成模型的示例,但是这不是限制性的,即也可以使用其他机器学习方法。
在GAN的情况下,数据的梯度流至关重要,因为所述生成器学习的唯一方式是从所述鉴别器接收梯度。在所提出的点云卷积中,柔性卷积可以允许梯度的这种传播。Groh等人在arXiv预印本(arXiv编号:1803.07289,2018)中描述了柔性卷积。柔性卷积通过卷积权重经由空间相关性将图像上的公共卷积算子从2D网格扩展到任意3D位置。因此,柔性卷积提供了一种用于将卷积应用于3D点云的方法,其中数据点可能具有不规则间隔的邻居。
当柔性卷积被用作变分自编码器(variational autoencoder,VAE)的GAN或DNN编码器的鉴别器的构造块时,可以在GAN的生成器的解码器或VAE的解码器中定义逆运算符(类似于转置卷积)。其他基于深度学习的方法以不可逆的方式捕获局部特征(例如,对相邻点进行分组并对每个组进行卷积(称为组运算)提取局部特征,但是不清楚如何对分组运算进行逆运算)。然而,当使用柔性卷积时,查询3D空间中的所有相邻点在计算上是昂贵的。为了解决此问题,本申请描述了一种将点云中的3D点投影到基于2D网格的数据结构的方法。
为了更好地理解本申请,考虑2D图像的数据结构。2D图像通常被编码为基于2D网格的数据结构。2D卷积可以被应用于基于网格的数据结构,例如图像。在这些结构中,每个元素的顺序是基于每个元素在网格中的位置来定义的。例如,如图3所示,网格的第i行和第j列中的元素被索引为元素aij。类似地,第i行和第j+1列中的元素被索引为元素ai(j+1);并且类似地,第i+1行和第j列中的元素被索引为元素a(i+1)j。在2D卷积中使用这种索引顺序。例如,考虑包含9个元素的3×3 2D内核。为了对3×3网格中间的元素执行2D卷积,可以考虑8个相邻元素以及中心像素,例如使用线性卷积计算。
对于3D点云中的数据,点不是以2D网格的方式排序,并且3D点云中的任何给定点的邻居不容易被识别。考虑给定3D点云中的点的所有可能的邻居也可能需要进行大量的计算。在本申请中,通过为3D点云中的点定义基于网格的结构来解决此类问题。
例如,由Velodyne 64 LIDAR产生的3D点云可以分解为经过360°的64次扫描。在一些实施例中,水平维度和垂直维度可以被量化(例如,为了提升效率)。
当2D卷积被应用于2D数据(即,2D图像数据)时,运算具有平移同变性。类似地,定义点云投影到其上的基于网格的数据结构也应该具有旋转同变性特性。为了实现这一点,可以使用极坐标系统。
例如,考虑2D坐标系(例如,对于2D图像数据)和3D坐标系(例如,对于LIDAR数据),如图4所示。
3D点云到基于2D网格的数据结构的投影可以定义如下:
Figure BDA0002967721790000061
这种投影可以从概念上理解为将点云中的闭环投影到2D网格中的单行。当以这种方式投影时,每行中的第一个元素和最后一个元素实际上是彼此相邻的。为了确保投影的2D数据准确地反映这一点,2D数据网格的最左列和最右列可以用来自另一侧的值填充(而不是像在处理2D图像时那样通常进行零填充)。图5描述了这种情况的一个示例。对于投影的2D数据网格510,利用添加的最左列522以及添加的最右列524,生成填充的2D数据网格520,其中添加的最左列522包含来自原始投影数据网格510的最右列514的值,添加的最右列524包含来自投影的数据网格510的最左列512的值。可以通过将所添加的列522、524添加到所投影的数据网格510来生成所填充的数据网格520。或者,所述填充数据网格520可以是除了投影数据网格510之外创建的新数据结构。
图6A-图6C示出了使用上述方法如何将点云投影到2D数据网格的示例。图6A是3D点云610的2D表示。所述点云610包含360°视图中的信息,例如围绕LIDAR传感器的360°视图。在所示的2D表示中,所述传感器将位于图像的中心。图6B示出了点云610如何被投影到2D数据网格格式,如上所述。在所述点云610中突出显示三个闭环612、614、616。应当注意,环612、614、616不必是圆形的,也可以是不规则形状和不规则间隔的。每个闭环612、614、616被投影到2D数据网格620中的相应行626、624、626。虽然没有明确示出,但是2D数据网格620可以如上所述被填充。图6C示出了点云610的2D表示,以及在被投影之后2D数据网格620b的可视表示。
当点云被投影到2D数据网格时,可能丢失一些信息。可以通过如上所述生成填充数据网格来至少部分地解决这一问题,这有助于确保最左列和最右列上的相邻元素反映点云中的数据。不在2D数据网格的边处的其他元素可能较少地受到投影的影响。此外,通过这种方法获得的计算效率可以足以使任何可能的信息丢失作为折衷是可接受的。
在一些示例中,可能不需要如上所述对2D数据网格进行填充。例如(例如,在投影的2D数据网格具有大量列的情况下),通过省略添加的最左列和添加的最右列而丢失的信息可以被认为是可接受的。
在将点云投影到2D数据网格格式之后,将所投影的2D数据网格用作输入以学习生成模型,例如GAN生成模型。因此,可以学习生成模型以生成合成的3D点云。
图7示出了用于学习生成模型的方法700的流程图,所述生成模型从采样数据生成一个或多个批次的合成点云。
在702,获得第一批真实点云。第一批点云可以直接从LIDAR传感器获得,例如图1所示的LIDAR单元114的LIDAR传感器。第一批点云也可以例如从存储先前从LIDAR单元114获得的点云的数据库或存储器获得。
在704,投影所述第一批点云中的每个点云以生成投影的2D数据网格。所述2D数据网格可以具有与2D图像类似的格式。可以使用如上所述的公式来进行投影:
Figure BDA0002967721790000071
该运算可以帮助确保处理例如LIDAR点云所需的旋转同变性。可以使用其他公式来进行投影,例如可以使用实现旋转同变性的任何其他投影。例如,尽管本申请描述了一种投影,其中点云中的闭环被投影到2D数据网格中的行,但是其他方法可以将点云中的闭环投影到2D数据网格中的列。
现在描述产生投影的2D数据网格的另一示例方法,其实现旋转同变性。该示例方法生成具有H行和W列的数据网格。首先,根据仰角将点云中的数据点聚类在一起。这产生了H个簇,对应于H个LIDAR通道(每个通道在特定的仰角捕获数据)。对于每一个簇,按照方位角的递增顺序对数据点进行排序(在一些情况下,在来自LIDAR单元的原始数据已经被排序的情况下,这种排序可能不是必需的)。为了使网格每行具有固定数量的元素,360°被分成固定数量的仓,从而产生W个仓,每个仓限定方位角的范围。根据方位角,将簇内的数据点放置到相应的仓中。对于每个仓,计算属于该仓的数据点的平均值以获得单个代表值。这样,H×W个元素被填充到2D数据网格中。在一些实现方式中,2D网格可以具有深度3,其中x、y和z空间坐标中的每一个被记录在每个深度中。
可选地,在706处,填充所投影的数据网格,使得在所投影的数据网格的边处的元素缠绕到相对的边。
在投影数据网格包含与3D点云中的闭环对应的行的示例中,可以通过添加包含来自原始投影数据网格的最右列的元素的添加的最左列,以及添加包含来自投影数据网格的原始最左列的元素的添加的最右列来填充2D数据网格。填充到所得到的2D数据网格的边的列的数目取决于内核卷积的大小。
在3D点云中的环被投影到2D数据网格中的列的情况下,可以修改填充。在此类示例中,可以通过添加来自投影数据网格的原始最底行的包含元素的添加的最顶行,以及添加来自投影数据网格的原始最顶行的包含元素的添加的最底行来填充投影数据网格。对于不同的投影方法,可以使用对填充操作的其他此类修改。
可以通过将所添加的列/行直接添加到所投影的数据网格来填充所投影的数据网格,或者可以为所填充的数据网格创建新的数据结构。以这种方式填充数据网格可以帮助生成模型理解靠近数据网格边的点之间的关系。
在708处,使用所投影的数据网格(具有或不具有填充符)来学习生成模型。生成模型可以使用柔性卷积运算和转置柔性卷积运算,并且可以使用如上所述的GAN来学习。生成模型的学习可以包括重复使用不同批次的真实点云来执行702-708。
可以通过将投影数据网格输入到生成模型来学习生成模型,以便学习从采样的2D数据生成合成点云的生成模型。
在另一种可能的方法中,可以通过将3D点云输入到生成模型来学习生成模型,以便学习从采样的3D数据生成合成点云的生成模型。如上所述,柔性卷积被用于学习生成模型。在这种方法中,投影的2D数据网格不是直接用作生成模型的输入,而是帮助执行柔性卷积。投影的2D数据网格被用于为点云中的每个数据点识别最近的相邻点,用于计算柔性卷积。例如,对于点云中的给定数据点,2D数据网格中的相应数据元素以及2D数据网格中的相邻元素(例如,k个最近的邻居)被识别。然后,在2D数据网格中识别的那些相邻元素被返回到点云,以便识别点云中的相邻数据点。然后,可以使用点云中的那些识别出的相邻数据点来执行柔性卷积。
在710处,在已经适当地学习了生成模型之后,可选地,可以使用所述生成模型来生成一批合成3D点云。例如,从所选择的分布(例如,正态分布、高斯分布或多项式分布,以及其他可能性和取决于期望的应用)采样的数据可以作为输入提供给学习到的生成模型,以用于生成此批合成3D点云。
在一些示例中,步骤710可与方法700的其他步骤分开进行。例如,可以在一种环境中(例如,在实验室环境中)学习生成模型,并且学习到的生成模型可以用于在不同的环境中(例如,在自主车辆中)生成一批合成点云。因此,本申请还描述了一种使用已经以上述方式学习到的生成模型来生成一批合成点云的方法。
在一些示例中,步骤702-708可以反复执行。例如,学习生成模型可以包括使用第二批点云生成投影的2D数据网格,以及使用第二批点云和相应的投影的2D数据网格来进一步学习生成模型。在一些示例中,步骤702-708可以与710并行地执行。也就是说,生成模型的学习可以随着时间的推移而继续,并且可以与通过生成模型生成合成数据并行地执行。
方法700可用于生成用于训练和/或测试目的的批量合成点云,例如用于训练和/或测试自主或半自主设备。
所述方法700可以至少部分地在自主设备中实现。例如,至少使用经过训练的生成模型来生成合成点云数据可以在自主车辆中实现(例如,以补充丢失的传感器数据)。
在一些示例中,所述方法700可在同一处理系统上一起执行。在其他示例中,所述方法700的部分可单独执行,且可由不同系统执行。
所述方法700可以至少部分地由图2的处理单元200执行。例如,所述处理单元200可以执行指令以执行上述步骤702-706,从而从点云生成投影的2D数据网格。所述处理单元200可执行指令以执行上述步骤708,从而使用所投影的2D数据网格作为输入来学习生成模型。所述处理单元200可以执行上述步骤710,以实现生成合成点云的学习到的生成模型。
在这里描述的示例中,本申请使得能够生成更准确地反映真实点云(例如,来自LIDAR单元的数据)的合成点云。所述合成点云可以由以无监督方式学习到的生成模型生成。
以这种方式生成的合成点云可用于补充点云中的缺失点云和/或缺失数据点(例如,使用LIDAR单元获得的真实点云)。
在一些示例中,学习到的生成模型可以与序列模型相结合。可以学习序列模型以生成合成点云的序列。这可以用于生成合成时间数据,例如用于预测和/或补充真实点云中的丢失数据。所述序列模型可以使用具有柔性卷积运算的递归神经网络RNN来实现。在此类实现方式中,学习到的生成模型可以用在RNN的神经元中。在一些实施例中,RNN可以是学习到的生成模型。
在一些示例中,当在自主设备(例如,自主车辆)中实现学习到的生成模型时,可以根据(或响应于)自主设备的动作来生成一批合成点云。这种动作可以在真实中或在模拟中执行。例如,自主设备的动作(例如左转)可以被反馈到生成模型,以使生成模型能够生成反映该动作的合成点云。
在一些示例中,本申请描述了一种方法,所述方法包括使用生成模型来生成一组合成点云数据,所述生成模型是使用生成对抗网络中的柔性卷积来实现的。使用一个或多个投影的二维数据网格训练生成模型,通过将每组点云数据投影到相应的投影的2D数据网格同时保持旋转同变性,从相应的3D点云数据组生成投影的2D数据网格。
尽管本申请以某种顺序描述了具有步骤的方法和过程,但是可以适当地省略或改变方法和过程的一个或多个步骤。根据需要,一个或多个步骤可以以不同于它们所描述的顺序的顺序进行。
尽管至少部分地根据方法来描述本申请,但是本领域的普通技术人员将理解,本申请还涉及用于执行所描述的方法的至少一些方面和特征的各种组件,无论是借助于硬件组件,软件还是两者的任何组合。相应地,本申请的技术方案可通过软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其他类似的非易失性或非暂时性计算机可读介质中,包括例如DVD、CD-ROM、USB闪存盘、可移动硬盘或其他存储介质。软件产品包括有形地存储在其上的指令,所述指令使得处理设备(例如,个人计算机、服务器或网络设备)能够执行本文所公开的方法的示例。
在不脱离权利要求的主题的情况下,本申请可以以其他具体形式来体现。所描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。选自一个或多个上述实施例的特征可以被组合以创建未明确描述的替代实施例,适于这种组合的特征应理解为被包括在本申请的范围内。
还公开了所公开的范围内的所有值和子范围。而且,尽管本文所公开和示出的系统,设备和过程可以包括特定数量的元件/组件,但是可以将系统、设备和组件修改为包括另外的或更少的此类元件/组件。例如,尽管所公开的任何元件/部件可以被称为单数,但是这里所公开的实施例可以被修改为包括多个此类元件/部件。本文描述的主题旨在覆盖和涵盖技术上的所有合适的变化。

Claims (19)

1.一种方法,其特征在于,包括:
获取表示三维3D环境的第一批点云;
通过将第一批点云中的每一个点云投影到具有旋转同变性的投影二维2D数据网格中,为第一批点云中的每一个点云生成投影2D数据网格;以及
在训练阶段,学习生成模型,所述生成模型用于生成一个或多个批次的合成点云,通过为所述生成模型提供第一批次的每个点云的投影2D数据网格来学习所述生成模型,其中,所述生成模型包括柔性卷积运算和转置柔性卷积运算。
2.根据权利要求1所述的方法,其特征在于,还包括:
使用学习到的生成模型,根据从分布中采样的数据生成一批或多批合成点云。
3.根据权利要求1或2所述的方法,其特征在于,所述生成所述投影的2D数据网格还包括:
将投影的2D数据网格的元素从投影的2D数据网格的一条边向相对的边绕接,以填充投影的2D数据网格;以及
在所述训练阶段,使用填充之后的投影2D数据网格学习生成模型。
4.根据权利要求1至3中任一项所述的方法,其特征在于,使用以下公式将所述第一批点云中的每个点云投影到所述投影的2D数据网格:
Figure FDA0002967721780000011
其中x、y和z表示点云中数据点的3D坐标。
5.根据权利要求4所述的方法,其特征在于,所述投影的2D数据网格是通过添加包含来自所述投影的2D数据网格的原始最右列的元素的添加的最左列,以及添加包含来自所述投影的2D数据网格的原始最左列的元素的添加的最右列来填充的,其中所填充的列的数目由卷积核的大小来确定。
6.根据权利要求5所述的方法,其特征在于,所述投影的2D数据网格中的每一行对应于所述点云中的相应闭环。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:
使用所述一个或多个批次的合成点云补充来自所述第一批次中的点云的任何缺失数据点。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:
将所述生成模型与序列模型相结合,其中,所述序列模型生成合成时间数据,所述合成时间数据用于预测所述第一批次的点云中的任何缺失数据点。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述学习到的生成模型是递归神经网络RNN。
10.根据权利要求1所述的方法,其特征在于,还包括:
使用学习到的生成模型,根据自主设备的动作,从分布中采样的数据生成一批或多批合成点云。
11.一种处理单元,其特征在于,包括:
处理器;
一种存储计算机可执行指令的存储器,所述计算机可执行指令在由所述处理器执行时使所述处理单元执行根据权利要求1至10中任一项所述的方法。
12.一种存储指令的计算机可读存储器,其特征在于,所述指令在由处理单元的处理器执行时使所述处理单元执行根据权利要求1至10中任一项所述的方法。
13.一种方法,其特征在于,包括:
获取表示3D环境的第一批点云;
通过将第一批点云中的每一个点云投影到具有旋转同变性的投影2D数据网格中,为第一批点云中的每一个点云生成投影2D数据网格;以及
在训练阶段,学习生成模型,所述生成模型用于生成一个或多个批次的合成点云,通过向所述生成模型提供第一批次的点云来学习所述生成模型,其中投影的2D数据网格被用于识别最近的邻居,用于在学习期间执行柔性卷积运算和转置柔性卷积运算。
14.根据权利要求13所述的方法,其特征在于,还包括:
使用学习到的生成模型,根据从分布中采样的数据生成一批或多批合成点云。
15.根据权利要求13或14所述的方法,其特征在于,所述生成所述投影的2D数据网格还包括:
将投影的2D数据网格的元素从投影的2D数据网格的一条边向相对的边绕接,以填充投影的2D数据网格;以及
在所述训练阶段,使用填充之后的投影2D数据网格学习生成模型。
16.根据权利要求13至15中任一项所述的方法,其特征在于,还包括:
将所述生成模型与序列模型相结合,其中,所述序列模型捕获时间数据,所述时间数据用于从所述第一批次的点云中预测任何缺失数据点。
17.根据权利要求13至16中任一项所述的方法,其特征在于,所述学习到的生成模型是递归神经网络。
18.一种处理单元,其特征在于,包括:
处理器;
一种存储计算机可执行指令的存储器,所述计算机可执行指令在由所述处理器执行时使所述处理单元执行根据权利要求13至17中任一项所述的方法。
19.一种存储指令的计算机可读存储器,其特征在于,所述指令在由处理单元的处理器执行时使所述处理单元执行根据权利要求13至17中任一项所述的方法。
CN201980058780.6A 2018-09-14 2019-09-14 用于使用生成模型生成合成点云数据的方法和系统 Pending CN112912890A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862731690P 2018-09-14 2018-09-14
US62/731,690 2018-09-14
US16/568,885 2019-09-12
US16/568,885 US11151734B2 (en) 2018-09-14 2019-09-12 Method and system for generating synthetic point cloud data using a generative model
PCT/CN2019/105854 WO2020052678A1 (en) 2018-09-14 2019-09-14 Method and system for generating synthetic point cloud data using a generative model

Publications (1)

Publication Number Publication Date
CN112912890A true CN112912890A (zh) 2021-06-04

Family

ID=69773051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980058780.6A Pending CN112912890A (zh) 2018-09-14 2019-09-14 用于使用生成模型生成合成点云数据的方法和系统

Country Status (3)

Country Link
US (1) US11151734B2 (zh)
CN (1) CN112912890A (zh)
WO (1) WO2020052678A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024119906A1 (zh) * 2022-12-07 2024-06-13 上海禾赛科技有限公司 激光雷达、数据处理方法及光探测和数据采集处理装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK201970115A1 (en) * 2018-11-08 2020-06-09 Aptiv Technologies Limited DEEP LEARNING FOR OBJECT DETECTION USING PILLARS
US20200241542A1 (en) * 2019-01-25 2020-07-30 Bayerische Motoren Werke Aktiengesellschaft Vehicle Equipped with Accelerated Actor-Critic Reinforcement Learning and Method for Accelerating Actor-Critic Reinforcement Learning
US11016496B2 (en) 2019-04-10 2021-05-25 Argo AI, LLC Transferring synthetic LiDAR system data to real world domain for autonomous vehicle training applications
US10962630B1 (en) * 2019-10-18 2021-03-30 Toyota Research Institute, Inc. System and method for calibrating sensors of a sensor system
US11295517B2 (en) * 2019-11-15 2022-04-05 Waymo Llc Generating realistic point clouds
CN111683257B (zh) * 2020-04-30 2022-04-26 中山大学 一种基于邻近点投影分布特征的点云快速投影方法
US11893744B2 (en) * 2020-05-11 2024-02-06 Cognex Corporation Methods and apparatus for extracting profiles from three-dimensional images
KR102398931B1 (ko) * 2020-05-11 2022-05-17 성균관대학교산학협력단 포인트 오토인코더, 듀얼 오토인코더, 및 이를 이용한 포인트 클라우드의 차원 변환 방법
CN111881790B (zh) * 2020-07-14 2023-04-28 武汉中海庭数据技术有限公司 一种高精度地图制作中道路人行横道自动化提取方法和装置
CN112200055B (zh) * 2020-09-30 2024-04-30 深圳市信义科技有限公司 联合对抗生成网络的行人属性识别方法、系统及装置
GB2607598A (en) * 2021-06-07 2022-12-14 Correvate Ltd Aligning 3D datasets
CN113313835B (zh) * 2021-07-29 2021-11-09 深圳市数字城市工程研究中心 一种基于机载LiDAR点云的建筑物屋顶自动建模方法
CN113591804B (zh) * 2021-09-27 2022-02-22 阿里巴巴达摩院(杭州)科技有限公司 图像特征提取方法、计算机可读存储介质以及计算机终端
CN114418852B (zh) * 2022-01-20 2024-04-12 哈尔滨工业大学 一种基于自监督深度学习的点云任意尺度上采样方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9349105B2 (en) * 2013-12-18 2016-05-24 International Business Machines Corporation Machine learning with incomplete data sets
CN107025642B (zh) * 2016-01-27 2018-06-22 百度在线网络技术(北京)有限公司 基于点云数据的车辆轮廓检测方法和装置
US10409950B2 (en) 2017-03-10 2019-09-10 General Electric Company Systems and methods for utilizing a 3D CAD point-cloud to automatically create a fluid model
CN106951847B (zh) 2017-03-13 2020-09-29 百度在线网络技术(北京)有限公司 障碍物检测方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024119906A1 (zh) * 2022-12-07 2024-06-13 上海禾赛科技有限公司 激光雷达、数据处理方法及光探测和数据采集处理装置

Also Published As

Publication number Publication date
US11151734B2 (en) 2021-10-19
US20200090357A1 (en) 2020-03-19
WO2020052678A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
US11151734B2 (en) Method and system for generating synthetic point cloud data using a generative model
US10915793B2 (en) Method and system for converting point cloud data for use with 2D convolutional neural networks
CN114723955B (zh) 图像处理方法、装置、设备和计算机可读存储介质
US11734918B2 (en) Object identification apparatus, moving body system, object identification method, object identification model learning method, and object identification model learning apparatus
US11556745B2 (en) System and method for ordered representation and feature extraction for point clouds obtained by detection and ranging sensor
Yao et al. Estimating drivable collision-free space from monocular video
CN115049700A (zh) 一种目标检测方法及装置
WO2020098674A1 (en) Method and system for deep neural networks using dynamically selected feature-relevant points from point cloud
Bu et al. Pedestrian planar LiDAR pose (PPLP) network for oriented pedestrian detection based on planar LiDAR and monocular images
CN116052026B (zh) 一种无人机航拍图像目标检测方法、系统及存储介质
CN115605918A (zh) 时空嵌入
CN115240168A (zh) 感知结果获取方法、装置、计算机设备、存储介质
CN114155414A (zh) 面向无人驾驶的新型特征层数据融合的方法、系统及目标检测方法
CN112906450A (zh) 确定车辆附近的占用地图的条目的车辆、系统和方法
US12079970B2 (en) Methods and systems for semantic scene completion for sparse 3D data
CN116778262B (zh) 一种基于虚拟点云的三维目标检测方法和系统
CN117470246A (zh) 路径规划方法、装置、存储介质及电子设备
CN115761552B (zh) 面向无人机机载平台的目标检测方法、设备及介质
CN114648639B (zh) 一种目标车辆的检测方法、系统及装置
Nair et al. Modified YOLOv4 for real-time coconut trees detection from an unmanned aerial vehicle
CN115223146A (zh) 障碍物检测方法、装置、计算机设备和存储介质
EP4260243A1 (en) Extracting features from sensor data
Zhang et al. A Self-Supervised Monocular Depth Estimation Approach Based on UAV Aerial Images
CN118226421B (zh) 基于反射率图的激光雷达-相机在线标定方法及系统
Zhao Empowering Computer Vision Models with Deep Learning for Robotic Perception and Drone Geolocation

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