基于Kinect-的三维物体重建-毕业论文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

郑郑郑州州州大大大学学学毕毕毕业业业论论论文文文题目:基于Kinect的三维物体重建指导教师:柳朝阳职称:教授学生姓名:杨红庄学号:20092100337专业:数学与应用数学院(系):数学与统计学院完成时间:2013年5月24日2013年5月24日摘要三维重建技术是计算机视觉、人工智能、虚拟现实世界等前沿领域的难点和热点。主要是物体的三维重建技术可以快速的将日常生活中的物品数字化,并可将其在计算机中以数字信息形式展现;同时,三维打印机的出现,这也对物体三维重建技术发展起了推动作用,也越来越显示出物体的三维重建的重要性。本文利用微软公司开发销售的Kinect体感传感器进行深度信息的获取,再通过使用OpenNI2SDK将获取的深度信息转化为世界坐标,即为获得三维数据点云,然后再通过对获得的点云数据进行去噪、重建等一系列步骤,最终获得物体的三维模型。本文章主要从Kinect点云获取及噪声处理、ICP(IterativeClosestPoint)算法及其各个变种和ICP算法点云匹配结果三个主要部分讲解三维重建技术。关键词:三维重建;Kinect;ICPABSTRACTThethree-dimensionalreconstructiontechnologyisthehottopicinthefieldofcom-putervision,artificialintelligence,virtualrealityworldandothercuttingedgefields.Thistechnologycanquicklydigitizetheitemsofourdailylifeanddemonstratetheinformationindigitalform.Atthesametime,withtheadventofthree-dimensionalprinter,whichplaysaroleinpromotingthethree-dimensionalreconstructiontechnology,theimportanceofthistechnologybecomemoreandmoreobvious.ThedataofthisarticleisobtainedbytheKinectsomatosensorysensorwhichisdevelopedbyMicrosoftCorporation.ThenweusetheOpenNI2SDKtotransferthedataintoworldcoordinate,namelythethree-dimensionalpointcloud.Byde-noising,reconstructingthethree-dimensionalpointcloudweultimatelyobtainthethree-dimensionalmodelofanitem.Thispaperanalyzethree-dimensionalre-constructiontechnologymainlyfromthreeaspects:theKinectpointcloudacquisition,theICPalgorithmanditsvariants,andthecloudmatchingresultsofICPalgorithm.Keywords:3Dreconstruction;Kinect;ICP目录前言11Kinect点云的获取及去噪21.1Kinect工作原理..................................21.2三维物体点云的获取及分割...........................21.3点云的去噪....................................21.4点云法向量的拓扑评估..............................41.5K-最近点的搜索.................................52ICP算法及其变种72.1问题描述.....................................72.2标准ICP算法...................................72.3标准ICP算法特性分析..............................92.4ICP变种......................................102.4.1控制点的选择...............................102.4.2距离特征.................................102.4.3对应点对权重的选择...........................102.4.4点对的剔除................................112.5三维物体的重建..................................113ICP算法点云的匹配结果123.1具有一一对应关系点云匹配...........................123.2无一一对应点云匹配...............................133.3Kinect数据匹配..................................134总结16致谢17参考文献18附录19matlab点云生成源程序.................................19Kinect点云获取源程序.................................20双边滤波去噪源程序..................................22法向量的拓扑评估源程序...............................29拟合平面法向量评估源程序...........................29拟合曲面法向量评估源程序...........................33K-最近邻搜索源程序..................................36标准的ICP算法源程序.................................38ICP算法变种源程序..................................46均匀采样源程序..................................47随机采样源程序..................................47剔除n%源程序..................................47标准差的若干部剔除源程序...........................48增加权重的源程序................................49方向量夹角剔除源程序..............................49点到面距离的源程序...............................50前言三维重建技术在计算机视觉等学科中已经研究很久,一直都是这些领域的热点与难点,但目前仅仅只存在于实验室中,没有得到广泛的普及应用,其主要原因是由于大部分数据的获取途径是经过结构光来获取物体的数字化数据,但结构光所需仪器设备价格很高,无法广泛普及。本文利用价格实惠的Kinect来获取的数据的深度信息,然后对这些获取的深度信息进行去噪、转化、重建等操作,最终获得三维物体模型。由于Kinect体感控制的价格便宜及广泛的普及,越来越多的家庭已经具有Kinect设备,这就使一些普通用户也能较方便的获得日常生活用品的数字化信息,很方便的将信息世界与现实世界建立了桥梁,也使越来越多的人们感受到了数字化的优越性,为实现数字化的普及产生的很大的影响。11Kinect点云的获取及去噪1.1Kinect工作原理利用红外投影机主动投影的近红外线光谱,当将其照射到粗糙物体或者穿透毛玻璃后,光谱会发生扭曲,这样就会形成随机的反射斑点,进而被红外摄像头获取,分析获取红外线光谱,则可创建可视范围内的物体及人体的深度图像,这就是Kinect工作的主要原理。对于上述光源,一般称其为激光散斑[1],其具有高度的随机性,而且会随着距离的不同而变化图案,这就是说空间中任意两处的散斑图案都是不同的。只要在空间打上这样的结构光,整个空间就会被标记,如果把一个物体放到这样的空间,只要分析照射到物体上面的散斑图案,就可以知道物体上面点的具体位置了。1.2三维物体点云的获取及分割涉及到Kinect的工作原理及生产商为了降低成本而采用廉价设备,导致Kinect获取的原始数据的噪声很大,所以应该在获取点云之前需要对原始数据进行处理,尽量的消除噪声的影响。考虑到Kinect更新数据的速率是每秒钟30帧,多帧所消耗的时间少,故可以先采用多帧求平均方法对原始数据进行处理,这个过程就是所谓的均值法去噪,这样就可以将明显的错误信息过滤掉。根据经验总结,采用5帧平均能过达到较好的效果。对于采集的数据,我们一般是希望仅获得我们所感兴趣的区域,因而需要对数据进行分割,由于实验工作的场景是宽敞,能够保证物体与背景有一定的距离,故可以直接控制深度信息把感兴趣区域直接分割出来。又空间中任一点均可由深度坐标表示,且存在一一对应的关系,故可以直接将深度信息转化到世界坐标系中,这里采用了OpenNI2SDK库中的函数ConvertDepthToWorld进行转换,这样初始的点云就获取成功,获取的结果在3.3Kinect数据的匹配中展示。点云获取的程序见附录。1.3点云的去噪通常来说,可将噪声可分为大尺度的噪声和小尺度的噪声来处理:对于大尺度的噪声,采用的就是上述的均值法进行处理;对于小尺度的噪声,这里采用的是点云的双边滤波去噪来处理,这样既可以保持模型的尖锐特征又可以去除小尺度的噪声。按照通常的理解,点云的双边滤波去噪[2,3]更新点云坐标的基本思想是:q:=q+ n(1)其中:q是点云的数据坐标,n是q点处的法向量, 是q点处双边滤波因子。对于双边滤波因子 : =∑kij2N(qi)Wc(∥qi−kij∥)Ws(⟨ni;qi−kij⟩)⟨ni;qi−kij⟩∑kij2N(qi)Wc(∥qi−kij∥)Ws(⟨ni;qi−kij⟩)(2)2其中:N(qi)是数据点qi的邻居点,即是与qi距离相距最近的若干个点,一般情况下,这里选取25个最近点;Wc(x)是光顺滤波函数,其为标准的高斯函数,定义为:Wc(x)=ex222c(3)Ws(x)是特征保权重函数,其定义类似于光顺滤波,也为标准的高斯函数,定义为:Ws(x)=ex222s(4)参数c是数据点qi到其邻居点距离对数据点qi的影响因子,参数s是数据点qi到其邻近点距离向量在数据点qi的法向量ni上的投影对数据点qi的影响因子。双边滤波算法实现数据点更新的基本步骤:(a)对于任意一数据点qi求出该点的m个邻近点kij;j=1;:::;m(b)对于每一个邻近点kij,求出x=||qi−kij||;y=⟨niqi−kij⟩(c)对于每一个邻近点kij,将上一步求的的x;y,代入光顺滤波函数与特征保权重函数求得Wc(x);Ws(x)(d)将Wc(x);Ws(x)代入式子(2)求的 i(e)更新qi:=qi+aini对于我的代码的实现,其输入文件的待去噪的点云数据(这里要求读取的文件类型是*.obj),输出的文件是经双边滤波去噪后的数据(输出的文件类型是*.obj)。首先对*.obj格式做一下了解,obj文件是一种标准的3D模型文件格式,很适合用于3D软件模型见的互导,可以直接利用写字板打开进行查看和编辑修改。其常用的格式主要包括:•v:表示几何体顶点,后面跟点的坐标。•f:表示面,后面跟此面所包含的点的索引。其次,双边滤波代码实现的整体流程图为:图1:双边滤波去噪流程图3最后,将结合双边

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功