三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...

1. 引言

目前,随着自动化程度的提高,机器人导航、工业零件检测及抓取等众多领域对计算机视觉系统的要求越来越高 [1],基于二维图像的物体识别已经无法满足日常作业的需求。而由于三维扫描技术的发展,结构光测量和激光扫描能够快速且精确地获取被测对象表面的三维坐标数据,为获取场景的点云数据提供了全新的技术手段。加之点云数据具备不受光照、阴影、纹理的影响等优势,基于三维点云数据的物体识别已成为近年来计算机视觉领域的研究热点 [1]。

在自动分拣系统领域,机器视觉技术也起着举足轻重的作用,包括产品正、次品的分选,工件种类及形状识别、分拣等 [2]。不少文献研究如何运用基于机器视觉的检测技术来实现对钣金件、六角螺母等工业零部件地自动分捡 [2],在二维图像上的一般方法是拍摄的目标区域的图像进行分析处理,根据目标工件的训练集在图像上搜索零件的位置,确定其类别和各自的中心点,为控制机械手抓取目标提供对应的坐标点位置。但是,基于二维图像的识别方法存在着两个缺点:第一,对于空间上的层次区分度不明显,颜色相同、纹理相似的工件在空间上部分重叠容易误判;第二,图像对光照,分辨率以及反射的外界因素较为敏感,不易很好地捕捉到图像中对象的局部特征 [3]。因此,本文选择采集目标区域的三维点云数据,利用点云数据处理技术来实现对工业零部件的识别和匹配。不同于提取零部件的局部特征或边界特征的方法,而是从整体特征点匹配的角度来实现识别的目的。

本文采用一种基于三维点云处理技术的方法对工件进行识别和匹配的方法从生产线上的杂乱工件堆中分拣出目标工件。首先,利用视觉传感器采集密集点云,得到识别区域的三维点云数据。其次,进行点云数据的去噪和过滤,对去噪后的点云计算法线向量,再进行体素格子下采样获得关键点,减少计算量。再次,对关键点计算法线方向的直方图特征描述子,从而获取目标点云和场景点云相关联的SHOT描述符,使用K树状结构搜索算法,基于欧几里德距离找到相似的描述符,并添加到关联集中。再者,调用聚类算法,基于霍夫投票算法获得场景中的与目标点云匹配的局部点云集,然后使用经典的点云匹配算法迭代最近点算法进行目标点云与锁定的局部点云集进行匹配。最后,为了减少错误率,使用全局假设验证算法过滤掉错误的点,同时打印匹配到的局部点云集与模型点云之间的变换矩阵:旋转矩阵和平移向量,并标定识别到的目标进行可视化输出。

除了对于工业零部件,这种识别方法同样适用于其他物体,只需更改设定的参数值,便能实现同样的识别效果。该方法简单,速度快,且具有一定的准确性。

工业零件主要由基本体组成,而基本体包括圆柱、棱锥、方形、球形、棱锥等 [4]。本文对基本体工件以及其他常见的零件进行了实验,包括圆柱,圆锥,长方形,锤子,水壶,多边形物体等进行了实验和比较,实验方法证明了方法的可行性和实用性。

2. 三维点云处理技术的原理

2.1. 点云数据处理流程

本文中提到的点云数据为视觉传感器采集的密集点云。凭借其创新的3D快照技术,传感器基于飞行时间测量为每个像素提供实时深度信息。

基于三维点云数据进行目标提取的过程如图1所示,其中的关键技术为点云的特征提取和分割、分类。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 1. Target extraction process

图1. 目标提取过程

该流程与二维图像的目标识别方法类似。识别的场景中存在各种物体。为了对目标物体进行识别,算法需要提供一个指标来体现不同物体之间的区别,此指标即目标的特征。目标特征描述和提取是整个流程的关键一步,提取出来的特征点不同,会直接影响预期的最终结果。

三维点云的特征提取一般分为局部特征描述和全局特征描述,例如全局的拓扑特征描述,局部的法线等几何特征描述。常见的特征描述算法有对临近点做主成分分析法(Principal Component Analysis)降维,计算表面法线特征的表面法线和曲率估计,利用积分图计算有序点云的法线,基于点与其K邻域之间的关系以及它们的估计法线的点特征描述(PFH),改进PFH计算复杂度又保留其特性的快速点直方图描述(FPFH),在点云聚类识别和六自由度位姿估计问题上表现出色的视点特征直方图法(VFH),还有利用把点云投射成二维图像,进行边缘特征提取的边缘特征描述(NARF),用于物体识别和姿态估计上的全局一致的空间分布描述子特征(GASD)等等。常见的特征描述符如图2。对目标特征的提取和描述这一环节,本文通过体素格子下采样得到关键点,同时计算了关键点的SHOT描述符。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 2. Common feature descriptor

图2. 常见的特征描述符

点云分割即根据空间特征、几何特征、纹理特征等对点云进行划分,使得同一划分区域的点云具有相似的特征,例如CAD领域对零件的不同扫描区域进行分割,再进行空洞修复曲面重建,特征描述和提取。点云分割是目标识别分类的基础,分割上有区域声场分割,线面提取,语义分割,KMeans聚类分割等。不同于计算机视觉领域,在三维点云领域使用各种不同的采样一致性参数估计算法来排除错误的样本,在点云数据处理中一般以随机采样一致性算法(RANSAC)为核心。该算法是根据设定的不同模型,计算对象的几何参数模型的参数,在一定允许范围内分割出模型上的点云。

因为点云可能存在不完整、旋转错位、平移错位等问题,所以需要确定一个合适的坐标系,将不同视角下点云的几何参数合并到统一坐标系中形成完整点云,方便进行可视化的操作,这是点云的匹配环节。目前常用的点云匹配算法有正态分布变换法(Normal Distributions Transform)和最近点迭代算法(Iterative Closest Point)。本文先利用霍夫投票算法来寻找相似点,之后再使用最近点迭代算法(Iterative Closest Point)进行匹配。在减少匹配点中的错误匹配后,再进行可视化处理,以便清晰直观地查看实验效果。

2.2. 本文具体的算法流程

本文的具体算法流程如图3:

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 3. Algorithm flowchart

图3. 算法流程图

3. 基于三维点云处理技术的零件识别与匹配过程

本文假设的实验环境如下图4所示,传感器位于目标区域正上方。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 4. Experimental environment

图4. 本论文的实验环境

选择基于TOF原理采集点云数据,双目视觉原理采集图像的三维视觉传感器,进行识别区域的数据采集。如图5所示,本文中传感器的安装方位和三维点云数据的具体坐标对应。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 5. The installation orientation of the sensor and the coordinate system of the 3D point cloud data

图5. 传感器的安装方位和三维点云数据的坐标系

3.1. 零件的密集点云的去噪和过滤

目标识别区域散乱的摆放着零件,其中本文利用圆柱,圆锥,长方形,以及常见的零部件做实验. 对获取的点云数据进行初步的去噪,除去由于外界放光或传感器误差带来的偏远杂点,以减少识别的误差,去噪前后对比图见图6。

着将初步去噪后的点云数据进行过滤。点云过滤的方法在PCL中有直通滤波器,体素格滤波器,半径滤波器,高斯滤波和卷积滤波等,通常组合使用完成过滤环节。我们可以看到目标区域存在大量数据点,密度不规则等问题,所以我们使用直通滤波器将目标区域缩减到理想的三维坐标区域范围,剪裁目标区域。接着使用体素格滤波器或者均匀采样,使得整体点云数量减少但保持重心不变,本文使用的是体素格滤波进行过滤,保存点云的形状特征,但又减少了点云数据,见下图7。滤波前点云数量为25,344,经过直通滤波器和下采样后数量为3579。点云数量减少了一半,但是点云的形状并未改变。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 6. Comparison before and after the target area denoised

图6. 目标区域去噪对比图

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 7. The cloud contrast plot of filtered target area point. (a) The original scene diagram; (b) After sampling the scene plot; (c), (d) Scene top view and side view after pass-through filter

图7. 滤波后的目标区域点云对比图。(a) 原场景图;(b) 下采样后场景图;(c)、(d) 直通滤波器后的场景图俯视图和侧面图

3.2. 零件的密集点云的特征提取及其特征描述

三维点云的特征描述和提取在点云数据处理过程中是十分关键的一步,后续点云的形状分割,识别,匹配,曲面重建等处理,很大程度上都依赖于特征描述和提取的结果。正如本文第1部分所述,对一个三维点云进行描述,可以通过计算额外的参数,例如曲率,法线方向,协方差矩阵,纹理特征,颜色,熵等描述三维点云的特征。

对于散乱的三维点云,本文取每个点的K个最近邻点。采用主流的K临近点查找算法——数据重组法进行搜索,将点云数据按照树结构重组 [5],比如利用K维二叉树进行搜索。对每个临近点做主成分分析法进行降维,从三维平面变为二维平面,此时的平面为该点的切平面,切平面的法线则为该点的法线,此时有两个法线,根据临近点的凸包方向确定取哪个作为该点法线。图8为提取出关键点的目标区域点云图,蓝色点即为提取的特征点。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 8. After the target area extracts the feature point

图8. 目标区域提取特征点后

在2.1中经过体素格子下采样已获得了关键点,我们需要为关键点计算SHOT描述符 [6]。以每个点为中心构造自设定半径为R的球形区域,沿径向、方位、俯仰三个方向划分网格,其中径向2次,方位8次,俯仰2次,将该球形区域划分为32个空间区域. 在每个空间区域计算落入该区域点的法线NV和中心点法线NP之间的夹角余弦。

cos

θ

=

n

v

n

p (1)

根据余弦值对落去每个空间区域的点数进行直方图统计,划分为11个,对计算结果归一化处理,使得对点云密度具有鲁棒性,得到一个352维特征。

同样,对于输入作为模型的点云数据计算法线和SHOT描述符。

3.3. 零件的密集点云的分类与匹配

在获取目标区域点云的特征点和计算SHOT特征描述符后,需要进行点云的分割与匹配。下面我们将目标区域点云称为场景点云,输入作为识别对象模型的点云称为目标点云进行描述。

遍历过滤后的场景,为每个场景中关键点匹配一个目标点云中基于局部特征的描述子(Signature of Histogram of Orientation)最相近的点。跳过描述子为无穷大的不是数的点(NaN),利用搜索树KdTree (K-demensional-tree)存取模型点云,输入目标区域的描述符在利用FLANN进行最近邻查找。模型点云中找到距离场景点云的点最佳匹配距离为欧几里何距离小于0.25的点。将其放入集合留待后续使用。

如果集合中元素的个数为0,即说明场景中不存在目标,此时我们输出“不存在寻找的目标”信息作为提示,同时结束本次流程。如果集合中的元素个数不为0,证明我们已经获取到了场景中与目标点云相似的特征点,此时我们进行下一步操作——分类。

首先对目标点云和场景点云中特征点设置搜索半径和输入法线特征,计算本地参考帧,使用霍夫投票算法进行聚类,对输入的点云设置霍夫空间的霍夫峰点的大小,设置阈值,输入目标点云特征点、场景点云特征点集,以及匹配流程时获得的相关点集合,投过霍夫算法辨认出最终的聚类集合 [7]。在聚类这一环节,同样可以利用几何一致性性质来实现,在该步不需要计算特征点的本地参考帧,但是最终的聚类效果不如霍夫投票相对准确。

例如,同样的模型点云,同样的参数模型,使用几何一致性性质聚类可能会判断出多个个目标点云集合,但是利用霍夫投票聚类会判断出1个或0个。下图9,左侧为几何一致性性质聚类判定结果,右侧为霍夫投票聚类结果。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 9. Comparison of random sample consensus clustering result and Hoff voting clustering result

Left: hough voting; Right: random sample consensus

图9. 几何一致性性质聚类和霍夫投票聚类结果比较,左图:霍夫投票;右图:几何一致性

4. 实验与分析

4.1. 点云识别实验

本文根据实际物体如图10制作了如下目标点云进行实验,对采集到的点云图去除除了目标物体以外的点云数据并保存为模型点云。对实际物体按照引言中的系统整体框架图进行点云图像的采集.对目标物体进行不同姿势的变换做为场景点云,场景的实物图见图11,场景的点云图见图12。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 10. The physical map of the model and the point cloud map of the model

图10. 模型的实物图与模型的点云图

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 11. Physical map of the scene

图11. 场景的实物图

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 12. Point cloud map of the scene

图12. 场景的点云图

在点云数据的可视化输出上,可以使用点云数据可视化的相关软件,比如点云处理软件Meshlab,或者使用PCL中自带的可视化库PCL_Visualization进行可视化。如果在最终的聚类集合中仍存在与目标点云匹配的点云集,那么我们对此进行可视化输出。文字输出相关点云的个数,和最终聚类匹配的相关集合的个数,对每个匹配的相关点集合输出相对于目标点云的旋转矩阵和平移矩阵。如下图13所示。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 13. The results of the experiment show

图13. 文字输出实验结果显示

接着,对场景点云和目标点云进行可视化处理. 首先对输入的点云进行平移,使其呈现在可视化界面的中心位置,将最终判定为目标点云的聚类集合中的点云渲染为不同于其他点云的颜色,同时将场景点云和目标点云的关键点上色可视化。根据匹配的变换矩阵旋转目标点云在场景中的点云,根据对应的点云与点云绘制连线,并进行上色,最终呈现的效果为图14。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Figure 14. Identify effects and visual presentations

图14. 目标点云和场景点云识别效果及可视化展示

对上述两个目标物体进行本文提出的基于三维点云处理技术的零件识别与匹配。如表1所示的实验最终效果,左侧为抱枕的识别结果,右侧为长方体的识别结果。

针对以下五种物体作为测试目标,本文进行了多次实验,表1展示了该次实验中各种目标体的识别准确率。其中,形状特征明显、点云数据分布均匀的正方体、水壶和锤子识别准确率最高,但是对于圆锥这种以俯视角度提取模型点云,弧面上的点云分布较少,且尖端点云点由于孤立会被误判,识别准确率最低。

《三维点云数据处理软件供技术原理说明_基于三维点云处理技术的工件识别和匹配...》

Table 1. System resulting data of standard experiment

表1. 不同目标的识别准确率

4.2. 识别准确率影响因素分析

如上文所述,对于三维点云数据的识别最关键的环节之一便是特征点的提取和描述,而决定特征点质量的是点云数据本身的质量。制作目标点云的模型点云,需要尽可能全方位的采集目标的点云数据,例如基于点云拼接的植物三维模型重建一文中提出的将目标物放到转盘上进行点云模型的采集,根据采集的角度信息通过点云拼接的算法将其拼接成一个完成的点云模型,以此目标点云再次进行实验,可以使得任意角度的场景点云都能进行点云的匹配和识别。以此进行目标物体的建模,会使得3.1中产生的由于点云信息不完整导致的准确率的大幅降低问题得到一定程度的解决。

其次,传感器采集到的点云数据有几万个数据点,但由于其俯视的角度在其中涉及目标物体的实际上只有物体最上层的区域的点云信息,在做预处理时可以通过八叉树搜索点云信息,只保留空间上位于第一层的点云信息,这样可以极大地降低识别时间。

5. 结论

针对工业机器人智能分类工件,本文尝试运用三维点云处理技术对工厂的零部件进行了形状的匹配与识别,通过基于飞行时间原理的激光传感器,扫描目标工业获取其点云信息,建立基础模型。在传统的三维点云识别算法上,利用体素格子下采样减少点云的数量点,但不改变点云形状,通过霍夫投票进行相似点匹配,利用PCL点云库自带的RANSAC算法(Randon Sample Consensus)为点云精匹配提供变换矩阵和平移向量,添加全局假设验证的环节以剔除误差点。本文对构成工件的基本体进行了百余次实验,对于模型点云采样良好的点云,识别准确率较传统算法有显著的提高。

致谢

感谢在本论文发表过程中对我提供支持和鼓励的导师,以及热衷于分享点云学习经历,分享点云的数据集的广大科研朋友们。

    原文作者:雅儿zZ
    原文地址: https://blog.csdn.net/weixin_31897613/article/details/111955279
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞