APP下载

基于三维点云和OpenCV的物品识别研究∗

2020-05-15沈佳凯高红卫郭旭侠

计算机与数字工程 2020年2期
关键词:聚类平面物品

沈佳凯 高红卫,2 郭旭侠,2

(1.宝鸡文理学院机械工程学院 宝鸡 721016)

(2.陕西省机器人关键零部件先进制造与评估省市共建重点实验室 宝鸡 721016)

1 引言

随着科学技术的进步和人们对生活质量要求的提高,越来越多的高技术产品出现在人们的生活中,室内服务机器人也受到了更广泛的关注。物品识别作为服务机器人一个基本又重要的功能之一,一直以来都受到国内外很多学者的关注。

物体检测识别主要依靠对视觉感知设备传输回来的数据进行处理并得到需要的结果,数据主要分为二维图像数据和三维深度数据[1]。二维图像数据即数字像素矩阵,基于二维图像处理的方法主要利用物体的纹理特征、颜色特征、局部特征等,如颜色直方图法[2]、尺度不变特征变换(Scale-invari⁃ant feature transform,SIFT)[3~4]、加 速 稳 健 特 征(speeded up robust features,SURF)[5]、ORB 特征提取(Oriented FAST and Rotated BRIEF)[6]等,而基于三维深度信息处理的方法有径向归一化描述(Nor⁃mal Aligned Radial Feature,NARF)[7]、聚类视点特征直方图(clustered viewpoint feature histogram,CVFH)[8]等。

本文系统采用基于Kinect采集的点云数据,对点云数据进行分割,记录生成的物体位置数据传送到彩色图像上截取出预选物品图片,并采用FLANN[9]结合 SURF进行关键点的描述和匹配[10],实验结果表明,该系统能够有效地检测出物品并进行识别。

2 系统总体框架

本文提出的物品识别系统主要分为检测和识别两部分,如图1所示。物体检测部分,将输入的三维点云进行坐标变换,提取出最大平面并分割,再将平面上的点云聚类分割,计算聚类的空间坐标;物品识别部分,将聚类的空间坐标转换成RGB图像上对应的坐标并截取出图片,提取其SURF特征并与本地的模版库进行特征匹配,最后标注识别结果。

图1 系统总体流程

3 基于三维点云分割的物体检测

通常由Kinect V2传递回来的颜色和深度信息是全局的,因此为了识别桌面上的物体,需要在聚类分割前提取出平面,提取平面则需要用点云分割的方法。

3.1 平面提取

现实场景中,墙面地面桌面大多是大平面,桌子上的物体一般是圆柱体或者长方体,可以把这些几何外形归结为简单的几何形状,并用方程或者有限的参数来描述,因此提取平面通常采用随机抽样一致性(Random Sample Consensus,RANSAC)算法[11]。该算法可以从一组包含“局外点”的样本数据集中,通过迭代方式估计出数学模型的参数,得到有效样本数据。其主要步骤如下:输入所需最小点数n和所需迭代次数k,辨别某点是否匹配拟合结构模型的阈值t,判断拟合是否够好时所需的附近点数量d,迭代k次后,循环执行以下步骤:从数据中随机均匀地采样n个点,拟合这n个点,对采样外的每一个数据点,再循环执行比较点到拟合结构模型的距离和t的大小,如果比t小,那么判断点离得够近。循环结束后,如果有d个或更多的点靠近拟合的结构模型,那么拟合结果合格。用所有这些点重新拟合,并将结果添加到合格拟合集中。最后,以拟合误差作为挑选标准,从合格拟合集中选出最佳拟合。

PCL中支持了大量几何模型的RANSAC检测,可以很方便地对点云进行分割。本文用到的几何模型类型为平面模型,因此输入点云数据,设置模型类型和距离阈值,使用随机参数估计方法,即可计算出平面集Ti,但是这些平面集除了包括桌面平面外,还会包括墙面和地面,本文通过加入平面高度信息和垂直度信息辅助判断,剔除非桌面平面,得到目标平面Tg。

3.2 物体聚类

在物体聚类之前,利用点云凸包算法把物体点云提取出来,并转换成二维的点云集P。

通常采用欧式聚类分割算法[12~13]来分割物体,该算法能够将空间内一定阈值内的点合并为一类,输入m个数据点,通过点与点之间的远近性质来分割聚类,其公式为

式中,pj,pj∈Sg。传统的欧式聚类分割算法非常容易造成过度分割或分割不足的现象,因此,本文通过加入颜色条件和法线条件来辅助判断[14],算法步骤如下:

1)设置一个空的点云数据集empty,将计算得到的目标平面Tg的边界值加入到empty中;

2)设置一个空的索引M,计算剩余点在Tg上的投影,把其中在边界内的投影点加入到M中,否则跳过;

3)创建一个空的聚类集L和一个空的队列R,并为M对应的点创建一个Kd-Tree;

4)对每一个点Pi∈P,以Pi为中心,以r<dth为半径找到Pi的最近邻元素集合,对每一的 Pi∈,检查其距离、色差和法线夹角是否小于给定的阈值,是则将该点加入队列R,处理完所有点后,将R加入到聚类集L中;

5)当处理完所有Pi,并且在聚类集L中形成多个聚类时,算法结束。

4 基于特征匹配的物体识别

本文采用的SURF算法由Bay在2006年首次提出,SURF是尺度不变特征变换算法(SIFT算法)的加速版,它继承了SIFT算法的平移、缩放、亮度、旋转不变性等优点。SURF算法通过构建Hessian矩阵来实现的,Hessian矩阵是该算法的核心,对于图像像素点p(x,y),把二阶标准高斯函数作为其滤波器,通过特定核间的卷积计算二阶偏导数,在尺度为σ其Hessian矩阵定义如下:

在构造Hessian矩阵前,先进行高斯滤波,经过滤波后的计算公式如下:

Herbert Bay提出可以用估计值来替代L(x,t),并引入权值来平衡准确值和近似值间的误差,权值随尺度变化,则H矩阵行列式为

行列式中的参数0.9为作者理论计算得出的估算值[15]。

接着利用非极大值抑制初步确定特征点,把处理过的像素点和三维领域的26个点进行大小比较,保留其中的最大值或者最小值,认为是目标特征点,并采用三维线性插值法,删去小于阀值的点,过滤出亚像素级的特征点,再增加极值,最终保留特征最强的点并计算个数。

将截取出来的图片依次用上述方法与模版库图片对比,把对比出来特征点大于某个阀值的判定匹配成功,并标注对应的物品名称,否则认为匹配失败,则不标注,识别效果如图2所示。

图2 识别效果图

5 实验结果和分析

5.1 实验平台

本文的实验平台为北京六部工坊科技有限公司的启智ROS机器人,如图3所示,主要硬件结构有三轮全向底盘,360°激光雷达,立体扬声器,深度相机Kinect V2,计算部件是一台配置有Intel Core i5-6200U处理器、NVIDIA GeForce 940MX显卡、8GB内存、并运行Ubuntu14.04系统的笔记本。

5.2 实验分析

设置对比实验,将本文算法和传统的SIFT算法对比,点云分割部分算法均采用本文算法。在室内场景下,对桌面静止物体进行点云信息和图像的采集,图像分辨率为512×424。实验选取了牛奶、洗发水、奶茶、薯片作为测试物体,实验结果如表1示。

图3 机器人平台

表1 对比实验结果

6 结语

本文设计并实现了一种基于三维点云和OpenCV特征点检测的物品识别系统,通过对点云数据进行分割聚类,标记生成的物体位置数据投影到彩色图像上截取出预选物品图片,并采用FLANN结合SURF进行关键点的描述和匹配,实验结果表明,该系统能够快速有效地检测出物品并进行识别标注。由于文中的平面分割聚类算法提取的物品聚类带有较多的噪声点,在较复杂环境中的识别准确率有待提高,因此下一步将结合深度学习方法深入研究点云的分割聚类以及更高效准确的特征匹配算法。

猜你喜欢

聚类平面物品
一种傅里叶域海量数据高速谱聚类方法
称物品
一种改进K-means聚类的近邻传播最大最小距离算法
AR-Grams:一种应用于网络舆情热点发现的文本聚类方法
立体几何基础训练A卷参考答案
立体几何强化训练B卷参考答案
图画捉迷藏
参考答案
基于Spark平台的K-means聚类算法改进及并行化实现
找物品