CN114707628A - 用于3d对象检测的机器学习 - Google Patents
用于3d对象检测的机器学习 Download PDFInfo
- Publication number
- CN114707628A CN114707628A CN202111527530.8A CN202111527530A CN114707628A CN 114707628 A CN114707628 A CN 114707628A CN 202111527530 A CN202111527530 A CN 202111527530A CN 114707628 A CN114707628 A CN 114707628A
- Authority
- CN
- China
- Prior art keywords
- point
- hyper
- points
- point cloud
- learning
- 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
- 238000001514 detection method Methods 0.000 title abstract description 98
- 238000010801 machine learning Methods 0.000 title abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 179
- 238000013528 artificial neural network Methods 0.000 claims abstract description 104
- 238000011524 similarity measure Methods 0.000 claims description 20
- 238000001914 filtration Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 7
- 238000012549 training Methods 0.000 description 33
- 238000004519 manufacturing process Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 23
- 238000000605 extraction Methods 0.000 description 20
- 230000000875 corresponding effect Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 11
- 238000013459 approach Methods 0.000 description 9
- 241000196324 Embryophyta Species 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 239000010813 municipal solid waste Substances 0.000 description 5
- 238000000053 physical method Methods 0.000 description 5
- 238000011002 quantification Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000004807 localization Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000000513 principal component analysis Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- XSQUKJJJFZCRTK-UHFFFAOYSA-N Urea Chemical compound NC(N)=O XSQUKJJJFZCRTK-UHFFFAOYSA-N 0.000 description 2
- 239000004202 carbamide Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000012885 constant function Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 241000208125 Nicotiana Species 0.000 description 1
- 235000002637 Nicotiana tabacum Nutrition 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007636 ensemble learning method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- -1 hydrogen Chemical class 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- 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/04—Architecture, e.g. interconnection topology
-
- 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
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明尤其涉及一种机器学习的计算机实现的方法,其用于学习被配置用于将3D点云中的超点编码为本征矢量的神经网络。所述方法包括提供超点的数据集。每个超点是3D点云中的点的集合。所述点的集合表示对象的至少一部分。所述方法还包括基于超点的数据集来学习所述神经网络。所述学习包括使损失最小化。所述损失对两个超点之间的不一致进行处罚。这构成了用于3D对象检测的机器学习的经改进的方法。
Description
技术领域
本发明涉及计算机程序和系统的领域,并且更具体而言涉及用于3D对象检测的机器学习的方法、系统和程序。
背景技术
在市场上提供了用于对象的设计、工程设计和制造的许多系统和程序。CAD是针对计算机辅助设计的缩写,例如,其涉及用于设计对象的软件方案。CAE是针对计算机辅助工程的缩写,例如,其涉及用于模拟将来产品的物理行为的软件方案。CAM是针对计算机辅助制造的缩写,例如,其涉及用于定义制造过程和操作的软件方案。在这样的计算机辅助设计系统中,图形用户界面在技术效率方面发挥着重要的作用。这些技术可以被嵌入在产品生命周期管理(PLM)系统内。PLM指代跨扩展企业的概念来帮助公司共享产品数据、应用公共工艺、并且将企业知识用于从概念到其寿命结束的产品开发的商业策略。由Dassault Systèmes(以商标CATIA、ENOVIA和DELMIA)提供的PLM方案提供了组织产品工程知识的Engineering Hub、管理制造工程知识的Manufacturing Hub、以及使得企业能够集成并且连接到Engineering Hub和Manufacturing Hub两者中的Enterprise Hub。所述系统总体一起提供了一种将产品、工艺、资源链接在一起的开放对象模型,以实现动态的、基于知识的产品创建和决策支持,其推动了经优化的产品定义、制造准备、生产和服务。
在该上下文和其他上下文中,机器学习和3D对象检测正变得越来越重要。
然而,仍然需要用于3D对象检测的机器学习的经改进的方法。
发明内容
因此,提供了一种机器学习的计算机实现的方法,其用于学习被配置用于将3D点云中的超点(super-point)编码为本征矢量的神经网络。所述方法包括提供超点的数据集。每个超点是3D点云中的点的集合。所述点的集合表示对象的至少一部分。所述方法还包括基于所述超点的数据集来学习所述神经网络。所述学习包括使损失最小化。所述损失对两个超点之间的不一致进行处罚。
所述方法可以包括以下中的一项或多项:
-所述损失是重建损失,所述损失对超点与所述超点的重建之间的不一致进行处罚;
-所述不一致是所述超点与所述超点的重建之间的距离;
-所述距离是Chamfer距离或者Earth-Mover距离;和/或
-所述学习是无监督学习。
还提供了一种能根据所述方法来学习的神经网络。
还提供了一种对所述神经网络的计算机实现的使用方法。所述使用方法包括提供第一3D点云的一个或多个第一超点。所述第一3D点云表示3D场景。所述使用方法还包括提供第二3D点云的一个或多个第二超点。所述第二3D点云表示3D对象。所述使用方法还包括:通过应用所述神经网络,将所述一个或多个第一超点中的每个第一超点编码为相应的第一本征矢量,并且将所述一个或多个第二超点中的每个第二超点编码为相应的第二本征矢量。所述使用方法还包括通过以下操作来确定一个或多个第一超点中的每个第一超点与一个或多个第二超点中的每个第二超点之间的相似性:针对所述每个第一超点和所述每个第二超点,计算对所述第一超点进行编码的所述相应的第一本征矢量与对所述第二超点进行编码的所述相应的第二本征矢量之间的相似性度量。
所述使用方法可以包括以下中的一项或多项:
-对所述一个或多个第一超点的所述提供包括:
·提供所述第一3D点云中的一个或多个初始超点;
·通过在所述初始超点中选择如下的每个初始超点来对所述一个或多个初始超点进行过滤,对于所述每个初始超点:
○所述超点的维度(dimension)与至少一个第二超点的维度之间的不一致小于预定义阈值;和/或
○所述超点的位置与至少一个第二超点的位置之间的不一致小于预定义阈值,
所选择的超点是所述一个或多个第一超点;
-所述过滤包括在所述初始超点中选择如下的每个初始超点,对于所述每个初始超点:
·所述超点的每个维度与至少一个第二超点的对应维度之间的距离小于预定义阈值;和/或
·所述超点的每个维度与至少一个第二超点的对应维度之间的比率小于最大比率并且大于最小比率;和/或
·距所述超点的最近支撑表面的相对高度与距至少一个第二超点的最近支撑表面的相对高度之间的差异小于预定义阈值;
-所述方法还包括:在均具有所确定的与至少一个第二超点大于预定义阈值的相似性的第一超点中确定一组或多组第一超点,每组第一超点都具有与所述第二3D点云相似的形状;
-对所述一组或多组的所述确定包括:
·提供第二超点的图,所述第二超点的图具有节点和边缘,每个节点表示第二超点,每个边缘表示由所述边缘连接的节点表示的两个超点之间的几何关系并且具有所述几何关系的一个或多个几何属性;
·通过以下操作来形成一个或多个图,每个图具有节点,每个节点表示每个第一超点:构建边缘,每个边缘连接两个节点,并且每个边缘具有与所述第二超点的图的边缘的几何属性相似的一个或多个几何属性,每个形成的图对应于相应的组;和/或
-所述方法还包括:针对每个组,通过测量所述组中的所述第一超点与所述一个或多个第二超点之间的相似性来确定相似性得分。
还提供了一种包括指令的计算机程序,所述指令用于执行所述方法和/或所述使用方法。
还提供了一种包括数据存储介质的设备,所述数据存储介质在其上存储有所述计算机程序和/或所述神经网络。
所述设备可以形成或者充当例如在SaaS(软件即服务)或其他服务器、或者基于云的平台等上的非暂态计算机可读介质。所述设备可以替代地包括被耦合到所述数据存储介质的处理器。所述设备因此完整或部分(例如,所述设备是整体系统的子系统)地形成计算机系统。所述系统还可以包括被耦合到所述处理器的图形用户界面。
附图说明
现在将通过非限制性示例的方式并且参考随附的附图来描述本发明的实施例,在附图中:
图1示出了集成所述方法的过程的示例的流程图;
图2至图18图示了所述方法;并且
图19示出了所述系统的示例。
具体实施方式
提出了一种机器学习的计算机实现的方法,其用于学习被配置用于将3D点云中的超点编码为本征矢量的神经网络。所述方法包括提供超点的数据集。每个超点是3D点云中的点的集合。所述点的集合表示对象的至少一部分。所述方法还包括基于所述超点的数据集来学习所述神经网络。所述学习包括使损失最小化。所述损失对两个超点之间的不一致进行处罚。所述方法可以被称为“学习方法”。
所述学习方法形成了用于3D对象检测的机器学习的经改进的方法。
值得注意的是,所述学习方法使得能够在3D点云中进行3D对象检测。通过所述学习方法而学习的所述神经网络尤其能够被用在使用3D对象检测的许多应用中,诸如使用根据下文将论述的使用方法的3D对象检测的任意应用。所述应用可以是(例如,自动地)进行库存盘点和/或管理(例如,在工厂情境中,定位所有机器人以移动或替换所述机器人或者所述机器人中的一些)、(例如,自动)对象移除和/或替换(例如,在工厂情境中,自动地替换类似机器的所有扫描)、和/或(例如,工厂情境的)虚拟孪生子(twin)生成。虚拟工厂孪生子存在于CAD情境或者CAD情境与3D点云的混合体中,所述虚拟工厂例如表示被扫描或物理实际工厂的孪生子。最终,工厂情境的虚拟孪生子生成可以允许执行对工厂的模拟和/或对工厂的各种优化。
此外,所述学习方法学习能够以3D点云中的超点作为输入并且将所述超点编码为本征矢量的神经网络。换言之,所述学习方法学习能够将3D点云中的任意3D超点投射到本征表示中的神经网络。由于通过使处罚两个超点之间的不一致的损失最小化来训练/学习所述神经网络,所以所述神经网络将输入超点编码为本征矢量,所述本征矢量是所述超点在几何信息方面的有意义的表示。
实际上,所述损失以两个超点作为输入,并且计算这两个超点之间的不一致,并且由于所述损失对所述不一致做出处罚,所述损失往往在所述不一致高时具有大的值。由此,在所述学习期间,针对被用作训练样本的每个超点,所述超点被作为对所述损失的输入进行馈送,并且另一超点也被作为对所述损失的输入进行馈送,所述另一超点是根据对作为训练样本的超点进行编码的本征矢量而获得的(即,将所述神经网络应用于所述超点而获得的本征矢量)。换言之,所述损失对作为训练样本的超点与另一超点之间的不一致进行处罚。所述另一超点例如可以是通过对编码作为训练样本的所述超点的本征矢量进行解码而对所述超点的重建,在这种情况下,所述神经网络包括用于将超点编码为本征矢量的编码器以及用于将本征矢量解码为超点的解码器,如下文进一步论述的。例如,当所述神经网络为自动编码器时就是这种情况。然后,所述学习计算针对作为训练样本的所述超点与所述另一超点的损失值,所述损失以一对超点作为输入。所述损失的该值量化了在由所述损失作为输入的所述超点(在此,即作为训练样本的超点与另一超点)之间的几何不一致。因此,所述几何不一致是在作为训练样本的超点与其编码本征矢量的解码之间的不一致。由于所述损失对这样的不一致进行处罚,所以当所述不一致大时,所述值是大的。由于所述学习使所述损失最小化,所述学习在所述值大时修改所述神经网络的权重,因为大的值捕获的事实为:作为训练样本的超点的编码不足够令人满意。换言之,对作为训练样本的超点进行编码的所述本征矢量在所述值高时不充分准确地捕获该超点的几何形状,因此需要修改所述权重以改善该准确度。
因此,根据所述学习方法的所述学习往往确保将利用相似的本征矢量对具有相似几何形状的超点进行编码,并且将利用显著不同的本征矢量对具有不同几何形状的两个超点进行编码。又换言之,训练所述神经网络以将超点投射到表示有意义几何信息的本征表示中,即,所述学习旨在使对两个超点进行编码的本征矢量之间的距离与那两个超点的几何相似性高度相关。现在,由于3D点云中的超点是所述3D点云中描述所述3D点云的局部部分的点的子集(例如,局部形状,形成所述3D点云中的对象的至少一部分),所以由所述学习方法学习的所述神经网络允许将3D点云的局部部分编码为几何上有意义的本征矢量表示。
因此,所述神经网络是能够被用于在3D点云中执行3D对象检测的神经网络。因此,所述学习方法是用于3D对象检测的机器学习的方法。例如,给定包括一个或多个第一超点的第一3D点云和包括一个或多个第二超点的第二3D点云,所述神经网络能够将所述超点编码为本征矢量,所述本征矢量然后能够被用于计算在所述本征矢量之间的相似性度量。这允许确定哪些第一超点在几何上与第二超点相似,这允许在所述第一点云中检测与由所述第二点云表示的3D对象的局部形状相似的局部形状。最终,这些相似局部形状能够被使用/处理以输出第一3D点云中与由所述第二3D点云表示的3D对象相似的3D对象(即,由一个或多个检测到的局部形状形成)。例如,如果所述第一3D点云表示工厂/厂家,并且所述第二3D点云表示3D铰接机器人,则所述神经网络能够被用于检测工厂中与由所述第二3D点云表示的3D铰接机器人相似的(例如,所有)3D铰接机器人。此外,因为由所述学习方法操作的所述学习,所述检测是一般性的:所述神经网络不仅检测所述第一3D点云中的所述第二3D点云的精确实例,而且也检测所述第一3D点云中与由所述第二3D点云表示的对象部分相似的对象。换言之,给定由3D点云表示的单个3D对象,所述神经网络使得能够在更大的3D点云(例如,具有20倍多的点的3D点云)中定位部分相似的3D对象,例如,所述单个3D对象的实例的几何变换(例如,旋转或位置变化)、所述单个3D对象的实例的遮挡、以及在几何上与所述单个3D对象相似的其他类型的3D对象。
此外,所述学习不需要对训练数据集的任何标记。例如,所述学习可以是无监督学习,如自身在机器学习领域中公知的。这允许所学习的神经网络不知道要检测的3D对象的类别/类型,并且不知道检测的上下文/背景(例如,要检测的(一个或多个)对象是在室内场景中还是在室外场景中)。例如,一旦被训练,就可以使用所述神经网络在任何上下文中检测任何对象,诸如在所述学习期间看不到的对象和/或在所述学习期间看不到的上下文中检测任何对象。此外,所述神经网络不知道所输入的超点所属于的点云的类型(即,为了检测要有效,无需对点云获取的约束)。这共同使得所述神经网络是一般性的,并且对于用于3D点云中的3D对象检测特别稳健。所述神经网络例如可以基于合成点云被训练,并且然后被用于在实测3D点云上,即在由物理传感器获取的3D点云上,执行3D对象检测。
此外,对基于局部学习的表示(即,所述学习训练所述神经网络以对表示局部形状的超点进行编码)使得所述神经网络对于噪声、遮挡和点分布也是稳健的,而且对于不同类型的变换(例如,旋转)和对象位置(例如,铰接对象,诸如以铰接机器人臂为特征的铰接机器人)也是不变的。这使得所述神经网络对于用于在3D点云中的3D对象检测更加稳健。要指出的是,所述神经网络可以被用于在3D点云中检测与给定3D对象部分相似(即,并非其精确实例)的对象(即,如下文所论述的查询)。此外,所述神经网络不依赖于对象的颜色来对其进行检测:即使所述神经网络具有不同的颜色,所述神经网络也检测到相似的形状。
还提供了一种能根据所述学习方法来学习的神经网络,例如已经由所述学习方法学习的神经网络。所述神经网络形成具有神经元层的计算机化数据结构,所述神经元具有权重(也被称为参数),能通过根据所述学习方法的所述学习来设置(例如,已经设置)所述权重的值。
还提供了一种对所述神经网络的计算机实现的使用方法。所述使用方法包括提供第一3D点云的一个或多个第一超点。所述第一3D点云表示3D场景。所述使用方法还包括提供第二3D点云的一个或多个第二超点。所述第二3D点云表示3D对象。所述使用方法还包括:通过应用所述神经网络,将所述一个或多个第一超点中的每个第一超点编码为相应的第一本征矢量,并且将所述一个或多个第二超点中的每个第二超点编码为相应的第二本征矢量。所述使用方法还包括通过以下操作来确定一个或多个第一超点中的每个第一超点与一个或多个第二超点中的每个第二超点之间的相似性:针对所述每个第一超点和所述每个第二超点,计算对所述第一超点进行编码的所述相应的第一本征矢量与对所述第二超点进行编码的所述相应的第二本征矢量之间的相似性度量。所述使用方法可以被称为“检测方法”。
所述检测方法是用于在3D点云中进行3D对象检测的方法。所述检测方法形成用于在3D点云中进行3D对象检测的经改进的方法。实际上,所述使用方法允许检测所述第一3D点云中表示3D场景的第一超点,所述第一超点在几何上与所述第二3D点云中表示3D对象的第二超点相似。换言之,所述第二超点中的每个第二超点表示所述对象的局部部分,并且所述检测方法检测所述第一点云中在几何上与所述对象的这些局部部分相似的局部部分(即,第一超点)。这允许在由所述第一3D点云表示的所述3D场景中检测与由所述第二3D点云表示的3D对象相似的3D对象。
为了检测相似的3D对象,所述检测方法使用所述神经网络将所述超点编码为本征矢量,并且然后确定在经编码的超点之间的相似性度量。由此,所述检测方法受益于所述神经网络的稳健性,如先前所解释的,所述神经网络将输入的超点投射到在几何上有意义的本征表示上。对两个超点之间的相似性的所述确定是准确的,因为其计算在对所述两个超点进行编码的所述本征矢量之间的相似性度量,如先前所论述的,所述本征矢量是两个超点的有几何意义的表示。换言之,如果在所述本征矢量之间检测到相似性,则其意指在所述两个超点之间存在对应的几何相似性。由此所述检测方法允许在3D点云中对相似3D对象的稳健的检测。
所述学习方法和所述检测方法可以由例如不同用户和/或在不同计算机上独立地执行。替代地,其可以被集成到同一计算机实现的过程中。现在参考图1来论述所述过程,图1示出了所述过程的示例的流程图。
所述过程包括离线阶段,所述离线阶段集成了所述学习方法。所述离线阶段包括根据所述学习方法提供S10-S20超点的数据集。所述离线阶段还包括根据所述学习方法基于所述超点对所述神经网络的学习S20。所述离线阶段还可以包括在存储器上存储所学习的神经网络。
所述过程还包括在线阶段,所述在线阶段集成了所述检测方法。所述在线阶段包括根据所述检测方法来提供S40-S50一个或多个第一超点以及一个或多个第二超点。在此之前,所述在线阶段可以包括提供所学习的神经网络,例如,通过从存储器取回所学习的神经网络,在所述离线阶段处学习之后已经将所学习的神经网络存储在所述存储器中。所述在线阶段还包括根据所述检测方法对所述第一超点和所述第二超点进行编码S60。所述在线阶段还包括根据所述检测方法来确定S70在一个或多个第一超点与一个或多个第二超点之间的相似性。
现在进一步论述所述学习方法。
所述学习方法是用于在点云中进行3D对象检测的机器学习的方法。
如自身所公知的,3D点云是3D点的无序集合,所述3D点具有坐标(通常是3D的),所述坐标能够可选地伴随有额外特性(例如,被囊括在额外坐标中),诸如强度或颜色。这种数据的无序方面使得难以进行分析,尤其是与诸如图像的结构化网格相比时。例如,根据被用于捕获产生3D点云的3D扫描的传感器,存在不同格式的3D点云,但是如先前所论述的,所述神经网络不知道这些不同格式。当前,现有传感器能够提供数百万点的3D点云,给出极高质量的极致密3D扫描。在本文中的任何3D点云都源自这样的致密3D扫描。点云也能够根据其他3D表示(诸如CAD对象或网元)来生成。在本文中的任何3D点云都源自这样的生成。下文进一步论述这一点。
3D点云中的3D对象检测对应于在3D场景中检测/定位特定3D形状或3D对象的任务。所述检测可以使用3D边界框,例如,通过围绕每个被检测对象画出3D边界框以指示已经进行了检测。在本公开的上下文中,3D形状能够是3D对象或者仅仅是其一部分。所述检测检测到均与输入形状相似的一个或多个形状。在本公开的上下文中,3D对象之间的相似性包括全局几何相似性和局部几何相似性两者。
如自身所公知的,3D点云是3D点的集合,例如,每个3D点由3D空间中的三个笛卡尔坐标来描述。这相当于说在本文中的每个点云可以被关联到三元组集合,每个三元组表示3D点云中的点的3D坐标。在本文中的任何3D点云可以表示3D真实场景,真实场景是真实世界的一段(例如,工厂场景或办公室场景),3D点云中的每个点表示所述场景的点。“表示真实场景”未必意指3D点云源自在真实世界中执行的物理测量。例如,在本文中的任何3D点云都可以是真实场景的合成表示,如下文进一步论述的。在本文中的任何3D点云都可以表示或者包括3D对象或者可以包括若干个3D对象。所述3D点云中的每个对象在此都是所述3D点云中的点的集合,每个点表示如其在真实世界中那样的3D对象的点,所述点的集合共同形成真实世界的3D对象的表示。
在本文中的任何3D点云都可以是合成点云,即,源自合成3D点云生成过程的点云。换言之,表示真实场景的合成点云并非源自为了捕获真实场景的表示而对真实场景执行的物理测量,而是源自虚拟的数字方式生成的真实场景的表示。所述合成点云生成过程指定输出合成3D点云的任何计算机实现的过程。例如,所述生成过程可以从任何其他3D几何表示,诸如CAD模型或3D网格,来生成3D点云。所述生成过程例如可以是参考下文的过程:Xiangyu Yue等人,“A LiDAR Point Cloud Generator:from a Virtual World toAutonomous Driving”,2018,在此通过引用将其并入,并且所述文章提出了虚拟扫描仪模拟,以从3D CAD场景(例如,视频游戏环境)提取点云。
替代地,在本文中的任何3D点云都可以源自在真实场景上的物理测量。提供这样的3D点云可以包括提供一个或多个物理传感器(例如,固定或移动的3D扫描,诸如固定或移动的激光雷达(LIDAR)),每个物理传感器都被配置用于:获取相应的物理信号;以及通过在真实场景上操作所述一个或多个物理传感器(即,利用每个传感器扫描所述真实场景)来获取一个或多个相应的物理信号。提供所述3D点云然后可以包括根据任何已知的技术基于所述测量来自动地确定3D点云。要指出的是,现有传感器能够提供数百万点的云,给出极高质量的极致密3D扫描。在本文中的任何3D点云都可以由诸如3D扫描仪的这样的传感器(例如,激光雷达)来获取,其广泛用于收集真实环境的3D点云表示。现在若干个点云数据集公开可用于室外上下文,诸如参考以下文章论述的这样的数据集:Timo Hackel等人,“SEMANTIC3D.NET:A new large-scale point cloud classification benchmark”,ISPRS2017;以及Andreas Geiger等人,“Are we ready for Autonomous Driving?The KITTIVision Benchmark Suite”,CVPR 2012,这两篇文章都通过引用并入本文,以及对于室内上下文,例如参考下文论述的数据集:Iro Armeni等人,“3D Semantic Parsing of Large-Scale Indoor Spaces”,CVPR 2016,在此通过引用将其并入本文。本文中的任何3D点云都可以从这些数据集中的任意一个数据集获取。
在本文中的任何3D点云可以包括超过10000、100000、1000000、10000000或100000000个点。例如,表示场景(例如,工厂/厂家场景)的3D点云可以包括超过10000000或100000000个点。表示3D对象的任何3D点云可以包括大约少20倍的点。
在本文中的任何3D点云可以表示制造场景,例如工厂/厂家的内部(或者其部分)。这样的场景可以包括制造世界的对象,其由3D点云的多个部分/部件来表示。在本文中的任何3D点云也可以简单地表示这样的对象。这样的对象可以是(例如,机械)部件或者部件的组件(或者等价地,部件的组件,因为部件的组件可以被视为部件自身),或者更一般地是任何刚体组件(例如,移动机构)。所述对象可以属于各个工业领域:航空、建筑、建设、消费品、高科技设备、工业仪器、运输、航海、和/或离岸油气生产或运输。因此,所述对象可以表示工业产品,所述工业产品可以是任何机械部件,诸如陆地交通工具(例如包括汽车或轻型卡车设备、赛车、摩托车、卡车和摩托车设备、卡车和公共汽车、火车)的部件、航空交通工具(例如,包括飞机机身设备、航空设备、推进设备、国防产品、民航设备、空间设备)的部件、航海交通工具(例如,包括航海设备、商业船只、离岸设备、游艇和作业船、海洋设备)的部件、一般机械部件(例如,包括工业制造机械、重型移动机械或设备、安装的设备、工业设备产品、制造的金属产品、轮胎制造产品)、机电或电子部件(例如,包括消费电子产品、安全和/或控制和/或仪表产品、计算和通信设备、半导体、医疗设备和设备)、消费品(例如,包括家具、家庭和园艺产品、休闲商品、时尚产品、耐用品零售商的产品、消耗品零售商的产品)、包装(例如,包括食品和饮料和烟草、美容和个人护理、家居产品包装)。所述对象还可以是制造工具,诸如铰接制造机器人。
所述学习方法用于机器学习。
如自身从机器学习领域可知的,由神经网络对输入进行的处理包括向所述输入应用操作,所述操作由包括权重值的数据来定义。学习神经网络因此包括基于针对这样的学习而配置的数据集来确定所述权重的值,这样的数据集可能被称为学习数据集或训练数据集。为此,所述数据集包括多个数据片,每个数据片形成相应的训练样本。所述训练样本表示在被学习之后要使用所述神经网络的状况的多样性。在本文中的任何训练数据集可以包括超过1000、10000、100000或1000000个大量训练样本。在本公开的上下文中,通过“基于数据集学习神经网络”意指所述数据集是神经网络的学习/训练数据集,所述权重的值(也被称为“参数”)基于所述学习/训练数据集。
在所述方法中涉及的所述神经网络可以是深度神经网络(DNN)。DNN是用于在神经网络中进行学习的技术的强大集合,例如,如在下文中所论述的:D.E.Rumelhart等人,“Learning internal representations by error propagation,Parallel distributedprocessing:explorations in the microstructure of cognition”,第1卷:foundations,MIT Press,Cambridge,MA,1986,在此通过引用将其并入。DNN是使得计算机能够从观察数据学习的以生物学方式激励的编程范式。与在其他方法(最小割、SVM、Boosting或者随机森林)中所使用的人工设计的低级特征(Zernike moments、HOG、Bag-of-Words或SIFT)相比,DNN具有学习丰富中级媒体表示的能力。因此,使用DNN对于对象检测/识别尤其相关。更具体而言,DNN被聚焦于基于原始数据的端到端学习。换言之,例如,通过从原始特征开始,并且结束于标签,完成端到端优化,其离开特征工程最大可能范围。
在所述学习方法的上下文中,所述神经网络的所述训练数据集是所提供的超点的数据集,每个超点形成所述训练数据集的训练样本。所述训练数据集由超点构成,每个超点都是3D点云中的点的集合。所述超点可以源自一个或多个3D点云,即,每个点云包括所述超点的一个或多个超点。3D点云中的超点是所述3D点云中的点的集合,所述点的集合表示形状,即,3D对象的至少一部分,例如,整个对象或者其局部形状。超点的概念是公知的。提供S10-S20所述超点可以包括提供这样的、例如已经计算出的超点。替代地,提供S10-S20所述超点可以包括提供S10一个或多个3D点云,以及从所提供的3D点云中提取S20所述超点。
提供S10一个或多个3D点云可以包括从存储器取回所述3D点云。替代地,提供S10一个或多个3D点云可以包括获得(例如,全部)一个或多个3D点云中的至少一些。获得3D点云可以包括执行合成3D点云生成过程,在这种情况下,如先前所论述的,所获得的3D点云是合成3D点云。所述生成过程例如可以从CAD场景生成所述3D点云。获得3D点云可以替代地包括:如先前所论述的,通过在真实场景(例如,在工厂/厂家的内部)上操作一个或多个物理传感器(例如,一个或多个激光雷达),来执行对所述3D点云的物理获取。所提供的3D点云因此可以仅由合成3D点云构成、仅由物理获取的3D点云构成、或者由合成3D点云与物理获取的3D点云的混合构成。
从所提供的3D点云中提取S20所述超点包括:针对每个提供的3D点云,从所述3D点云中提取一个或多个超点。从所述3D点云中提取超点可以由任何已知的从3D点云中提取超点的方法来执行,这样的方法是公知的。用于从3D点云中提取所述超点的所述方法可以是基于距离的提取,其中,如在现有技术中已知的,考虑点的相邻性(在一半径之内或者由K最近邻法给出)。用于提取所述超点的所述方法替代地可以是基于几何形状的提取,如在本领域中已知的,为此将所述点云划分为几何均匀的超点。
用于提取所述超点的所述方法例如可以是参考下文给出的基于距离的方法:G.Elbaz等人,“3D Point Cloud Registration for Localization using a Deep NeuralNetwork Auto-Encoder”CVPR 2017,在此通过引用将其并入。这种方法可以被称为RSCS(Random Sphere Cover Set)方法。这种方法允许提取超点作为用于配准问题的基本匹配单元。更具体而言,这种方法包括迭代程序,所述迭代程序包括:给定预定义半径Rsphere,在每次迭代处,随机地选择尚未属于任何超点SP的点P,并且然后,定义新SP作为位于以P为其圆心、半径为Rsphere的球体内部的点的集合。允许超点重叠,即,一个点能够被包括在若干个超点中。
图2示出了使用RSCS方法(其中半径等于0.3m)从3D点云20中进行超点提取。超点201至209已经被提取。
用于提取所述超点的方法替代地可以是参考下文给出的基于几何形状的方法:L.Landrieu等人,“Cut pursuit:Fast algorithms to learn piecewise constantfunctions on general weighted graphs”,SIAM Journal on Imaging Sciences,2017,在此通过引用将其并入。这种方法允许提取用于语意分割问题的超点。这种方法考虑几何特征,诸如线性、平面性、发散性(在如下参考文献中也有论述:J.Demantk等人,“Dimensionality based scale selection in 3D lidar point clouds”。InternationalArchives of the Photogrammetry,Remote Sensing and Spatial InformationSciences,2011,在此通过引用将其并入)和垂直性(在如下参考文献中也有论述:S.Guinard等人,“Weakly supervised segmentation-aided classification of urbanscenes from 3d LiDAR point clouds”,ISPRS 2017,在此通过引用将其并入)以在超点之间进行区分。这样的特征基于其K个最近邻来描述每个点的局部相邻性。然后,所述方法包括构建最近邻的相邻图,如在下文参考文献中所论述的:Guinard等人,“Weaklysupervised segmentation-aided classification of urban scenes from 3d LiDARpoint clouds”,ISPRS 2017,在此通过引用将其并入。所述方法利用切割追踪算法在图上的几何特征上执行最小划分,如下文参考文献所论述的:L.Landrieu等人,“Cut pursuit:Fast algorithms to learn piecewise constant functions on general weightedgraphs”,SIAM Journal on Imaging Sciences,2017,在此通过引用将其并入。这种算法包含正则化权重,其控制划分的粗糙度。在先前所引用的Guinard等人的参考文献(“Weaklysupervised segmentation-aided classification of urban scenes from 3d LiDARpoint clouds”,ISPRS 2017)中所公开的方法可以通过首先在每个点的相邻性上计算PCA(主成份分析)来计算线性、平面性和发散性值。然后,这种方法可以计算点的位置的协方差矩阵的特征值,并且可以使用其通过估计所述表面来评估法线或者导出其他有意义的矢量。
图3示出了使用当前论述的基于几何形状的方法(其中正则化权重等于0.1m)从在图2中已经示出的3D点云20中进行超点提取。超点301至308已经被提取。
图4和图5图示了从相同点云但是利用不同方法获得的超点之间的比较。图4示出了利用基于距离的方法从点云40获得的超点,并且图5示出了从相同点云40但是利用基于几何形状的方法获得的超点。
所述线性值可以由公式(λ1-λ2)/λ1给出,所述平面性值可以由公式(λ1-λ3)/λ1给出,并且所述发散性值可以由公式λ3/λ1给出,其中,λ1、λ2和λ3是点的位置的协方差矩阵的特征值。图6图示了3D点云中的点的线性值,图7图示了平面性值,并且图8图示了发散性值。
所述方法可以优选地使用基于几何形状的方法用于超点提取,例如,上文所论述的方法,以受益于这种类型的方法的优点。利用这样的方法,超点往往仅对应于点云的一个均匀部分(由于在相邻图中获得的切割),事实使得进一步处理更为方便:由此根据切割的正则化权重,超点往往是单个对象的部分。这提供了感兴趣的性质。例如,所述超点提取往往在从隔离的点云对象和场景中(即,与其他对象)相同的对象(或者相似的对象)提取的超点之间是一致的。同样地,利用这样的方法获得的超点对具有相似几何性质的点进行重新分组,因此简化了针对学习步骤所需的复杂性。
现在论述对神经网络的学习S30。
所学习的神经网络是被配置为以超点为输入并且将其编码为本征矢量的神经网络,所述本征矢量即维度低于所述超点的维度但是形成所述超点的几何上有意义的本征编码的矢量。所述神经网络被学习这样做,即,在所述学习期间修改所述神经网络的权重,直到所述神经网络充分好地执行这种任务。所述神经网络可以包括编码器,所述编码器是被配置用于以超点为输入并且将其投射到本征矢量空间上的神经网络。换言之,所述编码器被训练以压缩所输入的超点,同时倾向于保持其性质。通过使用损失,对所述编码器的学习导致投射到在几何性质方面有意义的本征表示中。例如,通过使用所述损失的所述学习使得在两个超点之间的相似性以及其编码的相似性之间存在相关性。所述神经网络可以是或者可以包括以超点(替代地,更一般地,3D点云)为输入并且将其投射在更低维度空间中同时相对于诸如旋转的对象变换保持不变的任何神经网络。例如,所述神经网络架构可以是下文所公开的那种:R.Spezialetti等人,“Learning an Effective Equivariant 3DDescriptor Without Supervision”,ICCV 2019,在此通过引用将其并入。
对所述神经网络的学习S30还可以包括:例如,与对所述编码器的所述学习同时地学习解码器,所述解码器是被配置为以本征矢量为输入并且将其解码为超点的神经网络。换言之,所述解码器基于所输入的本征矢量(例如,如由编码器编码的)执行对超点的重建。由所述方法学习的所述神经网络因此可以存在于编码器和解码器中,所述编码器被配置为以所输入的超点作为输入并且将其编码为本征矢量,所述解码器被配置为以本征矢量为输入并且将其解码为超点。
例如,所述神经网络可以是包括编码器和解码器的自动编码器。所述自动编码器架构是从机器学习领域公知的,并且例如在下文参考文献中得到论述:G.Elbaz等人,“3DPoint Cloud Registration for Localization using a Deep Neural Network Auto-Encoder”,CVPR 2017,在此通过引用将其并入。如自身从机器学习领域可知的,自动编码器压缩其输入的信息(即,针对本公开的自动编码器的超点)。更具体而言,训练所述自动编码器以将所述输入(在此为所输入的超点)投射到本征表示(例如,比输入大小小若干倍)中并且从这种表示重建所述输入。所述自动编码器压缩所述信息,同时尝试针对若干不同的超点保持所输入的超点的所有性质。对所述自动编码器的学习由此隐含地导致投射到在几何性质方面有意义的本征表示中。例如,所述学习使得在两个超点之间的相似性以及其编码相似性之间存在相关。
所述学习S30包括使损失最小化。所述损失对两个超点之间的不一致进行处罚。换言之,所述损失以两个超点作为输入,并且计算这两个超点之间的不一致,即,对这两个超点的几何不一致的量化。所述超点在几何上越不相似,针对这些超点的损失值就越大。学习S30使用所述损失来测量在向所输入的超点应用所述神经网络时由本征矢量是否对训练数据集的所输入的超点进行了足够准确地编码。具体而言,学习S30可以包括以下操作的迭代:
-选择所述训练数据集的超点;
-通过应用所述神经网络或者所述神经网络的编码器,将所述超点编码为本征矢量;
-例如,通过从所述本征矢量来重建另一超点,例如,通过将所述本征矢量解码为另一超点,例如,通过向所述本征矢量应用所述神经网络的解码器,从所述本征矢量获得另一超点;
-通过向所述损失馈送所述超点和所述另一超点作为输入,来计算针对所述超点和所述另一超点的损失值;
-评估所计算的值是否过高,即,通过评估所计算的值是否比预定义阈值(例如,收敛阈值)更高。所述损失的高的值捕获以下事实:所述本征矢量尚未以充分的准确度对所述超点进行编码,即,所述本征矢量尚未在几何上充分有意义成为所述超点的本征表示;
-如果所计算的值过高,例如,通过修改编码器和/或解码器的权重来修改所述神经网络的权重。
只要尚未达到学习S30的收敛标准(如在机器学习的领域中公知的)和/或只要尚未选择所述数据集的充分(即,足够大)数量的超点,就可以重复以上步骤。在迭代期间对超点的选择可以使得数据集的每个超点至少被选择一次。任何已知的学习策略都可以被用于选择。
所述损失可以是重建损失,所述重建损失对超点与超点的重建之间的不一致进行处罚。所述超点的重建是另一超点。所述超点的重建是从对所述超点进行编码的本征矢量获得的,即,所述本征矢量是通过向所述超点应用所述神经网络(或者其编码器)而获得的。所述超点的重建例如可以是向对所述超点进行编码的所述本征矢量应用所述神经网络的解码器的结果。例如,如先前所论述的,当所述神经网络是包括编码器和解码器的自动编码器时,就是这种情况。使用重建损失允许评估由神经网络编码的超点的重建是否在几何上与超点充分相似,这隐含地使得能够评估是否将所述超点编码为在几何上有充分意义的本征矢量。所述重建损失还允许确保由所述解码器的准确重建。
所述不一致可以是在两个超点之间的几何不一致/不相似的任何量化。例如,所述不一致可以是在超点之间的距离。换言之,所述损失可以是对超点与所述超点的重建之间的距离进行处罚的重建损失。所述距离可以是在超点之间的任意距离,诸如在3D点云之间的任意距离。例如,所述距离可以是Chamfer距离,所述Chamfer距离提供了用于执行所述学习S30所需的计算资源的经济性。Chamfer距离(dCD)由以下公式给出:
其中,S1和S2是超点的两个集合,其中,x和y分别指定S1和S2的点(即,具有3D坐标的3D点),并且其中,||||2指定欧几里德3D范数。替代地,所述距离可以是Earth-Mover距离。
在所述学习S30之前,所述学习方法可以包括调整所述超点的大小。换言之,所述学习方法可以包括:在所述学习S30之前,对所述训练数据集中的每个超点中的点进行欠采样和/或过采样,使得每个超点与所述神经网络的输入大小相匹配。例如,每个超点中的点可以使得在欠采样和/或过采样之后,每个超点包括N个点,每个点被配备有3D坐标。在这样的情况下,所述本征矢量的大小可以等于N/2。图9示出了自动编码器的示意性表示,其输入大小为N=128,并且本征矢量大小为N/2=64。
如先前所解释的,所述学习S30修改所述神经网络的权重(也被称为参数),直到所述损失在所述训练数据集的样本(即,超点)(例如,全部或大部分)上具有充分低的值。这些概念是在机器学习的领域公知的。所述神经网络可以是深度学习模型,深度学习模型(也被称为DNN)一般以数百万参数为特征,其值不能够手工设置以表征这些模型。这些参数是在对所述模型的学习期间利用学习算法设置的。当所述学习算法正在更新所述模型参数时,就说所述模型处于“训练模式”中。其存在于根据其针对每个输入的输出相继地“校正”所述模型,这得益于每个输入的固有特性,以及可选地与其相关联的注释(如果有的话)。一旦训练了所述模型,对其参数的更新就停止。然后,所述模型仅仅被用于在线阶段,以处理新的输入(即,在训练模式期间未看到的输入)并且返回结果,则说其处于“测试模式”中。在本公开中,所述模型(即神经网络)可以是DNN,因此这些考虑可以应用于所述模型。
所述学习S30可以是无监督的,即,所述学习S30可以是无监督学习。在用于3D点云特征提取的无监督学习范式中,没有给出关于在所述学习期间所使用的点云的任何注释。这意味着,所述特征提取将仅仅依赖于点云特性(例如,3D点的坐标),而不依赖于任何标记(例如,从相同标记的类别中提取针对所有点云的类似特征)。使用这样的训练/学习往往确保所学习的神经网络不知道其将用作输入的点云的类型、不知道由所述点云表示的(一个或多个)对象或场景的类别/类型、和/或不知道其上下文(例如,室内或室外)。
现在进一步论述所述检测方法。
提供S40-S50所述一个或多个第一超点和所述一个或多个第二超点可以包括直接地(例如,无需计算)提供已经计算出的(一个或多个)第一超点和(一个或多个)第二超点。替代地,所述提供S40-S50可以包括提供S40所述第一3D点云和所述第二3D点云,以及从所述第一3D点云中提取S50所述一个或多个第一超点和从所述第二3D点云中提取S50所述一个或多个第二超点。所述提取S50可以被执行为先前所论述的提取S20,例如,使用相同的基于距离的方法或者基于几何形状的方法。提供S40所述第一3D点云和所述第二3D点云可以被执行为先前所论述的提供S10。
所述第一3D点云表示3D场景。所述场景是真实场景,即,真实世界的一部分。所述第一3D点云可以是测量得出的,即,可以源自物理测量,例如,如先前所论述的,所述第一3D点云可以是通过在所述场景上(如同其在真实世界中那样)操作一个或多个物理传感器(例如,激光雷达)来获得的。替代地,如先前所论述的,所述3D点云可以是从(例如,CAD环境的)虚拟3D场景生成的。所述3D场景可以是制造场景,例如,工厂/厂家的内部或者其一部分。所述3D场景因此可以包括制造世界的3D对象,例如,正在制造或者已经制造的机械部件,或者制造工具,诸如铰接的制造机器人。
所述第二3D点云表示3D对象,例如,所述制造世界的3D对象。如先前所论述的,所述第二3D点云可以是合成地生成的,或者可以源自物理测量,即,可以是测量得出的3D点云。所述3D对象可以类似于或者部分类似于(例如,直到遮挡和/或诸如旋转的移动)所述第一3D点云中的一个或多个3D对象。如下文所论述的,所述检测方法检测这些3D对象,或者其至少一部分。
所述一个或多个第二超点可以被称为“查询”,因为其是要通过所述检测方法在所述第一3D点云中针对其搜索相似超点的超点,如下文所论述的。这相当于说所述检测方法检测与所述查询相似的3D形状/对象。所述查询可以由用户来提供。所述第一点云可以被称为“搜索区域”,因为要通过所述检测方法在所述第一点云中搜索与查询区域中的对象相似的对象。所述第一3D点云可以是大的点云,例如,在3D点云中的点的数量与执行(一种或多种)方法的计算机的存储器的大小之间的比率可以大于预定义阈值。例如,所述第一3D点云对于16吉字节的存储器大小(其对应于标准或廉价计算机)可以包括大约或超过1亿个点,和/或可以包括在所述第二3D点云中的点数的20倍。
所述检测方法确定所提取的超点之间的相似性。为了减少已经确定针对其的相似性的所提取的超点的数量,提供S40-S50所述一个或多个第一超点可以包括在先的可选的过滤,现在将对其进行论述。
具体而言,提供S40-S50所述一个或多个第一超点可以包括:例如,通过从在S40处提供的所述第一3D点云中对其进行提取S50(如先前所论述的),提供所述第一3D点云的一个或多个初始超点。然后,所述提供S40-S50可以包括通过在所述初始超点中选择如下的每个初始超点来对所述一个或多个初始超点进行过滤,针对所述每个初始超点:
-在所述超点的维度与至少一个第二超点的维度之间的不一致小于预定义阈值;和/或
-在所述超点的位置与至少一个第二超点的位置之间的不一致小于预定义阈值。
所选择的超点构成所述一个或多个第一超点。
因此,所述提供S40-S50可以首先例如通过从所述第一3D点云中提取初始超点来提供初始超点,并且然后在其中选择在几何上与至少一个第二超点充分相似的那些。这允许过滤所述第一3D点云中的超点,所述第一3D点云可以包含许多超点(例如,所述初始超点可以一起覆盖所述第一3D点云中的所有点)。由此,所述检测方法然后将仅必须评估在第一超点的经过滤(即,更小)的集合与所述第二超点之间的相似性。
对每个都在几何上与至少一个第二超点充分相似的初始超点的选择基于在初始超点与第二超点的维度和/或位置之间的不一致。具体而言,针对每个初始超点,所述检测方法评估所述初始超点的维度(例如,每个维度)与至少一个第二超点的维度(例如,每个维度)之间的不一致是否小于预定义阈值,和/或所述检测方法评估所述初始超点的位置与至少一个第二超点的位置之间的不一致是否小于预定义阈值。然后,所述方法选择初始超点的维度与至少一个第二超点的维度之间的不一致小于所述预定义阈值和/或初始超点的位置与至少一个第二超点的位置之间的不一致小于所述预定义阈值的初始超点作为一个或多个第一超点。每种不一致都可以是几何不一致的任意量化,诸如距离或比率。
所述过滤可以包括在所述初始超点中选择如下的每个初始超点:针对所述每个初始超点:
-在所述超点的每个维度与至少一个第二超点的对应维度之间的距离小于预定义阈值;和/或
-在所述超点的每个维度与至少一个第二超点的对应维度之间的比率小于最大比率并且大于最小比率;和/或
-在距所述超点的最近支撑表面的相对高度与距至少一个第二超点的最近支撑表面的相对高度之间的差异小于预定义阈值。
上文列出的每个维度之间的距离、每个维度之间的比率、以及相对高度之间的差异均是超点之间的几何不一致的量化/度量。超点的维度可以是所述超点在其本地参考系(LRF,如下文参考文献中所论述的:J.Yang等人,"Toward the Repeatability andRobustness of the Local Reference Frame for 3D Shape Matching:An Evaluation",在IEEE Transactions on Image Processing中,第27卷,第8期,第3766-3781页,2018年8月,在此通过引用将其并入)中的维度。
针对每个初始超点,如果所述超点的每个维度与至少一个第二超点的对应维度之间的距离小于预定义阈值,所述检测方法例如可以通过确定存在初始超点的每个维度与第二超点的对应维度之间的距离小于预定义阈值的第二超点,从而选择所述初始超点。为了这样做,所述方法可以确定是否存在满足如下的第二超点:针对所述第二超点的每个维度i:
其中,spqdimi是第二超点的维度i,sprzdimi是搜索区域的初始超点的维度i,dmax是预定义阈值,也被称为2个超点的大小之间的接受的最大差异,并且||.||是任何适当的范数。dmax可以属于某一值范围,所述值范围例如被定义为(即,取决于)查询和3D检测中作为目标的变化性的函数。所述范围例如可以是由所述第二3D点云表示的现实的函数,例如,点云获取的上下文和/或质量。例如,在所涉及的所有3D对象全部具有具有包括在1cm与1m之间的最小和最大维度的超点的情况下,对于所涉及的所有3D对象,dmax可以等于20cm。如果在所述学习方法中所涉及的3D对象具有更大维度,dmax可以更大。如果在所述学习方法中所涉及的点云是合成点云,或者点云是利用非常准确的扫描获取的,则可以减小dmax,因为其特征是噪声更小。例如,dmax可以属于范围[5cm;1m],并且可以是先前已经论述的图切割的正则化权重的函数。
另外地或替代地,如果所述超点的每个维度与至少一个第二超点的对应维度之间的比率小于最大比率并且大于最小比率,所述检测方法例如可以通过确定存在初始超点的每个维度与第二超点的对应维度之间的比率小于最大比率并且大于最小比率的第二超点,从而选择所述初始超点。为了这样做,所述方法可以确定是否存在如下的第二超点:针对所述第二超点的每个维度i:
其中,spqdimi是第二超点的维度i,sprzdimi是搜索区域的初始超点的维度i,rmin是最小比率,也被称为最小接受比率,并且rmax是最大比率,也被称为最大接受比率,可以基于所述方法中所涉及的点云的质量、选取超点的方式、以及查询作为目标的可变性来选取rmax和rmin,即,点云的质量越差,所述超点的切割越不准确和/或目标可变性越重要,就能够将rmin减小越多并且可以将rmax增大越多。rmax可以大于1.5和/或小于6,例如,等于4,和/或rmin可以大于0.1和/或小于0.9,例如,等于0.2。另外地或替代地,如果在距所述超点的最近支撑表面的相对高度与距至少一个第二超点的最近支撑表面的相对高度之间的差异小于预定义阈值,所述检测方法例如可以通过确定存在初始超点距其最近支撑表面的相对高度与第二超点距其最近支撑表面的相对高度之间的差异小于预定义阈值的第二超点,从而选择所述初始超点。所述相对高度捕获查询中希望的位置与搜索区域中的位置之间的差异。希望的位置可以被定义为查询中的移动的参数的函数。可以选取预定义阈值为关于超点准确度的不确定性和查询所接受的可变性的函数。例如,所述预定义阈值可以等于查询高度除以4。所述预定义阈值例如可以等于30cm。
超点的最近支撑表面是以垂直轴或者充分接近垂直轴的任意矢量(即,对于其而言,其与垂直轴的叉积的范数低于预定义阈值)为法线轴的平面表面。因此,最近支撑表面可以表示地板,或者由超点表示的形状的任何其他现实世界物理支撑,例如桌子、课桌、传送带或工作台。所述检测方法可以计算或检测所述检测方法中所涉及的超点的最近支撑表面,以用于在初始超点之间进行选择。对最近支撑的检测可以通过任何已知的方法来执行。例如,可以通过以下操作在对超点的前述基于几何形状的提取期间自动地对其进行检测:对每个点的相邻性和相邻图中的最小切割执行PCA,并且检测具有水平面的特性的超点(例如,向每个超点的水平平面上使用平面性的值)。
换言之,对于每个初始超点,所述检测方法可以用于选择上文列出的在每个维度之间的距离、在每个维度之间的比率、以及在相对高度之间的差异中的一项或多项。所选择的(一个或多个)初始超点形成所述一个或多个第一超点。
所述检测方法然后通过向所述第一超点应用所述神经网络或者其编码器来将每个第一超点编码S60为相应的第一本征矢量。所述方法还通过向所述第二超点应用所述神经网络或者其编码器来将每个第二超点编码为相应的第二本征矢量。
然后,所述检测方法确定S70在一个或多个(例如,全部)第一超点中的每个第一超点与一个或多个(例如,全部)第二超点中的每个第二超点之间的相似性。为此,对于一个或多个(例如,全部)第一超点中的每个第一超点以及一个或多个(例如,全部)第二超点中的每个第二超点,所述方法计算对所述第一超点进行编码的相应的第一本征矢量与对所述第二超点进行编码的相应的第二本征矢量之间的相似性度量。在确定S70所述相似性中可能涉及全部的第一超点和第二超点。要注意的是,当所述检测方法设想对所述第一超点的在先过滤时,如先前所论述的,则然后可能在确定S70相似性中涉及全部的第一超点和第二超点,因为所述在先过滤已经确保了用于检测几何相似性的这些超点的相关性。因此,涉及全部超点对于3D检测而言是相关的,同时在用于确定S70的计算资源方面相对经济。
所述相似性度量可以是本征矢量之间的相似性的任何度量/量化。现在,由于本征矢量是其进行编码的超点的有几何意义的本征表示,所以计算在其之间的相似性度量相当于确定在所述超点之间的几何相似性。所述相似性度量可以是余弦相似性度量cs(ei,ej),其类型为:
其中,ei、ej是对两个超点进行编码的本征矢量。所述相似性度量可以是任何其他相似性度量,例如,欧几里得距离,例如,在已经通过对本征空间进行正则化而学习神经网络的情况下。
对所述相似性度量的计算得到相似性得分,每个相似性得分在第一超点与第二超点之间,每个相似性得分都是在两个本征矢量之间的相似性度量的值(即,在S70处计算的)。因此,所述确定S70得到在第一3D点云的形状(即,表示其中的3D对象的局部部分的第一超点)与第二3D点云的形状(即,表示由第二3D点云表示的3D对象的局部部分的第二超点)之间的相似性得分。所述方法还可以包括在所计算的相似性得分之间评估比预定义阈值更高的相似性得分。这些相似性得分中的每个相应的相似性得分表示一对第一超点和第二超点,其两个编码本征矢量之间的相似性度量的值高于预定义阈值。在这种情况下,就说第一超点与第二超点相匹配。可以相对于编码器投射性质和/或用户期望的相似性水平来定义所述预定义阈值。也可以基于被人工注释为相似(例如,对于目标应用而言)的超点的数据集来自动地获得所述预定义阈值。在这种情况下,可以通过计算被标记为相似的两个超点之间获得的最小相似性来获得所述阈值。利用这种自动获得,所述预定义阈值可以属于值范围[0.7;1](例如,并且可以根据目标相似性和/或所使用的架构来选取),例如,可以等于0.8。
所述检测方法还可以包括将匹配的第一超点分组S80在一起,从而将所述第一点排序到若干个组中,并且每个组表示所述第一3D点云的3D对象,其与由所述第二超点形成的第二点云(即,查询)的3D对象相似。由此,在确定所述第一3D点云中与查询(即,第二超点)中的局部形状相似的局部形状(即,匹配的第一超点)之后,所述检测方法通过将匹配的第一超点分组S80成组,找到第一3D点云中在几何上与由所述查询表示的3D对象相似的3D对象。
所述分组S80可以包括在均具有所确定的与至少一个第二超点之间的大于预定义阈值的相似性的第一超点之间(即,在匹配的第一超点之间)确定S80一组或多组第一超点,每组第一超点都具有与第二3D点云相似的形状。换言之,所述确定S80可以将匹配的第一超点的几何性质,例如相对于彼此和/或相对于参考点(例如,查询的中心)的相对取向和/或相对位置,与所述查询的超点的对应性质进行比较,从而可以将匹配的第一超点分组到各自在几何上与所述查询相似的组中。所述检测方法可以利用任何已知的分组方法来执行所述确定S80。所述分组可以是旋转不变的,即,所述分组检测与所述查询相似的一组第一超点,即使所述组表示由3D点云表示的3D对象的旋转。
现在论述分组S80的示例。
在示例中,可以根据用于从查询中的超点集合计算图的方法来执行对所述一组或多组的确定S80,现在对其进行论述。这种方法获得如下类型的完整图:Gq=(SPsq,E),其中,SPsq是表示超点的节点,并且E是均连接两个节点的边缘集合。这种方法包括提供(例如,通过任何已知方法来确定)第二超点的图。所述第二超点的图具有节点和边缘,每个边缘连接两个节点。每个节点表示第二超点。每个节点可以具有属性,所述属性可以是编码器特征和/或维度中的一个或多个。每个边缘表示由所述边缘连接的节点所表示的两个超点之间的几何关系。所述几何关系可以是两个超点相对于彼此的相对定位和/或取向。所述边缘具有所述几何关系的一个或多个几何属性。所述属性可以形成与所述边缘相关联的数据。所述属性可以包括以下中的一项或多项:
-由所述边缘连接的所述节点所表示的两个超点的形心之间的距离,例如,当所述超点属于表示铰接对象(例如,铰接制造机器人)的3D点云时,为似然距离,和/或
-由所述边缘连接的所述节点所表示的两个超点的表面之间的相对取向,例如,当所述超点属于表示铰接对象(例如,铰接制造机器人)的3D点云时,为似然取向。
提供所述图可以包括例如针对每个边缘来确定(例如,计算)所述几何属性。例如,可以通过本地参考系(LRF)估计来获得所述超点的表面,如现有技术中公知的,例如,如下参考文献中执行的LRF估计:J.Yang等人,"Toward the Repeatability and Robustnessof the Local Reference Frame for 3D Shape Matching:An Evaluation",在IEEETransactions on Image Processing中,第27卷,第8期,第3766-3781页,2018年8月,在此通过引用将其并入。
除了提供所述图之外,用于从所述查询中的超点集合中计算图的方法然后包括形成一个或多个图。每个图具有节点和边缘,每个边缘连接两个节点。每个节点表示第一超点。每个边缘表示由所述边缘连接的所述节点所表示的两个超点之间的几何关系。所述几何关系可以是与所提供的图中的所述几何关系相同的性质,例如,其可以是两个超点的相对定位和/或取向。所述一个或多个图的形成是通过例如针对所有图同时地或者针对每个图逐个构建每个图的边缘来执行的。每个构建的边缘连接两个节点(即,表示每个匹配的第一超点)。每个构建的边缘具有与第二超点的图的边缘的几何属性相似的一个或多个几何属性。例如,对所述边缘的构建可以包括识别所提供的图的子图,以及仅针对所述第一超点,例如以从下到上的方式来重建所述子图。
具体而言,对所述边缘的所述构建可以包括迭代地探索匹配的第一超点,以及针对每个探索的第一超点,找到一个或多个似然边缘,每个似然边缘用于将表示所探索的第一超点的节点连接到表示另一第一超点的另一节点。“似然边缘”意指属性与连接表示与所提供的图中两个第一超点相匹配的两个第二超点的两个节点的边缘的属性相匹配的边缘。对所述边缘的发现可以包括评估(如果构建的话)所述边缘是否将具有与所提供的图中存在的并且连接表示与将由所述边缘(如果构建的话)连接的两个第一超点相匹配的两个第二超点的两个节点的边缘相似的属性。如果是这种情况,所述发现构建所述边缘。对所述边缘的构建因此可以包括计算其属性,这可以完全与所提供的图那样来执行。“相似属性”或“匹配属性”意指在示例中,相等或基本相等、或者其差异(例如,按照距离和/或比率测量的)低于预定义阈值的属性,例如,预定义阈值是相对于查询中的点数来定义的。在示例中,对所述似然边缘的发现可以通过以下操作来优化:仅仅比较针对距离小于查询的两个超点之间最大似然距离(或者小于查询的预期最大大小)的远方超点的边缘。
每个形成的图都源自对其边缘的构建(即,对边缘的构建导致所形成的一个或多个图)。每个图对应于第一超点的相应组,即,所述图的节点表示所述组的超点。所述图的边缘均与所提供的图的边缘相似。
先前论述的分组S80的示例(亦即,通过提供第二超点的图,以及形成第一超点的一个或多个图)特别稳健,因为不论3D对象是非铰接对象还是铰接对象,其都能够形成各自表示搜索区域中与查询中的3D对象相似的3D对象的第一超点的组。
在另一示例中,可以通过针对对象的中心使用Hough Voting方法来执行对所述一组或多组的确定S80,在如下参考文献中论述了这种方法:F.Tombari等人,“Hough Votingfor 3D Object Recognition under Occlusion and Clutter”,IPSJ Transactions onComputer Vision and Application March 2012,在此通过引用将其并入。这种方法尝试通过针对搜索区域的每个超点,根据其匹配的查询的一个或若干个超点来投票,从而确定潜在相似对象中心。这可以包括捕获查询的超点与搜索区域中的超点的相对取向,以便在相同方向和取向中进行投票。这样的相对取向能够通过LRF估计来获得,例如,在如下参考文献中执行的LRF估计:J.Yang等人,"Toward the Repeatability and Robustness ofthe Local Reference Frame for 3D Shape Matching:An Evaluation",在IEEETransactions on Image Processing中,第27卷,第8期,第3766-3781页,2018年8月,在此通过引用将其并入。
从先前所引用的F.Tombari等人的参考文献“Hough Voting for 3D ObjectRecognition under Occlusion and Clutter”,IPSJ Transactions on Computer Visionand Application March 2012可知,Hough Voting方法可以包括定义3D网格,所述3D网格分解成搜索区域的3D空间的体素集合。可以相对于查询的大小和用于估计LRF投票的精确度来定义3D网格的最优大小。在示例中,可以通过如下公式给出体素的大小(size):
size=max(querydims)*f*corrLRF,
其中,querydims是当轴对准时的查询的维度,f是用于决定针对中心的精确度的因子(例如,f可以等于0.2),并且corrLRF是用于衰减近似LRF的效应(尤其是对于大的对象)的因子(例如,对于基于协方差矩阵的标准LRF实施方式,corrLRF可以等于1.5)。
从先前所引用的F.Tombari等人的参考文献“Hough Voting for 3D ObjectRecognition under Occlusion and Clutter”,IPSJ Transactions on Computer Visionand Application March 2012可知,Hough Voting方法然后可以聚集投票体素,例如,通过考虑每个体素的查询的不同的匹配超点的数量。这可以涉及使用相对于查询中的超点的数量而定义的阈值来决定哪些体素表示与查询相似的潜在对象中心。该阈值控制似然遮挡的数量以及可能是针对所述对象的特定部分的目标的可变性。因此,其能够作为用户能够在推断/检测期间进行修改的参数而被直接访问。
图10至图12图示了Hough Voting方法。图10示出了已经在图2上图示出的点云,具有其提取的超点。这些超点表示查询。在图10上示出了距每个超点中心和查询中心的距离。例如,附图标记100指示这样的距离。图11示出了搜索区域中形成与由图10的点云表示的对象相似的对象的一组超点。图11还示出了从每个超点的中心投出的投票。例如,附图标记110指示这样的投票。图12是示出Hough Voting方法投出旋转意识票(rotation-awarevote)的图示。
应当理解,分组S80未必是在所述检测方法中执行的。例如,第二点云可以仅由一个超点构成,因此不需要分组。
所述检测方法还可以包括针对每个确定的组来确定S90边界框。边界框包围/环绕所述组。对所述边界框的确定S90可以包括围绕每个组的中心来绘制所述边界框,以及例如在此之前,确定该中心。每个边界框的大小和/或维度可以等于或基本等于用于涵盖第二3D点云的(例如,最小)边界框的大小。
在分组S80使用先前所论述的方法来计算超点的图的情况下,能够绘制每个边界框,以便包围第一超点的相应组,并且边界框的大小可以等于或者基本等于用于涵盖所述查询的(例如,最小)边界框的大小。
在分组S80使用Hough Voting方法的情况下,在决定似然对象中心时,能够在搜索区域中绘制所述边界框:以似然中心为中心(与边界框查询具有相同维度)和/或围绕针对表示似然对象中心的体素投票的超点。
应当理解,当分组S80不是由检测方法执行时,如先前所论述的,所述确定S90可以简单地确定围绕每个匹配的超点的边界框。
所述确定S90还可以确定围绕第二3D点云的边界框。所述检测方法还可以包括显示每个确定的边界框。这为检测方法的用户提供了在搜索区域中检测到的3D对象的视觉反馈。
所述检测方法还可以包括:针对每个组,通过测量所述组中的第一超点与一个或多个第二超点之间的相似性来确定所述组的相似性得分。每个组的相似性得分是在所述组与由一个或多个第二超点形成的超点组之间的几何相似性的得分。所述检测方法可以通过计算几何相似性的任何这样的得分来确定相似性得分。所述相似性可以取决于应用和/或基于若干线索。所述相似性得分可以包括以下中的一项或多项:
-超点匹配相似性得分(spms):其是针对第一超点的给定组的匹配的超点(与查询的所识别的超点)匹配得分的组合。在此,n是所述查询中的超点的数量,mi是针对其中的每个与所述组的第一超点的匹配得分(如果无匹配,mi=0),并且所述得分由如下公式给出:
-彩色直方图比较,例如,对于颜色信息可用的应用(例如,灭火器检测)。所述直方图能够在来自边界框中所包括的搜索区域的所有点上或者仅在匹配的超点上计算,和/或
-能够在来自边界框中所包括的搜索区域的所有点上或者仅在匹配的超点上使用的任何全局形状描述符。
上文列出的相似性得分(也被称为相似性度量)能够一起用于获得全局性相似性得分或者根据目标应用被独立地使用。
所述检测方法除了确定针对每个组的相似性得分之外,还可以包括显示所述组的相似性得分。所述检测方法例如可以同时地显示所有组的相似性得分,例如,根据相似性得分的降序来布置所述显示。所述检测方法还可以与各组的相似性得分的显示同时地显示围绕各组以及可选地围绕第二点云的边界框。所述检测方法还可以显示所述边界框的维度。所述方法还可以针对每个组来显示所述组的相似性得分高于相似性得分阈值的视觉指示。
所述相似性得分阈值可以是相似性的百分比。所述相似性得分阈值可以由用户来选择。例如,可以将所述相似性得分阈值向用户显示为滑动条,所述滑动条具有表示阈值的所有可能值(例如,从0%到100%)的线以及(任何形状的)柄部,用户可以通过图形方式选择(例如,利用柄部上的点击或触摸)所述柄部并且沿着所述线滑动(例如,利用拖放操作)所述柄部,以设置所述相似性得分阈值的值。所述滑动条可以是在由使用所述检测方法的用户所使用的计算机的图形用户界面上显示的桌面小程序的一部分,所述桌面小程序是在存储器中存储的软件组件。用户对所述阈值的选择可以发生于执行所述检测方法之前,例如,作为所述方法的起始步骤,使得用户预定义他/她希望的相似性得分,以及他/她希望显示的边界框。另外地或替代地,所述选择也可以发生于对边界框的确定S90之后,使得用户仅仅触发对围绕具有充分高相似性得分的组的边界框的显示。替代地,用户可以在执行所述方法期间连续地选择所述相似性得分阈值,例如,在用户选择所述相似性得分阈值时,执行所述检测方法的步骤,从而检测到围绕均具有高于所述阈值的相似性得分的各组的边界框(即,检测到的组,并且然后创建边界框),并且作为用户选择的结果而进行实时显示,根据用户连续地改变所述相似性得分阈值而连续并且实时地调整对所述边界框的显示。
图13示出了在由所述检测方法的用户所使用的计算机的图形用户界面上显示的桌面小程序130的屏幕截图。桌面小程序允许对所述相似性得分阈值的选择。所述桌面小程序130在列1300中显示检测到的各组第一超点,其中的每个都被分配了名称。桌面小程序130还显示针对每个组的边界框的维度的列1304。桌面小程序130还显示针对每个组的相似性得分的列1302。所述桌面小程序还针对每个组显示具有所述组的相似性得分高于(或者不高于)所述相似性得分阈值的视觉指示1310的列。所述桌面小程序包括由线1308和柄部1306构成的滑动条。用户可以通过图形方式选择(例如,利用在柄部上的点击或触摸)柄部1306并且沿着线1308来滑动所述柄部(例如,利用拖放操作)以改变所述相似性得分阈值的值。在图13上所图示的屏幕截图中,所述阈值被设置为84%。
现在论述将学习方法和检测方法集成的过程的实施方式。
所述实施方式允许基于示例的3D对象检测,其包括在更大的点云中将相似形状/对象定位到给定的点云示例。定位基于围绕被检测对象的3D边界框。所述实施方式采用深度学习方案进行检测。用于这种实施方式的评估标准如下:
-给定点云查询(示例)和更大的点云(搜索区域)作为输入,
-所述实施方式试图以搜索区域中围绕与所述查询相似的对象的3D边界框作为输出。然而,事先不知道要检测的对象的数量。需要注意的是,所述搜索区域可能不包含与所选择的查询相似的对象。
-基于示例的对象检测应当不知道类别,即,能够检测与任何对象查询相似的对象。
-基于示例的对象检测应当不知道上下文,即,所述检测与对象上下文/环境(例如,室内、室外)无关。不使用点云上下文特定的先验知识。
-所述点云表示应当对噪声、遮挡、点分布是稳健的,并且对于不同类型的变换(例如,旋转)和对象位置(例如,诸如机器臂的铰接对象)也是不变的。这是通过所使用的基于局部学习的表示来实现的。
-所述实施方式旨在定位未必是表示所述查询的精确实例的相似对象。实际上,所述查询可能不属于所述搜索区域。
这种实施方式提供了泛型,即,所述检测不取决于对象(即使是在离线训练期间的不可见的对象/上下文)和点云类型(对点云获取无需特别约束)。这种实施方式能够在给定单个形状查询下定位部分相似形状(即,不仅仅定位与给定形状查询相对应的精确实例)。这种实施方式允许进行3D形状检测,其中,目的在于检测所述点云中的形状。
这种实施方式提供了基于学习的框架以在点云中执行与给定形状查询相似的所有形状的高效率并且一般性的3D检测。所述框架的学习部分基于深度学习技术(即,使用深度神经网络)。
所述实施方式遵循在图14中所描述的框架。如在图14上所示的,所述实施方式包括离线阶段和在线阶段:
-离线阶段:该阶段基于超点来训练编码器。其包含两个主要步骤。需要注意的是,该阶段对于用户是透明的。所述两个主要步骤是:
○超点提取。超点是描述给定点云的局部部分的点的子集。在从隔离的点云对象与场景中的相同对象(即,具有其他对象)提取的超点之间存在一致性。
○基于超点的训练数据集的编码器学习。其包括基于点云DNN的模型。
-在线阶段:给定点云形状查询和点云场景,从这两种输入都提取超点,然后在所述离线阶段期间使用所学习的编码器进行编码。将所述查询的超点编码与所述场景的超点编码进行比较。与一个超点编码最相似的那些是相匹配的。
离线学习
离线学习训练编码器,所述编码器能够向呈现有意义几何信息的本征表示中投射任何3D超点,即,使得对两个超点的编码之间的距离与那两个超点的几何相似性高度相关(例如,相对于超点的取向而言)。所述距离被定义为两个矢量之间的相似性度量,诸如余弦相似性或欧几里得距离。
数据集生成:超点提取
首先,构建超点的数据集以训练所述编码器。训练编码器所依据的超点的多样性直接负责其构建任何3D几何形状的有意义投射的能力。能够从包含多种几何形状的一个或若干个点云场景的任何集合中提取所述超点的数据集。对超点的所述提取是完全无监督的,因此,针对所述点云场景不需要任何注释。
(一个或多个)点云场景
生成用于所述训练的点云场景但无需模拟虚拟扫描仪。给定各种对象的CAD模型,所述生成包括将CAD模型转换为点云,并且然后将其插入到点云背景中。在进行对象插入时,考虑可能的遮挡(对象/对象遮挡或对象/背景遮挡)以及针对逼真合成点云表示的点密度归一化。针对所述学习/训练而使用100个场景。
超点提取
这种实施方式使用基于几何的方法进行超点提取,如先前所论述的。这样的方法给出感兴趣的特性。超点通常仅对应于点云的一个均匀部分(由于在相邻图中获得的切割),所述事实使得进一步处理更为方便:其通常意指根据所述切割的正则化权重,超点是单个对象的部分。这为这种实施方式提供了至少两个感兴趣的性质:
-所述超点提取在从隔离的点云对象和场景中的(即,与其他对象)相同的对象(或者类似对象)提取的超点之间是相当一致的,以及
-利用这样的方法获得的超点对具有相似几何性质的点进行重新分组,因此简化了编码器学习步骤所需的复杂性。
编码器学习
在所述实施方式中使用的损失是重建损失。所述损失是Chamfer损失,在计算廉价性方面提供了效率。给定两个点集合S1和S2,所述损失由下文公式给出:
能够使用消耗点云作为输入并且将其投射到更低维度空间中,同时对于旋转保持不变的任何神经网络,诸如在如下参考文献中所述的神经网络:R.Spezialetti等人,“Learning an Effective Equivariant 3D Descriptor Without Supervision”,ICCV2019,在此通过引用将其并入。在所述实施方式中,所述训练是无监督的。
使用先前生成的超点数据集来训练所述模型。根据要为点云考虑的特征的数量,利用对应的输入大小来训练所述模型。在所述实施方式中,在所述超点中的点的数量被欠采样或过采样,使得其与所述神经网络的输入大小相匹配。所述实施方式的输入大小为每个超点N=128个点,其中,特征为3D坐标,并且编码的大小为N/2。
在线推论
超点编码匹配
在获得针对查询和搜索区域的超点集合时,这种实施方式计算搜索区域中的每个超点与所述查询中的每个超点之间的相似性。由于这个步骤会相当耗时,所以这种实施方式可以包括下文的过滤,以便避免无用的比较:
-在投射到其LRF中时超点之间的维度比较,如下文参考文献中所述:J.Yang等人,"Toward the Repeatability and Robustness of the Local Reference Frame for3D Shape Matching:An Evaluation",在IEEE Transactions on Image Processing中,第27卷,第8期,第3766-3781页,2018年8月,在此通过引用将其并入。如果在每个对应轴的维度之间的比率是远离1的二,并且每个维度的差异超过特定阈值,则不认为所述搜索区域的超点是针对所述查询的给定超点的潜在匹配候选。换言之,这种实施方式尝试每个维度具有i:
其中:spqdimi是查询的超点的维度i,sprzdimi是搜索区域的超点的维度i,dmax是在2个超点的大小之间的接受的最大差异(例如,20cm),rmin是最小接受的比率(例如,0.2),并且rmax是其LRF中超点的每个维度i的最大接受比率(例如,4);和/或
-从地板到最近支撑表面的相对高度。如果距地板(或者最近支撑表面)的超点中心高度之间的差异大于特定阈值(例如,30cm),则不认为搜索区域的超点是针对所述查询的给定超点的潜在匹配候选。需要注意的是,所述最近支撑表面能够由任何地点检测算法来检测(例如,针对每个超点的水平平面上的平面性值)。
所述实施方式中所使用的相似性度量是余弦相似性,由下文公式给出:
需要注意的是,根据编码器,能够选取另一相似性度量(例如,如果进行对自动编码器的本征空间的正则化)。
在这种实施方式中,如果其相似性(例如,余弦相似性)高于阈值,则将搜索区域的超点匹配到查询的超点,所述阈值是相对于编码器投射性质和用户期望的相似性来定义的。使用被人工注释为针对目标应用而言相似或不相似的超点的集合,能够通过计算被标记为相似的两个超点之间获得的最小相似性来获得这样的阈值。在这种实施方式中,基于这样的试验将所述阈值固定到0.8。
超点编码分组
所述实施方式的该步骤从匹配的超点的所述集合进行3D边界框检测。需要注意的是,在对象仅由一个超点构成的情况下,能够直接围绕匹配的超点绘制边界框提议。
直到该步骤,计算局部描述符(超点特征)并且在查询与搜索区域之间进行比较。为了推断似然边界框的集合,使用所述查询中的超点的相位位置(例如,相对于诸如查询中心的参考点)。
这种相对位置可以通过针对对象的中心使用Hough Voting方法来获得,先前已经对此进行了解释。替代地,可以使用用于从查询中的超点的集合计算图的方法来获得这种相对位置,先前已经对此进行了论述。
所述过程的这种实施方式输出边界框提议。由于所述相似性可以取决于应用或对象,这种实施方式可以包括添加关于所述提议的相似性指示。这有助于用户控制他/她希望其检测到的对象与查询有多么相似。所述方法例如可以包括显示已经论述过的图13的桌面小程序130,从而用户可以如先前参考图13所论述地使用这种桌面小程序来设置相似性得分阈值。每个检测结果与相似性得分(相似性率)相关联,并且用户能够选择阈值以仅保留最方便的那些。在图13的桌面小程序中,选择84%的阈值作为相似性率。
这种相似性可以取决于应用。然后其能够基于若干线索。所述实施方式可以使用若干种方式来计算相似性度量,所述相似性度量能够从下文列出的提议的边界框和/或匹配超点获得。那些相似性度量能够一起用于获得全局性相似性得分或者根据目标应用被独立地使用。所述度量是以下这些:
-超点匹配相似性得分(spms):对于给定提议的匹配超点(与查询的所识别的超点)的匹配得分的组合。在此,n是查询中的超点的数量,mi是针对提议中其每个的匹配得分(如果无匹配,mi=0):
-彩色直方图比较:对于几何信息不够但是有颜色信息可用的特定应用(例如,灭火器检测)非常有用。这能够在来自边界框中所包括的搜索区域的所有点上或者仅在匹配的超点上计算;并且
-同样能够在来自边界框中所包括的搜索区域的所有点上或者仅在匹配的超点上使用的任何全局形状描述符。
现在参考图15至图18论述根据所述检测方法的3D对象检测的示例。例如,可以利用集成学习方法和检测方法的过程的前述实施方式来获得所述示例。
图15示出了从中提取查询的3D对象的屏幕截图。所述3D对象是垃圾桶/垃圾箱。图15示出了围绕垃圾桶的边界框。图16示出了从垃圾桶提取的超点,即,形成查询的超点。图17示出了搜索区域170。如在图17上所示的,作为执行所述检测方法的结果,所述检测搜索区域中的超点的组172、174和176。这些组表示与图15相似的垃圾桶。图18示出了搜索区域170中围绕一个检测到的相似垃圾桶的边界框的显示。出于例示的目的,在图18中仅示出了一个边界框,但是要理解的是,可以显示更多边界框。
所述学习方法、所述检测方法以及集成这些方法的过程是计算机实现的方法。这意味着,所述方法的步骤(或者基本全部步骤)是由至少一个计算机或者任何相似的系统来执行的。因此,所述方法的步骤是由计算机可能全自动或半自动地执行的。在示例中,可以通过用户-计算机交互来执行对所述方法的步骤中的至少一些步骤的触发。所需的用户-计算机交互水平可以取决于与实现用户的希望所需的平衡而预见并且投入的自动化水平。在示例中,这种水平可以是用户定义的和/或预定义的。
方法的计算机实现的典型示例是利用为此目的而调整的系统来执行所述方法。所述系统可以包括被耦合到存储器和图形用户界面(GUI)的处理器,所述存储器上在其上记录有包括用于执行所述方法的指令的计算机程序。所述存储器还可以存储数据库。所述存储器是适于这样的存储的任何硬件,可能包括若干物理不同的部分(例如,一个用于程序,并且可能一个用于数据库)。
图19示出了系统的示例,其中,所述系统是客户端计算机系统,例如,用户的工作站。
所述示例的客户端计算机包括被连接到内部通信总线1000的中央处理单元(CPU)1010,随机存取存储器(RAM)1070也被连接到总线。所述客户端计算机还具备与被连接到总线的视频随机存取存储器1100相关联的图形处理单元(GPU)1110。视频RAM 1100在本领域中也被称为帧缓存区。海量存储设备控制器1020管理对诸如硬盘驱动器1030的海量存储设备的访问。适于有形地实现计算机程序指令和数据的海量存储设备包括所有形式的非易失性存储器,例如包括半导体存储设备,诸如EPROM、EEPROM、和闪存存储设备;诸如内部硬盘和可移动磁盘的磁盘;磁光盘;和CD-ROM盘1040。前述任何内容都可以由专门设计的ASIC(专用集成电路)补充或者被并入其中。网络适配器1050管理对网络1060的接入。客户端计算机还可以包括诸如光标控制设备的触觉设备1090、键盘等。光标控制设备在客户端计算机中用于许可用户在显示器1080上的任何期望位置处选择性定位光标。此外,光标控制设备允许用户选择各种命令以及输入控制信号。光标控制设备包括若干信号发生设备,用于向系统输入控制信号。典型地,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。替代地或此外,客户端计算机系统可以包括敏感垫和/或敏感屏。
计算机程序可以包括计算机可执行的指令,指令包括用于使以上系统执行一种或多种方法的模块。所述程序可以记录在任何数据存储介质上,包括系统的存储器。例如,程序可以实现于数字电子电路中或计算机硬件、固件、软件或其组合中。所述程序可以实现为设备,例如,有形地体现在机器可读存储设备中,以便由可编程处理器执行的产品。方法步骤可由可编程处理器执行,所述可编程处理器通过对输入数据进行操作并生成输出来执行指令程序以执行所述方法的功能。所述处理器从而可以是可编程的,并且被耦合以从数据存储系统接收数据和指令并且将数据和指令发送到数据存储系统的至少一个可编程处理器。可以用高级流程或面向对象的编程语言,或者如果需要用汇编或机器语言来实现所述应用程序。在任何情况下,所述语言可以是编译或解释语言。所述程序可以是完整安装程序或更新程序。在系统上应用程序在任何情况下都导致指令执行所述方法。
Claims (15)
1.一种机器学习的计算机实现的方法,用于学习被配置用于将3D点云中的超点编码为本征矢量的神经网络,所述方法包括:
-提供(S10-S20)超点的数据集,每个超点是3D点云中的点的集合,所述点的集合表示对象的至少一部分;以及
-基于所述超点的数据集来学习(S30)所述神经网络,所述学习包括使损失最小化,所述损失处罚在两个超点之间的不一致。
2.根据权利要求1所述的方法,其中,所述损失是重建损失,所述损失处罚在超点与所述超点的重建之间的不一致。
3.根据权利要求2所述的方法,其中,所述不一致是所述超点与所述超点的所述重建之间的距离。
4.根据权利要求3所述的方法,其中,所述距离是Chamfer距离或Earth-Mover距离。
5.根据权利要求1至4中的任一项所述的方法,其中,所述学习是无监督学习。
6.一种能根据权利要求1至5中的任一项所述的方法来学习的神经网络。
7.一种对根据权利要求6所述的神经网络的计算机实现的使用方法,所述使用方法包括:
-提供(S40-S50):
ο表示3D场景的第一3D点云中的一个或多个第一超点,以及
ο表示3D对象的第二3D点云中的一个或多个第二超点,
-通过应用所述神经网络,将所述一个或多个第一超点中的每个第一超点编码(S60)为相应的第一本征矢量,并且将所述一个或多个第二超点中的每个第二超点编码为相应的第二本征矢量;以及
-通过以下操作来确定(S70)在一个或多个第一超点中的每个第一超点与一个或多个第二超点中的每个第二超点之间的相似性:针对所述每个第一超点和所述每个第二超点,计算在对所述第一超点进行编码的所述相应的第一本征矢量与对所述第二超点进行编码的所述相应的第二本征矢量之间的相似性度量。
8.根据权利要求7所述的方法,其中,对所述一个或多个第一超点的所述提供(S40-S50)包括:
·提供所述第一3D点云中的一个或多个初始超点;
·通过在所述一个或多个初始超点中选择如下的每个初始超点来对所述初始超点进行过滤,对于所述每个初始超点:
ο在所述超点的维度与至少一个第二超点的维度之间的不一致小于预定义阈值;和/或
ο在所述超点的位置与至少一个第二超点的位置之间的不一致小于预定义阈值,
所选择的超点是所述一个或多个第一超点。
9.根据权利要求8所述的方法,其中,所述过滤包括在所述初始超点中选择如下的每个初始超点,对于所述每个初始超点:
-在所述超点的每个维度与至少一个第二超点的对应维度之间的距离小于预定义阈值;和/或
-在所述超点的每个维度与至少一个第二超点的对应维度之间的比率小于最大比率并且大于最小比率;和/或
-在距所述超点的最近支撑表面的相对高度与距至少一个第二超点的最近支撑表面的相对高度之间的差异小于预定义阈值。
10.根据权利要求7至9中的任一项所述的方法,其中,所述方法还包括:在均具有所确定的与至少一个第二超点的大于预定义阈值的相似性的第一超点中确定(S80)一组或多组第一超点,每组第一超点具有与所述第二3D点云相似的形状。
11.根据权利要求10所述的方法,其中,对所述一组或多组的所述确定(S80)包括:
-提供第二超点的图,所述第二超点的图具有节点和边缘,每个节点表示第二超点,每个边缘表示在由所述边缘连接的所述节点表示的两个超点之间的几何关系并且具有所述几何关系的一个或多个几何属性;
-通过以下操作来形成一个或多个图,每个图具有节点,每个节点表示第一超点:构建边缘,每个边缘连接两个节点,并且每个边缘具有与所述第二超点的图的边缘的几何属性相似的一个或多个几何属性,每个形成的图对应于相应的组。
12.根据权利要求11所述的方法,还包括:针对每个组,通过测量所述组中的所述第一超点与所述一个或多个第二超点之间的相似性来确定相似性得分。
13.一种计算机程序,其包括用于执行根据权利要求1至5中的任一项所述的方法和/或根据权利要求7至12中的任一项所述的方法的指令。
14.一种包括计算机可读数据存储介质的设备,所述计算机可读数据存储介质在其上记录有根据权利要求13所述的计算机程序和/或根据权利要求6所述的神经网络。
15.根据权利要求14所述的设备,还包括被耦合到所述数据存储介质的处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306588.3 | 2020-12-16 | ||
EP20306588.3A EP4016392A1 (en) | 2020-12-16 | 2020-12-16 | Machine-learning for 3d object detection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114707628A true CN114707628A (zh) | 2022-07-05 |
Family
ID=74141316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111527530.8A Pending CN114707628A (zh) | 2020-12-16 | 2021-12-14 | 用于3d对象检测的机器学习 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220189070A1 (zh) |
EP (1) | EP4016392A1 (zh) |
JP (1) | JP2022095591A (zh) |
CN (1) | CN114707628A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112053426B (zh) * | 2020-10-15 | 2022-02-11 | 南京航空航天大学 | 一种基于深度学习的大规模三维铆钉点云提取方法 |
CN117409161A (zh) * | 2022-07-06 | 2024-01-16 | 戴尔产品有限公司 | 点云处理方法和电子设备 |
CN115222988B (zh) * | 2022-07-17 | 2024-06-18 | 桂林理工大学 | 激光雷达点云数据城市地物PointEFF精细分类方法 |
CN116188543B (zh) * | 2022-12-27 | 2024-03-12 | 中国人民解放军61363部队 | 基于深度学习无监督的点云配准方法及系统 |
CN115795632A (zh) * | 2023-01-17 | 2023-03-14 | 四川省公路规划勘察设计研究院有限公司 | 一种基于标记点云的自动几何孪生方法和系统 |
-
2020
- 2020-12-16 EP EP20306588.3A patent/EP4016392A1/en active Pending
-
2021
- 2021-12-14 CN CN202111527530.8A patent/CN114707628A/zh active Pending
- 2021-12-15 JP JP2021203671A patent/JP2022095591A/ja active Pending
- 2021-12-16 US US17/553,403 patent/US20220189070A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022095591A (ja) | 2022-06-28 |
US20220189070A1 (en) | 2022-06-16 |
EP4016392A1 (en) | 2022-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11443192B2 (en) | Machine-learning for 3D modeled object inference | |
CN107038751B (zh) | 从2d图像进行3d建模对象的识别的方法、介质与系统 | |
US11562207B2 (en) | Set of neural networks | |
CN114707628A (zh) | 用于3d对象检测的机器学习 | |
Fish et al. | Meta-representation of shape families | |
JP4516957B2 (ja) | 3次元オブジェクトについて検索を行なうための方法、システムおよびデータ構造 | |
CN107067473A (zh) | 对3d建模对象进行重构 | |
Li et al. | Densely constrained depth estimator for monocular 3d object detection | |
Liu et al. | 3D Point cloud analysis | |
CN108073682A (zh) | 基于参数视图函数查询数据库 | |
CN109886297A (zh) | 一种用于从二维图像识别三维模型对象的方法 | |
Han et al. | Scene reconstruction with functional objects for robot autonomy | |
JP7017852B2 (ja) | 記述子を用いた3dオブジェクトの位置特定 | |
Kowalczyk et al. | Efficient characterization method for big automotive datasets used for perception system development and verification | |
JP6947503B2 (ja) | 量子化を用いた3dオブジェクトの位置特定 | |
Song et al. | Inferring 3d shapes of unknown rigid objects in clutter through inverse physics reasoning | |
Huang | Change detection of construction sites based on 3D point clouds | |
EP4057222A1 (en) | Machine-learning for 3d segmentation | |
Mukhopadhyay et al. | A Machine Learning-Based Framework for Real-Time 3D Reconstruction and Space Utilization in Built Environments | |
Prokudin | Robust and efficient deep visual learning | |
Asikainen | VIEW-BASED RETRIEVAL FOR SIMILAR 3D ASSEMBLY MODELS USING 2D IMAGES | |
Son et al. | DEF-oriCORN: efficient 3D scene understanding for robust language-directed manipulation without demonstrations | |
Kim | Deep Learning for Computer Vision and it's Application to Machine Perception of Hand and Object | |
Aslam | Deep Sketch-Based Character Modeling Using Multiple Convolutional Neural Networks | |
Li | Deep Discriminative Representational Frameworks for Recovering Categorical 3D Object Attributes from Visual Data |
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 |