首页> 中国专利> 点云实例分割方法及相关系统、存储介质

点云实例分割方法及相关系统、存储介质

摘要

本申请实施例提供一种点云实例分割方法及相关系统、存储介质。涉及人工智能领域,具体涉及计算机视觉领域。该方法包括:对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,M为不小于2的整数;根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量;根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

著录项

  • 公开/公告号CN113139967A

    专利类型发明专利

  • 公开/公告日2021-07-20

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN202110470300.6

  • 申请日2021-04-28

  • 分类号G06T7/10(20170101);G06F16/22(20190101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构44202 广州三环专利商标代理有限公司;

  • 代理人熊永强;李稷芳

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 11:54:11

说明书

技术领域

本申请涉及计算机视觉技术领域,尤其涉及一种点云实例分割方法及相关系统、存储介质。

背景技术

计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。

计算机视觉可以应用于3D实例分割区分场景中。其中,3D实例分割可以区分场景中各类别中的各种个体。目前,3D实例分割的关注度越来越高,相应的方法也被接连提出。众多方法的思想主要分为两类:基于候选区域的实例分割(proposal-based)和免候选区域的实例分割(proposal-free)。其中,proposal-based先获取场景中的感兴趣的候选区域,并在候选区域内对3D数据进一步预测得到实例标签。考虑到proposal-based实例分割通常需要2个过程(先得到候选区域,再实例分割),分割过程繁琐,proposal-free则摒弃了基于候选区域的方式,直接通过数据特征或者结合语义分割结果,得到实例分割结果。

目前proposal-free中利用属于相同实例的点的坐标相邻的特征进行聚类处理,来得到感兴趣点云的语义类别,并确定出每个点所属的实例。然而,由于聚类采用的区域生长的算法需要设定半径参数,该参数会对聚类结果产生较大的影响,大幅降低了分割精度。

发明内容

本申请公开了一种点云实例分割方法及相关系统、存储介质,可以实现无需人为设定参数,有效提高分割精度。

第一方面,本申请实施例提供一种点云实例分割方法,包括:对目标场景中的点云进行处理,得到M个超点(super point)以及所述M个超点中每个超点的特征向量,M为不小于2的整数;根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点(not)的特征向量;根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,其中,所述非叶节点对应至少两个子节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

作为一种可选的实现方式,所述方法还包括:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,其中,所述非叶节点对应至少两个子节点,且所述非叶节点包括根节点,所述根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,包括:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,包括:

将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述评分模型是根据每个节点样本对应的至少两个子节点样本的特征向量和所述每个节点样本的得分进行学习得到的,所述每个节点样本的得分是根据每个节点样本对应的至少两个子节点样本的实例占比向量得到的。

作为一种可选的实现方式,所述方法还包括:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述方法还包括:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述方法还包括:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

第二方面,本申请实施例提供一种基于三维场景确定物体的方法,包括:接收用户发送的请求,所述请求携带第一目标,所述请求用于指示获取所述第一目标;获取目标场景中的点云,其中,所述目标场景包括所述第一目标;对所述目标场景中的点云进行实例分割处理,得到所述第一目标,其中,所述实例分割处理是基于树形结构进行处理的;向所述用户展示所述第一目标。

采用本方案提供的基于三维场景确定物体的方法,可以实现物体分割完整,分割效果好。

其中,上述实例分割处理,包括:对目标场景中的点云进行处理,得到M个超点(super point)以及所述M个超点中每个超点的特征向量,M为不小于2的整数;根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点(not)的特征向量;根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,其中,所述非叶节点对应至少两个子节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

作为一种可选的实现方式,所述方法还包括:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,其中,所述非叶节点对应至少两个子节点,且所述非叶节点包括根节点,所述根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,包括:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,包括:

将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述评分模型是根据每个节点样本对应的至少两个子节点样本的特征向量和所述每个节点样本的得分进行学习得到的,所述每个节点样本的得分是根据每个节点样本对应的至少两个子节点样本的实例占比向量得到的。

作为一种可选的实现方式,所述方法还包括:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述方法还包括:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述方法还包括:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

第三方面,本申请实施例提供一种点云实例分割装置,包括:处理模块,用于对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,M为不小于2的整数;建树模块,用于根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量;分割模块,用于根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;确定模块,用于根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

作为一种可选的实现方式,所述建树模块,还用于:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述分割模块,用于:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述分割模块,还用于:将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述装置还包括第一更新模块,用于:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述装置还包括第二更新模块,用于:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述装置还包括第三更新模块,用于:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

第四方面,本申请提供了一种基于三维场景确定物体的装置,包括:接收模块,用于接收用户发送的请求,所述请求携带第一目标,所述请求用于指示获取所述第一目标;获取模块,用于获取目标场景中的点云,其中,所述目标场景包括所述第一目标;处理模块,用于对所述目标场景中的点云进行实例分割处理,得到所述第一目标,其中,所述实例分割处理是基于树形结构进行处理的;展示模块,用于向所述用户展示所述第一目标。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

作为一种可选的实现方式,所述获取模块,还用于:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述处理模块,用于:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述处理模块,还用于:

将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述评分模型是根据每个节点样本对应的至少两个子节点样本的特征向量和所述每个节点样本的得分进行学习得到的,所述每个节点样本的得分是根据每个节点样本对应的至少两个子节点样本的实例占比向量得到的。

作为一种可选的实现方式,所述处理模块,还用于:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述处理模块,还用于:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述处理模块,还用于:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

其中,上述实例分割处理可参阅前述第一方面提供的任一种实现方式。

采用本方案提供的基于三维场景确定物体的装置,可以实现物体分割完整,分割效果好。

第五方面,本申请提供了一种点云实例分割装置,包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行所述的方法。

第六方面,本申请提供了一种三维场景确定物体的装置,包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行所述三维场景确定物体的方法。

第七方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面任一种可能的实施方式和/或第二方面任一种可能的实施方式提供的方法。

第八方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一种可能的实施方式和/或第二方面任一种可能的实施方式提供的方法。

第九方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面任一种可能的实施方式和/或第二方面任一种可能的实施方式提供的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面任一种可能的实施方式和/或第二方面任一种可能的实施方式提供的方法。

第十方面,提供一种电子设备,该电子设备包括上述第三方面至第五方面中的任意一个方面中的点云实例分割装置。

该电子设备还可以包括上述第六方面中的任意一个方面中的三维场景确定物体的装置。

可以理解地,上述提供的第三方面所述的装置、第四方面所述的装置、第五方面所述的装置、第六方面所述的装置、第七方面所述的计算机存储介质、第八方面所述的计算机程序产品或者第九方面提供的芯片均用于执行第一方面中任一所提供的方法以及第二方面中任一所提供的方法。

因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。

附图说明

下面对本申请实施例用到的附图进行介绍。

图1是本申请实施例提供的系统架构的结构示意图;

图2是本申请实施例提供的根据CNN模型进行点云实例分割处理的示意图;

图3是本申请实施例提供的一种芯片硬件结构示意图;

图4是本申请实施例提供的一种点云实例分割方法的流程示意图;

图5是本申请实施例提供的一种点云处理示意图;

图6是本申请实施例提供的一种语义超点树的示意图;

图7是本申请实施例提供的一种确定节点得分的示意图;

图8是本申请实施例提供的一种子树处理的示意图;

图9是本申请实施例提供的一种点云实例分割装置的结构示意图;

图10是本申请实施例提供的另一种点云实例分割装置的结构示意图。

具体实施方式

下面结合本申请实施例中的附图对本申请实施例进行描述。本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。

本申请实施例提供的点云实例分割方法能够应用于增强现实(AugmentedReality,AR)地图的场景,其还可以应用于机器人中,还可以应用于点云编辑场景中等。其中,本方案还可以应用于自动驾驶等车辆控制场景中。

下面对增强现实AR地图的场景进行介绍:

举例说明,用户带上AR眼镜,基于看到的场景,希望虚拟小狗去到玩具鸭子附近。其中,电子设备接收到用户输入的请求,该请求携带第一目标,如该第一目标可以是玩具鸭子,该请求用于指示找到玩具鸭子。

目前现有技术并不能实现精准的点云分割,因此其获取到的目标可能是不完整的,如缺失一部分等,或者多一部分等,甚至找不到或者找错。而采用本方案,可以实现分割效果好,分割精度较高的效果。

下面对机器人场景进行介绍:

例如,用户给机器人发送指令,让机器人将苹果拿过来等。机器人需要先找到苹果。因此,需要对目标场景的点云进行处理。

目前现有技术并不能实现精准的点云分割,因此其获取到的苹果可能是不完整的,如缺失一部分等,或者多一部分等,甚至找不到或者找错。而采用本方案,可以实现分割效果好,分割精度较高的效果。

下面对点云编辑场景进行介绍:

例如,用户想要将客厅的沙发替换为新的沙发,想要先看下新沙发摆放的效果。因此,需要找到客厅的原沙发,然后将原沙发从点云中进行剔除,并放进去新的沙发。

目前现有技术并不能实现精准的点云分割,因此其获取到的沙发可能是不完整的,如缺失一部分等,或者多一部分等,甚至找不到或者找错。而采用本方案,可以实现分割效果好,分割精度较高的效果。

本申请提供的方案还可以应用于自动驾驶等车辆控制场景中。

举例说明,例如自动驾驶中需要到达某个物体对应的位置,则需要对当前场景中的点云进行实例分割,进而确定该物体对应的位置。

为了便于理解,下面先对本申请实施例涉及的相关术语等相关概念进行介绍。

(1)点云(Point Cloud),是指在获取物体表面每个采样点的空间坐标后,得到的点的集合,即为点云。其中,本方案的点云可以是基于激光测量原理得到的点云,还可以是根据摄影测量原理得到的点云,其还可以是其他任意点云,本方案对此不做具体限制。

(2)超点(super point),是指几何特征相似的三维点集。其中,超点中包含有多个点。该几何特征相似可以是颜色相似、形状相似、纹理相似等。

(3)树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构,所以这种结构多可以递归的表示。经典数据结构中的各种树状图是一种典型的树形结构,如二叉树、三叉树等。

(4)节点(node),是指树中的数据元素。其中,节点包括叶节点和非叶节点。叶节点,也称为终端节点,没有子树的节点等。除了叶节点,其余的节点均可称为非叶节点。

其中,非叶节点包括根节点。

需要说明的是,本方案的非叶节点对应至少两个子节点。

该子节点是对于其从属的节点来说的。例如两个节点a,b从属于节点1,即节点1对应两个节点a,b,该两个节点即为节点1的子节点。

(5)实例,是指将一个抽象的概念类,具体到该类实物。也就是说,实例是在同一类中精确区分不同的个体,可以是指任一实物等。

(6)语义,如人、动物、桌子等属于不同的语义。

(7)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以x

其中,s=1、2、……n,n为大于1的自然数,W

(8)深度神经网络

深度神经网络(Deep Neural Network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:

(9)卷积神经网络

卷积神经网络(CNN,Convolutional Neuron Network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。

卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(10)循环神经网络(RNN,Recurrent Neural Networks)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法Back propagation Through Time(BPTT)。

既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。

(11)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

(12)反向传播算法

卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。

(13)像素值

图像的像素值可以是一个红绿蓝(RGB)颜色值,像素值可以是表示颜色的长整数。例如,像素值为256*Red+100*Green+76Blue,其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各个颜色分量中,数值越小,亮度越低,数值越大,亮度越高。对于灰度图像来说,像素值可以是灰度值。

下面介绍本申请实施例提供的系统架构。

参见附图1,本发明实施例提供了一种系统架构100。如所述系统架构100所示,点云实例分割执行设备110用于对点云进行实例分割。该架构包括执行设备110、客户设备140和数据采集设备160。其中,数据采集设备160用于采集数据,如目标场景中的点云等。所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等,还可以是服务器或者云端等。在附图1中,执行设备110配置有I/O接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:到达目标场景中特定实例等。其中,该输入数据可以是用户输入的,也可以是其他形式,本方案不做具体限定。

预处理模块113用于根据I/O接口112接收到的输入数据(如点云等)进行预处理,在本申请实施例中,预处理模块113可以用于对点云进行处理,得到超点。

预处理模块114用于根据I/O接口112接收到的输入数据,如点云进行预处理,在本申请实施例中,预处理模块114可以用于对点云进行处理,得到各个点的特征向量等。

在执行设备110对输入数据进行预处理,或者在执行设备110的实例分割模块111执行实例分割等相关的处理过程中。具体地,实例分割模块111对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,M为不小于2的整数;根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量;根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

进一步地,实例分割模块111得到的结果还可以输出至预处理模块113进行处理(图中未示出),进而得到最终符合用户请求的处理结果。

最后,I/O接口112将处理结果,如用户想要获取到达某个实例处,则将得到的到达特定实例的导航路线等返回给客户设备140,从而提供给用户。

在附图1中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。

值得注意的是,附图1仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图1中,执行设备110相对客户设备140是外部设备,在其它情况下,也可以将执行设备110置于客户设备140中。进一步地,数据采集设备160也可以置于客户设备140中,或者置于执行设备110中等。

如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的点云作出响应。

如图2所示,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。

卷积层/池化层220:

卷积层:

如图2所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。

下面将以卷积层221为例,介绍一层卷积层的内部工作原理。

卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。

这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。

当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。

池化层:

由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。

神经网络层230:

在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图2所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。

在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图2由210至240方向的传播为前向传播)完成,反向传播(如图2由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。

需要说明的是,如图2所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。

下面介绍本申请实施例提供的一种芯片硬件结构。

图3为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图1所示的执行设备110中,用以完成实例分割模块111的处理工作。该芯片也可以被设置在如图1所示的预处理模块113、预处理模块114中,用以完成相关预处理工作。如图2所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。

神经网络处理器NPU 50NPU作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。

在一些实现中,运算电路503内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器508accumulator中。

向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(Pooling),批归一化(Batch Normalization),局部响应归一化(Local Response Normalization)等。

在一些实现中,向量计算单元507能将经处理的输出的向量存储到统一存储器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。

统一存储器506用于存放输入数据以及输出数据。

权重数据直接通过存储单元访问控制器505(Direct Memory AccessController,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。

总线接口单元(Bus Interface Unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。

与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;

控制器504,用于调用取指存储器509中缓存的指令,实现控制该运算加速器的工作过程。

一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,简称DDR SDRAM)、高带宽存储器(High Bandwidth Memory,HBM)或其他可读可写的存储器。

其中,图2所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。

参照图4所示,为本申请实施例提供的一种点云实例分割方法的流程示意图。如图4所示,该方法包括步骤401-404,具体如下:

401、对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,M为不小于2的整数;

上述目标场景可以是AR地图场景,也可以是机器人应用场景,或者点云编辑场景等。

作为一种可选的实现方式,上述对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,可包括如下步骤:

对目标场景中的点云进行超分割处理,得到M个超点。可选的,可以利用各个点的法线相似度度量的划分方式生成超点。其中,该M个超点彼此互不重合。

另一方面,还包括对所述目标场景中的点云进行体素化处理,得到处理后的点云。该体素化处理是指对模型所在空间划分成网格。体素化能够对模型进行简化,得到均匀的网格。

然后,将所述处理后的点云输入至语义分割网络U-Net中进行处理,得到所述点云中每个点的特征向量f。进一步,将所述每个点的特征向量f输入至多层感知器(Multi-layer perceptron,MLP)神经网络中进行处理,得到每个点的语义得分a和预测偏移量b。

根据上述每个点的特征向量f、语义得分a和预测偏移量b对所述M个超点中每个超点进行均值池化处理,得到所述每个超点的第一特征向量f’、语义得分a’和偏移量。

其中,根据所述每个超点的偏移量以及原点坐标池化后的值得到所述每个超点的预测中心的位置坐标。

将所述每个超点的语义得分a’和所述每个超点的预测中心的位置坐标进行拼合可得到所述每个超点的实例属性a”。

具体地,如图5所示,其中,对N×3的点云坐标和N×3的RGB颜色信息的点集P,根据预设的体素大小d=2cm进行体素化处理,其中,N×3表示N个点中,每个点均有3个数值,如3个数值分别为x,y,z,表示该点的三维空间坐标值;然后构建具有子流形稀疏卷积和稀疏卷积的U-Net,利用U-Net得到各个点的特征向量。

其中,对于语义分支,利用MLP应用,生成针对N个点的K个类别的语义得分a。对于偏移分支,对各个点的特征进行编码,得到N个点的N个偏移量。

得到各个点的上述信息后,通过对每个超点进行均值池化可得到每个超点的特征向量、语义得分和偏移量。

其中,本申请实施例中的超点的特征向量可以是上述第一特征向量,也可以是上述实例属性a”,其还可以是将该超点的第一特征向量与该超点的实例属性a”进行拼合得到的特征向量。本方案对此不做具体限定。

402、根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量;

其中,通过根据所述M个超点的特征向量,逐步合并相似度超出预设阈值的节点,重复执行,直到合并得到一个根节点,即构建得到上述语义超点树。

上述语义超点树可以是二叉树,也可以是三叉树等,本方案对此不做具体限定。

其中,合并相似度超出预设阈值的两个节点,可以得到二叉树,如图6所示,为本申请实施例提供的一种语义超点树的示意图。相应地,合并相似度超出预设阈值的三个节点,可以得到三叉树等。

语义超点树的节点包括叶节点和非叶节点,其中,所述非叶节点对应至少两个子节点。

具体地,上述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;

对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;

或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;

或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;

其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

也就是说,叶节点对应上述超点。非叶节点可以是至少两个超点合并得到的,也可以是至少两个非叶节点合并得到的,还可以是至少一个超点、至少一个非叶节点合并得到的。

如图6所示的语义超点树的示意图中,该语义超点树中的叶节点为p0、p1、p2、p3、p4、p5、p6、p7、p8和p9,非叶节点为t0、t1、t2、t3、t4、t5、t6、t7、t8。

其中,节点t0为根节点,节点t1、节点t2为节点t0的两个子节点。相应地,节点t3和节点t4为节点t1的两个子节点。节点P0和节点p1为节点t3的两个子节点。

作为一种可选的实现方式,上述每个非叶节点的特征向量,可以是通过获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量进而得到所述每个非叶节点的特征向量。

例如,对于节点A1,其对应两个子节点,分别为S1和S2,则该节点A1的特征向量F可表示为:

上述子节点对应的点的个数,可以理解为,该子节点对应的分支中包含的叶节点中点的总个数。叶节点即为超点,其中,每个超点对应多个点。通过统计叶节点中点的个数即可得到上述子节点对应的点的个数。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

403、根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;

作为一种可选的实现方式,根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;

其中,语义超点树的节点包括叶节点和非叶节点。非叶节点包括根节点。

对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;

继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

也就是说,每个非叶节点的得分是基于其对应的子节点的特征向量得到的。例如图6中,节点t3的得分是基于p0和p1得到的,t1的得分是基于t3和t4得到的等。

其中,该得分用于表征这两个子节点是否属于同一实例或子树。若属于同一个子树,则得分高,否则得分低。

然后,通过从语义超点树的根节点开始,判断每个节点的得分是否大于第二预设得分,若小于,则继续判断其他节点。

如图6所示的语义超点树,从t0开始,判断t0的得分是否大于第二预设得分,若小于第二预设得分,则依次判断t1和t2,若t1的得分大于第二预设得分,则将t1-t3-t4-p0-p1-p2-p3作为一个子树,停止遍历t1下面的分支的各个节点。若t2的得分小于第二预设得分,则继续判断t5、t6的得分。

以此类推,直到所有的超点均有从属的子树为止。

其中,通过自顶向下地遍历,当节点得分较小时,即判断该节点对应的两棵子树不属于同一个实例,相反当该节点得分较高时,则判断该节点对应的两棵子树很可能属于同一个实例。因此可以将该节点所在的树取出来作为子树或实例。

通过自根节点向叶节点进行遍历,当遇到节点得分高于预设得分的情况,则将该节点及其下面的分支作为一个子树,并停止遍历该节点下面分支的节点;继续遍历其它节点,直到遍历到叶节点,可得到K个子树。

其中,该K个子树与K个实例一一对应。也就是说,每个子树对应一个实例。

例如,子树1对应的是第一实例,子树2对应的是第二实例,子树3对应的是第三实例等。该三个实例是不同的实例。

作为一种可选的实现方式,通过将每个节点的至少两个子节点的特征向量输入至评分模型中进行处理,进而得到每个节点的得分。

可选的,该评分模型可以是基于监督学习得到的,具体地,所述评分模型是根据每个节点样本对应的至少两个子节点样本的特征向量和所述每个节点样本的得分进行学习得到的。

作为一种可选的实现方式,所述每个节点样本的得分是根据每个节点样本对应的至少两个子节点样本的实例占比向量得到的。

例如,如图7所示,假设一共有三个不同实例,超点P0的实例占比向量为(1,0,0),超点P1的实例占比向量为(0.8,0.2,0),则节点t3的得分S=P0*P1,即为0.8。

上述超点P0的实例占比向量表示P0中的点均属于第一实例;超点P1的实例占比向量表示P1中的点80%属于第一实例,20%属于第二实例。

上述计算得分的方式仅为一种示例,其还可以是其他方式,本方案对此不做具体限定。

上述评分模型还可以是基于无监督学习等得到的,本方案对此不做具体限定。

上述第一预设得分例如可以为1,上述第二预设得分例如可以是0.5等。本方案对此不做具体限定。

404、根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

作为一种可选的实现方式,通过将上述K个子树输入至预设神经网络,进而可得到每个子树对应的语义类别。

作为另一种可选的实现方式,通过基于每个点的语义得分来得到每个子树的语义类别。例如,通过统计每个子树中所有点的语义得分,进而得到得分较高的语义,即为该子树对应的语义。

其中,上述每个点的语义得分的获取可参阅前述步骤401中的具体描述,在此不再赘述。

基于步骤403得到的K个子树,可知该K个子树与K个实例一一对应。也就是说,每个子树对应一种实例。通过步骤404进而得知该实例的具体语义类别。

例如,基于上述步骤403,可知目标场景中包括第一实例、第二实例、第三实例,通过步骤404可知,第一实例为椅子1,第二实例为椅子2,第三实例为桌子1等。

基于上述得到的每个子树对应的语义类别,进而可以实现机器人的导航、抓取,AR或虚拟现实(Virtual Reality,VR)中虚拟形象与实际场景的交互,点云编辑工具中对特定实例的删除等编辑操作。

采用该实施例提供的点云实例分割方法,可以基于目标场景中的点云得到各个实例的语义类别。本方案采用语义超点树来得到子树,即得到不同的实例。该手段较为直观,且相较于现有技术,本方案无需人为设置参数,提高了分割精度。

作为一种可选的实现方式,在步骤404之后,所述方法还包括:

对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;

将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

上述对所述K个子树中每个子树分别进行处理,可以是将每个子树输入至预设神经网络中进行处理,进而得到每个子树的叶节点的得分。

具体地,对于由节点t1、t3、t4、p0、p1、p2、p3组成的子树,将该子树转换成如图8所示的连接结构。

通过将树结构展平,删除虚线所示的连接关系,仅保留t1、p0、p1、p2、p3,进而得到叶节点和该子树的根节点,以此可得到对应的邻接矩阵。通过将该邻接矩阵输入至卷积神经网络中进而得到每个叶节点的评分,通过将评分低的叶节点从子树中删除,实现子树的细化。

进而,根据所述更新后的K个子树得到所述点云中K个实例的语义类别,以此来达到对本方案的点云实例分割进行优化。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

在上述实施例的基础上,作为一种可选的实现方式,所述方法还包括:

获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;

根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;

将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

进而,根据所述处理后的K’个子树得到所述点云中K’个实例的语义类别,以此来达到对本方案的点云实例分割进行优化。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

具体地,对于每个更新后的子树,获取每个子树中点的特征向量,对每个子树分别进行体素化得到每个子树的体素,将体素作为得分评估网络的输入,进而可得到每个子树中点的得分。

上述是对更新后的K个子树进行处理得到的,其还可以是对步骤403得到的K个子树进行处理,例如:

获取所述K个子树中每个子树的叶节点中的每个点的特征向量;

根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;

将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

也就是说,该更新可以是对原始得到的K个子树进行处理,也可以是在上述更新后的子树的基础上进行再次更新,本方案对此不做具体限定。

上述每个子树的叶节点中的每个点的特征向量可以基于步骤401中的描述获得,在此不再赘述。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

下面对本方案应用于AR地图场景进行介绍。

举例说明,用户带上AR眼镜,基于看到的场景,向电子设备发送请求,希望虚拟小狗去到玩具鸭子附近。其中,电子设备接收到用户输入的请求,该请求携带第一目标,如该第一目标可以是玩具鸭子,该请求用于指示找到玩具鸭子。

则电子设备通过获取到的目标场景中的点云,然后对该点云进行上述点云实例分割处理,具体地,通过对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量,根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,进而根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

也就是说,通过上述处理得到了目标场景中的每个实例的语义。进而可确定该场景中的玩具鸭子是在哪里。基于此,可以得到从虚拟小狗到玩具鸭子之间的导航路线,进而实现虚拟小狗到该玩具鸭子附近。

下面对本方案应用于机器人场景进行介绍。

举例说明,用户向机器人发送请求,请求机器人将客厅的苹果拿过来。

其中,机器人接收到用户输入的请求后,则通过获取到的目标场景中的点云,然后对该点云进行上述点云实例分割处理,具体地,通过对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量,根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,进而根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

也就是说,通过上述处理得到了目标场景中的每个实例的语义。进而可确定该场景中的苹果是在哪里。基于此,机器人可以去获取到苹果。

下面对本方案应用于点云编辑场景进行介绍。

举例说明,用户想要将客厅的沙发进行更换,想要先了解新沙发放进去的位置效果。其中,电子设备接收到用户输入的请求,该请求携带第一目标,该第一目标可以是沙发。

则电子设备通过获取到的目标场景中的点云,然后对该点云进行上述点云实例分割处理,具体地,通过对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量,根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,进而根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

也就是说,通过上述处理得到了目标场景中的每个实例的语义。进而可确定该场景中的沙发是在哪里。基于此,可以将该沙发展示给用户,以便用户选中之后进行编辑,如删除,或者移动等操作。

进一步地,用户还可以基于得到的新沙发,可以将其进行各种移动摆放,来方便查看摆放效果。

采用本方案的技术手段,可以实现AR/VR中虚拟形象与实际场景的交互,进行机器人的导航、抓取等,或者点云编辑工具中对特定实例的删除等编辑。

参照图9所示,本申请实施例提供的一种点云实例分割装置。该装置包括处理模块901、建树模块902、分割模块903和确定模块904,具体如下:

处理模块901,用于对目标场景中的点云进行处理,得到M个超点以及所述M个超点中每个超点的特征向量,M为不小于2的整数;

建树模块902,用于根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点的特征向量;

分割模块903,用于根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;

确定模块904,用于根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

作为一种可选的实现方式,所述建树模块902,还用于:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述分割模块903,用于:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述分割模块903,还用于:将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述装置还包括第一更新模块,用于:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述装置还包括第二更新模块,用于:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述方法还包括:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

本申请实施例提供一种基于三维场景确定物体的方法,包括:

接收用户发送的请求,所述请求携带第一目标,所述请求用于指示获取所述第一目标;

获取目标场景中的点云,其中,所述目标场景包括所述第一目标;

对所述目标场景中的点云进行实例分割处理,得到所述第一目标,其中,所述实例分割处理是基于树形结构进行处理的;

向所述用户展示所述第一目标。

采用本方案提供的基于三维场景确定物体的方法,可以实现物体分割完整,分割效果好。

其中,上述实例分割处理,包括:对目标场景中的点云进行处理,得到M个超点(super point)以及所述M个超点中每个超点的特征向量,M为不小于2的整数;根据所述M个超点的特征向量得到语义超点树以及所述语义超点树中每个节点(not)的特征向量;根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,K为正整数;根据所述K个子树得到所述点云中K个实例的语义类别,所述K个子树与所述K个实例一一对应。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

作为一种可选的实现方式,所述方法还包括:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述根据所述每个节点的特征向量,将所述语义超点树分割为K个子树,包括:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,包括:

将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述评分模型是根据每个节点样本对应的至少两个子节点样本的特征向量和所述每个节点样本的得分进行学习得到的,所述每个节点样本的得分是根据每个节点样本对应的至少两个子节点样本的实例占比向量得到的。

作为一种可选的实现方式,所述方法还包括:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述方法还包括:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述方法还包括:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

本申请还提供一种基于三维场景确定物体的装置,包括:

接收模块,用于接收用户发送的请求,所述请求携带第一目标,所述请求用于指示获取所述第一目标;

获取模块,用于获取目标场景中的点云,其中,所述目标场景包括所述第一目标;

处理模块,用于对所述目标场景中的点云进行实例分割处理,得到所述第一目标,其中,所述实例分割处理是基于树形结构进行处理的;

展示模块,用于向所述用户展示所述第一目标。

通过本申请实施例,通过对点云进行处理,得到超点,然后基于超点得到语义超点树,进而将语义超点树分割为不同子树,基于不同子树得到点云中各个实例的语义类别。本方案通过对具有几何相似度的点聚合成超点来进行实例分割,降低了点云实例分割的复杂度,避免了碎片化的分割。同时,本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。且,相较于现有技术,本方案整个过程无需人为设置参数,减少了影响分割精度的人为因素,有效提高了分割精度。

作为一种可选的实现方式,所述语义超点树的节点包括叶节点和非叶节点,所述语义超点树中每个非叶节点是根据至少两个子节点进行合并得到的,所述至少两个子节点之间的相似度超出预设阈值,其中,所述每个非叶节点的特征向量是根据所述至少两个子节点的特征向量得到的;对于任一非叶节点A1,所述非叶节点A1对应的至少两个子节点中的任一子节点为超点;或者,所述非叶节点A1对应的至少两个子节点中的任一子节点为非叶节点;或者,所述非叶节点A1对应的至少两个子节点中的至少一个子节点为超点,至少一个子节点为非叶节点;其中,所述语义超点树中的叶节点与所述M个超点一一对应,所述叶节点的特征向量与所述M个超点的特征向量一一对应。

本方案通过将相似度较大的节点进行合并来得到语义超点树,采用该手段,可以实现将不同的节点进行分类,进而实现相似合并,可以体现出节点间的关系。该手段更加直观、立体。

作为一种可选的实现方式,所述获取模块,还用于:获取所述至少两个子节点中每个子节点对应的点的个数;根据所述每个子节点对应的点的个数以及所述每个子节点的特征向量得到所述每个非叶节点的特征向量。

作为一种可选的实现方式,所述处理模块,用于:根据每个非叶节点对应的至少两个子节点中每个子节点的特征向量得到所述每个非叶节点的得分,其中,每个叶节点的得分为第一预设得分;对所述语义超点树从根节点到叶节点进行遍历,当所述节点的得分超出第二预设得分时,将该节点及该节点对应的分支作为一个子树,并停止遍历该节点的子节点,其中,所述第一预设得分大于所述第二预设得分;继续遍历其他节点,直到所有叶节点均有从属的子树时停止遍历,得到K个子树。

本方案采用语义超点树来得到子树,即得到不同的实例,采用该手段进行实例分割,较为直观。

作为一种可选的实现方式,所述处理模块,还用于:

将每个非叶节点对应的至少两个子节点的特征向量输入至评分模型中进行处理,得到所述每个非叶节点的得分,其中,所述评分模型是根据机器学习得到的。

作为一种可选的实现方式,所述评分模型是根据每个节点样本对应的至少两个子节点样本的特征向量和所述每个节点样本的得分进行学习得到的,所述每个节点样本的得分是根据每个节点样本对应的至少两个子节点样本的实例占比向量得到的。

作为一种可选的实现方式,所述处理模块,还用于:对所述K个子树中每个子树分别进行处理,得到所述每个子树的叶节点的得分,其中,所述每个子树的叶节点为该子树中的超点对应的节点;将所述得分低于第三预设得分的叶节点删除,得到更新后的K个子树。

由于子树中可能存在分错的超点,采用该手段,通过计算每个叶节点的得分,进而删除不是该子树的叶节点,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为另一种可选的实现方式,所述处理模块,还用于:获取所述更新后的K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述更新后的K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

采用该手段,通过计算每个子树的得分,进而删除得分较低的子树,来对子树进行更新,进一步提高了点云实例分割的精准度。

作为又一种可选的实现方式,所述处理模块,还用于:获取所述K个子树中每个子树的叶节点中的每个点的特征向量;根据所述每个子树的叶节点中的点的特征向量得到所述每个子树的得分;将所述K个子树中得分小于第四预设得分的子树删除,得到处理后的K’个子树,K’不小于1,且K’不大于所述K。

其中,上述实例分割处理可参阅前述第一方面提供的任一种实现方式。

采用本方案提供的基于三维场景确定物体的装置,可以实现物体分割完整,分割效果好。

需要说明的是,上述图9所示的处理模块901、建树模块902、分割模块903和确定模块904用于执行上述点云实例分割方法的相关步骤。

比如处理模块901用于执行步骤401的相关内容,建树模块902用于执行步骤402的相关内容,分割模块903用于执行步骤403的相关内容,确定模块904用于执行步骤404的相关内容。

在本实施例中,该点云实例分割装置是以模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。

此外,以上处理模块901、建树模块902、分割模块903和确定模块904可通过图10所示的点云实例分割装置的处理器1002来实现。

图10是本申请实施例提供的点云实例分割装置的硬件结构示意图。图10所示的点云实例分割装置1000(该装置1000具体可以是一种计算机设备)包括存储器1001、处理器1002、通信接口1003以及总线1004。其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。

存储器1001可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。

存储器1001可以存储程序,当存储器1001中存储的程序被处理器1002执行时,处理器1002和通信接口1003用于执行本申请实施例的点云实例分割方法的各个步骤。

处理器1002可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的点云实例分割装置中的单元所需执行的功能,或者执行本申请方法实施例的点云实例分割方法。

处理器1002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的点云实例分割方法的各个步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1002还可以是通用处理器、数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件完成本申请实施例的点云实例分割装置中包括的单元所需执行的功能,或者执行本申请方法实施例的点云实例分割方法。

通信接口1003使用例如但不限于收发器一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信。例如,可以通过通信接口1003获取数据。

总线1004可包括在装置1000各个部件(例如,存储器1001、处理器1002、通信接口1003)之间传送信息的通路。

应注意,尽管图10所示的装置1000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置1000还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置1000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置1000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图10中所示的全部器件。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。

本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应步骤过程的具体描述,在此不再赘述。

应理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。

以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号