2. 江苏省机电产品循环利用技术重点建设实验室, 江苏 常熟 215500
2. Jiangsu Key Laboratory of Recycling and Reuse Technology for Mechanical and Electronic Products, Changshu 215500, China
1 引言
在废旧产品的自动化拆卸中,如何自动获取零部件特征并将其识别是一个非常重要的关键技术.近年来,基于图像处理的识别技术以其非接触式、较宽的光谱响应范围、定位、测量和缺陷检测的优势,在农作物质量检测[1-2]、医学图像检测[3]、军事目标识别[4-5]、人脸识别[6-7]、指纹识别[8-9]、人民币序列号识别[10-11]等领域得到了广泛应用.
基于图像的机器视觉是目前常见的零部件识别方法[12],对两幅或多幅图像进行比较,通过找到共有景物来达到识别的目的,已在零部件的识别与拆卸中得到了应用.近年来随着传感器技术的发展,微软推出了Kinect系统[13],由于其方便实用,在三维重构[14]、物体跟踪[15]和姿态识别[16-17]等领域被广泛应用. Kinect系统能够获取视场内物体的图像及其表面的点云,通过对相关数据的处理,可以用于典型零部件的识别.
基于以上背景,本文提出基于深度图像和点云边缘特征的典型零部件识别方法.该方法通过对Kinect获取的深度图像进行优化,提高点云的数据精度,然后利用八邻域深度差(8N-DD)算法对获取的点云进行边缘提取,利用RANSAC算法对分割后的点云边缘进行检测,并提取边缘特征识别典型零部件.
2 点云获取与优化 2.1 点云精度分析Kinect获取空间某点的深度值,不同时刻该点的深度值存在随机跳变误差,图 1给出了某空间点在不同时刻采集到的深度值存在误差的示意图.
如图 1所示,若某点深度值为h,h1、h2分别在t2和t3时刻获取的该点深度值.显然,在t2和t3时刻获得的深度值存在着误差.
为研究深度值的随机误差情况,以竖直刚性木板平面作为目标,设计了利用Kinect从0.7 m~3 m之间间隔0.1 m的方式进行扫描,每个距离获取一幅深度图像,统计深度图像里点的深度跳变误差,即同一幅深度图像里最大与最小深度值的差,图 2给出了实验图,表 1给出了深度跳变误差值.
2.2 点云优化由于Kinect深度值存在跳变误差,可以利用滤波优化算法对其进行去噪.滤波优化分为线性和非线性滤波优化算法.
线性滤波优化可表示为
(1) |
式中:F(x,y)表示不同帧的图像在点(x,y)位置的深度值;M为图像帧数;G(x,y)表示优化后点(x,y)位置的深度值.
非线性滤波优化可表示为
(2) |
式中:Fi(x,y)表示第i帧的图像在点(x,y)位置的深度值;L表示图像的帧数;G(x,y)表示为在(x,y)位置的L个深度值排序后所取的中间值.
以图 2所示竖直刚性木板平面为目标,利用Kinect距离0.8 m处对目标进行扫描,获取30帧深度图像,每一帧图像上有307 200个数据点,利用多线程对数据点进行并行计算,将不同帧的深度图像在同一坐标位置的深度数据分别进行线性滤波和非线性滤波,表 2给出了利用不同滤波优化算法后所对应的跳变误差.
如表 2所示,在距离0.8 m处利用线性滤波优化,跳变误差小于6 mm,利用非线性滤波优化,跳变误差小于4 mm,所以本文利用非线性滤波优化算法对深度图像进行优化,使深度数据跳变误差控制在较小范围内.对于优化后的深度图像,利用Kinect的SDK软件开发工具包将其转化为点云数据.
3 点云边缘提取对于Kinect所获取的点云数据,提出了八邻域深度差(8N-DD)算法进行点云边缘提取,图 3给出了八邻域深度差算法流程图.
(1) 对点云沿深度方向垂直投影
对沿深度方向获取的单面点云数据,沿深度方向z进行投影(相当于垂直投影到x,y平面上).
点云数据可表示为
(3) |
式中:Pi表示空间点(xi,yi,zi)坐标;n表示点云个数.
投影点集合可表示为
(4) |
式中:P′i表示(xi,yi)处位置坐标.
(2) 对投影点集合进行栅格数据组织
对于投影点集合P′,统计其横纵坐标最小与最大的4个值Xmin、Xmax、Ymin、Ymax;根据栅格的划分次数m,计算出单个栅格的大小为a×b,其中:
(5) |
(6) |
式(5) 和(6) 中,[]表示向下取整.
将各投影点分配到各个栅格且进行编号:首先根据当前投影点坐标(x,y),计算该点所在栅格的行r和列c;然后将该点添加到第r行和c列的栅格中,且将该栅格编号为G(r,c),其中:
(7) |
(8) |
式(7) 和(8) 中,[]表示向下取整.
本文中栅格的详细组织方式如图 4所示,栅格定义为3×3栅格,从栅格左上角对栅格进行编号,第一行第一列栅格为G(0,0),第一行第二列栅格为G(0,1),直到将第三行第三列栅格编号为G(2,2).
(3) 计算栅格的深度值
对于任意栅格G(i,j),统计栅格内投影点的数目(如图 5所示),若投影点数目为0,则将该栅格的深度值设定为Z=0;若栅格内投影点数目大于0,则将投影点所对应的深度值进行加权平均,将加权平均值Zave作为该栅格的深度值,栅格深度值可表示为
(9) |
式中:Dm表示栅格内投影点所对应的深度值;L表示栅格内投影点的个数.
图 5给出3×3栅格的深度值设定,栅格G(0,0),G(1,0) 和G(2,2) 中无投影点,则栅格的深度值设为0;其它栅格内都存在投影点,则栅格的深度值设定为对应的加权平均值,如:Z1,Z2,Z3,Z4,Z5,Z6.
(4) 栅格间深度比较
对于任意栅格G(i,j),以其八邻域栅格中G(i-1,j)栅格为例,其与栅格G(i,j)的深度差为D,D大于阈值T,判断出栅格G(i,j)存在边缘点,如图 6所示.
(5) 栅格内点云边缘点筛选
对于存在边缘点的栅格G(i,j),统计出栅格内投影点个数k,然后对投影点所对应的深度值进行升序排列.当k为奇数,栅格边缘点为(k+1)/2位置所对应的投影点;当k为偶数,该栅格边缘点为k/2或k/2+1位置所对应的投影点,根据投影点提取其所对应的三维点,图 7给出了边缘点筛选示意图.
如图 7所示,存在边缘点的栅格G(i,j)中有4个投影点,对4个投影点所对应的深度值排序为Z1,Z2,Z3和Z4,所以Z2或Z3所对应的投影点为边缘点.
4 点云边识别为便于识别,首先对所提取的点云边缘点进行分割,然后对分割后的点云边缘点利用RANSAC算法进行特征提取,并根据相关特征以识别零部件.
4.1 点云边缘分割点云边缘数据通常被看成一个点集,点集内各种目标特征点混合在一起,点云边缘分割就是将同一目标特征点提取出来,图 8给出了边缘点分割示意图.
如图 8所示,点云边缘数据集合为S,任取一点P,寻找该点附近的k个邻近点,在顺时针方向取欧氏距离最小的P′点作为新的目标点,对P′点继续寻找邻近点,顺时针经过一圈寻找又回到P点,则将寻找到的所有目标点作为分割出的点集S1,利用同样方法分割出点集S2.
4.2 基于RANSAC算法的特征提取以拟合直线为例,随机抽样一致性(RANSAC)算法[18]首先随机选择两个点,两点确定一条直线,统计在该条直线一定距离范围内点的数目V.重复随机选择U次,将V最大的直线确认为最佳直线.
对于一些有棱角且边是直线的典型零部件,依据RANSAC提取直线的思想,可以对典型零部件的点云边缘进行检测,并提取边缘特征以识别零部件.
以正六角工件为例,定义其特征参数如表 3所示,通过RANSAC算法对分割后点云边缘进行边数及夹角检测,以此识别工件类型.
如表 3所示,六角工件有6条边,夹角为120°.利用RANSAC算法对六角工件的识别方法为:首先随机提取六角工件点云边缘中任意两点(xi,yi)与(xj,yj),根据两点坐标求取两点的直线方程,然后计算边缘点内某点到该直线的欧氏距离D,若D小于设定的阈值T,则把该点当作局内点,统计所有局内点个数为N,若N满足阈值条件ε,判断N所对应的直线为点云边缘某条边;重复随机提取点云边缘上的两个点,当统计的点的个数满足设定的阈值ε′时,跳出循环;根据两个点的斜率和截距去掉相似直线,剩余直线条数为6,计算剩下每两条直线的夹角为120°,依据剩余直线条数6及夹角120°判断出点云边缘所对应的工件为正六角工件.
5 实验 5.1 点云边缘分割利用Kinect传感器(图 9)对正六角工件和方形工件模型(图 10)进行点云边缘提取.实验平台如图 11所示.
表 1数据表明Kinect在1 m的测量范围内获取的深度图像的偏移量较小,所以本文利用Kinect对典型零部件的识别时,将Kinect与目标距离控制在1 m以内.
图 12显示了深度图像未优化对点云边缘点提取的影响,提取的点云边缘存在大量噪声,经计算跳变误差小于10 mm. 图 13显示了优化后点云边缘提取效果,经计算跳变误差小于4 mm.可以看出,经过优化后点云边缘提取效果有了明显的提高,有效解决了噪声对后续处理带来的影响.
5.2 点云边缘提取以六角螺母和方形螺母为例(图 14)进行典型零部件点云边缘提取实验.在竖直平板上安装六角螺母和方形螺母(图 15),获取其深度图像,利用Kinect SDK开发工具包将深度图像数据转为三维点云数据,如图 16所示.利用八邻域深度差(8N-DD)算法提取的点云边缘,如图 17所示.
5.3 点云边缘识别以40个不同形状和大小的不锈钢螺母为样本(如表 4所示)进行识别实验.
对上述螺母利用4.2节八邻域深度差(8N-DD)算法进行点云边缘提取(点云边缘提取平均耗时1.826 0 s),然后对提取的40组点云边缘利用RANSAC算法进行特征提取以识别螺母,实验中达到了100%的识别率.
5.4 运行时间本实验平台为微软Kinect 2.0开发版和Intel(R) i5 2.0 GHz处理器的联想ThinkPad E450,软件环境为VS2010进行提取实验.
实验过程中,深度优化平均耗时265 ms,点云边缘提取平均耗时603 ms,基于RANSAC算法在40组实验下识别耗时低于335 ms,整个识别过程平均耗时为1 203 ms.
6 算法验证本实验提取了六角螺母和方形螺母两组轮廓,利用RANSAC算法提取轮廓的特征,根据特征以识别轮廓所对应的螺母类型.为了验证该方法的识别率,用ICP算法[19-20]对结果进行验证.
迭代最近点(iterative closet point,ICP)算法是一种点集对点集配准方法,通过配准可以验证出目标点集与参考点集是否匹配,配准过程如图 18所示,其中下层轮廓为参考点集,上层轮廓为目标点集.
实验中,通过ICP算法的验证,基于RANSAC算法特征提取的零部件识别率达到了100%.在i5处理器的实验平台和VS2010的软件环境下,对40组轮廓进行基于RANSAC算法特征提取的零部件识别与ICP算法验证实验,两种算法耗时如表 5所示,从结果可以看出两种算法耗时较短.
7 结论针对自动化拆卸过程中典型零部件识别问题,研究了基于Kinect深度图像和点云特征的典型零部件识别方法.提出了一种八邻域深度差(8N-DD)点云边缘提取和RANSAC识别算法,算法首先对优化后的点云数据利用八邻域深度差算法进行点云边缘提取,然后对提取的点云边缘进行分割,最后,通过RANSAC算法对分割后的点云进行特征判别以识别零部件.实验结果验证了本文提出的方法可以快速对典型零部件进行识别.另外,本文直接采用Kinect设备作为图像采集装置,对于简化识别系统和降低系统成本也具有较高的应用意义.
[1] |
葛婧, 邵陆寿, 丁克坚, 等.
玉米小斑病病害程度图像检测[J].农业机械学报, 2008, 39(1): 114–117.
Ge J, Shao L S, Ding K J, et al. Image detecting for hazard levels of corn spots[J]. Transactions of the Chinese Society for Agricultural Machinery, 2008, 39(1): 114–117. |
[2] |
张亚静, ShibusawaS, 李民赞.
基于机器视觉的番茄内部品质预测[J].农业工程学报, 2012, 26(2): 366–370.
Zhang Y J, Shibusawa S, Li M Z. Prediction of tomato inner quality based on machine vision[J]. Journal of Agricultural Engineering, 2012, 26(2): 366–370. |
[3] |
张辉, 王耀南, 周博文, 等.
医药大输液可见异物自动视觉检测方法及系统研究[J].电子测量与仪器学报, 2010, 24(2): 125–130.
Zhang H, Wang Y N, Zhou B W, et al. Research on automatic visual inspection method and system for visible foreign body in medicine transfusion liquid[J]. Journal of Electronic Measurement and Instrument, 2010, 24(2): 125–130. |
[4] |
范毅方.
基于层的平动军事目标图像识别及运动估计[J].光学技术, 2006, 31(s1): 162–168.
Fan Y F. Translation military target image recognition and movement estimation based upon layer processing[J]. Optical Technique, 2006, 31(s1): 162–168. |
[5] |
蒋少华, 王乘, 陈雪菘, 等.
一种缺损图像的军事目标识别方法[J].小型微型计算机系统, 2010, 31(6): 1196–1203.
Jiang S H, Wang C, Chen X S, et al. Method of recognizing military object from occluded images[J]. Journal of Chinese Computer Systems, 2010, 31(6): 1196–1203. |
[6] |
徐维清, 严利民.
基于视频的人脸识别系统研究[J].工业控制计算机, 2014, 27(9): 90–93.
Xu W Q, Yan L M. Research on face recognition system based on video[J]. Industrial Control Computer, 2014, 27(9): 90–93. |
[7] |
叶娟, 陈启买, 陈君梅.
基于格拉斯曼流型的模糊人脸图像识别方法[J].信息与控制, 2015, 44(4): 507–512.
Ye J, Chen Q M, Chen J M. The approach of fuzzy face recognition based on the Grassmannian manifold[J]. Information and Control, 2015, 44(4): 507–512. |
[8] |
陈开志, 胡爱群.
基于二值化图像的指纹细节点精确提取方法[J].东南大学学报:自然科学版, 2010, 40(3): 471–475.
Chen K Z, Hu A Q. Method of accurate minutiae detection from binary finger print image[J]. Journal of Southeast University: Natural Science Edition, 2010, 40(3): 471–475. |
[9] |
杨霞, 刘志伟, 雷航.
基于TrustZone的指纹识别安全技术研究与实现[J].计算机科学, 2016, 43(7): 147–152.
Yang X, Liu Z W, Lei H. Research and Implementation of fingerprint identification security technology based on ARM TrustZone[J]. Computer Science, 2016, 43(7): 147–152. DOI:10.11896/j.issn.1002-137X.2016.07.026 |
[10] |
李文宏, 田文娟, 王霞.
基于支持向量机的人民币纸币序列号识别方法[J].信息与控制, 2010, 39(4): 462–465.
Li W H, Tian W J, Wang X. Serial number identification of RMB banknote based on support vector machine[J]. Information and Control, 2010, 39(4): 462–465. |
[11] |
梁琎, 包志强.
人民币冠字号码的提取与识别[J].现代电子技术, 2013(11): 70–74.
Liang J, Bao Z Q. Extraction and identification of RMB crown word numbers[J]. Modern Electronics Technique, 2013(11): 70–74. DOI:10.3969/j.issn.1004-373X.2013.11.021 |
[12] |
王帅, 徐方, 陈亮, 等.
视觉技术在机器人零部件装配中的应用研究[J].组合机床与自动化加工技术, 2015(8): 107–110.
Wang S, Xu F, Chen L, et al. Industrial robot components assembly based on machine vision technology[J]. Modular Machine Tool & Automatic Manufacturing Technique, 2015(8): 107–110. |
[13] | Microsoft Kinect Tear down(iFixit, 4 November 2010)[EB/OL] (2010-05-15) [2011-11-29]. http://www.ifixit.com/Teardown/Microsoft_Kinect_Teardown/4066/1. |
[14] | Um D, Ryu D, Kal M, et al. Multiple intensity differentiation for 3-D surface reconstruction with mono-vision infrared proximity array sensor[J]. IEEE Sensors Journal, 2011, 11(12): 3352–3358. DOI:10.1109/JSEN.2011.2159200 |
[15] |
张雪华, 刘华平, 孙富春, 等.
基于Kinect的移动机器人目标跟踪[J].智能系统学报, 2014(1): 34–39.
Zhang X H, Liu H P, Sun F C, et al. Target tracking of mobile robot using Kinect[J]. CAAI Transactions on Intelligent systems, 2014(1): 34–39. |
[16] |
张鸿宇, 刘威, 许炜, 等.
基于深度图像的多学习者姿态识别[J].计算机科学, 2015, 42(9): 299–302.
Zhang H Y, Liu W, Xu W, et al. Depth image based gesture recognition for multiple learners[J]. Computer Science, 2015, 42(9): 299–302. DOI:10.11896/j.issn.1002-137X.2015.09.059 |
[17] |
林海波, 王浩, 张毅.
改进高斯核函数的人体姿态分析与识别[J].智能系统学报, 2015(3): 436–441.
Lin H B, Wang H, Zhang Y. Human postures recognition based on the improved Gauss kernel function[J]. CAAI Transactions on Intelligent systems, 2015(3): 436–441. |
[18] | Fischler M A, Bolles R C. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography[J]. Communication of the ACM, 1981, 24(6): 381–395. DOI:10.1145/358669.358692 |
[19] |
贺磊, 余春平, 李广云.
激光扫描数据多站配准方法研究[J].红外与激光工程, 2008, 37: 128–131.
He L, Yu C P, Li G Y. Method of laser scanning data matching[J]. Infrared and Laser Engineering, 2008, 37: 128–131. DOI:10.3969/j.issn.1007-2276.2008.01.029 |
[20] |
钟莹, 张蒙.
基于改进ICP算法的点云自动配准技术[J].控制工程, 2014, 21(1): 37–40.
Zhong Y, Zhang M. Automatic registration technology of point cloud based on improved ICP algorithm[J]. Control Engineering of China, 2014, 21(1): 37–40. |