基于PCL 的机器人视觉的形状特征识别算法分析
2020-11-27李晶晶孙小强蔡苑彬倪敏成
李晶晶 孙小强 蔡苑彬 倪敏成
(1、武警广东省总队梅州支队,广东 梅州514000 2、31121 部队,广东 汕头515041)
Point Cloud Library(PCL)由于其内部的算法机制,通过对特征重构、搭建优化模型,从而成为了一个独立的大型的处理二维三维图像和点云数据的开源工程。在当前,依靠计算机、信息技术,视觉识别在物体、分点的精确的和可靠性均相比于以前实现质效的大幅提高。本文通过构建常见物体的点云数据模型库,对基于PCL 机器人视觉识别算法进行了研究,提出了一种形状特征的实时识别算法。
1 机器视觉技术概述
机器视觉在越来越多领域得到充分应用,也这是如此,其作为人工智能领域成为发展最快速的分支之一。其发展的阶段大体可以分为:1950 年,基于平面体系的分析和识别;1960 年由二维构造分析转移至三维体系分析以及空间构造分析;1960 年后机器视觉的研究进入了新阶段,即Marr 教授提了当时较为权威的Marr 视觉理论[1];1980 年,机器视觉的研究开始走出实验室而被更多地应用于实际生活、生产中,同时,愈来愈多新方法、新概念被提出。
如图1 所示,为一个典型的工业视觉应用系统。其涵盖了光源、控制执行模块、光学成像系统、图像捕捉系统、图像数字化模块和图像处理及决策模块。由此图我们可以看出其工作流程,第一步是目标物体图像信号化处理,主要是借助相机或其它图像采集工具;第二步是送给图像处理系统,这期间需要将这一图像信号转变成数字信号;第三步是提取目标物体的特征,主要是根据像素分布、亮度和颜色等信息,进行各种图像处理来;第四步是输出判断结果,最终根据预设的容许度和其他条件得出。从上述介绍中,我们可以得出,机器视觉系统是最终用于实际检测、测量和控制的,主要是用计算机来模拟人的视觉功能,进行实时收集、处理和理解客观事物的图像的智能化系统。
图1 视觉应用系统
2 视觉识别系统总体设计
主要是数据采集、预处理、建模、特征提取四个程序步骤。本系统首先使用Kinect 系统采集点云数据,其次对采集的数据进行滤波等实时预处理,之后使用聚类分析对识别目标进行建模,最后应用识别算法对目标实现特征提取。系统主要分为以下四个模块,一是点云数据采集、二是点云实时预处理、三是聚类分析和四是特征识别。
2.1 点云数据采集
机器人视觉识别系统对目标对象进行点云图像的获取作为首要步骤。为获取此时点云图像数据,得到基于场景2.5D 的深度图像(即每个像素点除了有灰度信息还有深度信息),需要对所在环境进行信息识别,得到的数据图像传送至算法流程中,最终完成点云图像实时预处理过程。
2.2 点云图像的实时预处理
对于一副由采集到的点云图像,为提高系统的识别率,在对数据点进行滤波处理,就好像采集数据总会存在误差一样难以避免,在进行图像采集时,无论你是通过何种方式得到的灰度图像,其中肯定会夹杂着些许的噪点,这就需要通过一些方法对图像处理以后来实现有效的降低噪点数量的目的。本文在研究对比了多种降噪方法以后决定采取均值滤波法进行图像处理。借助于图形中的像素点,均值滤波通过把图像分成多个模块利用各个模块的平均值替代更替像素值,以达到平滑图像的目的,是一种非线性处理数字图像的方法。
2.3 提取点云聚类
高效分聚类获取可显著提高目标的识别效率,因此,在实时识别算法处理过程中,点云聚类获取是整理流程中最为关键的一环。点云聚类实现过程主要包括:一是将图像每个像素点的灰度信息和深度信息向量化成[grey, depth]。二是为得到N 个分类及每个分类的像素数量,通过向量的欧式距离对图像进行最邻近聚类分析。三是严格选取聚类数量处于500-25000 之间的分类,从而作为最终识别的目标分类,其余分类舍弃。
2.4 特征提取
CVFH 是在基于二维构造体系下,通过对特征进行分布提取,概述聚类的整体形状、特征。CVFH 特征直方图立足于视点特征直方图来进行特征数据点的计算描述,CVFH 特征直方图和特征直方图都属于全局特征描述。
在2.3 的基础上,为得到形状特征的数字描述,可以对获得的分类进行CVFH 特征算子计算。
3 算法实验过程分析
如图2 所示,为完成对工件的定位,并给出每个目标物的高度信息和形状信息,本次实验主要是由本文提出的算法进行。可以看到,在试验台上分别放置横向尺寸相同,纵向尺寸不同的研究对象,纵向尺寸分别为10mm、15mm 和20mm。
图2 机器人工作区域
3.1 图像阈值分割
如图3 所示,之所以对图像进行灰度阈值分割,实现工件与背景分离,是因为目标物颜色为白色,与黑色背景区别较大。因此可以通过软件查看图像的直方图,明确不同区域的灰度值,从图中可以看出当88-92 的灰度范围值可以分辨初工件和背景;因此本文取中间值90,此外为保证像素点均匀性,本文将阈值的像素点设置为0。
3.2 区域提取点云聚类
为获得分割后均匀的区域块,需要对分割阈值的区域进行重合,主要考虑放图像分割后,会在区域内存在边界和坏点,具体如图所示中分割前后的效果图,为便于分辨,本文通过不同颜色来进行不同连通点云聚类甄别,之所以采用面积分割方法去除图像中面积较小的连通区域,是因为在相机固定情况下工件在图像中的面积是固定的。最后运用到了霍夫变换算法,其主要用来从图像中分离出工件的圆形区域提取点云聚类,进行圆形区域拟合(图4)。
3.3 特征属性计算
之所以机器人不仅要获得二维坐标信息还必须得到工件高度信息才能完成抓取动作,是由于由于待抓取工件高度不同。基于PCL 机器人视觉算法分析方法中,为使2 个相机的作用特征基本保持一致,本人通过采用极线约束方法,利用视差法原理来进行工件高度的预测和分析(图5)。
图4 经过阈值分割和区域连接后的提取点云聚类效果图
图5 左右相机图像极线校正
图6 立体匹配模型
在左右相机图像中找到相同的特征点,然后进行视差计算是图像立体匹配的原理。之所以利用极线校正方法对左右两个相机的图像进行处理,主要目的在于提高像素的识别效率和可靠性;双目相机极线校正主要在于使2 个相机的作用特征基本保持一致获得相同的光轴平行、焦距参量。视觉立体匹配就是首先要在左右相机成像平面中找到相同特征点的图像坐标,然后根据三角定位法来求得该点的深度信息。图6 演示了通过极线校正后在公共成像平面上左右相机的光轴互相平行的立体匹配模型。
本文通过基于PCL 机器人视觉识别算法分析进行了研究,提出了一种形状特征的实时识别算法,构建了常见物体的点云数据模型库,分析了实验过程中的主要点云处理步骤,如点云分割、特征提取等过程