CN117455928A - 无序抓取过程中抓取对象的分割方法、装置和电子设备 - Google Patents

无序抓取过程中抓取对象的分割方法、装置和电子设备 Download PDF

Info

Publication number
CN117455928A
CN117455928A CN202311787467.0A CN202311787467A CN117455928A CN 117455928 A CN117455928 A CN 117455928A CN 202311787467 A CN202311787467 A CN 202311787467A CN 117455928 A CN117455928 A CN 117455928A
Authority
CN
China
Prior art keywords
data
point
point cloud
target data
data point
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.)
Granted
Application number
CN202311787467.0A
Other languages
English (en)
Other versions
CN117455928B (zh
Inventor
王鑫
蒋峰
彭岗举
李大琳
罗桂文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Genu Technology Co ltd
University of Electronic Science and Technology of China
Original Assignee
Zhuhai Genu Technology Co ltd
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Genu Technology Co ltd, University of Electronic Science and Technology of China filed Critical Zhuhai Genu Technology Co ltd
Priority to CN202311787467.0A priority Critical patent/CN117455928B/zh
Publication of CN117455928A publication Critical patent/CN117455928A/zh
Application granted granted Critical
Publication of CN117455928B publication Critical patent/CN117455928B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本发明实施例提供了一种无序抓取过程中抓取对象的分割方法、装置和电子设备,方法包括:获取包含抓取对象的初始点云数据;针对初始点云数据中第一目标数据点,获取相邻数据点以及相邻数据点的法向方向;基于法向方向确定第一目标数据点是否位于抓取对象的边际;从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;针对中间点云数据中第二目标数据点;获取第一相邻数据点,以及第一相邻数据点与第二目标数据点的距离参数,基于距离参数确定聚类阈值,对第二目标数据点进行聚类处理,得到第一聚类结果;基于第一聚类结果,得到抓取对象的点云数据分割结果。该方式加快了点云分割效率,提升了点云分割的准确率和分割效果。

Description

无序抓取过程中抓取对象的分割方法、装置和电子设备
技术领域
本发明涉及计算机视觉技术领域,尤其是涉及一种无序抓取过程中抓取对象的分割方法、装置和电子设备。
背景技术
机器人抓取是机器人领域的重要研究内容之一,基于视觉引导的机器人抓取系统被广泛应用在工件搬运、装配等领域。在实际抓取应用中,由于无序场景中存在工件的堆叠和遮挡,为了使机械臂完成单一性的无序抓取,需要对相互堆叠遮挡的工件图像信息进行分割处理,得到抓取对象的点云数据,三维点云分割是将同属性的点云物体分割出来,以便于单独对该点云物体处理。现有技术中,常常采用聚类分割方法对三维点云数据进行分割,该方式是通过临近信息聚类实现的,即将某点云周围一定聚类半径范围内的点归为同一类,不断迭代直到该类不能再继续扩充为止。采用这种方式对相互遮挡或者重叠的工件点云数据进行分割时,时间复杂度较高,耗时会相对较长,聚类半径选取不当,容易导致不同程度的欠分割和过分割,造成分割准确率低,影响分割效果。
发明内容
有鉴于此,本发明的目的在于提供一种无序抓取过程中抓取对象的分割方法、装置和电子设备,以加快点云分割的分割效率,提升点云分割的准确率和分割效果。
第一方面,本发明实施例提供了一种无序抓取过程中抓取对象的分割方法,该方法包括:获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
第二方面,本发明实施例提供了一种无序抓取过程中抓取对象的分割装置,该装置包括:第一获取模块,用于获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;第一确定模块,用于针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;第一删除模块,用于从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;第二确定模块,用于针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;第三确定模块,用于基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述无序抓取过程中抓取对象的分割方法。
第四方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述无序抓取过程中抓取对象的分割方法。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种无序抓取过程中抓取对象的分割方法、装置和电子设备,该方法包括:获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
该方式中,针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向,根据第一指定范围内的相邻数据点的法向方向,确定位于抓取对象边际的点云数据,然后,从初始点云数据中去除位于抓取对象边际的点云数据,只对中间点云数据进行聚类处理,减少了点云数据的搜索数量,缩短了分割时长,然后,将中间点云数据中的任意目标数据点为聚类中心,根据该目标数据点与其最近的相邻数据点的距离参数确定聚类阈值,按照聚类阈值对目标数据点进行聚类处理,在聚类处理过程中,动态调整聚类阈值,将聚类结果确定为位于抓取对象内部的点云数据,最终得到抓取对象的点云数据分割结果,该方式加快了点云分割的分割效率,同时避免了欠分割或过分割现象的产生,提升了点云分割的准确率和分割效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种无序抓取过程中抓取对象的分割方法的流程图;
图2为本发明实施例提供的一种确定第一聚类结果的示意图;
图3为本发明实施例提供的一种无序抓取过程中抓取对象的分割装置的示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,如图1所示,首先对本发明实施例所公开的无序抓取过程中抓取对象的分割方法进行详细介绍。
步骤S102、获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;
上述抓取对象包括汽配轴承等工业零件,抓取对象处于遮挡、杂乱和堆叠等无序状态的堆叠物体中,堆叠物体和抓取对象属于同一类物体,也就是说抓取对象是堆叠物体中的任意一个物体;在这里,可以通过雷达、激光扫描、立体摄像机等三维测量设备扫描堆叠物体,得到一堆三维点云数据,对该三维点云数据进行处理和分析,识别三维点云数据中的堆叠物体和环境,去除环境的三维点云后,得到堆叠物体的点云数据,该堆叠物体的点云数据即为上述包含抓取对象的初始点云数据,在这里,初始点云数据中包括抓取对象对应的点云数据以及抓取对象周围的点云数据,其中,抓取对象周围的点云数据可以是一个抓取对象之外的其他堆叠物体的点云数据。
步骤S104、针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;
上述第一指定范围为预设的邻域半径,可以根据经验进行设置,一种方式中,可以参考抓取对象模型对应的模型点云数据中数据点的平均距离设置第一指定范围。该第一指定范围越小越能保留抓取对象边缘的细节信息。上述法向方向即为点云数据点的法线方向。
当多个物体出现堆叠时,映射到三维点云数据上,在空间中处于堆叠处边际的数据点的点云法向量会出现方向上的突变,基于此特性,预先对处于抓取对象的边际的点云数据进行识别并去除,在后续对点云分割时,减少点云数据的搜索数量,下述提供识别处于抓取对象边际的点云的实现方式。
具体地,可以先建立初始点云数据中各个数据点对应的拓扑关系,拓扑关系指示了初始点云数据中该数据点与其他数据点的空间距离关系,可以通过创建点云数据的空间数据索引的方式,实现拓扑关系的建立。在这里,可以采用KD树(k-dimensional Tree)、BSPTree(Binary Space Partioning Tree,二叉空间分区树)等方式创建初始点云数据的空间数据索引,对空间中的初始点云数据进行存储以便对其进行快速检索,构建各个数据点对应的拓扑关系。本实施例以使用KD树搜索构建各点云数据的拓扑关系为例,通过构建各点云数据的KD树,实现点云邻近点的快速查询。
进一步的,随机选取初始点云数据中任意数据点作为第一目标数据点,基于第一目标数据点的拓扑关系,确定领域半径r,获取第一目标数据点周围领域半径r内的所有邻近点,将这些邻近点作为第一目标数据点周围第一指定范围内的相邻数据点。获取该第一指定范围内的相邻数据点的法向方向,针对每个相邻数据点,计算第一目标数据点与相邻数据点法向方向的变化值,如果第一目标数据点为处于边际点,该变化值会非常大,因此,可以根据经验设置一个预设的方向阈值,该预设的方向阈值的余弦值越接近0越好,选取第一目标数据点和相邻数据点对应的法向方向变化值中最大值和预设的方向阈值对比,如果最大值大于预设的方向阈值,则确定第一目标数据点位于抓取对象的边际,该第一目标数据点属于抓取对象的边际点;否则确定第一目标数据点没有位于抓取对象的边际。
按照此方式,遍历整个初始点云数据,将初始点云数据中的各个数据点都作为第一目标数据点,就可以识别到初始点云数据中所有位于抓取对象边际的点云。
步骤S106、从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;
也就说,从初始点云数据中去除抓取对象的边际点,得到中间点云数据。在这里,中间点云数据,可以理解为,堆叠物体内部的数据点,即仅包括至少一个抓取对象内部的点云数据的集合。
步骤S108、针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;
上述第一距离参数为第一相邻数据点与第二目标数据点的平均距离。上述第一相邻数据点,是与第二目标数据点最相近的具有第一指定数量的数据点,至于第一指定数量,用户可以根据需要设置,示例地,可以根据抓取对象模型对应的模型点云数据的密度设置第一指定数量。上述聚类阈值是一个空间距离阈值,将一个数据点作为聚类中心,该聚类中心以及该聚类中心周围聚类阈值范围内的数据点,可以认为属于同一个抓取对象对应的数据点。
在这里,以使用KD树搜索构建中间点云数据的拓扑关系为例,从中间点云数据中随机选取任意数据点,作为第二目标数据点,将第二目标数据点作为聚类中心,开始计算聚类聚类阈值,具体地,首先基于KD树搜素中间点云数据中与第二目标数据点最近的K个数据点,将最近的K个数据点确定为第一相邻数据点,即第一指定数量为K,K值可以是指定参数,例如3;根据第二目标数据点与最近的K个数据点的平均距离确定聚类阈值的计算方式,得到聚类阈值。然后,以第二目标数据点作为聚类中心点,按照聚类阈值对第二目标数据点进行聚类处理,通过搜索第二目标数据点周围不大于该聚类阈值范围内的数据点,将第二目标数据点和第二目标数据点周围不大于该聚类阈值范围内的数据点组成第一聚类集合,该第一聚类集合中的数据点属于同一个抓取对象的点云。
进一步地,从第一聚类集合中的数据点中选取任意数据点,作为第三目标数据点,将第三目标数据点作为聚类中心,计算第三目标数据点对应的聚类阈值,将第三目标数据点对应的聚类阈值作为更新后的聚类阈值,按照更新后的聚类阈值对第三目标数据点进行聚类处理,根据KD树搜素中间点云数据中与第三目标数据点最近的K个数据点,将最近的K个数据点确定为第二相邻数据点,其中,K值可以是指定参数,例如3。根据第二相邻数据点与第三目标数据点的距离远近更新聚类阈值,以第三目标数据点作为聚类中心点,通过搜索第三目标数据点周围不大于该更新后的聚类阈值范围内的数据点,将第三目标数据点周围不大于该更新后的聚类阈值范围内的数据点加入第一聚类集合。
进一步,遍历第一聚类集合中的数据点,将第一聚类集合中的各个数据点都作为第三目标数据点,重复获取更新后的聚类阈值,按照更新后的聚类阈值对第三目标数据点进行聚类处理的过程,在遍历过程中,每个第三目标数据点对应的第二相邻数据点不同,第二相邻数据点与第三目标数据点的空间距离远近不同,引起聚类阈值跟随选取的第三目标数据点的空间位置进行自适应的变化,第一聚类集合不断壮大,将遍历第一聚类集合中的数据点后,得到的第一聚类集合中的数据点作为第一聚类结果。第一聚类结果是中间点云数据中属于同一抓取对象的点云数据。
上述方式中,聚类阈值跟随聚类中心的空间位置进行自适应变化,与固定的聚类阈值相比,避免了欠分割或过分割现象的产生,同时提升了点云分割的准确率和分割效果。
步骤S110、基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
第一聚类结果属于同一抓取对象的点云,将第一聚类结果从中间点云数据中分割出来,就是位于该抓取对象内部的点云数据,然后,从初始点云数据中删除的边际点中获取属于该抓取对象边际的数据点,将该抓取对象边际的数据点和该抓取对象内部的点云数据确定为该抓取对象对应的点云数据,得到抓取对象的点云数据分割结果。
上述无序抓取过程中抓取对象的分割方法、装置和电子设备,获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。该方式中,针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向,根据第一指定范围内的相邻数据点的法向方向,确定位于抓取对象边际的点云数据,然后,从初始点云数据中去除位于抓取对象边际的点云数据,只对中间点云数据进行聚类处理,减少了点云数据的搜索数量,缩短了分割时长,然后,将中间点云数据中的任意目标数据点为聚类中心,根据该目标数据点与其最近的相邻数据点的距离参数确定聚类阈值,按照聚类阈值对目标数据点进行聚类处理,在聚类处理过程中,动态调整聚类阈值,将聚类结果确定为位于抓取对象内部的点云数据,最终得到抓取对象的点云数据分割结果,该方式加快了点云分割的分割效率,同时避免了欠分割或过分割现象的产生,提升了点云分割的准确率和分割效果。
一种方式中,在三维空间中建立将初始点云数据包围的初始三维区域,根据初始点云数据的第一方差信息,确定第一划分维度;从初始点云数据中确定第一数据点,通过第一数据点且垂直于第一划分维度的平面,对初始三维区域进行划分操作,将初始三维区域划分为两个子三维区域,得到第一划分结果;获取每个子三维区域包围的点云集合,确定点云集合中是否存在数据点;如果点云集合中不存在数据点,基于第一划分结果确定初始点云数据中各个数据点对应的拓扑关系;其中,拓扑关系指示:初始点云数据中各个数据点之间的空间距离关系;如果点云集合中存在数据点,循环执行下述划分操作,直至划分后每个子区域包围的点云集合中不存在数据点,得到第二划分结果;基于第二划分结果确定初始点云数据中各个数据点对应的拓扑关系;获取包围点云集合的区域,根据点云集合中的第二方差信息,确定第二划分维度,从点云集合中确定第二数据点,通过第二数据点且垂直于第二划分维度的平面,对包围点云集合的区域进行划分操作,获取划分后每个子区域包围的点云集合。
可以理解的,初始点云数据中的每个数据点在三维空间中都有对应的坐标,通过数据点在三个方向维度上的坐标值来描述数据点的空间位置。上述第一方差信息为初始点云数据中的所有数据点分别在三个方向维度上的坐标值的方差。
在初始点云数据上建立一个初始三维区域,该初始三维区域仅将初始点云数据中的数据点全部包围,计算初始点云数据的所有数据点分别在三个方向维度上坐标值的方差,将方差值最大的方向维度确定为第一划分维度。示例地,以三个方向维度为过O点且相互垂直的X、Y、Z坐标轴为例,计算初始点云数据中的所有数据点分别在X轴、Y轴、Z轴上坐标值的方差作为第一方差信息,确定第一方差信息中三个方差值的最大值,最大值对应的坐标轴确定为第一划分维度。
进一步地,从初始点云数据中确定第一数据点,通过第一数据点且垂直于第一划分维度的平面,将初始三维区域划分为两个子三维区域,得到第一划分结果,一种方式中,第一数据点可以是初始点云数据中的任意数据点;还有一种方式,可以根据第一划分维度确定第一数据点,具体地,获取初始点云数据中所有数据点在第一划分维度上的坐标值,将第一划分维度上的坐标值按照大小顺序进行排序,将处于中位数的坐标值对应的数据点确定为第一数据点,通过第一数据点且垂直于第一划分维度的平面对初始三维区域进行划分,将初始三维区域划分为两个子三维区域,每个子三维区域包括初始点云数据中的部分数据点,得到初始点云数据的划分结果。示例地,当第一划分维度为X轴时,将X轴上坐标值处于中位数的数据点确定为第一数据点,使用过该第一数据点且和YOZ平面平行的平面划分初始三维区域,得到两个子三维区域,将初始点云数据中的数据点划分到两个子三维区域中,得到第一划分结果。
进一步地,获取每个子三维区域包围的点云集合,确定点云集合中是否存在数据点。上述点云集合,指的是子三维区域包围的数据点的集合,这里的包围指的是在区域的内部,而非区域边缘线上。在这里,需要确定子三维区域包围的点云集合中是否存在数据点。
进一步地,一种情况下,如果点云集合中不存在数据点,基于所第一划分结果确定初始点云数据中各个数据点对应的拓扑关系;其中,拓扑关系指示:初始点云数据中各个数据点之间的空间距离关系。在这里,以通过KD树构建初始点云数据的拓扑关系为例,当进行一次划分操作后,得到的划分结果为:每个子三维区域包围的点云集合中都不存在数据点,即每个子三维区域内部都不存在初始点云数据中的数据点,说明初始点云数据中所有的数据点都被插入树中,基于该划分结果,将以第一数据点作为KD树的叶子节点,将第一划分维度作为KD树的分支节点,生成KD树空间数据索引形式的拓扑关系,以便KD树通过分支节点、叶子节点搜索不同条件下初始点云数据中的数据点。
另一种情况下,如果子三维区域包围的点云集合中存在数据点,继续划分该点云集合,具体地,
1)根据存在数据点的点云集合,获取包围该点云集合的区域,该区域可以是前述子三维区域,也可以是比子三维区域更大的区域,只要能包围点云集合即可,计算点云集合中的数据点分别在三个方向维度上坐标值的方差,将方差值最大的方向维度确定为第二划分维度,然后,从点云集合中确定第二数据点,一种方式中,第二数据点可以是点云集合中的任意数据点;还有一种方式,可以根据第二划分维度确定第二数据点,然后,通过第二数据点且垂直于第二划分维度的平面,对包围点云集合的区域进行划分操作,获取划分后每个子区域包围的点云集合。
2)对划分后每个子区域包围的点云集合,循环执行1)的划分步骤,直至划分后每个子区域包围的点云集合不存在数据点,将每次划分步骤中从点云集合中确定的第二数据点和前述第一数据点作为KD树的叶子节点,将每次划分步骤中的确定的划分维度作为KD树的分支节点,生成KD树空间数据索引形式的拓扑关系,以便于KD树根据分支节点、叶子节点搜索不同条件下的数据点。
下述实施例提供确定第一目标数据点是否位于抓取对象的边际的实现方式。
获取初始点云数据中的任意第一目标数据点;确定第一目标数据点对应的拓扑关系;第一目标数据点对应的拓扑关系指示:第一目标数据点与初始点云数据中其他数据点的空间距离关系;基于第一目标数据点对应的拓扑关系确定第一指定范围;从初始点云数据中,获取第一目标数据点周围第一指定范围内的相邻数据点;获取第一指定范围内的相邻数据点的法向方向。
实际实现时,可以通过KD树搜索构建初始点云数据的拓扑关系,随机选取初始点云数据中任意数据点作为第一目标数据点,然后,基于第一目标数据点与初始点云数据中其他数据点的空间距离关系,根据经验选择合适的领域半径r作为第一指定范围,通过KD树搜索第一目标数据点周围第一指定范围内的相邻数据点,获取该第一指定范围内的相邻数据点的法向方向。
进一步地,确定第一目标数据点对应的第一方向阈值;针对每个第一指定范围内的相邻数据点,获取第一目标数据点的法向方向与相邻数据点的法向方向的变化值,得到第一变化值集合,确定第一变化值集合中的最大数值;判断最大数值与第一方向阈值大小,如果最大数值大于第一方向阈值,确定第一目标数据点位于抓取对象的边际;如果最大数值不大于第一方向阈值,确定第一目标数据点没有位于抓取对象的边际。
上述第一方向阈值是预设的法向方向的变化值,该第一方向阈值根据经验值设定,当第一目标数据点的法向方向与相邻数据点的法向方向的变化值超过该第一方向阈值,确定第一目标数据点位于抓取对象的边际。
在这里,针对每个第一目标数据点周围第一指定范围内的相邻数据点,计算第一目标数据点与该相邻数据点法向方向的夹角度数,将得到的法向方向的夹角度数作为法向方向的变化值,组成第一变化值集合,选取第一变化值集合中的最大数值与第一方向阈值作比较,如果最大数值大于第一方向阈值,确定第一目标数据点位于抓取对象的边际;如果最大数值不大于第一方向阈值,确定第一目标数据点没有位于抓取对象的边际,该第一目标数据点为抓取对象内部的数据点。
按照此方式,将初始点云数据中的各个数据点都作为第一目标数据点,遍历整个初始点云数据,就可以识别到初始点云数据中所有位于抓取对象边际的点云。
分割效率最主要影响因素就是聚类阈值的选取,下述实施例提供根据确定聚类阈值的实现方式。
上述第一距离参数包括平均距离;获取中间点云数据中的任意第二目标数据点;确定第二目标数据点对应的拓扑关系;第二目标数据点对应的拓扑关系指示:第二目标数据点与中间点云数据中其他数据点的空间距离关系;基于第二目标数据点对应的拓扑关系,从中间点云数据中获取第二目标数据点周围第一相邻数据点;确定第一相邻数据点与第二目标数据点的平均距离;基于抓取对象模型对应的模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值;根据平均距离与第一阈值的关系,确定聚类阈值。
在这里,通过KD树搜索构建中间点云数据的拓扑关系,随机选取中间点云数据中任意数据点作为第二目标数据点,通过KD树搜索中间点云数据中第二目标数据点周围最近的K个数据点,将最近的K个数据点确定为第二相邻数据点,其中,K值可以是指定参数,例如3。计算第二目标数据点与K个第二相邻数据点的平均距离。一种具体的实现方式中,本实施例可以提供平均距离/>的一种计算公式,即:
其中,为第二目标数据点到第i个第二相邻数据点的距离。
进一步地,根据抓取对象模型对应的模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值。具体地,首先对抓取对象进行三维建模,均匀地在3D模型的表面上进行采样,然后用采样的点生成模型点云,得到抓取对象模型对应的模型点云数据,通过KD树构建模型点云数据的拓扑关系,针对模型点云数据中的任意一个数据点i,计算离数据点i最近的K个数据点的平均距离,其中,K值可以是指定参数,例如3;遍历整个模型点云数据,得到N个平均距离,基于N个平均距离,得到模型点云数据中数据点的模型平均距离,以及模型标准差/>;一种具体的实现方式中,本实施例可以提供模型平均距离和模型标准差的一种计算公式:
然后,根据模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值。一种具体的实现方式中,本实施例可以提供第一阈值的一种计算公式,即,Y = Dp+ S* C;其中,Y为上述第一阈值;Dp为模型平均距离;S为模型标准差;C为阈值调整参数,该阈值调整参数是一个常数,根据经验确定。
进一步地,根据平均距离与第一阈值的关系,确定聚类阈值。在这里,可以根据第一相邻数据点与第二目标数据点的平均距离Dm,和第一阈值的关系,确定聚类阈值。
具体地,一种方式中,如果平均距离小于第一阈值,将平均距离扩大第一指定倍数后的结果确定为聚类阈值;如果平均距离不小于第一阈值,将平均距离缩小第二指定倍数后的结果确定为聚类阈值。
上述第一指定倍数和第二指定倍数为指定系数。一个实施例中,聚类阈值Dre与平均距离的关系如下:当第二目标数据点与第二相邻数据点的平均距离Dm小于第一阈值Y时,聚类阈值Dre的计算公式为Dre=2Dm;当第二目标数据点与第二相邻数据点的平均距离Dm大于或等于第一阈值Y时,聚类阈值Dre的计算公式为Dre=Dm/1.5。
上述方式中,聚类阈值会跟随选取的第二目标数据点和其周围数据点的空间位置和距离的变化进行自适应变化,与固定的聚类阈值相比,避免了欠分割或过分割现象的产生,同时提升了点云分割的准确率和分割效果。
下述实施例提供按照聚类阈值对第二目标数据点进行聚类处理,得到聚类结果的实现方式。
获取第二目标数据点周围不大于聚类阈值的数据点,将第二目标数据点和不大于聚类阈值的数据点组成第一聚类集合;继续执行下述步骤,直至遍历第一聚类集合中的数据点,将第一聚类集合中的数据点作为第一聚类结果;将遍历出的数据点确定为第三目标数据点;针对第一聚类集合中的任意第三目标数据点,从中间点云数据中获取第三目标数据点周围第二相邻数据点,以及第二相邻数据点与第三目标数据点的第二距离参数,基于第二距离参数更新聚类阈值;其中,第二相邻数据点具有第二指定数量;第二相邻数据点与第三目标数据点的第二距离参数对应的最大参数值,不大于中间点云数据中除第二相邻数据点外其他数据点与第三目标数据点的第二距离参数对应的最小参数值;从中间点云数据中获取第三目标数据点周围不大于更新后的聚类阈值的数据点,将第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合。
上述第二相邻数据点,是与第三目标数据点最相近的具有第二指定数量的数据点。
一种实现方式中,获取该第一聚类结果的流程如图2所示。
随机选取中间点云数据中任意数据点作为第二目标数据点,根据第二目标数据点与中间点云数据中其他数据点的空间距离关系,通过KD树搜索中间点云数据中第二目标数据点周围最近的K个数据点,其中,K值可以是指定参数,例如3。计算第二目标数据点与K个数据点的平均距离Dm,以通过平均距离Dm和第一阈值的关系,确定该第二目标数据点对应的聚类阈值,确定聚类阈值后,以第二目标数据点为聚类中心,搜索第二目标数据点周围不大于聚类阈值的数据点,将第二目标数据点和第二目标数据点周围不大于聚类阈值的数据点组成第一聚类集合,该第一聚类集合中的数据点确定为属于同一个抓取对象的点云。
进一步地,从第一聚类集合中的数据点中选取任意数据点w,作为第三目标数据点,根据KD树搜素中间点云数据中与第三目标数据点最近的K个数据点,将与第三目标数据点最近的K个数据点确定为第二相邻数据点,第二相邻数据点的数量为K,K值可以是指定参数,例如3。
根据第二相邻数据点与第三目标数据点的第二距离参数更新聚类阈值。
在这里,根据第三目标数据点与第二相邻数据点的第二距离参数确定更新后的聚类阈值。获取更新后的聚类阈值的方式与前述基于第一距离参数确定聚类阈值的方式相似,只不过是通过第三目标数据点与第二相邻数据点的平均距离,和第一阈值的关系,确定更新后的聚类阈值。
进一步地,从中间点云数据中获取第三目标数据点周围不大于更新后的聚类阈值的数据点,将第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合。
进一步地,继续从第一聚类集合中读取任意目标数据点作为第三目标数据点,继续根据KD树搜素中间点云数据中与该第三目标数据点最近的K个数据点,通过第三目标数据点与最近的K个数据点的平均距离,和第一阈值的关系,继续更新聚类阈值,得到再一次更新后的聚类阈值,然后,以第三目标数据点聚类中心,对第三目标数据点进行聚类处理,将第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合,从而得到不断更新壮大的第一聚类集合,在这里过程中,如果第一聚类集合中存在重复的数据点,合并第一聚类集合中重复的数据点,然后,继续选取集合中一数据点作为第三目标数据点进行聚类,直至第一聚类集合中的所有数据点都作为第三目标数据点进行了聚类处理,将最后更新后的第一聚类集合中的数据点作为第一聚类结果。该第一聚类结果属于同一个抓取对象的点云。
在遍历过程中,每个第三目标数据点对应的第二相邻数据点不同,第二相邻数据点与第三目标数据点的平均距离不同,引起聚类阈值跟随第三目标数据点的选取发生自适应的变化,避免了欠分割或过分割现象的产生,随着第三目标数据点不断选取,不断更新壮大的第一聚类集合,从而得到中间点云数据中,同一个抓取对象内部的点云数据。
一种方式中,如果中间点云包括多个抓取对象的内部点云数据,在第一聚类结果后,还需要继续对剩余的点云数据进行聚类处理。
具体地,将第一聚类结果标记为已分类数据点;判断中间点云数据是否全部被标记为已分类数据点;如果中间点云数据没有全部被标记为已分类数据点;继续执行下述步骤,直至中间点云数据全部被标记为已分类数据点,输出至少一个第二聚类结果:基于第一聚类结果和第二聚类结果,确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果;针对中间点云数据中未分类的数据点中任意第四目标数据点;获取第四目标数据点周围第三相邻数据点,以及第三相邻数据点与第四目标数据点的第三距离参数,其中,第三相邻数据点具有第三指定数量;第三相邻数据点与第四目标数据点的第三距离参数对应的最大参数值,不大于中间点云数据中未分类的数据点中除第三相邻数据点外其他数据点与第四目标数据点的第三距离参数对应的最小参数值;基于第三距离参数确定聚类阈值,按照聚类阈值对第四目标数据点进行聚类处理,得到第二聚类结果;将第二聚类结果中的数据点标记为已分类数据点。
上述第三距离参数为第三相邻数据点与第四目标数据点的平均距离。上述第三相邻数据点,是未分类的点云数据中与第四目标数据点最相近的具有第三指定数量的数据点。上述第三指定数量,与前述第一指定数量、第二指定数量可以相同,也可以不同。
也就是说,第一聚类结果作为划分出来的一个抓取对象的内部点云,将该第一聚类结果标记为已分类数据点,然后,判断中间点云数据是否全部被标记为已分类数据点,如果中间点云数据没有全部被标记为已分类数据点,说明还存在其他类别的点云,需要继续对未分类的点云数据进行聚类处理,得到至少一个第二聚类结果,得到至少一个第二聚类结果的方式与获取第一聚类结果的方式相似,具体过程可以为:
从中间点云数据中未分类的数据点中选取任意一个数据点作为第四目标数据点,基于KD树搜素中间点云数据中未分类的数据点中与第四目标数据点最近的K个数据点,将这些最近的K个数据点确定为第三相邻数据点,即第三相邻数据点的数量为K,K值可以是指定参数,例如3;根据第四目标数据点与K个第三相邻数据点的平均距离,确定聚类阈值的计算方式,得到聚类阈值,以第四目标数据点作为聚类中心点,通过搜索第四目标数据点周围不大于该聚类阈值范围内的数据点,将第四目标数据点和第四目标数据点周围不大于该聚类阈值范围内的数据点组成第二聚类集合,该第二聚类集合中的数据点属于同一个抓取对象的点云。
进一步地,从第二聚类集合中读取任意目标数据点p,根据KD树搜素中间点云数据中未分类的数据点中与该任意目标数据点p最近的K个数据点,通过p与最近的K个数据点的平均距离参数和第一阈值的关系,继续更新聚类阈值,得到更新后的聚类阈值,然后,以p为聚类中心,更新后的聚类阈值为半径进行聚类,将p周围不大于更新后的聚类阈值范围内的数据点加入第二聚类集合,从而得到不断更新壮大的第二聚类集合,如果第二聚类集合中存在重复的数据点,合并第二聚类集合中重复的数据点,继续选取第二聚类集合中任一数据点作为目标数据点p,以目标数据点p为聚类中心,计算聚类阈值进行聚类,聚类中心遍历第一聚类集合中的所有数据点后,将最后更新后的第二聚类集合中的数据点作为第二聚类结果,将第二聚类结果中的数据点标记为已分类数据点。
判断中间点云数据是否全部被标记为已分类数据点,如果中间点云数据没有全部被标记为已分类数据点,继续从中间点云数据中未分类的数据点中选取任意一个数据点,作为聚类中心,计算聚类阈值,进行聚类,直至中间点云数据全部被标记为已分类数据点,输出所有的聚类结果。
按照此方式,得到至少一个第二聚类结果,每个第二聚类结果都对应于一个抓取对象的点云。这样,中间点云数据被划分为第一聚类结果和至少一个第二聚类结果,每个聚类结果对应于一个抓取对象完整的内部点云数据。任意一个聚类结果都可作为不同抓取对象的内部点云数据,最后,将每个聚类结果从中间点云数据中分割出来。
在这里,每个聚类结果对应的抓取对象的点云数据,都缺少抓取对象的边际点云数据,为了保障点云数据完整性,需要将前述删除的位于各抓取对象的边际的数据点补回到各个抓取对象中,得到抓取对象对应的点云数据分割结果。
一种方式中,如果第一目标数据点是位于抓取对象的边际,将第一目标数据点加入边际数据点集合;从边际数据点集合中获取任意第五目标数据点,获取第五目标数据点到抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;遍历边际数据点集合中的数据点,将遍历出的数据点确定为第五目标数据点,继续执行下述步骤:获取第五目标数据点与抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;将抓取对象的边际数据点和抓取对象内部的点云数据确定为抓取对象对应的点云数据,得到抓取对象的点云数据分割结果。
也就是说,边际数据点集合中的数据点都是初始点云数据中位于各个抓取对象边际的数据点。上述预设距离阈值,根据经验进行设置,一种方式中,可以参考抓取对象模型对应的模型点云数据中数据点的平均距离设置预设距离阈值。
一种方式中,如果初始点云数据中只有一个抓取对象,为了保险起见,可以从边际数据点集合中获取任意一个数据点作为第五目标数据点,通过KD树搜索构建抓取对象内部点云数据的拓扑关系,获取第五目标数据点到该抓取对象内部的点云数据中与其最邻近点的间隔距离,该间隔距离可以是第五目标数据点与上述其最邻近点数据点的欧式距离,比较间隔距离和预设距离阈值,如果间隔距离小于预设距离阈值,则该第五目标数据点就是该抓取对象的边际数据点;如果间隔距离不小于预设距离阈值,则说明该第五目标数据点不是该抓取对象的边际数据点,继续从边际数据点集合中获取下一个数据点,作为第五目标数据点,继续对应的间隔距离和预设距离阈值,直至第五目标数据点遍历边际数据点集合,将得到的抓取对象的边际数据点和该抓取对象内部的点云数据确定为该抓取对象对应的点云数据,将输出的抓取对象对应的点云数据,作为抓取对象的点云数据分割结果。
另一种方式中,如果初始点云数据中包含多个抓取对象的点云,将前述每个聚类结果从中间点云数据中分割出来后,得到每个抓取对象的内部点云数据,通过KD树搜索构建每个抓取对象内部点云数据的拓扑关系。一种实施例中,以初始点云数据包括抓取对象A对应的点云数据和抓取对象B对应的点云数据为例,从边际数据点集合中获取任意一个数据点作为第五目标数据点,通过KD树搜索抓取对象A内部的点云数据中与第五目标数据点间隔距离最近的数据点作为最近邻点,获取第五目标数据点与最近邻点的间隔距离,该间隔距离可以是欧式距离,比较间隔距离和预设距离阈值,如果间隔距离小于预设距离阈值,则该第五目标数据点就是抓取对象A的边际数据点,将该第五目标数据点标记为已处理边际点。如果间隔距离不小于预设距离阈值,则说明该第五目标数据点不是抓取对象A的边际数据点,继续从边际数据点集合中获取下一个数据点,作为第五目标数据点,继续对应的间隔距离与预设距离阈值作比较,直至第五目标数据点遍历边际数据点集合,将得到的抓取对象A的边际数据点和抓取对象A内部的点云数据确定为抓取对象A对应的点云数据,输出抓取对象A对应的点云数据,作为抓取对象A的点云数据分割结果。
然后,从边际数据点集合中获取任意一个未标记为已处理边际点的数据点作为第五目标数据点,通过KD树搜索抓取对象B内部的点云数据中与第五目标数据点间隔距离最近的数据点作为最近邻点,获取第五目标数据点与最近邻点的间隔距离,该间隔距离可以是欧式距离,比较间隔距离和预设距离阈值,如果间隔距离小于预设距离阈值,则该第五目标数据点就是抓取对象B的边际数据点,将该第五目标数据点标记为已处理边际点。如果间隔距离不小于预设距离阈值,则说明该第五目标数据点不是抓取对象B的边际数据点,继续从边际数据点集合中获取下一个未标记为已处理边际点的数据点,作为第五目标数据点,继续对应的间隔距离与预设距离阈值作比较,直至第五目标数据点遍历边际数据点集合,将得到的抓取对象B的边际数据点和抓取对象B内部的点云数据确定为抓取对象B对应的点云数据,输出抓取对象B对应的点云数据,作为抓取对象B的点云数据分割结果。
对应于上述方法的实施例,参见图3所示的一种无序抓取过程中抓取对象的分割装置的示意图,该装置可实现上述无序抓取过程中抓取对象的分割的方法,该装置包括:
第一获取模块302,用于获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;
第一确定模块304,用于针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;
第一删除模块306,用于从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;
第二确定模块308,用于针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;
第三确定模块310,用于基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
该方式中,针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向,根据第一指定范围内的相邻数据点的法向方向,确定位于抓取对象边际的点云数据,然后,从初始点云数据中去除位于抓取对象边际的点云数据,只对中间点云数据进行聚类处理,减少了点云数据的搜索数量,缩短了分割时长,然后,将中间点云数据中的任意目标数据点为聚类中心,根据该目标数据点与其最近的相邻数据点的距离参数确定聚类阈值,按照聚类阈值对目标数据点进行聚类处理,在聚类处理过程中,动态调整聚类阈值,将聚类结果确定为位于抓取对象内部的点云数据,最终得到抓取对象的点云数据分割结果,该方式加快了点云分割的分割效率,同时避免了欠分割或过分割现象的产生,提升了点云分割的准确率和分割效果。
上述装置还包括第一划分模块,用于在三维空间中建立将初始点云数据包围的初始三维区域,根据初始点云数据的第一方差信息,确定第一划分维度;从初始点云数据中确定第一数据点,通过第一数据点且垂直于第一划分维度的平面,对初始三维区域进行划分操作,将初始三维区域划分为两个子三维区域,得到第一划分结果;获取每个子三维区域包围的点云集合,确定点云集合中是否存在数据点;如果点云集合中不存在数据点,基于第一划分结果确定初始点云数据中各个数据点对应的拓扑关系;其中,拓扑关系指示:初始点云数据中各个数据点之间的空间距离关系;如果点云集合中存在数据点,循环执行下述划分步骤,直至划分后每个子区域包围的点云集合中不存在数据点,得到第二划分结果;基于第二划分结果确定初始点云数据中各个数据点对应的拓扑关系;获取包围点云集合的区域,根据点云集合中的第二方差信息,确定第二划分维度,从点云集合中确定第二数据点,通过第二数据点且垂直于第二划分维度的平面,对包围点云集合的区域进行划分操作,获取划分后每个子区域包围的点云集合。
上述第一确定模块,还用于获取初始点云数据中的任意第一目标数据点;确定第一目标数据点对应的拓扑关系;第一目标数据点对应的拓扑关系指示:第一目标数据点与初始点云数据中其他数据点的空间距离关系;基于第一目标数据点对应的拓扑关系确定第一指定范围;从初始点云数据中,获取第一目标数据点周围第一指定范围内的相邻数据点;获取第一指定范围内的相邻数据点的法向方向。
上述第一确定模块,还用于确定第一目标数据点对应的第一方向阈值;针对每个第一指定范围内的相邻数据点,获取第一目标数据点的法向方向与相邻数据点的法向方向的变化值,得到第一变化值集合,确定第一变化值集合中的最大数值;判断最大数值与第一方向阈值大小,如果最大数值大于第一方向阈值,确定第一目标数据点位于抓取对象的边际;如果最大数值不大于第一方向阈值,确定第一目标数据点没有位于抓取对象的边际。
上述第一距离参数包括平均距离;上述第二确定模块,还用于获取中间点云数据中的任意第二目标数据点;确定第二目标数据点对应的拓扑关系;第二目标数据点对应的拓扑关系指示:第二目标数据点与中间点云数据中其他数据点的空间距离关系;基于第二目标数据点对应的拓扑关系,从中间点云数据中获取第二目标数据点周围第一相邻数据点;确定第一相邻数据点与第二目标数据点的平均距离;基于抓取对象模型对应的模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值;根据平均距离与第一阈值的关系,确定聚类阈值。
上述装置还包括第四确定模块,用于如果平均距离小于第一阈值,将平均距离扩大第一指定倍数后的结果确定为聚类阈值;如果平均距离不小于第一阈值,将平均距离缩小第二指定倍数后的结果确定为聚类阈值。
上述第二确定模块,还用于获取第二目标数据点周围不大于聚类阈值的数据点,将第二目标数据点和不大于聚类阈值的数据点组成第一聚类集合;继续执行下述步骤,直至遍历第一聚类集合中的数据点,将第一聚类集合中的数据点作为第一聚类结果;将遍历出的数据点确定为第三目标数据点;针对第一聚类集合中的任意第三目标数据点,从中间点云数据中获取第三目标数据点周围第二相邻数据点,以及第二相邻数据点与第三目标数据点的第二距离参数,基于第二距离参数更新聚类阈值;其中,第二相邻数据点具有第二指定数量;第二相邻数据点与第三目标数据点的第二距离参数对应的最大参数值,不大于中间点云数据中除第二相邻数据点外其他数据点与第三目标数据点的第二距离参数对应的最小参数值;从中间点云数据中获取第三目标数据点周围不大于更新后的聚类阈值的数据点,将第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合。
上述装置还包括第五确定模块,用于将第一聚类结果标记为已分类数据点;判断中间点云数据是否全部被标记为已分类数据点;如果中间点云数据没有全部被标记为已分类数据点;继续执行下述步骤,直至中间点云数据全部被标记为已分类数据点,输出至少一个第二聚类结果:基于第一聚类结果和第二聚类结果,确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果;针对中间点云数据中未分类的数据点中任意第四目标数据点;获取第四目标数据点周围第三相邻数据点,以及第三相邻数据点与第四目标数据点的第三距离参数,其中,第三相邻数据点具有第三指定数量;第三相邻数据点与第四目标数据点的第三距离参数对应的最大参数值,不大于中间点云数据中未分类的数据点中除第三相邻数据点外其他数据点与第四目标数据点的第三距离参数对应的最小参数值;基于第三距离参数确定聚类阈值,按照聚类阈值对第四目标数据点进行聚类处理,得到第二聚类结果;将第二聚类结果中的数据点标记为已分类数据点。
上述第三确定模块,用于如果第一目标数据点是位于抓取对象的边际,将第一目标数据点加入边际数据点集合;从边际数据点集合中获取任意第五目标数据点,获取第五目标数据点到抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;遍历边际数据点集合中的数据点,将遍历出的数据点确定为第五目标数据点,继续执行下述步骤:获取第五目标数据点与抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;将抓取对象的边际数据点和抓取对象内部的点云数据确定为抓取对象对应的点云数据,得到抓取对象的点云数据分割结果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述无序抓取过程中抓取对象的分割方法。该电子设备可以是服务器,也可以是终端设备。
参见图4所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述游戏音频的播放控制方法。
进一步地,图4所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
该方式中,针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向,根据第一指定范围内的相邻数据点的法向方向,确定位于抓取对象边际的点云数据,然后,从初始点云数据中去除位于抓取对象边际的点云数据,只对中间点云数据进行聚类处理,减少了点云数据的搜索数量,缩短了分割时长,然后,将中间点云数据中的任意目标数据点为聚类中心,根据该目标数据点与其最近的相邻数据点的距离参数确定聚类阈值,按照聚类阈值对目标数据点进行聚类处理,在聚类处理过程中,动态调整聚类阈值,将聚类结果确定为位于抓取对象内部的点云数据,最终得到抓取对象的点云数据分割结果,该方式加快了点云分割的分割效率,同时避免了欠分割或过分割现象的产生,提升了点云分割的准确率和分割效果。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:在三维空间中建立将初始点云数据包围的初始三维区域,根据初始点云数据的第一方差信息,确定第一划分维度;从初始点云数据中确定第一数据点,通过第一数据点且垂直于第一划分维度的平面,对初始三维区域进行划分操作,将初始三维区域划分为两个子三维区域,得到第一划分结果;获取每个子三维区域包围的点云集合,确定点云集合中是否存在数据点;如果点云集合中不存在数据点,基于第一划分结果确定初始点云数据中各个数据点对应的拓扑关系;其中,拓扑关系指示:初始点云数据中各个数据点之间的空间距离关系;如果点云集合中存在数据点,循环执行下述划分步骤,直至划分后每个子区域包围的点云集合中不存在数据点,得到第二划分结果;基于第二划分结果确定初始点云数据中各个数据点对应的拓扑关系;获取包围点云集合的区域,根据点云集合中的第二方差信息,确定第二划分维度,从点云集合中确定第二数据点,通过第二数据点且垂直于第二划分维度的平面,对包围点云集合的区域进行划分操作,获取划分后每个子区域包围的点云集合。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:获取初始点云数据中的任意第一目标数据点;确定第一目标数据点对应的拓扑关系;第一目标数据点对应的拓扑关系指示:第一目标数据点与初始点云数据中其他数据点的空间距离关系;基于第一目标数据点对应的拓扑关系确定第一指定范围;从初始点云数据中,获取第一目标数据点周围第一指定范围内的相邻数据点;获取第一指定范围内的相邻数据点的法向方向。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:确定第一目标数据点对应的第一方向阈值;针对每个第一指定范围内的相邻数据点,获取第一目标数据点的法向方向与相邻数据点的法向方向的变化值,得到第一变化值集合,确定第一变化值集合中的最大数值;判断最大数值与第一方向阈值大小,如果最大数值大于第一方向阈值,确定第一目标数据点位于抓取对象的边际;如果最大数值不大于第一方向阈值,确定第一目标数据点没有位于抓取对象的边际。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:上述第一距离参数包括平均距离;获取中间点云数据中的任意第二目标数据点;确定第二目标数据点对应的拓扑关系;第二目标数据点对应的拓扑关系指示:第二目标数据点与中间点云数据中其他数据点的空间距离关系;基于第二目标数据点对应的拓扑关系,从中间点云数据中获取第二目标数据点周围第一相邻数据点;确定第一相邻数据点与第二目标数据点的平均距离;基于抓取对象模型对应的模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值;根据平均距离与第一阈值的关系,确定聚类阈值。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:如果平均距离小于第一阈值,将平均距离扩大第一指定倍数后的结果确定为聚类阈值;如果平均距离不小于第一阈值,将平均距离缩小第二指定倍数后的结果确定为聚类阈值。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:获取第二目标数据点周围不大于聚类阈值的数据点,将第二目标数据点和不大于聚类阈值的数据点组成第一聚类集合;继续执行下述步骤,直至遍历第一聚类集合中的数据点,将第一聚类集合中的数据点作为第一聚类结果;将遍历出的数据点确定为第三目标数据点;针对第一聚类集合中的任意第三目标数据点,从中间点云数据中获取第三目标数据点周围第二相邻数据点,以及第二相邻数据点与第三目标数据点的第二距离参数,基于第二距离参数更新聚类阈值;其中,第二相邻数据点具有第二指定数量;第二相邻数据点与第三目标数据点的第二距离参数对应的最大参数值,不大于中间点云数据中除第二相邻数据点外其他数据点与第三目标数据点的第二距离参数对应的最小参数值;从中间点云数据中获取第三目标数据点周围不大于更新后的聚类阈值的数据点,将第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:将第一聚类结果标记为已分类数据点;判断中间点云数据是否全部被标记为已分类数据点;如果中间点云数据没有全部被标记为已分类数据点;继续执行下述步骤,直至中间点云数据全部被标记为已分类数据点,输出至少一个第二聚类结果:基于第一聚类结果和第二聚类结果,确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果;针对中间点云数据中未分类的数据点中任意第四目标数据点;获取第四目标数据点周围第三相邻数据点,以及第三相邻数据点与第四目标数据点的第三距离参数,其中,第三相邻数据点具有第三指定数量;第三相邻数据点与第四目标数据点的第三距离参数对应的最大参数值,不大于中间点云数据中未分类的数据点中除第三相邻数据点外其他数据点与第四目标数据点的第三距离参数对应的最小参数值;基于第三距离参数确定聚类阈值,按照聚类阈值对第四目标数据点进行聚类处理,得到第二聚类结果;将第二聚类结果中的数据点标记为已分类数据点。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法的下述操作:如果第一目标数据点是位于抓取对象的边际,将第一目标数据点加入边际数据点集合;从边际数据点集合中获取任意第五目标数据点,获取第五目标数据点到抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;遍历边际数据点集合中的数据点,将遍历出的数据点确定为第五目标数据点,继续执行下述步骤:获取第五目标数据点与抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;将抓取对象的边际数据点和抓取对象内部的点云数据确定为抓取对象对应的点云数据,得到抓取对象的点云数据分割结果。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述无序抓取过程中抓取对象的分割方法。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:获取包含抓取对象的初始点云数据;其中,初始点云数据中包括:抓取对象对应的点云数据以及抓取对象周围的点云数据;针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向;基于第一指定范围内的相邻数据点的法向方向,确定第一目标数据点是否位于抓取对象的边际;从初始点云数据中删除位于抓取对象的边际的数据点,得到中间点云数据;针对中间点云数据中的任意第二目标数据点;获取第二目标数据点周围第一相邻数据点,以及第一相邻数据点与第二目标数据点的第一距离参数,基于第一距离参数确定聚类阈值,按照聚类阈值对第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;基于第一聚类结果,从中间点云数据中确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果。
该方式中,针对初始点云数据中的任意第一目标数据点,获取第一目标数据点周围第一指定范围内的相邻数据点,以及第一指定范围内的相邻数据点的法向方向,根据第一指定范围内的相邻数据点的法向方向,确定位于抓取对象边际的点云数据,然后,从初始点云数据中去除位于抓取对象边际的点云数据,只对中间点云数据进行聚类处理,减少了点云数据的搜索数量,缩短了搜索时长,然后,将中间点云数据中的任意目标数据点为聚类中心,根据该目标数据点与其最近的相邻数据点的距离参数确定聚类阈值,按照聚类阈值对目标数据点进行聚类处理,在聚类处理过程中,动态调整聚类阈值,将聚类结果确定为位于抓取对象内部的点云数据,最终得到抓取对象的点云数据分割结果,该方式避免了欠分割或过分割现象的产生,提升了点云分割的准确率和分割效果。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:在三维空间中建立将初始点云数据包围的初始三维区域,根据初始点云数据的第一方差信息,确定第一划分维度;从初始点云数据中确定第一数据点,通过第一数据点且垂直于第一划分维度的平面,将初始三维区域划分为两个子三维区域,得到划分结果;获取每个子三维区域包围的点云集合,确定点云集合中是否存在初始点云数据中的数据点;如果点云集合中不存在初始点云数据中的数据点,基于划分结果确定初始点云数据中各个数据点对应的拓扑关系;其中,拓扑关系指示:初始点云数据中各个数据点之间的空间距离关系;如果点云集合中存在初始点云数据中的数据点,继续循环执行下述步骤,直至点云集合中不存在数据点:根据每个点云集合中的第二方差信息,确定第二划分维度,从点云集合中确定第二数据点,通过第二数据点且垂直于第二划分维度的平面,对子三维区域进行划分,将子三维区域划分为两个分区域;获取每个分区域包围的点云集合。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:获取初始点云数据中的任意第一目标数据点;确定第一目标数据点对应的拓扑关系;第一目标数据点对应的拓扑关系指示:第一目标数据点与初始点云数据中其他数据点的空间距离关系;基于第一目标数据点对应的拓扑关系确定第一指定范围;从初始点云数据中,获取第一目标数据点周围第一指定范围内的相邻数据点;获取第一指定范围内的相邻数据点的法向方向。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:确定第一目标数据点对应的第一方向阈值;针对每个第一指定范围内的相邻数据点,获取第一目标数据点的法向方向与相邻数据点的法向方向的变化值,得到第一变化值集合,确定第一变化值集合中的最大数值;判断最大数值与第一方向阈值大小,如果最大数值大于第一方向阈值,确定第一目标数据点位于抓取对象的边际;如果最大数值不大于第一方向阈值,确定第一目标数据点没有位于抓取对象的边际。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:上述第一距离参数包括平均距离;获取中间点云数据中的任意第二目标数据点;确定第二目标数据点对应的拓扑关系;第二目标数据点对应的拓扑关系指示:第二目标数据点与中间点云数据中其他数据点的空间距离关系;基于第二目标数据点对应的拓扑关系,从中间点云数据中获取第二目标数据点周围第一相邻数据点;确定第一相邻数据点与第二目标数据点的平均距离;基于抓取对象模型对应的模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值;根据第一相邻数据点与第二目标数据点的平均距离,和第一阈值的关系,确定聚类阈值。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:如果平均距离小于第一阈值,将平均距离扩大第一指定倍数后的结果确定为聚类阈值;如果平均距离不小于第一阈值,将平均距离缩小第二指定倍数后的结果确定为聚类阈值。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:获取第二目标数据点周围不大于聚类阈值的数据点,将第二目标数据点和不大于聚类阈值的数据点组成第一聚类集合;继续执行下述步骤,直至遍历第一聚类集合中的数据点,将更新后的第一聚类集合中的数据点作为第一聚类结果;将遍历出的数据点确定为第三目标数据点;针对第一聚类集合中的任意第三目标数据点,从中间点云数据中获取第三目标数据点周围第二相邻数据点,以及第二相邻数据点与第三目标数据点的第二距离参数,基于第二距离参数更新聚类阈值;其中,第二相邻数据点具有第二指定数量;第二相邻数据点与第三目标数据点的第二距离参数对应的最大参数值,不大于中间点云数据中除第二相邻数据点外其他数据点与第三目标数据点的第二距离参数对应的最小参数值;从中间点云数据中获取第三目标数据点周围不大于更新后的聚类阈值的数据点,将第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:将第一聚类结果标记为已分类数据点;判断中间点云数据是否全部被标记为已分类数据点;如果中间点云数据没有全部被标记为已分类数据点;继续执行下述步骤,直至中间点云数据全部被标记为已分类数据点,输出至少一个第二聚类结果:基于第一聚类结果和第二聚类结果,确定位于抓取对象内部的点云数据,得到抓取对象的点云数据分割结果;针对中间点云数据中未分类的数据点中任意第四目标数据点;获取第四目标数据点周围第三相邻数据点,以及第三相邻数据点与第四目标数据点的第三距离参数,其中,第三相邻数据点具有第三指定数量;第三相邻数据点与第四目标数据点的第三距离参数对应的最大参数值,不大于中间点云数据中未分类的数据点中除第三相邻数据点外其他数据点与第四目标数据点的第三距离参数对应的最小参数值;基于第三距离参数确定聚类阈值,按照聚类阈值对第四目标数据点进行聚类处理,得到第二聚类结果;将第二聚类结果中的数据点标记为已分类数据点。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述无序抓取过程中抓取对象的分割方法中的下述操作:如果第一目标数据点是位于抓取对象的边际,将第一目标数据点加入边际数据点集合;从边际数据点集合中获取任意第五目标数据点,获取第五目标数据点到抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;遍历边际数据点集合中的数据点,将遍历出的数据点确定为第五目标数据点,继续执行下述步骤:获取第五目标数据点与抓取对象内部的点云数据中最邻近点的间隔距离,基于间隔距离和预设距离阈值确定抓取对象的边际数据点;将抓取对象的边际数据点和抓取对象内部的点云数据确定为抓取对象对应的点云数据,得到抓取对象的点云数据分割结果。
本发明实施例所提供的无序抓取过程中抓取对象的分割方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种无序抓取过程中抓取对象的分割方法,其特征在于,所述方法包括:
获取包含抓取对象的初始点云数据;其中,所述初始点云数据中包括:所述抓取对象对应的点云数据以及所述抓取对象周围的点云数据;
针对所述初始点云数据中的任意第一目标数据点,获取所述第一目标数据点周围第一指定范围内的相邻数据点,以及所述第一指定范围内的相邻数据点的法向方向;基于所述第一指定范围内的相邻数据点的法向方向,确定所述第一目标数据点是否位于所述抓取对象的边际;
从所述初始点云数据中删除位于所述抓取对象的边际的数据点,得到中间点云数据;
针对所述中间点云数据中的任意第二目标数据点;获取所述第二目标数据点周围第一相邻数据点,以及所述第一相邻数据点与所述第二目标数据点的第一距离参数,基于所述第一距离参数确定聚类阈值,按照所述聚类阈值对所述第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;所述第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于所述中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;
基于所述第一聚类结果,从所述中间点云数据中确定位于所述抓取对象内部的点云数据,得到所述抓取对象的点云数据分割结果。
2.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述针对所述初始点云数据中的任意第一目标数据点,获取所述第一目标数据点周围第一指定范围内的相邻数据点的步骤之前,所述方法还包括:
在三维空间中建立将所述初始点云数据包围的初始三维区域,根据所述初始点云数据的第一方差信息,确定第一划分维度;
从所述初始点云数据中确定第一数据点,通过所述第一数据点且垂直于所述第一划分维度的平面,对所述初始三维区域进行划分操作,将所述初始三维区域划分为两个子三维区域,得到第一划分结果;
获取每个所述子三维区域包围的点云集合,确定所述点云集合中是否存在数据点;
如果所述点云集合中不存在数据点,基于所述第一划分结果确定初始点云数据中各个数据点对应的拓扑关系;其中,所述拓扑关系指示:所述初始点云数据中各个数据点之间的空间距离关系;
如果所述点云集合中存在数据点,循环执行下述划分步骤,直至划分后每个子区域包围的点云集合中不存在所述数据点,得到第二划分结果;基于第二划分结果确定初始点云数据中各个数据点对应的拓扑关系;
获取包围所述点云集合的区域,根据所述点云集合中的第二方差信息,确定第二划分维度,从所述点云集合中确定第二数据点,通过所述第二数据点且垂直于第二划分维度的平面,对包围所述点云集合的区域进行划分操作,获取划分后每个子区域包围的点云集合。
3.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述针对所述初始点云数据中的任意第一目标数据点,获取所述第一目标数据点周围第一指定范围内的相邻数据点,以及所述第一指定范围内的相邻数据点的法向方向的步骤,包括:
获取所述初始点云数据中的任意第一目标数据点;确定所述第一目标数据点对应的拓扑关系;所述第一目标数据点对应的拓扑关系指示:第一目标数据点与初始点云数据中其他数据点的空间距离关系;
基于所述第一目标数据点对应的拓扑关系确定所述第一指定范围;
从所述初始点云数据中,获取所述第一目标数据点周围第一指定范围内的相邻数据点;获取第一指定范围内的相邻数据点的法向方向。
4.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述基于所述第一指定范围内的相邻数据点的法向方向,确定所述第一目标数据点是否位于所述抓取对象的边际的步骤,包括:
确定所述第一目标数据点对应的第一方向阈值;
针对每个所述第一指定范围内的相邻数据点,获取第一目标数据点的法向方向与所述相邻数据点的法向方向的变化值,得到第一变化值集合,确定第一变化值集合中的最大数值;
判断所述最大数值与第一方向阈值大小,如果所述最大数值大于所述第一方向阈值,确定所述第一目标数据点位于所述抓取对象的边际;如果所述最大数值不大于所述第一方向阈值,确定所述第一目标数据点没有位于所述抓取对象的边际。
5.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述第一距离参数包括平均距离;所述针对所述中间点云数据中的任意第二目标数据点,获取所述第二目标数据点周围第一相邻数据点,以及所述第一相邻数据点与所述第二目标数据点的第一距离参数,基于所述第一距离参数确定聚类阈值的步骤,包括:
获取所述中间点云数据中的任意第二目标数据点;确定所述第二目标数据点对应的拓扑关系;所述第二目标数据点对应的拓扑关系指示:第二目标数据点与中间点云数据中其他数据点的空间距离关系;
基于所述第二目标数据点对应的拓扑关系,从所述中间点云数据中获取所述第二目标数据点周围第一相邻数据点;
确定所述第一相邻数据点与所述第二目标数据点的平均距离;
基于所述抓取对象模型对应的模型点云数据中数据点的模型平均距离和模型标准差,确定第一阈值;
根据所述平均距离与所述第一阈值的关系,确定聚类阈值。
6.根据权利要求5所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述根据所述平均距离与所述第一阈值的关系,确定聚类阈值的步骤,包括:
如果所述平均距离小于所述第一阈值,将所述平均距离扩大第一指定倍数后的结果确定为聚类阈值;
如果所述平均距离不小于所述第一阈值,将所述平均距离缩小第二指定倍数后的结果确定为聚类阈值。
7.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述按照所述聚类阈值对所述第二目标数据点进行聚类处理,得到第一聚类结果的步骤,包括:
获取所述第二目标数据点周围不大于所述聚类阈值的数据点,将所述第二目标数据点和所述不大于聚类阈值的数据点组成第一聚类集合;
继续执行下述步骤,直至遍历所述第一聚类集合中的数据点,将所述第一聚类集合中的数据点作为第一聚类结果;
将遍历出的数据点确定为第三目标数据点;针对所述第一聚类集合中的任意第三目标数据点,从所述中间点云数据中获取所述第三目标数据点周围第二相邻数据点,以及所述第二相邻数据点与所述第三目标数据点的第二距离参数,基于所述第二距离参数更新聚类阈值;其中,第二相邻数据点具有第二指定数量;所述第二相邻数据点与第三目标数据点的第二距离参数对应的最大参数值,不大于所述中间点云数据中除第二相邻数据点外其他数据点与第三目标数据点的第二距离参数对应的最小参数值;从中间点云数据中获取所述第三目标数据点周围不大于更新后的聚类阈值的数据点,将所述第三目标数据点周围不大于更新后的聚类阈值的数据点加入第一聚类集合。
8.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述按照所述聚类阈值对所述第二目标数据点进行聚类处理,得到聚类结果步骤之后,方法还包括:
将第一聚类结果标记为已分类数据点;判断所述中间点云数据是否全部被标记为已分类数据点;如果所述中间点云数据没有全部被标记为已分类数据点;继续执行下述步骤,直至所述中间点云数据全部被标记为已分类数据点,输出至少一个第二聚类结果:基于第一聚类结果和第二聚类结果,确定位于所述抓取对象内部的点云数据,得到所述抓取对象的点云数据分割结果;
针对所述中间点云数据中未分类的数据点中任意第四目标数据点;获取所述第四目标数据点周围第三相邻数据点,以及所述第三相邻数据点与所述第四目标数据点的第三距离参数,其中,第三相邻数据点具有第三指定数量;所述第三相邻数据点与第四目标数据点的第三距离参数对应的最大参数值,不大于所述中间点云数据中未分类的数据点中除第三相邻数据点外其他数据点与第四目标数据点的第三距离参数对应的最小参数值;基于所述第三距离参数确定聚类阈值,按照所述聚类阈值对所述第四目标数据点进行聚类处理,得到第二聚类结果;将第二聚类结果中的数据点标记为已分类数据点。
9.根据权利要求1所述的无序抓取过程中抓取对象的分割方法,其特征在于,所述得到所述抓取对象的点云数据分割结果的步骤,包括:
如果第一目标数据点是位于所述抓取对象的边际,将所述第一目标数据点加入边际数据点集合;
从所述边际数据点集合中获取任意第五目标数据点,获取所述第五目标数据点到所述抓取对象内部的点云数据中最邻近点的间隔距离,基于所述间隔距离和预设距离阈值确定所述抓取对象的边际数据点;
遍历所述边际数据点集合中的数据点,将遍历出的数据点确定为第五目标数据点,继续执行下述步骤:获取所述第五目标数据点与所述抓取对象内部的点云数据中最邻近点的间隔距离,基于所述间隔距离和预设距离阈值确定所述抓取对象的边际数据点;
将所述抓取对象的边际数据点和所述抓取对象内部的点云数据确定为抓取对象对应的点云数据,得到所述抓取对象的点云数据分割结果。
10.一种无序抓取过程中抓取对象的分割装置,其特征在于,所述装置包括:
第一获取模块,用于获取包含抓取对象的初始点云数据;其中,所述初始点云数据中包括:所述抓取对象对应的点云数据以及所述抓取对象周围的点云数据;
第一确定模块,用于针对所述初始点云数据中的任意第一目标数据点,获取所述第一目标数据点周围第一指定范围内的相邻数据点,以及所述第一指定范围内的相邻数据点的法向方向;基于所述第一指定范围内的相邻数据点的法向方向,确定所述第一目标数据点是否位于所述抓取对象的边际;
第一删除模块,用于从所述初始点云数据中删除位于所述抓取对象的边际的数据点,得到中间点云数据;
第二确定模块,用于针对所述中间点云数据中的任意第二目标数据点;获取所述第二目标数据点周围第一相邻数据点,以及所述第一相邻数据点与所述第二目标数据点的第一距离参数,基于所述第一距离参数确定聚类阈值,按照所述聚类阈值对所述第二目标数据点进行聚类处理,得到第一聚类结果;其中,第一相邻数据点具有第一指定数量;所述第一相邻数据点与第二目标数据点的第一距离参数对应的最大参数值,不大于所述中间点云数据中除第一相邻数据点外其他数据点与第二目标数据点的第一距离参数对应的最小参数值;
第三确定模块,用于基于所述第一聚类结果,从所述中间点云数据中确定位于所述抓取对象内部的点云数据,得到所述抓取对象的点云数据分割结果。
11.一种电子设备,其特征在于,所述电子设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子设备执行如权利要求1-9中任意一项所述的无序抓取过程中抓取对象的分割方法。
12.一种计算机可读存储介质,其上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-9中任意一项所述的无序抓取过程中抓取对象的分割方法。
CN202311787467.0A 2023-12-25 2023-12-25 无序抓取过程中抓取对象的分割方法、装置和电子设备 Active CN117455928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311787467.0A CN117455928B (zh) 2023-12-25 2023-12-25 无序抓取过程中抓取对象的分割方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311787467.0A CN117455928B (zh) 2023-12-25 2023-12-25 无序抓取过程中抓取对象的分割方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN117455928A true CN117455928A (zh) 2024-01-26
CN117455928B CN117455928B (zh) 2024-04-02

Family

ID=89591452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311787467.0A Active CN117455928B (zh) 2023-12-25 2023-12-25 无序抓取过程中抓取对象的分割方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN117455928B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369161A (zh) * 2017-07-19 2017-11-21 无锡信捷电气股份有限公司 一种基于改进欧式聚类的散乱工件点云分割方法
WO2022099511A1 (zh) * 2020-11-11 2022-05-19 深圳元戎启行科技有限公司 基于点云数据的地面分割方法、装置和计算机设备
CN115082498A (zh) * 2022-05-24 2022-09-20 河南中原动力智能制造有限公司 一种机器人抓取位姿估计方法、装置、设备及存储介质
CN115273018A (zh) * 2022-05-18 2022-11-01 洛伦兹(北京)科技有限公司 障碍物识别方法、装置及电子设备
CN116740361A (zh) * 2023-08-11 2023-09-12 之江实验室 一种点云分割方法、装置、存储介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369161A (zh) * 2017-07-19 2017-11-21 无锡信捷电气股份有限公司 一种基于改进欧式聚类的散乱工件点云分割方法
WO2022099511A1 (zh) * 2020-11-11 2022-05-19 深圳元戎启行科技有限公司 基于点云数据的地面分割方法、装置和计算机设备
CN115273018A (zh) * 2022-05-18 2022-11-01 洛伦兹(北京)科技有限公司 障碍物识别方法、装置及电子设备
CN115082498A (zh) * 2022-05-24 2022-09-20 河南中原动力智能制造有限公司 一种机器人抓取位姿估计方法、装置、设备及存储介质
CN116740361A (zh) * 2023-08-11 2023-09-12 之江实验室 一种点云分割方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN117455928B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
JP5247646B2 (ja) 特徴記述子ベクトル生成方法、システムおよびプログラム
WO2020114320A1 (zh) 点云聚类方法、图像处理设备及具有存储功能的装置
CN111553946B (zh) 用于去除地面点云的方法及装置、障碍物检测方法及装置
CN111582054A (zh) 点云数据处理方法及装置、障碍物检测方法及装置
CN113223078B (zh) 标志点的匹配方法、装置、计算机设备和存储介质
CN111798398B (zh) 点云降噪方法、装置、电子设备和计算机可读存储介质
CN114820979B (zh) 三维网格模型的处理方法、装置和存储介质
CN114783068A (zh) 姿态识别方法、装置、电子装置和存储介质
CN112200851A (zh) 一种基于点云的目标检测方法、装置及其电子设备
CN109344750B (zh) 一种基于结构描述子的复杂结构三维对象识别方法
CN117455928B (zh) 无序抓取过程中抓取对象的分割方法、装置和电子设备
CN112102178A (zh) 一种点云保特征去噪方法、装置、电子设备及存储介质
Vanco et al. A hashing strategy for efficient k-nearest neighbors computation
US10796197B2 (en) Automatic method and system for similar images and image fragments detection basing on image content
CN112434177B (zh) 一种三维模型检索方法、装置、电子设备及存储介质
CN111135562B (zh) 地块拾取方法、装置、电子设备及计算机可读存储介质
CN112950706B (zh) 可移动设备定位数据处理方法、装置、设备及存储介质
CN115797896B (zh) 车道线聚类方法、设备和计算机可读存储介质
CN116071400B (zh) 一种基于激光雷达设备的目标轨迹跟踪方法
CN112949736B (zh) 一种特征匹配方法及相关设备
CN111177448B (zh) 离散图形组合方法、装置及电子设备
Huang et al. Dense correspondence using non-local daisy forest
Roure et al. Hierarchical Hardware/Software Algorithm for Multi-view Object Reconstruction by 3D Point Clouds Matching
CN114240729A (zh) 一种基于图结构的点云聚类gpu优化方法及装置
CN115661552A (zh) 一种点云处理、点云异常检测方法、介质及计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant