在自动分拣领域,机器视觉技术起到举足轻重的作用,本文采用一种基于三维点云处理技术的方法对工件进行识别和匹配,从而从生产线上的杂乱工件堆中分拣出目标工件。首先,利用激光传感器采集密集点云,得到识别区域的三维点云数据。其次,进行点云数据的去噪和过滤,对去噪后的点云计算法线向量,再进行体素格子下采样获得关键点,减少计算量。再次,对关键点计算法线方向的直方图特征描述子,从而获取目标点云和场景点云相关联的描述符,使用K近邻树状结构搜索算法,基于欧几里德距离找到相似的描述符,并添加到关联集中。再者,调用聚类算法,基于霍夫投票算法获得场景中的与目标点云匹配的局部点云集,然后使用点云匹配算法迭代最近点算法进行目标点云与锁定的局部点云集进行匹配。最后,为了减少错误率,使用全局假设验证算法过滤掉错误的点,并标定识别到的目标进行可视化输出。该方法相对于一般算法,实现对目标的高效匹配,提高了识别的时间和精度。 In the field of automatic sorting, machine vision technology plays a decisive role. This paper uses a method based on 3D point cloud processing technology to identify and match workpieces, so as to sort out the target workpieces from the messy workpiece piles on the production line. Firstly, a dense point cloud is collected by using a laser sensor to obtain three-dimensional point cloud data of the identified area. Secondly, after denoising and filtering the point cloud data, it calculates the normal vector of the denoised point cloud, and then performing the voxelgriddownsampling to obtain key points and reduce the calculation amount. Thirdly, the histogram feature descriptor of the normal direction is calculated for the key point, thereby it obtains the descriptor associated with point cloud of the target and point cloud of the scene. It uses the K-tree structure search algorithm to find a similar descriptor based on the Euclidean distance, and added to the association set. Fourthly, the clustering algorithm is called to obtain a local point cloud set matching the target point cloud in the scene based on the Hough voting algorithm, and then the target point cloud is matched with the locked local point cloud set using the classical point cloud matching algorithm ICP. Finally, the global hypothesis verification algorithm is used to filter out the wrong points to reduce the error rate and to calibrate the identified targets for visual output. Compared with the general algorithm, the method is more efficient and improves the time and accuracy of recognition.
陈荣荣
东南大学自动化学院,江苏 南京
收稿日期:2019年11月20日;录用日期:2019年12月3日;发布日期:2019年12月10日
在自动分拣领域,机器视觉技术起到举足轻重的作用,本文采用一种基于三维点云处理技术的方法对工件进行识别和匹配,从而从生产线上的杂乱工件堆中分拣出目标工件。首先,利用激光传感器采集密集点云,得到识别区域的三维点云数据。其次,进行点云数据的去噪和过滤,对去噪后的点云计算法线向量,再进行体素格子下采样获得关键点,减少计算量。再次,对关键点计算法线方向的直方图特征描述子,从而获取目标点云和场景点云相关联的描述符,使用K近邻树状结构搜索算法,基于欧几里德距离找到相似的描述符,并添加到关联集中。再者,调用聚类算法,基于霍夫投票算法获得场景中的与目标点云匹配的局部点云集,然后使用点云匹配算法迭代最近点算法进行目标点云与锁定的局部点云集进行匹配。最后,为了减少错误率,使用全局假设验证算法过滤掉错误的点,并标定识别到的目标进行可视化输出。该方法相对于一般算法,实现对目标的高效匹配,提高了识别的时间和精度。
关键词 :三维点云识别,目标识别,机器视觉,点云处理技术,点云匹配
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
目前,随着自动化程度的提高,机器人导航、工业零件检测及抓取等众多领域对计算机视觉系统的要求越来越高 [
在自动分拣系统领域,机器视觉技术也起着举足轻重的作用,包括产品正、次品的分选,工件种类及形状识别、分拣等 [
本文采用一种基于三维点云处理技术的方法对工件进行识别和匹配的方法从生产线上的杂乱工件堆中分拣出目标工件。首先,利用视觉传感器采集密集点云,得到识别区域的三维点云数据。其次,进行点云数据的去噪和过滤,对去噪后的点云计算法线向量,再进行体素格子下采样获得关键点,减少计算量。再次,对关键点计算法线方向的直方图特征描述子,从而获取目标点云和场景点云相关联的SHOT描述符,使用K树状结构搜索算法,基于欧几里德距离找到相似的描述符,并添加到关联集中。再者,调用聚类算法,基于霍夫投票算法获得场景中的与目标点云匹配的局部点云集,然后使用经典的点云匹配算法迭代最近点算法进行目标点云与锁定的局部点云集进行匹配。最后,为了减少错误率,使用全局假设验证算法过滤掉错误的点,同时打印匹配到的局部点云集与模型点云之间的变换矩阵:旋转矩阵和平移向量,并标定识别到的目标进行可视化输出。
除了对于工业零部件,这种识别方法同样适用于其他物体,只需更改设定的参数值,便能实现同样的识别效果。该方法简单,速度快,且具有一定的准确性。
工业零件主要由基本体组成,而基本体包括圆柱、棱锥、方形、球形、棱锥等 [
本文中提到的点云数据为视觉传感器采集的密集点云。凭借其创新的3D快照技术,传感器基于飞行时间测量为每个像素提供实时深度信息。
基于三维点云数据进行目标提取的过程如图1所示,其中的关键技术为点云的特征提取和分割、分类。
图1. 目标提取过程
该流程与二维图像的目标识别方法类似。识别的场景中存在各种物体。为了对目标物体进行识别,算法需要提供一个指标来体现不同物体之间的区别,此指标即目标的特征。目标特征描述和提取是整个流程的关键一步,提取出来的特征点不同,会直接影响预期的最终结果。
三维点云的特征提取一般分为局部特征描述和全局特征描述,例如全局的拓扑特征描述,局部的法线等几何特征描述。常见的特征描述算法有对临近点做主成分分析法(Principal Component Analysis)降维,计算表面法线特征的表面法线和曲率估计,利用积分图计算有序点云的法线,基于点与其K邻域之间的关系以及它们的估计法线的点特征描述(PFH),改进PFH计算复杂度又保留其特性的快速点直方图描述(FPFH),在点云聚类识别和六自由度位姿估计问题上表现出色的视点特征直方图法(VFH),还有利用把点云投射成二维图像,进行边缘特征提取的边缘特征描述(NARF),用于物体识别和姿态估计上的全局一致的空间分布描述子特征(GASD)等等。常见的特征描述符如图2。对目标特征的提取和描述这一环节,本文通过体素格子下采样得到关键点,同时计算了关键点的SHOT描述符。
图2. 常见的特征描述符
点云分割即根据空间特征、几何特征、纹理特征等对点云进行划分,使得同一划分区域的点云具有相似的特征,例如CAD领域对零件的不同扫描区域进行分割,再进行空洞修复曲面重建,特征描述和提取。点云分割是目标识别分类的基础,分割上有区域声场分割,线面提取,语义分割,KMeans聚类分割等。不同于计算机视觉领域,在三维点云领域使用各种不同的采样一致性参数估计算法来排除错误的样本,在点云数据处理中一般以随机采样一致性算法(RANSAC)为核心。该算法是根据设定的不同模型,计算对象的几何参数模型的参数,在一定允许范围内分割出模型上的点云。
因为点云可能存在不完整、旋转错位、平移错位等问题,所以需要确定一个合适的坐标系,将不同视角下点云的几何参数合并到统一坐标系中形成完整点云,方便进行可视化的操作,这是点云的匹配环节。目前常用的点云匹配算法有正态分布变换法(Normal Distributions Transform)和最近点迭代算法(Iterative Closest Point)。本文先利用霍夫投票算法来寻找相似点,之后再使用最近点迭代算法(Iterative Closest Point)进行匹配。在减少匹配点中的错误匹配后,再进行可视化处理,以便清晰直观地查看实验效果。
本文的具体算法流程如图3:
图3. 算法流程图
本文假设的实验环境如下图4所示,传感器位于目标区域正上方。
图4. 本论文的实验环境
选择基于TOF原理采集点云数据,双目视觉原理采集图像的三维视觉传感器,进行识别区域的数据采集。如图5所示,本文中传感器的安装方位和三维点云数据的具体坐标对应。
图5. 传感器的安装方位和三维点云数据的坐标系
目标识别区域散乱的摆放着零件,其中本文利用圆柱,圆锥,长方形,以及常见的零部件做实验. 对获取的点云数据进行初步的去噪,除去由于外界放光或传感器误差带来的偏远杂点,以减少识别的误差,去噪前后对比图见图6。
着将初步去噪后的点云数据进行过滤。点云过滤的方法在PCL中有直通滤波器,体素格滤波器,半径滤波器,高斯滤波和卷积滤波等,通常组合使用完成过滤环节。我们可以看到目标区域存在大量数据点,密度不规则等问题,所以我们使用直通滤波器将目标区域缩减到理想的三维坐标区域范围,剪裁目标区域。接着使用体素格滤波器或者均匀采样,使得整体点云数量减少但保持重心不变,本文使用的是体素格滤波进行过滤,保存点云的形状特征,但又减少了点云数据,见下图7。滤波前点云数量为25,344,经过直通滤波器和下采样后数量为3579。点云数量减少了一半,但是点云的形状并未改变。
图6. 目标区域去噪对比图
图7. 滤波后的目标区域点云对比图。(a) 原场景图;(b) 下采样后场景图;(c)、(d) 直通滤波器后的场景图俯视图和侧面图
三维点云的特征描述和提取在点云数据处理过程中是十分关键的一步,后续点云的形状分割,识别,匹配,曲面重建等处理,很大程度上都依赖于特征描述和提取的结果。正如本文第1部分所述,对一个三维点云进行描述,可以通过计算额外的参数,例如曲率,法线方向,协方差矩阵,纹理特征,颜色,熵等描述三维点云的特征。
对于散乱的三维点云,本文取每个点的K个最近邻点。采用主流的K临近点查找算法——数据重组法进行搜索,将点云数据按照树结构重组 [
图8. 目标区域提取特征点后
在2.1中经过体素格子下采样已获得了关键点,我们需要为关键点计算SHOT描述符 [
cos θ = n v ⋅ n p (1)
根据余弦值对落去每个空间区域的点数进行直方图统计,划分为11个,对计算结果归一化处理,使得对点云密度具有鲁棒性,得到一个352维特征。
同样,对于输入作为模型的点云数据计算法线和SHOT描述符。
在获取目标区域点云的特征点和计算SHOT特征描述符后,需要进行点云的分割与匹配。下面我们将目标区域点云称为场景点云,输入作为识别对象模型的点云称为目标点云进行描述。
遍历过滤后的场景,为每个场景中关键点匹配一个目标点云中基于局部特征的描述子(Signature of Histogram of Orientation)最相近的点。跳过描述子为无穷大的不是数的点(NaN),利用搜索树KdTree (K-demensional-tree)存取模型点云,输入目标区域的描述符在利用FLANN进行最近邻查找。模型点云中找到距离场景点云的点最佳匹配距离为欧几里何距离小于0.25的点。将其放入集合留待后续使用。
如果集合中元素的个数为0,即说明场景中不存在目标,此时我们输出“不存在寻找的目标”信息作为提示,同时结束本次流程。如果集合中的元素个数不为0,证明我们已经获取到了场景中与目标点云相似的特征点,此时我们进行下一步操作——分类。
首先对目标点云和场景点云中特征点设置搜索半径和输入法线特征,计算本地参考帧,使用霍夫投票算法进行聚类,对输入的点云设置霍夫空间的霍夫峰点的大小,设置阈值,输入目标点云特征点、场景点云特征点集,以及匹配流程时获得的相关点集合,投过霍夫算法辨认出最终的聚类集合 [
例如,同样的模型点云,同样的参数模型,使用几何一致性性质聚类可能会判断出多个个目标点云集合,但是利用霍夫投票聚类会判断出1个或0个。下图9,左侧为几何一致性性质聚类判定结果,右侧为霍夫投票聚类结果。
Left: hough voting; Right: random sample consensus
图9. 几何一致性性质聚类和霍夫投票聚类结果比较,左图:霍夫投票;右图:几何一致性
本文根据实际物体如图10制作了如下目标点云进行实验,对采集到的点云图去除除了目标物体以外的点云数据并保存为模型点云。对实际物体按照引言中的系统整体框架图进行点云图像的采集.对目标物体进行不同姿势的变换做为场景点云,场景的实物图见图11,场景的点云图见图12。
图10. 模型的实物图与模型的点云图
图11. 场景的实物图
图12. 场景的点云图
在点云数据的可视化输出上,可以使用点云数据可视化的相关软件,比如点云处理软件Meshlab,或者使用PCL中自带的可视化库PCL_Visualization进行可视化。如果在最终的聚类集合中仍存在与目标点云匹配的点云集,那么我们对此进行可视化输出。文字输出相关点云的个数,和最终聚类匹配的相关集合的个数,对每个匹配的相关点集合输出相对于目标点云的旋转矩阵和平移矩阵。如下图13所示。
图13. 文字输出实验结果显示
接着,对场景点云和目标点云进行可视化处理. 首先对输入的点云进行平移,使其呈现在可视化界面的中心位置,将最终判定为目标点云的聚类集合中的点云渲染为不同于其他点云的颜色,同时将场景点云和目标点云的关键点上色可视化。根据匹配的变换矩阵旋转目标点云在场景中的点云,根据对应的点云与点云绘制连线,并进行上色,最终呈现的效果为图14。
图14. 目标点云和场景点云识别效果及可视化展示
对上述两个目标物体进行本文提出的基于三维点云处理技术的零件识别与匹配。如表1所示的实验最终效果,左侧为抱枕的识别结果,右侧为长方体的识别结果。
针对以下五种物体作为测试目标,本文进行了多次实验,表1展示了该次实验中各种目标体的识别准确率。其中,形状特征明显、点云数据分布均匀的正方体、水壶和锤子识别准确率最高,但是对于圆锥这种以俯视角度提取模型点云,弧面上的点云分布较少,且尖端点云点由于孤立会被误判,识别准确率最低。
圆锥 | 正方形 | 不规则几何体 | 水壶 | 锤子 |
---|---|---|---|---|
50% | 85% | 63% | 90% | 88% |
表1. 不同目标的识别准确率
如上文所述,对于三维点云数据的识别最关键的环节之一便是特征点的提取和描述,而决定特征点质量的是点云数据本身的质量。制作目标点云的模型点云,需要尽可能全方位的采集目标的点云数据,例如基于点云拼接的植物三维模型重建一文中提出的将目标物放到转盘上进行点云模型的采集,根据采集的角度信息通过点云拼接的算法将其拼接成一个完成的点云模型,以此目标点云再次进行实验,可以使得任意角度的场景点云都能进行点云的匹配和识别。以此进行目标物体的建模,会使得3.1中产生的由于点云信息不完整导致的准确率的大幅降低问题得到一定程度的解决。
其次,传感器采集到的点云数据有几万个数据点,但由于其俯视的角度在其中涉及目标物体的实际上只有物体最上层的区域的点云信息,在做预处理时可以通过八叉树搜索点云信息,只保留空间上位于第一层的点云信息,这样可以极大地降低识别时间。
针对工业机器人智能分类工件,本文尝试运用三维点云处理技术对工厂的零部件进行了形状的匹配与识别,通过基于飞行时间原理的激光传感器,扫描目标工业获取其点云信息,建立基础模型。在传统的三维点云识别算法上,利用体素格子下采样减少点云的数量点,但不改变点云形状,通过霍夫投票进行相似点匹配,利用PCL点云库自带的RANSAC算法(Randon Sample Consensus)为点云精匹配提供变换矩阵和平移向量,添加全局假设验证的环节以剔除误差点。本文对构成工件的基本体进行了百余次实验,对于模型点云采样良好的点云,识别准确率较传统算法有显著的提高。
感谢在本论文发表过程中对我提供支持和鼓励的导师,以及热衷于分享点云学习经历,分享点云的数据集的广大科研朋友们。
陈荣荣. 基于三维点云处理技术的工件识别和匹配Parts Identification and Matching Based on 3D Point Cloud Processing Technology[J]. 计算机科学与应用, 2019, 09(12): 2303-2313. https://doi.org/10.12677/CSA.2019.912256