基于Kinect的轴类零件三维重建研究
2016-03-25王亚琪�k陈成军李希彬李全宝
王亚琪�k陈成军++李希彬++李全宝
摘要:使用Kinect采集的深度数据,进行了轴类零件三维重建算法的研究。首先借助Kinect获取深度和彩色数据,通过坐标转换将深度信息转换成三维点云数据;其次提取出感兴趣目标的点云数据,根据点云数据的噪声特点,并对其进行滤波降噪处理;然后进行点云分割获得点云集,最后对各点云集进行结构参数化分析。实验结果表明,本文算法能够精确、高效地实现轴类零件的重建。
关键词:Kinect;三维重建;三维点云;点云分割
中图分类号:TP391文献标识码:A
1引言
三维重建技术是指通过计算机数字化手段,对客观世界中的三维实体建立数学模型的过程,它是计算机视觉、人工智能、虚拟现实等前沿领域的热点和难点。随着立体视觉技术的发展,激光雷达和三维扫描仪等设备逐渐出现,常见有手持激光系统和TOF相机,手持激光系统发射激光感测距离值,需多次扫描获取数据,且通常需要搭配额外装置。TOF相机通过时间换算得到深度数据,但价格昂贵、数据计算量过大。
微软推出的Kinect[1]深度传感器采用光编码技术通过红外定位获取物体的RGBD信息,由于其拥有广泛的应用潜力而在近两年备受人们关注,许多学者利用Kinect对三维重建技术展开了深入研究。2011年微软官方驱动Kinect for Windows SDK1.7[2]中引入了Kinect Fusion[3-4]功能,在支持GPU加速的开发环境中,该技术可以对物体进行三维建模,实时性强。通过手持Kinect对物体环绕一周扫描,几秒钟后就能创建足够平滑的重建的静态场景,产生点阵云以及3D表面模型。Chatterjee[5]创建了一个基于Kinect的几何一致的三维模型系统,首先利用双边滤波器平滑深度图,采用ICP全局配准实现对视角数据的拼接,最后求解符号距离函数完成完整的三维模型。2013年,Daniela[6]提出了重建3D数字化模型的解决方案,利用Kinect获取数据,基于HIS的颜色分析算法分割数据,基于数据的形状特征与组件库里的虚拟元件比较识别3D对象,从而创建一个可靠地3D模型。在国内,刘鑫[7]等人提出了一种基于Kinect并借助GPU的全自动快速物体重建方法。叶日藏[8]利用Kinect对数据获取、预处理、多视角配准、点云融合进行了理论分析,完成了对日常生活物品的数字化重建。然而,由于Kinect本身获取数据的精度不高,噪声大,质量低,其数据的不完整性和二义性往往不能满足机械类零件重建的要求。
本文通过 Kinect 深度传感器采集深度信息,并将其应用于机械轴类零件扫描重建,针对过程中出现的数据噪声问题,本文采用一种快速双边滤波器将其对二维图像处理扩展到对三维点云数据进行去噪操作。针对聚类分割不适于具有相似形状的轴类零件,点云分割误差大这一不足,本文通过计算点云数据的法向矢量及曲率,对聚类分割算法进行改进,将轴类零件点云数据分割成不同点云集,提高了算法性能并使结果更加精确。针对Kinect的精度问题,本文对分割后的各个点云集进行结构参数化分析与识别,从而重建出完整的三维模型。
2总体设计方案
本文利用Kinect深度传感器作为输入设备,对三维重建流程中的数据获取、预处理、点云分割、结构分析进行了研究及理论分析,提出了一个基于Kinect深度传感器的三维重建方案:首先,借助 Kinect 获取深度和彩色数据,通过坐标转换获得目标物体表面每个点的三维空间坐标,以此形成一个点的集合—点云。其次,根据图像内容的属性和特点,将图像分割成各个区域,并提取出感兴趣目标的点云数据。并根据深度数据的噪声特点,分析比较几种滤波算法,优化选择一种双边滤波算法对三维点云数据进行降噪平滑处理。然后,估计过滤后点云的表面法线并计算每个点云的曲率,进而实现基于法线和曲率的点云分割。最后对轴类零件的各个点云集进行结构参数化分析并显示。三维重建流程如下图:
3三维点云数据获取与预处理
3.1深度图像与彩色图像的获取
Kinect传感器通过发射红外光利用彩色和深度摄像头采集原始数据,两种数据结合生成三维数据。由于Kinect内部已对深度摄像头和彩色摄像头进行了径向畸变的矫正处理,则可以将捕捉的深度数据和彩色信息直接应用于生成三维点云数据。从深度摄像头获取的红外数据,分别代表深度图像坐标系统的 X、Y、Z 坐标,Z坐标值表示某点到镜头的深度值。图2显示由 Kinect 获取的彩色图像和原始深度图像。
由于深度摄像头和彩色摄像头在Kinect中的位置不同,两者采集数据的角度不同,得到的原始数据的坐标在水平方向存在一定的偏差。通过 OpenNI 的校正函数可修正两个相机产生的视差问题,使得目标物两种图像对齐到相同的位置,为后续的点云处理提供可靠数据。校准后的两图像视角一致,如图3所示:
通过与之前未校准的结果相比,可以发现校准后的结果周围的黑边明显比较大,同时也有一些几何上的修正(四边有稍微内凹),这是因为将深度摄像头的视角调整为彩色摄像头的视角,这样两幅图像的内容就完全一致,没有偏差。
6实验结果与分析
本文使用c++编程对聚类分割进行了改进,实现了基于法线和曲率特征的分割算法,比较两种算法的实验结果图9和图11可知,在处理具有相似特征的大数据时,聚类分割算法粗糙,分割结果误差大。本文算法通过对点云数据的法线估计与曲率计算,将轴类零件精确分割成四部分如图11(a)(b)(c)(d),本文算法在分割性能与精度上远远优于原始聚类分割算法。针对分割后的零件各点云集,本文对其分别进行结构参数分析,结果如下:
由表1结果看出,与轴类零件实际测量结果相比,本文算法得到的实验结果误差在毫米级,与实际偏差很小,尚在允许范围内,满足工业需求。至此本文将轴类零件分割成4个点云集,并识别其模型类型和参数计算,准确进行了结构分析,将最初采集的单视角、噪声大、误差大的不完整数据转化为平滑且高质量的完整的点云数据,为后续三维重建提供可靠保证的点云集。
7结论
本文利用kinect实现了轴类零件的三维重建技术。由于kinect自身技术原因,采集的三维点云数据精度低噪声大且不完整。首先利用双边滤波算法对数据进行降噪平滑处理,然后针对现有的聚类分割,提出了一种改进的分割算法。新算法分析了点云的法线和曲率特征,结合聚类思想将零件数据精确分割为4个点云集。实验表明新算法的分割性能远远优于原始聚类分割算法。最后本文对各部件进行结构参数化分析与识别,提高了数据质量和精度,从而重建出完整可靠地轴类零件。
参考文献
[1]Microsoft Kinect[EB/OL].http://www.xbox.com /en-us/kinect.
[2]Introducing Kinect for Windows[EB/OL]. (2013)[2013-8-20].http:// www.k4w.cn/.
[3]Newcombe R A,Izadi S,Hilliges O,et al. KinectFusion: Real-time dense surface mapping and tracking:Proceedings of the 2011 10th IEEE International Symposium on Mixed and Augmented Reality,2011[C].IEEE Computer Society.
[4]余涛.Kinect应用开发实战用最自然的方式与机器对话[M].北京: 机械工业出版社, 2013.
[5]Chatterjee A,Jain S,Govindu V M.A pipeline for building 3D models using depth cameras:Proceedings of the Eighth Indian Conference on Computer Vision,Graphics and Image Processing,Mumbai,India,2012[C].ACM.
[6]Daniela Alexandra,Esteves Gil Borges.3D Object Reconstruction Using Kinect[J].2013.
[7]刘鑫,许华荣,胡占义.基于GPU和Kinect的快速物体重建[J].自动化学报,2012(08);1288-1297.
[8]叶日藏.基于Kinect深度传感器的三维重建技术应用研究[D].广州:华南理工大学, 2013.
[9]TOMASIC,MANDUCHI R.Bilateral filtering for gray and color image[C]//Proc of the 6th International Conference on Computer Vision.1998:839-846.
[10]Rusu R.Semantic 3D Object Maps for Everyday Manipulation in Human Living Environments[J].KI-Kunstliche Intelligenz,2010,24(4):345-348.
[11]R.I.Hartley and A.Zisserman.Multiple View Geometry in Computer Vision[C].Cambridge University Press,second edition,2004.ISBN 0521540518.