交互对象选择的制作方法

文档序号:25526271发布日期:2021-06-18 20:16阅读:81来源:国知局
交互对象选择的制作方法

本发明涉及计算机程序和系统领域,并且尤其涉及一种机器学习的方法、系统和程序。



背景技术:

市场上针对对象的设计、工程和制造提供了许多系统和程序。cad是计算机辅助设计的缩写,例如,其涉及用于设计对象的软件解决方案。cae是计算机辅助工程的缩写,例如,其涉及用于模拟未来产品的物理行为的软件解决方案。cam是计算机辅助制造的缩写,例如,其涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要作用。这些技术可以嵌入产品生命周期管理(plm)系统中。plm是指一种商业策略,该商业策略帮助企业跨扩展公司概念从产品设想到产品使用寿命结束共享产品数据、应用通用流程以及利用企业知识来开发产品。dassaultsystèmes(商标为catia、enovia和delmia)提供的plm解决方案提供了工程中枢,其组织产品工程知识;制造中枢,其管理制造工程知识;以及企业中枢,其使得能够实现与工程中枢和制造中枢两者的企业集成和连接。该系统共同提供了开放对象模型,该模型将产品、过程、资源链接在一起以实现动态的、基于知识的产品创建和决策支持,该产品创建和决策支持驱动优化的产品定义、制造准备、生产和服务。

在这种背景和其他背景下,分割点云正变得越来越重要。以下论文与点云分割有关并在下文中引用:

[1]alekseygolovinsk,thomasfunkhouser“min-cutbasedsegmentationofpointclouds”,-iccv研讨会,2009,

[2]kunliu,janboehm,“anewframeworkorinteractivesegmentationofpointclouds”,-int.arch.photogramm.remotesens.spatialinf.sci.2014,以及

[3]sedlacekd.,zaraj.,“graphcutbasedpoint-cloudsegmentationforpolygonalreconstruction”-isvc2009。

这些方法缺乏效率、鲁棒性和泛化能力。

在这种背景下,需要一种用于点云分割的改进的机器学习方法。



技术实现要素:

因此,提供了一种计算机实现的机器学习方法。该方法包括提供3d点云的数据集。每个3d点云包括至少一个对象。每个3d点云均配备有对一个或多个图形用户交互的规定。每个图形用户交互表示对3d点云中的同一对象的相应选择操作。该方法还包括基于数据集学习神经网络,该神经网络被配置用于分割包括对象的输入3d点云。分割是基于输入3d点云并且基于对一个或多个输入图形用户交互的规定的。每个输入图形用户交互表示对3d点云中的对象的相应选择操作。

该方法可以包括以下中一项或多项:

-提供3d点云的数据集包括:

o提供3d点云,并且对于每个3d点云,提供关于3d点云中的所述同一对象的位置的信息;以及

o对于每个3d点云:

■通过模拟一个或多个图形用户交互中的每个图形用户交互来确定规定;以及

■使3d点云配备对一个或多个图形用户交互的规定;

-一个或多个图形用户交互中的每个图形用户交互对应于各自定义在3d点云上的一个或多个种子位置,并且对图形用户交互的模拟包括确定一个或多个种子位置;

-一个或多个图形用户交互包括第一图形用户交互,该第一图形用户交互用于选择所述同一对象并对应于各自定义在所述同一对象上的一个或多个第一种子位置;

-确定一个或多个种子位置包括将一个或多个第一种子位置散布于所述同一对象上;

-对于至少一个3d点云,一个或多个图形用户交互进一步包括第二图形用户交互,该第二图形用户交互用于丢弃所述同一对象的区域外部并且对应于各自定义在所述同一对象外部的一个或多个第二种子位置;

-对3d点云进行配备包括基于对每个图形用户交互的模拟将量化点处的选择操作强度的坐标添加到3d点云的每个点;和/或

-一个或多个图形用户交互中的每个图形用户交互用于选择所述同一对象或丢弃所述同一对象的外部区域,并且对于3d点云中的每个点,添加坐标包括:

ο将坐标设置为初始值;

ο对于用于选择所述同一对象的每个图形用户交互,根据该图形用户交互与该点之间的接近度来增加坐标;以及

ο对于用于丢弃所述同一对象的外部区域的每个图形用户交互,根据图形用户交互和点之间的接近度来减小坐标。

还提供了可根据该方法学习的神经网络,例如已经根据该方法学习的神经网络。

还提供了神经网络的计算机实现的使用方法。使用方法包括提供3d点云,该3d点云包括对象。使用方法还包括对以下各项的一个或多个迭代:通过执行一个或多个图形用户交互来执行对对象的选择操作;以及通过应用神经网络,基于3d点云并且基于对一个或多个图形用户交互的规定来分割3d点云。

使用方法可以包括以下中的一项或多项:

-该方法进一步包括,在执行选择操作之后并且在应用神经网络之前:

ο通过针对一个或多个图形用户交互中的每个图形用户交互确定由图形用户交互定义的一个或多个种子位置的位置来确定规定;以及

ο使3d点云配备规定,该配备包括向3d点云中的每个点添加量化点处的选择操作的强度的坐标;和/或

-一个或多个图形用户交互包括以下中的一项或多项:

ο在对象上执行一次或多次点击;

ο在对象上执行划线;

ο在对象上和/或在对象周围定义边界框;

ο在对象外部执行一次或多次点击;和/或

ο在对象外部执行划线。

还提供了一种计算机程序,其包括用于执行该方法和/或使用方法的指令。

还提供了一种装置,该装置包括已在其上记录计算机程序和/或神经网络的数据存储介质。

该装置可以形成或用作例如saas(软件即服务)或其他服务器或基于云的平台等上的非暂时性计算机可读介质。该装置可以可替代地包括耦合至数据存储介质的处理器。因此,该装置可以全部或部分(例如,该装置是整个系统的子系统)地形成计算机系统。该系统可以进一步包括耦合到处理器的图形用户界面。

附图说明

现在将通过非限制性示例并参考附图来描述本发明的实施例,其中:

-图1至图15示出了方法;并且

-图16示出了系统的示例。

具体实施方式

提出了一种计算机实现的机器学习方法。该方法包括提供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点云的类型无关,这使神经网络鲁棒。

此外,除了被配置为分割3d点云之外,神经网络实际上被配置为用于对3d点云进行交互式分割。实际上,神经网络特别是基于对通过图形用户交互进行对象选择的规定而学习的,这允许神经网络通过检测输入3d点云上通过图形用户交互进行的对象选择来分割输入3d点云。换句话说,并且如下面在使用方法中进一步详细讨论的,神经网络允许用户以图形方式选择输入3d点云上的对象并且然后基于该选择通过应用神经网络自动获得对输入3d点云的分割。由于用户不需要执行大量和/或复杂的物理动作,这允许在减轻用户负担的情况下进行分割:与机器进行简单、普通和/或无物理疲劳图形交互足够实现。因此,该学习方法提供了一种用于交互式地分割3d点云的在人体工程学上改进的解决方案。

还提供了一种可根据该方法学习的神经网络,例如已经根据该方法学习的神经网络。因此,神经网络被配置用于分割包括对象的输入3d点云。分割是基于输入3d点云和对一个或多个输入图形用户交互的规定的。每个图形用户交互表示对3d点云中的对象的相应选择操作。由于根据该方法可使神经网络进行学习,因此该神经网络的分割尤其有效率并且具有一定的泛化能力。例如,如前所讨论的,分割与3d点云的类型以及包含在3d点云中的对象的类型无关。

还提供了神经网络的计算机实现的使用方法。使用方法包括提供包括对象的3d点云。使用方法还包括对以下操作的一次或多次迭代:通过执行一个或多个图形用户交互来执行对对象的选择操作;以及通过应用神经网络基于3d点云以及对一个或多个图形用户交互的规定分割(例如自动)3d点云。使用方法可以称为“分割方法”。

分割方法允许以人体工程学上改进的方式进行交互式分割。实际上,如前所讨论的,神经网络以这种方式进行学习使得用户仅需通过在3d点云上进行图形交互来进行对象选择来分割3d点云:用户执行对象选择,然后通过应用神经网络来分割(例如自动地)3d点云。如果用户希望执行进一步的分割和/或提高已经执行分割的细节水平,则用户仅需要通过图形用户交互来执行另一对象选择,并且然后通过应用神经网络实现另一分割(例如自动地)等。换句话说,分割方法允许对输入3d点云的进行交互式(可能是迭代的)分割。此外,分割是符合人体工程学的,因为分割不会给用户带来太多负担。实际上,仅要求用户执行图形交互,例如,简单、常用和/或不累人的图形交互,例如点击、绘制划线和/或绘制/定义边界框。例如,如下文进一步讨论的,这些图形交互可以用触觉装置来执行,例如鼠标和/或基于触摸的触觉装置(例如,触摸屏或触摸板)。此外,由于神经网络与3d点云的类型以及对象类别/分类/类型无关,因此可以在包括任何类型对象的任何类型的3d点云上执行分割。

学习方法和分割方法可以例如独立地执行,例如由不同的用户和/或在不同的计算机上执行。可替代地,学习方法和分割方法可以集成到同一计算机实现的过程中。现在参考图1讨论该过程,该图1示出了过程的示例的流程图。

该过程包括离线阶段,该离线阶段集成了学习方法。离线阶段包括根据学习方法提供s103d点云的数据集。离线阶段还包括使神经网络进行学习s20,该神经网络被配置为根据学习方法分割包括对象的输入3d点云。离线阶段还可以包括例如在存储器上存储已学习的神经网络,例如用于该过程的现在进行讨论的在线阶段。

该过程还包括在线阶段,该在线阶段集成了分割方法。在线阶段可以包括提供已学习的神经网络,例如通过从在离线阶段该神经网络已经存储于存储器中检索该神经网络。在线阶段包括根据分割方法提供s30包括对象的3d点云。在线阶段还包括根据分割方法执行s40对对象的选择操作以及通过应用s50神经网络根据分割方法分割3d点云的一次或多次迭代。

现在进一步讨论学习方法。

该学习方法是用于点云分割的机器学习。

众所周知,点云是具有坐标(通常为3d坐标)的无序点集,该坐标可以伴有其他特征(例如封装在额外坐标中),例如强度或颜色。该数据的无序方面使得该数据难以分析,尤其是与诸如图像的结构化网格相比。存在不同格式的点云,但是如前所讨论的,已学习的神经网络与这些不同格式无关。

点云分割,也称为对象分割,对应于从点云的背景点中提取点云中属于对象的所有点的任务。如前所述,通过学习方法学习的神经网络能够处理所有类型的对象,即与对象类别无关。此外,如前所述,神经网络允许执行交互式分割。交互式分割是指其中用户通过与点云进行交互来表明其对对象的兴趣的分割。

学习方法是机器学习方法。

如从机器学习领域众所周知,由神经网络对输入的处理包括将操作应用于输入,该操作由包括权重值的数据定义。使神经网络进行学习因此包括基于被配置用于这种学习的数据集来确定权重的值,这种数据集可能被称为学习数据集或训练数据集。为此,数据集包括各自形成相应训练样本的数据段。训练样本表示使神经网络进行学习后神经网络要被用于的情况的多样性。本文所指的任何数据集都可以包括高于1000、10000、100000或1000000的训练样本数量。在本公开的上下文中,通过“基于数据集使神经网络进行学习”,意味着该数据集是神经网络的学习/训练数据集。

在学习方法的上下文中,神经网络的训练数据集是提供的3d点云数据集,现在将对该数据集进行讨论。

训练数据集包括3d点云,每个3d点云均包括至少一个对象并且每个3d点云均装备有对一个或多个图形用户交互的规定,该一个或多个图形用户交互各自表示对3d点云中的同一对象的相应选择操作。换句话说,每个3d点云和3d点云所配备的规定形成了训练数据集的训练样本。由于该规定与图形用户交互有关,因此该规定可以被称为“交互通道”或“用户指示符”。在下文中进一步讨论该规定。为了简单起见,可以将这种训练样本简称为“3d点云及其交互通道”。在任何情况下,每个训练样本均包括由3d点云及其交互通道组成的对。每个训练样本还可以包括分割掩模,该分割掩模对于3d点云中的每个点而言在于对属于所述同一对象或不属于所述同一对象的点进行注释。这允许使神经网络以完全监督的方式进行学习s20,如在下文中进一步讨论的。在示例中,训练数据集可以包括大约2000个训练样本。

众所周知,3d点云由一组3d点组成,这些3d点例如各自都由3d空间中的三个笛卡尔坐标进行描述。这等于说,每个点云可以与一组三元组关联,这些三元组各自表示3d点云的点的3d坐标。本文中的任何3d点云都可以表示3d真实场景,真实场景是真实世界的一部分(例如工厂场景或办公室场景),3d点云的每个点都表示场景中的点。“表示真实场景”并不一定意味着3d点云源自现实世界中进行的物理测量。例如,本文中的任何3d点云可以是真实场景的合成表示,如在下文中进一步讨论的。任何3d点云都包括至少一个对象。3d点云的每个对象在本文中是3d点云的一组点,这些点各自表示同一对象(例如,真实场景的同一对象)的点,该一组点一起形成对对象的表示。

本文中的任何3d点云均可以是合成点云,即源自合成点云生成过程的点云。换句话说,表示真实场景的合成点云并非源于对真实场景进行物理测量以捕获对真实场景的表示,而是形成对真实场景的虚拟的、数字生成的表示。合成点云生成过程指定输出合成3d点云的任何计算机实现的过程。这种过程可以输出各自具有点级注释的3d点云,该点级注释针对输出3d点云的每个点指定该点是否属于对象(在不属于该对象情况下,可以说该点属于背景)。可替代地,这种过程可以输出未注释的3d点云,每个点云在稍后阶段被注释。可替代地,可以从对真实场景的物理测量确定本文中的任何3d点云。确定3d点云可以包括:提供一个或多个物理传感器(例如3d扫描,诸如lidars),该一个或多个物理传感器各自被配置用于获取相应的物理信号以及通过在真实场景中操作一个或多个物理传感器(即使用每个传感器来扫描真实场景)来获取一个或多个相应的物理信号。然后,根据任何已知技术,确定基于测量自动确定3d点云。请注意,当今,现有技术的传感器能够提供数百万个点的云,从而提供非常高质量的非常密集的3d扫描。

在示例中,训练数据集或训练数据集的至少一部分的3d点云可以是合成3d点云。在这种情况下,提供s10训练数据集可以包括通过任何已知的合适的合成点云生成过程来合成生成这些3d点云。提供s10可以进一步包括通过将点云的属于对象的每个点注释为“对象”并且将属于背景的每个点注释为“背景”来注释每个点云。可替代地,提供s10这些3d点云可以包括从存储器(例如远程存储器)中检索这些3d点云及其注释,这些3d点云例如在其生成之后已经被存储在该存储器中。

在这些示例的示例中,生成3d点云可以包括提供3d对象的cad(计算机辅助设计)模型。生成3d点云还可以包括将所提供的3d对象的每个cad模型转换成各自表示3d对象的3d点云,为了简单起见,将3d点云称为“对象点云”。为了简单起见,生成还可以包括提供各自表示背景的3d点云,并且这些3d点云各自都被称为“背景点云”。生成还可以包括将每个对象点云插入背景点云。这导致生成的3d点云,这些生成的3d点云各自由插入背景点云中的一个或多个对象点云形成。生成可以另外包括将每个对象点云的每个点注释为“对象”并且将每个背景点云的每个点注释为“背景”。图2和3示出了这些示例。图2示出了转换成对象点云20的cad对象20的示例。图3示出了插入背景点云中的对象点云的示例30。

注意到,在插入对象时,该方法可以考虑可能的遮挡(对象/对象遮挡或对象/背景遮挡)以及点密度归一化以用于现实合成点云表示。具体地,该方法可以考虑这些方面以将从cad模型获得的点云插入表示背景的散点图中。这些方面对应于调整步骤以重现可以在真实点云(来自3d扫描仪)中观察到的效果。例如,如果将与桌子的cad模型相对应的点云插入背景中,则该方法可以调整该点云密度,使得该点云对应于其将要插入的背景的密度。以相同的方式,该方法可以考虑遮挡以接近真实点云。以桌子为例,该方法可以删除位于桌子脚下的属于背景的点以仅保留可以由真实扫描仪获得的点。还应注意,3d扫描仪在获取期间中仅捕获可见表面点。为了避免这种情况,该方法在示例中允许将遮挡添加到合成生成的数据集中。

在这些示例的替代示例中,生成3d点云可包括应用进一步提供自动且准确的点级注释的自动点云生成方法。生成方法可以是任何已知的生成方法,例如在xiangyuyue,bichenwu,sanjita.seshia,kurtkeutzer和albertol.sangiovanni-vincentelli在2018年的文献“alidarpointcloudgenerator:fromavirtualworldtoautonomousdriving”中所描述的方法,该文献以引用方式并入本文。该方法提出了虚拟扫描仪仿真以从3dcad场景(例如视频游戏环境)中提取点云。

在其他示例中,训练数据集或该训练数据集的至少一部分的3d点云可以源自对真实场景执行的物理测量,如前所讨论的。在这种情况下,通过s10训练数据集可以包括执行物理测量并基于物理测量确定3d点云,如前所讨论的。提供s10可以进一步包括通过将点云的属于对象的每个点注释为“对象”并且将属于背景的每个点注释为“背景”来注释每个点云。可替代地,提供s10这些3d点云的s10可以包括从存储器(例如远程存储器)中检索这些3d点云及其注释,例如,这些3d点云在其生成之后已经被存储在该存储器中。例如,可以从公共点云数据集(例如在timohackel和n.savinov和l.ladicky和jand.wegner和k.schindler和m.pollefeys于2017年在isprs所发表的“semantic3d.net:anewlarge-scalepointcloudclassificationbenchmark”;andreasgeiger和philiplenz和raquelurtasun于2012年于cvpr发表的“arewereadyforautonomousdriving?thekittivisionbenchmarksuite”以及iroarmeni和ozansener和amirr.zamir和helenjiang和ioannisbrilakis和martinfischer和silviosavarese于2016年于cvpr发表的“3dsemanticparsingoflarge-scaleindoorspaces”中提供的数据集,这些文献均通过引用并入本文)检索训练数据集的3d点云。提供s10可以包括将从这种公共数据集中检索的点云进行二进制注释“对象vs背景”。

在任何情况下,提供s103d点云训练数据集可以包括提供3d点云。如前所述,每个3d点云均配备有其规定。该规定形成有关一个或多个图形用户交互的数据,该一个或多个图形用户交互各自表示对点云中同一对象的相应选择操作。这就是说,规定描述了如何通过一个或多个图形用户交互来选择所述同一对象,例如基于关于对象的相对定位以及一个或多个图形用户交互的数据。这允许使神经网络进行学习使得神经网络可以仅基于检测到通过图形用户交互进行对象选择就可以分割3d点云。提供s10训练数据集可以包括针对每个点云确定规定并且为点云配备该规定。确定规定可以包括计算/仿真规定,即针对数据集的每个3d点云。可替代地,确定规定可以包括例如由执行一个或多个图形用户交互的用户通过手工手动提供规定,即针对数据集的每个3d点云。

如前所述,该规定可以被称为“交互通道”或“用户指示符”。具体地,可以由3d空间中的一组三个笛卡尔坐标来表示3d点云的每个点。该点可以进一步包括第四坐标,该第四坐标表示该点如何受一个或多个图形用户交互影响。换句话说,第四坐标形成封装通过图形用户交互对所述同一对象进行选择对点的影响程度的数据。数据可以例如表示该点与一个或多个图形用户交互中的至少一个图形用户交互的接近度。

现在讨论提供s10训练数据集的示例。

在示例中,提供s103d点云的训练数据集包括提供3d点云。提供s10训练数据集还包括针对每个3d点云提供关于所述同一对象在3d点云中的位置的信息。提供s10训练数据集进一步包括针对每个3d点云通过模拟一个或多个图形用户交互中的每个图形用户交互来确定规定以及为3d点云配备对一个或多个图形用户交互的规定。

关于所述同一对象的位置的信息可以是允许将所述同一对象与3d点云的其他部分(例如,其他对象,如果有的话,或背景)区分开的任何信息。在示例中,信息针对对象的每个点包括作为“对象”的点的注释。该信息还可以包括该点的坐标。提供信息可以包括将所述同一对象的每个点注释为“对象”,例如如前所述。提供信息可以进一步包括将背景的每个点注释为“背景”,例如如前所述。提供信息可以包括将每个其他对象的每个点(如果有的话)注释为“其他对象”。这可以被该方法使用以例如将负种子添加到目标对象的相邻对象,如在下文中进一步讨论的。但是,这不是强制性的。实际上,在感兴趣的对象周围的区域中添加种子就足够了,使得这些种子也可以在相邻对象(如果有相邻对象)上找到。

模拟每个图形用户交互会产生有关图形用户交互的位置的数据。应当理解,“模拟”是指图形用户交互是虚拟的,即是数字创建的。换句话说,学习方法通过模拟的用户行为为3d点云配备对对象选择的规定。换句话说,关于位置的所述数据是数字创建的,例如,相对随机地和/或根据预定义的程序/策略。确定规定是基于这些数据以及关于所述同一对象的位置的信息的。例如,确定规定可以考虑这些数据以及该信息以产生规定。模拟一个或多个图形用户交互中的每个图形用户交互允许在没有用户手动工作的情况下获得规定,这将是耗时的和/或易于过度拟合。此外,这使得图形用户交互是虚拟的,这例如允许图形用户交互相对随机和/或良好多样化,从而产生了良好多样化的训练数据集。正如从机器学习领域所知,这提高了学习的质量。

在示例中,一个或多个图形用户交互的每个图形用户交互对应于各自在3d点云上定义的一个或多个种子位置。在这些示例中,图形用户交互的模拟包括确定一个或多个种子位置。

每个种子位置是表示图形用户交互的至少一部分的位置的数据。一个或多个种子位置一起形成表示图形用户交互在3d点云上的位置的数据。每个种子位置例如可以在于3d空间中的一组三个笛卡尔坐标,从而指示图形用户交互的点的位置。换句话说,种子位置可以在于3d空间中的点,该点可以与3d点云的点一致或不一致。例如,种子位置可以在于3d点云的点,该点最接近图形用户交互的至少一部分的由种子表示的位置。这允许模拟的图形用户交互为用于对象选择的许多类型的不同且通常的图形用户交互的虚拟表示。实际上,许多类型的众所周知且通常的图形用户交互可以通过一组一个或多个种子位置来表示。例如,一个或多个种子位置可以表示用户在3d点云上的一次或多次点击,每个种子位置表示(例如,是)3d空间中与该点击中的一次点击的位置相对应的点。种子位置可以例如是3d点云中最接近点击的位置的点。可替代地,一个或多个种子位置可以表示用户在3d点云上的划线,每个种子位置表示(例如,是)3d空间中与划线的线的采样位置相对应的点。可替代地,一个或多个种子位置可以表示由用户在3d点云上绘制/定义的边界框,每个种子位置表示(例如,是)3d空间中与边界框的外部或内部的样本位置相对应的点。由于对于每个图形用户交互的所有这些都成立,因此这意味着一个或多个图形用户交互可以是以下项目中的一项或多项的虚拟表示:在3d点云上的一次或多次点击、在3d点云上的划线、和/或在3d点云上绘制/定义的边界框。为简洁起见,在下文中将每个种子位置简称为“种子”。

确定一个或多个种子可以包括计算一个或多个种子,例如相对随机地和/或根据预定策略,以例如用于确保一定数量的种子和/或种子之间的合理距离。在一个或多个种子是3d空间中的一个或多个点的情况下,确定一个或多个种子可以包括确定一个或多个点的坐标。

在示例中,一个或多个图形用户交互包括用于选择所述同一对象的第一图形用户交互。第一图形用户交互对应于各自在所述同一对象上定义的一个或多个第一种子位置。

由于第一图形交互属于对所述同一对象进行选择,因此第一图形用户交互可以被称为“正交互”。换言之,正交互表示通过实际选择所述同一对象而不是丢弃3d点云的其他部分而对所述同一对象的图形用户选择。向训练数据集提供有关正交互的数据可以使神经网络进行学习使得该神经网络将检测这种交互作用以执行分割。例如第一图形用户交互可以表示的这种正交互的示例是:在所述同一对象上进行一次或多次点击、在所述同一对象上进行划线、或者在所述同一对象上和/或该所述同一对象周围绘制/定义边界框。

由于第一图形用户交互是正用户交互,因此该第一图形用户交互是在所述同一对象上执行的图形用户交互的虚拟表示,该图形用户交互位于所述同一对象的点上。因此,一个或多个第一种子位置各自在所述同一对象上进行定义。例如,在一个或多个第一种子位置是一个或多个点的情况下,一个或多个点基本上位于所述同一对象的点之间。模拟第一图形用户交互包括确定一个或多个第一种子。确定一个或多个第一种子可以随机地进行,例如,通过随机选择所述同一对象的一个或多个点作为一个或多个第一种子;或部分随机地进行。这为形成训练数据集提供了简化。

在示例中,确定一个或多个种子位置包括将一个或多个第一种子位置散布在所述同一对象上。散布一个或多个第一种子可以包括通过在点云的受限一组点之间例如随机地选择点云的点作为种子来确定每个种子。散布一个或多个第一种子可以包括确定第一种子的数量并选择该数量的其间具有预定距离的第一种子。数量和/或预定距离可以例如取决于对象大小。这允许第一种子很好地覆盖该同一对象。

现在讨论散布的实现。

这种实现允许模拟正交互的用户行为。与完全随机方法相比,这里模拟的第一图形用户交互对应于用户似然的正交互,其中该用户交互导致关于所述同一对象的大小并且其间具有合理距离的一定数量的种子。这允许很好地覆盖对象。例如,当通过在对象上执行点击来选择对象时,用户通常会利用点击来覆盖对象。当通过在对象上执行划线来选择对象时,用户通常会绘制覆盖该对象的划线。当利用边界框选择对象时,用户可以以这种方式绘制边界框使得该边界框的内部覆盖对象,例如通过框定边界框内的对象。该实现包括根据类型的正态概率分布来确定一个或多个第一种子的数量:

x~n(μ,σ)(1)

其中,x为第一种子的数量,μ对应于(即等于)m*p/k,其中m为所述同一对象的点数,p为对象中待受第一图形交互影响的比例(例如20%)并且k是邻居数量。数量k在下文中进一步讨论。σ可以等于1。这允许关于第一种子的数量具有灵活性,同时相对于所考虑的图形交互的池逊保持一致性。该实施例可以进一步包括固定种子之间的最小距离,从而允许更好地覆盖所述同一对象。该固定可以包括迭代地选择第一种子,并且在每次迭代中,从选择中排除在先前选择的第一种子周围的边界框区域中所包含的所有点。该边界框的大小可以相对于对象的大小(例如,对象的一定比例的长度、宽度、高度)进行固定。可以根据公式(1)选择第一种子的数量x,但是可以将其四舍五入为大于1或等于1的最接近整数部分。

现在讨论当前讨论的散布实现的特定实现。在特定实现中,所述对象被称为“兴趣对象”,并且每个种子被称为“正种子”。根据算法执行特定实现,该算法具有以下规定:

输入变量为:

·objpoints:包含感兴趣对象的所有点的变量,

·k:是针对该点云所考虑的邻居数量的变量。数量k在下文中进一步讨论,

·proportion:控制待由第一次图形交互所影响的对象比例的参数,

·standarddeviation:控制分布的方差的参数,该方差用于表明正种子数量。

输出变量为:

·seeds:包含针对兴趣对象的所有正点击(坐标)的列表的变量。

出现的中间变量为:

·numberofobjpoints:对应于属于兴趣对象的点数量的变量,

·numberofseeds:对应于将针对此兴趣对象执行的正点击数量的变量,

·seed:对应于一次正点击的坐标的变量。

未明确声明但是出现的函数为:

·randpoint():返回一组点中的随机点的函数,

·regionaround():返回围绕点坐标的区域的函数。在这里,该函数用于抑制对象在前一次点击周围区域中的所有点,从而确保点击之间的最小距离,

·normaldistribution(mean,standarddeviation):根据由输入参数定义的正态分布返回浮点值的函数。

该算法由以下伪代码描述:

在一个或多个图形用户交互包括第一图形用户交互的示例中,对于至少一个3d点云(即训练数据集中的至少一个3d点云),多个图形用户交互中的一个图形用户交互进一步包括第二图形用户交互以用于丢弃所述同一对象外部并对应于各自限定在所述同一对象外部的一个或多个第二种子位置的区域。

由于第二图形用户交互涉及通过丢弃对象外部的区域来选择所述同一对象,因此第二图形用户交互可以被称为“负交互”。换言之,负交互表示通过丢弃点云中不是所述同一对象的一部分来对所述同一对象进行图形用户选择。除了正交互以外,为训练数据集提供有关负交互的数据允许使神经网络进行学习使得神经网络将检测正交互和负交互两者以执行分割。由于对点云中的对象进行用户图形选择可能经常涉及正交互(例如,用于执行对对象的粗略选择)和负交互(例如,用于通过丢弃外部区域(例如背景或其他对象)来完善选择)的混合,因此这提高了神经网络执行分割的能力。例如第二图形用户交互可以表示的这种负交互的示例为:在所述同一对象外部(例如,在背景或另一对象上)执行一次或多次点击或者在所述同一对象外部(例如,在背景或另一对象上)执行划线。此外,学习方法混合正交互和负交互的能力允许使神经网络以这种方式进行学习使得神经网络能够检测包含用户在对象周围绘制/定义边界框的对象图形选择:边界框外部的点(或这些点中的至少一个样本)由神经网络检测为第二种子,而内部的点(或这些点中的至少一个样本)检测为第一种子。

正种子和负种子的混合允许每个图形用户交互表示典型的图形交互,例如点击、划线和边界框,所有这些图形交互都具有如前所述由种子所表示的特性。具体来说,由于点击直接对应于种子,因此点击表示可用最小交互。通过从划线的线中采样种子的位置,可以将划线采样为种子集合(例如单个点的集合),从而使该种子集合在所需生成中非常接近于针对多次点击进行的生成。假设边界框用于粗略地指示兴趣对象,则可以通过分别针对于正点击和负点击对该框的内部和外部的单个点指示符进行采样来将边界框转换为种子集合。然而,在示例中,学习方法可以偏离这些范例以便确定最佳地对应于特定类型的用户交互的种子,即,针对于其中输入图形用户交互总是相同类型(例如边界框)的应用。例如,学习方法可以执行优化以通过从训练框的内部和外部对种子进行采样来从边界框产生种子,该训练框对于在所述同一对象上的每次交互均具有变化的高度、长度和宽度。此外,一些训练边界框可以部分地包括所述同一对象。以这种方式,即使用户提供仅部分包围对象的边界框,神经网络也可以识别在点云中的对象。

由于第二图形用户交互是负用户交互,因此该第二图形用户交互是在所述同一对象外部,即在所述同一对象外部的点上执行的图形用户交互的虚拟表示。因此,一个或多个第二种子位置各自被定义在所述同一对象的外部。例如,在一个或多个第二种子位置是一个或多个点的情况下,一个或多个点基本上位于所述同一对象外部的点之间。对第二图形用户交互的模拟包括确定一个或多个第二种子。确定一个或多个第二种子可以随机进行,例如通过随机选择所述同一对象外部的一个或多个点作为一个或多个第二种子(即背景或另一对象的一个或多个点)进行或部分随机地进行。

现在讨论确定一个或多个第二种子的实现。

在该实现中,可以根据不同的策略来确定一个或多个第二种子。每种策略都允许模拟典型的用户行为并匹配实际的交互类型。

根据第一策略,确定一个或多个第二种子确定所述同一对象周围(例如在所述同一对象的预定距离之内)的一个或多个第二种子。该策略模拟用户指定对象边界的最可能方式。根据该策略确定一个或多个第二种子可以包括提取兴趣对象周围的背景点的封闭区域(例如,小于30厘米的区域,即对象周围的条带并且宽度为30厘米))并且选择该区域中的一个或多个随机点作为一个或多个第二种子。

根据第二策略,确定所述同一对象周围(例如在所述同一对象的预定距离之内)的一个或多个第二种子确定了所述同一对象的相邻对象(例如,所述同一对象的预定距离之内的对象)上的一个或多个第二种子。该策略模拟将对象分类为背景对象,同时也与实际的用户行为匹配。根据第二策略确定一个或多个第二种子需要对点云场景中的所有对象进行注释。根据该策略确定一个或多个第二种子可以包括在最接近所述同一对象的背景对象之中的每个背景对象上随机选择点,所选择的一个或多个点为一个或多个第二种子。

根据第三策略,确定一个或多个第二种子随机地(例如,甚至远离兴趣对象)确定一个或多个第二种子以抑制随机的错误第一种子并匹配其他用户行为。根据该策略的确定可以包括随机地选择一个或多个背景点(即,3d点云的所有点减去所述同一对象的点)作为一个或多个第二种子。

应当理解,尽管对于训练数据集中的每个3d点云而言,在一个或多个图形用户交互内存在至少一个正交互(即第一图形用户交互),但不一定存在负交互(即第二图形用户交互)。在示例中,在数据集中存在一个或多个3d点云,针对该数据集,一个或多个图形用户交互包括先前已经讨论的第二图形用户交互。该学习方法可以确定与这些第二图形用户交互中的每个第二图形用户交互相对应的一个或多个第二种子,该一个或多个第二种子各自利用给定策略,例如,在先前讨论的第一、第二和第三策略中相对随机地选择的策略。“相对随机”是指某些策略可能比其他策略更有可能被选择。例如,当模拟现实世界中可能发生的用户行为时,该第一策略最有可能会被选择。第二策略可以是可选的,即,在学习方法的示例中,例如在未对背景对象本身进行注释时,从不选择第二策略。

对于第一图形用户交互,可以从以第二种子的目标数量为中心的概率分布得出所确定的第二种子的数量,而与策略无关。第二种子的目标数量通常可以是参数,该参数既控制模拟的交互量,也控制神经网络进行学习的任务(即分割)的难易度。例如,目标数量为0的目的在于正交互仅提供足够的信息来提取对象,但可能导致负点击不稳定并限制提取的质量。另一方面,高目标数量(例如15)应确保精确分割掩模,但在使用神经网络期间将需要许多用户交互。对应实现包括根据以下类型的正态概率分布来确定一个或多个第二种子的数量:

x~n(μ,σ)(1)

其中,x表示第二种子的数量。示例的一组正态概率分布参数为μ=1且σ=1。在确定x时,第二种子的数量x可以具有0作为下限。

现在讨论确定一个或多个第二种子的当前讨论的实现的特定实现。在特定实现中,所述对象被称为“兴趣对象”,并且每个种子被称为“负种子”。根据算法执行特定实现,该算法具有以下规定:

输入变量为:

·objpoints:包含感兴趣对象的所有点的变量,

·scenepoints:包含场景(包括兴趣对象)的所有点的变量,

·mean:控制分布的平均值的参数,该分布用于表明负种子数量,

·standarddeviation:控制分布的方差的参数,该分布用于表明负种子数量,

·pstrategy:控制选择一种策略而不是其他策略的可能性的参数。输出变量为:

·seeds:包含针对兴趣对象的所有负点击(坐标)的列表的变量。出现的中间变量为:

·backgroundpoints:包含点云场景中的所有点减去属于兴趣对象的点的变量。

·strategy:与所选策略对应的变量。该变量可能为:

οrandom(来自背景点中的随机点),

οneighborobjs(在距兴趣对象最近的对象上进行点击),

οsurroundings(在兴趣对象周围的小区域中进行点击)。

·numberofseeds:对应于针对此兴趣对象执行的负点击次数的变量,

·seed:对应于一次负点击的坐标的变量,

·nearestobjs:是所有相邻对象的点云的列表的变量。长度为numberofseeds。

未明确声明而出现的函数是:

·randpoint():返回一组点中的随机点的函数,

·regionaround():返回点坐标周围的区域的函数。在我们的情况下,此函数用于抑制背景中前一次点击周围区域中的所有点,从而确保点击之间的最小距离,

·nearestobjs():返回所有相邻对象的点云的列表的函数。长度为numberofseeds,

·smallerregionaroundobj():返回兴趣对象周围的背景点的封闭区域的函数,

·normaldistribution(mean,standarddeviation):根据由输入参数定义的正态分布返回浮点值的函数。

该算法由以下伪代码描述:

在任何情况下,在模拟之后,已经通过图形用户交互的模拟来确定关于每个图形用户交互的位置的数据。在示例中,在该点处,对于每个3d点云并且对于针对3d点云的一个或多个图形用户交互中的每个图像用户交互而言,图形用户交互的模拟结果为:

-如果图形用户交互是正交互(一个或多个图形用户交互中的至少一个是正交互),则如上所述已确定一个或多个第一种子,并且

-如果图形用户交互为负交互,则如上所述已确定一个或多个第二种子。

然后,确定规定可以包括处理关于所有模拟的图形用户交互的位置的数据并将这些数据转换为形成规定的一段数据。然后,使3d点云配备有规定可以包括将规定与3d点云相关联以形成对,所述对形成训练样本。

现在讨论针对学习方法进行配备的示例。

在示例中,对3d点云进行配备包括基于对每个图形用户交互的模拟向3d点云的每个点添加坐标。坐标量化了在该点处的选择操作的强度。

“基于对每个图形用户交互的模拟”是对3d点云进行配备考虑了关于每个模拟的图形用户交互的位置的所述数据。实际上,对3d点云进行配备在这里包括处理这些数据并将这些数据转换为一组坐标,3d点云中的每个点各自一个坐标。对3d点云进行配备包括然后将此坐标添加到每个点,并且这得出规定。换句话说,规定是添加到3d点云中的每个点的该组所有坐标。

该转换使得对于每个点,坐标量化在该点处的选择操作的强度。具体而言,坐标量化了点与每个图形用户交互的接近度。这量化了该点是否属于要选择的对象(即,所述同一对象)。当神经网络执行分割时,这最终允许在学习s20期间神经网络学习选择或不选择点作为对象一部分。例如,训练神经网络来检测:坐标越高,则该点属于要选择的对象的概率就越大。

在示例中,一个或多个图形用户交互中的每个图形用户交互用于选择所述同一对象(例如,例如是先前所讨论的是第一图形用户交互)或用于丢弃所述同一对象外部的区域(例如是先前所讨论的是第二图形用户交互)。在这些示例中,对于3d点云中的每个点,对坐标进行添加包括:

-将坐标设置为初始值;

-对于用于选择所述同一对象的每个图形用户交互,根据图形用户交互和点之间的接近度来增加坐标;以及

-对于用于丢弃所述同一对象外部的区域的每个图形用户交互,根据图形用户交互和点之间的接近度来减小坐标。

根据图形用户交互和点之间的接近度来增加坐标可以包括量化点的位置与图形用户交互的位置之间的距离。例如,图形用户交互可以是由一个或多个第一种子定义的先前讨论的第一图形用户交互。量化距离可以包括量化点与相应第一种子之间的每个距离。然后增加坐标可以包括将表示每个量化距离的值添加到坐标。

根据图形用户交互和点之间的接近度来减小坐标可以包括量化点的位置与图形用户交互的位置之间的距离。例如,图形用户交互可以是由一个或多个第二种子定义的先前讨论的第二图形用户交互。量化距离可以包括量化点与相应第二种子之间的每个距离。然后增加坐标可以包括将表示每个量化距离的值添加到坐标。

应当理解,对于3d点云的任何点,如果该点距离图形用户交互太远,无论是用于选择所述同一对象还是用于丢弃所述同一对象外部的区域的图形用户交互,则点的坐标既不增加也不减少。换句话说,对于每个点以及一个或多个图形用户交互中的每个图形用户交互,仅当该点相对接近图形用户交互(例如,在距离定义图形用户交互的种子的一定距离范围内)时才发生坐标的增加或减小。因此,在进行配备之后,点的坐标仍可能等于初始值。

以这种方式添加坐标具有以下效果:点与用于选择所述同一对象的一个或多个图形用户交互越接近,则该点越可能属于所述同一对象,并且其添加的坐标具有高值。相反,点与用于丢弃所述同一对象外部的区域的一个或多个图形用户交互越接近,则该点就越可能属于所述区域,并且其添加的坐标具有低值。最终,这有助于使神经网络以这种方式进行学习使得神经网络将检测图形用户交互何时用于选择对象以及何时用于丢弃对象外部的区域。

现在讨论针对学习方法使3d点云配备有规定的实现的实现。

在该实现中,对于每个3d点云,一个或多个图形用户交互包括一个或多个先前讨论的第一图形用户交互,并且对于第一图形用户交互中的每个,确定一个或多个种子位置包括根据先前讨论的散布实现来散布一个或多个第一种子。在当前讨论的实现中,一个或多个图形用户交互可以包括一个或多个先前讨论的第二图形用户交互,并且如果是这种情况,则对于第二图形用户交互中的每个,确定一个或多个第二种子是根据先前讨论的确定一个或多个第二种子的实现来执行的。因此,在当前讨论的实现中,对一个或多个图形用户交互进行模拟产生:

-对于每个第一图形用户交互(即每个正交互),产生一个或多个第一种子的位置,

-对于每个第二图形用户交互(即每个否定交互),产生一个或多个第二种子的位置。

此外,在该实现中,每个种子都是一个点,如前所述。此实现包括将种子转换为规定,该规定现在将被称为交互通道。转换使用k个最近邻居搜索来检索与每个种子的k个最接近点并根据这些点距每个种子的距离而为这些点分配特定强度。

具体地,对于3d点云的所有点,对坐标进行添加包括以相同值初始化坐标,所述相同值等于128。然后,对于每个种子,对坐标进行添加包括检索与种子最接近的k个最接近点,例如根据最近邻居搜索算法。这里,数量k是先前关于公式(1)讨论的数量k。检索可以包括根据3d点云的点的数量来调制在k个最近邻居搜索中使用的邻居数量。这允许搜索对于点云密度不变。可以根据以下公式进行调制:

其中d是所考虑的默认点数量,m是所选择的调制程度,k是所考虑的默认邻居数量。

实验表明,针对k,该公式对于各种点云大小都非常稳定(针对3*3*5米的区域以d=100000,k=1024且m=128测试了约10k至500k范围的点)。在实验中选择这些数字以对应于图形交互大小,该图形交互大小总体上对应于最小对象的大小,同时又足够大以减少针对大对象的交互数量。然后,为清楚起见,根据训练数据集中每个对象的所观察到的对象点数量和点云的密度进行选择。在实验中,这允许找到一种方法来确定适合所有对象和点云密度的最佳k。

然后,对于每个种子和3d点云中属于种子的k个邻居的每个点,对坐标进行添加包括通过以下方式修改坐标:

-如果种子是第一种子,则将种子的高斯强度添加到坐标,或者

-如果种子是第二种子,则从该坐标减去该种子的高斯强度。

对于每个种子,修改实际上可以包括计算高斯强度并基于与种子最接近的k个最接近点的k个距离的中值距离对高斯强度进行动态调制。对于第一种子(也被称为正种子),计算高斯强度可以根据以下公式来计算:

其中其中包含每个邻居距正种子的距离并且大小为(k,1),其中k是最近邻居数量。

对于第二种子(也称为负种子),计算高斯强度可以根据以下公式进行:

其中其中包含每个邻居距负种子的距离并且大小为(k,1),其中k是最近邻居数量。

应当注意,对于所有点,添加的坐标被初始化为128。高斯强度乘以127允许得出与正种子匹配的点的最大值为255。对于那些匹配的负种子,相应的最终点强度为1。因此,如果点云各自被配备有颜色通道,则该强度覆盖与颜色通道相同的振幅并允许进行更简单的标准化步骤(通过除以255针对每个通道在0-1之间进行标准化)。动态s参数作为邻居距离数组的中间值为以不同点云密度进行工作提供了一些灵活性。来自与种子匹配的所有点的贡献被添加并且配备包括裁剪属于[0,255]的坐标并将裁剪后的坐标链接到该点的其他坐标,并且对于每个点均是如此。交互通道/规定是一组所有链接坐标。例如,对于具有坐标xyz作为唯一特征的n个点的3d点云,配备将产生(n,3+1)个最终点云维度。如果存在颜色,则配备产生(n,6+1)个维度,等等。在进行的实验中,仅采用点坐标,即不采用颜色,则显示出很好的结果。

结果,在该实现中,训练数据集由训练样本组成,每个训练样本均由点云及其交互通道的对组成。如从点云分割领域本身所知,每个训练样本还可以进一步包括分割掩模,该分割掩模指示对于3d点云中的每个点该点是否属于所述同一对象。如先前所讨论的,可以在3d点云的注释步骤中创建分割掩模。

图4示出了点云40及其交互通道。图4特别示出了正种子42以及两个负种子44和46。图5示出对应的分割掩模50,其指示点云40的对应于所述同一对象52的部分以及不对应于所述同一对象54的部分。

现在讨论使神经网络进行学习s20。

如前所述,神经网络具有形成数据的权重,该数据定义了神经网络应用于输入以对该输入进行处理的操作。使神经网络进行学习s20包括基于训练数据集确定权重的值。可以根据任何已知技术来执行使神经网络进行学习s20。在示例中,根据任何已知的深度神经网络(dnn)学习方法来执行使神经网络进行学习s20。

正如从机器学习领域本身所知,dnn是神经网络中进行学习的一组强力技术,这是一种使计算机能够从观测数据中进行学习的受生物启发的编程范例。参见例如e.rumelhart,g.e.hinton,r.j.williams“learninginternalrepresentationsbyerrorpropagation,paralleldistributedprocessing”:发表于themicrostructureofcognition,vol.1:foundations,mitpress,cambridge,ma,1986,该文献通过引用并入本文。在对象识别中,dnn的成功归因于其学习丰富的中级媒体表示的能力,而与其他方法(min-cut、svm、boosting、randomforest等)中使用的手工设计的低级特征(zernike矩、hog、词袋、sift等)相反。更具体地说,dnn专注于基于原始数据进行端到端学习。换句话说,通过完成从原始要素开始并以标签结尾的端到端优化,dnn可以最大程度地远离特征工程。

本文的神经网络可以是可以执行点云分割的任何已知的深度学习模型。例如,神经网络可以是pointcnn(请参见[4]li,yangyan,ruibu,sunmingchao,weiwu,xinhandi和baobaochen“pointcnn:convolutiononx-transformedpoints.”-neurips2018,其通过引用并入本文)。该神经网络可以包括数百万个不能手动设置值的参数。学习s20包括设置/更新这些参数的值。当学习算法正在更新模型参数时,模型被称为处于“训练模式”。借助与每个输入关联的注释,该模型根据其输出针对每个输入连续“校正”模型。注释是与特定输入关联的一组数据,该组数据允许评估模型的输出是对还是错。借助带注释的数据集来监督对模型的训练被称为“监督学习”。训练模型后,将停止更新参数。然后,该模型仅用于处理新输入(即训练模式期间未见的输入)并返回结果,据说该模型处于“测试模式”。使神经网络进行学习s20可以整合所有这些深度学习概念,这些学习概念是机器学习领域众所周知的。

该神经网络被配置为基于输入3d点云并基于对一个或多个输入图形用户交互的规定来分割包括对象的输入3d点云,一个或多个输入图形用户交互各自表示相应的选择操作。换句话说,神经网络将配备有规定的输入3d点云作为输入。还换句话说,神经网络将与训练数据集的任何样本具有相同类型的一段数据作为输入。该神经网络被配置用于分割输入3d点云。换句话说,基于神经网络的输入,神经网络执行对输入3d点云中所包含的对象的提取。神经网络由于输入3d点云配备有规定并且使神经网络学习(s20)为检测这种规定而能够这样做。换句话说,规定指示用于选择对象的一个或多个输入图形用户交互的位置,并且神经网络从该规定中检测到该对象要被选择。如前所述,应注意的是,神经网络与点云类别和对象类别无关。神经网络输出指示对象与背景的其余部分(例如分割掩模)之间的区别的数据。

例如,神经网络可以针对输入点云的每个点输出具有对应置信度得分的分类结果。具体而言,在这样的示例中,对于每个点,神经网络都将点是对象的一部分或不是对象的一部分的分类与置信度得分一起输出。置信度得分是0到1之间的实数。值越接近1,则神经网络对于与该点关联的标签的置信度越高。换句话说,神经网络输出用于对象的分割掩模。在这些示例中,每个训练样本也包括分割掩模,从而将点云中的每个点分类为“对象”或“背景”,如前所述。在这些示例中,学习s20是完全监督学习。

目前讨论分割方法。

分割方法是用于交互式点云分割的方法。

如此,分割方法包括提供s30包括对象的3d点云。在此,作为训练数据集的任何3d点云,3d点云可以表示真实场景,并且其可以源于物理测量或合成点云生成过程。提供s30可以包括在执行分割方法的计算机系统的显示器(例如,图形用户界面)上显示3d点云。可以将3d点云显示给用户,从而允许用户以图形方式与3d点云进行交互,例如用于指示其对对象的兴趣。

分割方法还包括与所提供的3d点云的交互式分割相对应的一次或多次迭代。具体地,每次迭代包括通过执行一个或多个图形用户交互来执行s40对对象的选择操作。换句话说,用户以图形方式与提供的(例如显示的)3d点云交互一次或多次,以指示其对对象的兴趣。每个图形用户交互都与对对象的选择有关,一个或多个图形用户交互共同形成对对象的选择操作。

关于对对象进行选择的“图形用户交互”在此是指用户使用触觉系统(例如,鼠标或诸如敏感/触摸屏或敏感/触摸平板之类的触摸装置)来表示其对对象的兴趣的任何用户交互,例如通过选择显示单元的一个或多个位置。一个或多个位置可以形成不同的位置,例如一次或多次点击。可替代地,一个或多个位置可以共同形成连续形状,例如划线或边界框。一个或多个位置可以在对象上,在这种情况下,图形用户交互用于选择对象。一个或多个位置可以可替代地在对象外部的区域(例如,另一对象或背景)上,在这种情况下,图形用户交互用于丢弃所述区域。在激活之后基本实时地,可以显示对选择的视觉指示。

在示例中,一个或多个图形用户交互可以包括在对象上执行一次或多次点击的图形用户交互。执行一次或多次点击可以用触觉装置来执行,例用户在对象上的一个或多个位置处点击或触摸显示的3d点云一次或多次。由于该图形用户交互涉及选择对象上的一个或多个位置(即一次或多次点击的位置),因此该图形用户交互用于选择对象。

另外地或可替代地,一个或多个图形用户交互可以包括在对象上执行划线的图形用户交互。执行划线可以包括用户例如利用触觉装置通过根据线在对象上连续移动光标或利用根据线在对象上连续执行的触摸来在显示的3d点云上绘制划线。由于该图形用户交互涉及选择对象上的一个或多个位置(即一次或多次点击的位置),因此该图形用户交互用于选择对象。

另外地或可替代地,一个或多个图形用户交互可以包括在对象上和/或对象周围定义边界框的图形用户交互。定义边界框可以包括用户例如通过连续移动触摸或触觉装置的光标以形成边界框而在显示的3d点云上绘制边界框。由于该图形用户交互涉及选择对象上的一个或多个位置(即一次或多次点击的位置),因此该图形用户交互用于选择对象。

另外地或可替代地,一个或多个图形用户交互可以包括在对象外部执行一次或多次点击的图形用户交互。执行一次或多次点击可以例用触觉装置来执行,例如用户在对象外部的一个或多个位置处点击或触摸显示的3d点云的一次或多次。由于该图形用户交互涉及对该区域上的一个或多个位置(即一次或多次点击的位置)进行选择,因此该图形用户交互用于丢弃对象外部的区域。一个或多个位置可以例如位于对象外部的相邻区域上,以指定对象边界。可替代地,一个或多个位置可以位于相邻对象上,以将该相邻对象指定为背景对象。

另外地或可替代地,一个或多个图形用户交互可以包括在对象外部执行划线的图形用户交互。执行划线可以包括用户例如利用触觉装置通过根据线在3d点云上连续移动光标或者利用根据线在3d点云上连续执行的触摸而在显示的3d点云上绘制划线。由于该图形用户交互涉及对该区域上的位置(即由划线所限定的位置)进行选择,因此该图形用户交互用于丢弃对象外部的区域。这些位置可以例如在对象外部的相邻区域上,以指定对象边界。可替代地,这些位置可以位于相邻对象上,以将该相邻对象指定为背景对象。

一个或多个图形用户交互可以彼此完成:例如,该一个或多个图形用户交互中的一个图形用户交互用于粗略选择对象(例如,在对象上单次点击),而另一个或多个图形用户交互用于丢弃相邻区域以细化对对象的选择(例如,在对象的相邻区域上单次点击)。共同地,一个或多个图形用户交互形成对对象的选择操作。通过封装由一个或多个图形用户交互所定义的一个或多个位置的数据来指定选择操作。换句话说,这些数据形成对一个或多个图形用户交互的规定。该规定是与训练数据集中提供的规定相同类型的数据,这在之前已经讨论过。主要区别在于,在分割方法的上下文中,该规定源自真实的图形用户交互,而在学习方法的上下文中,该规定可能源自于模拟的虚拟图形用户交互,如前所讨论的。

基于该规定并基于输入3d点云,分割方法然后包括通过应用s50神经网络来分割3d点云。如前所述,神经网络将规定和3d点云作为输入并对这些输入执行操作,结果是神经网络从3d点云中提取对象。例如,如前所讨论的,神经网络可以输出3d点云的点为“对象”或“非对象”的分类以及置信度得。

在每次迭代中,分割方法可以包括:在执行选择操作之后并且在应用神经网络之前,将选择操作转换为交互通道,在此,作为学习方法的示例中,该交互通道是一组坐标,该组坐标中的坐标被各自都添加到3d点云的相应点。将选择操作转换为交互通道包括:

-通过针对一个或多个图形用户交互的每个图形用户交互确定由该图形用户交互所定义的一个或多个种子位置的位置来确定规定;以及

-使3d点云配备规定,该配备包括将量化该点处的选择操作的强度的坐标添加到3d点云中的每个点。

每个图形用户交互均在3d点云上定义了几何图形(例如,一次或多次点击、划线或边界框)并生成有关此几何图形位置的数据。可以通过任何已知的用于检测图形用户交互的位置的方法来检测这些数据。分割方法从这些数据确定一个或多个种子位置,该一个或多个种子位置共同表示几何形状。为了简单起见,目前将每个种子位置都称为“种子”。确定一个或多个种子可以包括将几何图形的一个或多个点计算为一个或多个种子,这意味着在这种情况下每个种子都是点。对象上的种子称为正种子,而对象外部的区域上的种子称为负种子。图形用户交互可以定义正、种子和负种子两者。

在示例中,如果图形用户交互包括执行一次或多次点击,则确定一个或多个种子可以包括将每次点击确定为种子。将对象上的点击确定为正种子,而将在对象外部的区域上的点击确定为负种子。

另地或可替代地,如果图形用户交互包括执行划线,则确定一个或多个种子可以包括通过在获取划线线下的点来将划线采样为多个点。然后,种子是采样点。如果采样点在对象上,则为正种子;如果采样点在对象外部的区域上,则为负种子。采样点的数量可能与划线的长度成比例。请注意,这与提供s10训练数据集的示例中的模拟图形用户交互匹配,其中,对于正种子,对象越大,对在对象上执行的划线可能越大并且确定的种子越多。

另外地或可替代地,如果图形用户交互包括定义边界框,则确定一个或多个种子可以包括将边界框采样成边界框内部的点和边界框外部的点。内部的点确定为正种子,而外部的点确定为负种子。正种子的数量可以与边界框内部的点的数量成比例并在边界框内部的点之间随机选择。可以在边界框周围的小区域(例如,低于30厘米)中所包含的点中随机选择负种子。请注意,这与针对学习方法讨论的根据第一策略所模拟的图形用户交互相匹配。

仍讨论分割方法,为3d点云配备规定包括向3d点云的每个点添加坐标,该坐标量化在该点处的选择操作的强度。

目前,已经讨论了对于分割方法的配备。

对3d点云进行配备考虑了一个或多个确定种子并将该一个或多个确定种子转换为一组坐标,每个3d点云的每个点一个坐标。然后,对3d点云进行配备包括将此坐标添加到每个点,并且这得出规定。换句话说,规定是添加到3d点云的每个点的一组所有坐标。

该转换使得对于每个点,坐标量化在该点处的选择操作的强度。具体而言,坐标量化了点与每个图形用户交互的接近度。这量化了该点是否属于要选择的对象(即,所述同一对象)。当神经网络执行分割时,这最终允许在应用s50期间,神经网络提取/选择或不提取/选择点作为对象的一部分。例如,神经网络检测到,坐标越高,则该点属于要选择的对象的概率就越大。

在示例中,添加包括针对所有点将坐标设置为相同初始值。然后,对于每个确定的正种子,该添加可以包括对于点云中的每个点,根据种子和点之间的接近度来增加坐标。对于每个确定的负种子,添加还可以包括对于点云的每个点,根据种子和点之间的接近度来减小坐标。

根据正(分别地,负)种子与点之间的接近度来增加(分别地,减小)坐标可以包括量化点的位置与种子之间的距离。然后,增加(分别地,减小)坐标可以包括将表示量化距离的值添加至坐标(分别地,从坐标减去)。

应当理解,对于3d点云的任何点,如果该点离种子太远,无论是正种子还是负种子,则该点的坐标既不会增加也不会减少。换句话说,对于每个点和每个确定的种子,仅当该点相对接近图形用户交互时(例如,在距种子的一定距离范围内),才发生坐标的增大或减小。因此,在配备之后,点的坐标仍可能等于初始值。

以这种方式添加坐标具有以下效果:点与正种子越接近,则该点越可能属于所述同一对象,并且其所添加的坐标的值越大。相反,点越接近负种子,则该点就越可能不属于该对象,并且其所添加的坐标的值越低。最终,这允许神经网络检测图形用户交互何时用于选择对象以及何时用于丢弃对象外部的区域。

现在讨论用使3d点云配备规定的实现。

在该实现中,确定规定导致一个或多个正种子和一个或多个负种子。此外,在该实现中,每个种子均是点,如前所讨论的。此实现包括将种子转换为规定,现在将规定称为交互通道。转换使用k个最近邻居搜索来检索与每个种子最接近的k个最接近点并基于该k个最接近点与每个种子的距离为这些点分配特定强度。

具体地,对于3d点云的所有点,对坐标进行添加包括以相同值初始化坐标,所述相同值等于128。然后,对于每个种子,对坐标进行添加包括获取k。最接近种子的点,例如根据最近邻居搜索算法。这里,数量k是先前关于公式(1)讨论的数量k。检索可以包括根据3d点云的点的数量来调制在k个最近邻居搜索中使用的邻居数量。这允许搜索对于点云密度不变。可以根据以下公式进行调制:

其中,d是所考虑的默认点数量,m是所选择的调制程度,k是所考虑的默认邻居数量。

实验表明,对于k,该公式被证明对于各种点云大小都非常稳定(对于3*3*5米的区域以d=100000,k=1024且m=128测试了约10k至500k范围的点)。

然后,对于每个种子以及3d点云中属于种子的k个邻居的每个点,对坐标进行添加包括通过以下方式修改坐标:

-如果种子是第一种子,则将来自种子的高斯强度添加到坐标,或者

-如果种子是第二种子,则从坐标中减去来自种子的高斯强度。

对于每个种子,修改实际上可以包括计算高斯强度并基于k个最接近点距种子的k个距离的中值距离对高斯强度进行动态调制。可以根据以下公式来针对第一种子(也称为正种子)计算高斯强度:

其中,其中包含每个邻居距正种子的距离且大小为(k,1),并且其中k是最近邻居数量。

针对第二种子(也称为负种子)计算高斯强度可以根据以下公式进行:

其中,其中包含每个邻居距负种子的距离且大小为(k,1),其中k是最近邻居数量。

要注意的是,对于所有点,坐标均被初始化为128。对于与正种子匹配的点,高斯强度乘以127允许具有最大值255。对于与负种子匹配的那些点,对应的最终点强度为1。因此,如果点云各自配备有颜色通道,则该强度覆盖与颜色通道相同的振幅并允许进行更简单的标准化步骤(对于每个通道通过除以255而在0-1之间进行标准化)。动态s参数作为邻居距离数组的中间值为在不同点云密度下工作提供了一定灵活性。来自与种子匹配的所有点的贡献被添加并且配备包括裁剪属于[0,255]的坐标并将其链接到该点的其他坐标,并且这针对于每个点。交互通道/规定是一组所有链接的坐标。例如,对于具有坐标xyz作为唯一特征的n个点的3d点云,配备将产生(n,3+1)个最终点云维度。如果存在颜色,则配备产生(n,6+1)个维度,等等。在进行的实验中,仅采用点坐标,即不采用颜色,则显示出很好的结果。

结果,在该实现中,3d点云配备有交互通道。然后将由3d点云及其交互通道组成的对作为输入被馈送到神经网络以执行分割。

在此之前,在该实现的特定实现中,该实现可以包括修剪正种子的质心周围的点云。将该区域替换整个点云可以减少运行时间。该特定实现还可包括统一采样以复制点云的低密度区域中的点。该特定实现还可以包括将3d点云的点划分为一组2048个点,以匹配pointcnn的输入大小,该pointcnn是该特定实现中的神经网络。如前所讨论的,在该特定实现中,神经网络然后针对这些点输出预测。分割方法可以包括基于网络的置信度得分来合并预测。分割方法还可以可选地包括后处理以平滑可能显得相对稀疏的预测。平滑可以使用依赖于由神经网络输出的置信度得分的基于体素的方法。在每个体素中,平滑将对于对象类别横跨该对象类别所包含的所有点的均值置信度与固定阈值进行比较。该平滑允许表明体素类别并相应地标记该体素类别所包含的所有点。这种后处理方法的优点之一是其时间效率。

现在讨论分割方法的实验示例。

在该实验中,根据示例学习方法来使神经网络进行学习。如前所讨论的,用于学习的训练数据集由合成点云组成。在使神经网络进行学习所根据的学习方法的示例中,该学习方法包括先前讨论的针对该学习方法对3d点云进行配备。然后,实验包括分割方法的多种实现。

图6和7示出了第一实现。如图6所示,包括对象62的3d点云60被显示给用户。用户在对象62上执行多次点击620、622、624和626,每次点击都会产生正种子。通过应用s50神经网络,如图7所示,提取对象62。

图8和9示出了第二实现。如图8所示,包括对象82的3d点云80被显示给用户。用户在点云80上执行多次点击824和822。点击822产生负种子,而点击824产生正种子。通过应用s50神经网络,如图9所示,提取对象82。

图10和11示出了第三实现。如图10所示,包括对象102的3d点云100被显示给用户。用户在对象102上执行多次点击1022和1024,每次点击均产生正种子。通过应用s50神经网络,如图11所示,提取对象102。

图12和13示出了第四实现。如图12所示,包括对象122的3d点云120被显示给用户。用户在对象122上执行多次点击1222和1224,每次点击均产生正种子。通过应用s50神经网络,如图13所示,提取对象122。

图14示出了集成学习方法和分割方法的过程的示例的流程图。如图14所示,该过程示例执行以下步骤:

1.离线阶段:此阶段的目的是使用点云训练模型,该点云具有用户指示符/分割掩模的对,这些用户指示符/分割掩模应该与真实世界数据和用户行为接近。该阶段包含两个主要步骤。请注意,此阶段对用户是透明的。

1)训练数据集生成。

i.提供点云,从真实用户收集一致指示符可能非常困难且耗时,并且无法保证涵盖不同的用户行为。在此示例中,训练指示符是通过定义类似用户行为自动生成的。训练用户指示符包括:

-正训练指示符,其包括训练点云中的至少一个点,该至少一个点是同一点云中已识别目标对象的一部分。

-负训练指示符,其包括训练点云中的至少一个背景点,该至少一个背景点不属于同一点云中已识别目标对象的一部分。

-请注意,每个目标对象必须生成至少一个正指示符。

ii.所生成的指示符被转换为附加通道(即交互通道),该附加通道被添加到原始点云作为神经网络的输入,从而将输入被转换成可以输入到神经网络的格式。然后,所得训练数据集包括既具有训练指示符又具有对目标对象的分割掩模的富集点云。

2)基于训练数据集使神经网络模型进行学习。该学习由基于dnn的点云模型组成。

2.在线阶段:给定点云和用户指示符,则首先对数据进行预处理以转换指示符。然后,应用训练后的模型以最终获得分割掩模。

图15示出了该过程的实现的流程图。

学习方法和分割方法是计算机实现的方法。

这意味着方法的步骤(或基本上所有步骤)由至少一台计算机或任何类似系统执行。因此,方法的步骤由计算机执行,可能是完全自动或半自动地。在示例中,可以通过用户计算机交互来执行对方法中的至少一些步骤的触发。所需的用户计算机交互级别可以取决于预见自动性级别并与实现用户愿望的需求保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。

方法的计算机实现的典型示例是使用适合于此目的的系统来执行该方法。该系统可以包括耦合到存储器和图形用户界面(gui)的处理器,该存储器在其上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。存储器是适合于这种存储的任何硬件,可能包括多个物理不同部分(例如,一个部分用于程序,而一个部分可能用于数据库)。

图16示出了系统的示例,其中,该系统是客户端计算机系统,例如客户的工作站。

该示例的客户计算机包括连接至内部通信总线1000的中央处理单元(cpu)1010,也连接至该总线的随机存取存储器(ram)1070。客户端计算机还被设置有图形处理单元(gpu)1110,其与连接到总线的视频随机存取存储器1100相关联。视频ram1100在本领域中也称为帧缓冲器。大容量存储装置控制器1020管理对大容量存储装置(例如硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储装置包括所有形式的非易失性存储器,包括例如半导体存储器装置,例如eprom、eeprom和闪存存储器装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及cd-rom盘1040。上述任何内容可以通过专门设计的asic(专用集成电路)进行补充或并入该专门设计的asic。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉装置1090,诸如光标控制装置,键盘等。在客户端计算机中使用光标控制装置以允许用户将光标选择性地定位在显示器1080上的任何所需位置。此外,光标控制装置允许用户选择各种命令并输入控制信号。光标控制装置包括多个信号生成装置用于将控制信号输入到系统。通常,光标控制装置可以是鼠标,该鼠标的按钮用于生成信号。可替代地或另外地,客户计算机系统可以包括敏感平板和/或敏感屏幕。

本文中的任何计算机程序可以包括可由计算机执行的指令,这些指令包括用于使上述系统执行一种或多种方法的装置。该程序可以记录在任何数据存储介质上,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或其组合来实现。该程序可以被实现为一种设备,例如有形地体现在机器可读存储装置中以由可编程处理器执行的产品。方法步骤可以通过执行指令程序的可编程处理器以通过对输入数据进行操作并生成输出来执行方法的功能。因此,处理器可以是可编程的并且被耦合为从数据存储系统、至少一个输入装置以及至少一个输出装置接收数据和指令,以及向数据存储系统、至少一个输入装置和至少一个输出装置传输数据和指令。如果需要,可以以高级过程或面向对象的编程语言或汇编语言或机器语言来实现应用程序。在任何情况下,该语言都可以是编译或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用都会导致执行一种或多种方法的指令。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1