手持式室内场景三维扫描系统构建与设计_第1页
手持式室内场景三维扫描系统构建与设计_第2页
手持式室内场景三维扫描系统构建与设计_第3页
手持式室内场景三维扫描系统构建与设计_第4页
手持式室内场景三维扫描系统构建与设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录28532摘要 119311ABSTRACT 217400第一章绪论 3273161.1课题研究背景及意义 315751.2三维扫描系统的研究现状 37141.3课题研究内容及总体设计方案 426143第二章Kinect传感器的相机标定 576422.1Kinect简介 5187292.2Kinect深度测量原理 6104072.3MATLAB标定过程 96940第三章图像特征匹配与局部地图构建 13126433.1匹配特征点的获取 1310943.2相机位姿跟踪 15282623.3局部地图构建 1623521第四章基于ORB-SLAM的三维稠密地图构建 17213294.1关键图像帧的提取 1889724.2传统ICP算法 18288404.3改进ICP算法 1929849第五章实验重建 21309575.1实验设备及环境 22307635.2实验操作及结果分析 2224500第六章总结与展望 2770416.1工作总结 28272196.2展望 2810977参考文献 291817致谢 31摘要近年来,随着科学技术的快速发展,三维重建技术越来越受到人们的重视,其也一直以来被当做计算机视觉、图形的重要研究方向。三维重建一方面能够满足人们对于客观世界中存在的景物的视觉需求,更是在生活、生产、医疗、军事等等领域有着极强的生命力和影响力,应用前景极为广阔。本文针对室内场景提出了基于Kinect的手持式三维扫描系统的构建与设计方法。利用微软推出的Kinect传感器进行彩色图像与深度信息的采集,并通过跟踪获取图像特征点计算Kinect位姿,有效改善相机获取深度图片存在误差及图像噪声等问题,实现局部地图构建。利用回环检测降低累计误差,运用通用图优化框架(GeneralGraphoptimization,G2o)优化位姿图。由于ORB-SLAM系统所构建的是稀疏点云地图,分辨率较低,因此本文在上述基础上进一步通过提取关键帧,获取更多的图片像素,在提高算法速度的同时构建出三维稠密地图。此外,本文提出了一种改进ICP算法,更好的实现室内场景的三维重建过程。经过实验验证,本文研究的三维扫描系统能够较好的完成对于室内场景的重建,得到完整的三维模型。关键词:三维扫描;Kinect;标定;ORB-SLAM;ICP算法ABSTRACTInrecentyears,withtherapiddevelopmentofscienceandtechnology,3Dreconstructiontechnologyhasreceivedmoreandmoreattentionfrompeople.Ithasalsobeenregardedasanimportantresearchdirectionofcomputervisionandgraphics.Ontheonehand,3Dreconstructioncansatisfypeople'svisualneedsforthescenesintheobjectiveworld,andithasstrongvitalityandinfluenceinthefieldsoflife,production,medicaltreatment,militaryaffairs,andsoon.Theapplicationprospectisextremelybroad.Thispaperpresentsamethodofconstructinganddesigningahand-heldthree-dimensionalscanningsystembasedonKinectforindoorscenes.UsingMicrosoft'sKinectsensortocapturecolorimagesanddepthinformation,andcalculatingposeKinectacquiredbytheimagefeaturepointtracking,thecameraeffectivelyimprovetheerrorimageacquisitionandimagedepthpresentissuessuchasnoise,toachievelocalmapbuilding.Usingtheloopdetectiontodecreasethecumulativeerrorandthegeneralgraphoptimization(G2o)tooptimizetheposediagram.SincetheORB-SLAMsystemisconstructedwithasparsepointcloudmapandhasalowresolution,thispaperfurtherextractskeyframesandobtainsmorepicturepixelsonthebasisoftheabove,andconstructsathree-dimensionaldensemapwhileimprovingthespeedofthealgorithm.Inaddition,thispaperproposesanimprovedICPalgorithmtobetterachievethethree-dimensionalreconstructionprocessofindoorscenes.Afterexperimentalverification,thethree-dimensionalscanningsystemstudiedinthispapercansuccessfullycompletethereconstructionofindoorscenesandobtainacompletethree-dimensionalmodel.Keywords:three-dimensionalscanningsystem;Kinect;Calibration;ORB-SLAM;IterativeClosestPoint绪论1.1课题研究背景及意义近些年,随着计算机视觉、图形技术在许多领域的极大运用,且在一些场合早已利用机器视觉来替代人眼进行测量及判断,实现人的视觉功能,即用计算机识别客观三维世界。利用三维扫描联合数字化技术,将具有立体三维数据的客观实物模型在计算机的虚拟世界中重新构建,这就是三维扫描技术。三维扫描技术具有极为广阔的应用前景,无论是在计算机视觉方面,还是在逆向工程、快速成型、虚拟现实等领域,其都具有鲜活的生命力。然而与此同时,伴随着人们对于三维重建模型更加精准、广泛、深入的要求,三维扫描技术愈加面临更为严苛的挑战。这不仅要求研究人员进一步的开发出三维模型的更多功能,在任意观察的基础上,更需要不断改善重建的三维模型的效果,同时改进模型建立的步骤,更为简便、快速的构建三维模型,使得三维建模得到愈加广泛的利用。一般而言,三维重建具有相机标定、彩色及深度图像获取、图像特征点提取、帧间匹配、三维重建等基本步骤,但是在重建过程中,由于光照条件、相机的几何特性、噪声干扰、景物几何形状畸变、表面物理特性等等原因,匹配得到的虚拟模型仍需着重考虑运用不同措施提高精度、减小误差等。然而这些问题也困扰着许许多多的研究人员,不仅仅受限于算法和建模方法,所采取的设备问题也影响着建立的模型效果。随着科技的发展,国内外市场上出现了一些价格低廉但应用效果良好、前景广泛的深度传感器,这些传感器在获取RGB彩色图像的同时,也能提供三维信息且具有良好的实时性。2009年,微软公司设计并推出的Kinect传感器具有十分强大的功能,其本身价格也较为低廉,得到了机器视觉的研究人员的广泛青睐,并不断开发。因此,本文采用Kinect传感器作为手持设备,构建并设计一种针对室内场景的三维扫描系统。1.2三维扫描系统的研究现状三维扫描是一种融合了光、机、电和计算机为一体的科技手段。其主要针对现实物体的物理表面、物理结构及色彩进行扫描,获取物体在一定空间内的三维坐标。随着科学技术的不断发展,对三维扫描技术的研究愈加深入,如何快速、精准、有效的进行三维扫描成为当前研究的热点和难点。根据使用技术的不同,三维重建的方法主要分为三种:基于立体视觉技术的三维重建;基于激光扫描技术的三维重建;基于激光相机和彩色相机的三维重建。这些不同的重建手段正是相对于不同的扫描方法。相对而言,基于立体视觉技术的三维重建速度较慢,在精度要求上也差强人意,因此应用领域十分狭小;而基于激光扫描技术的三维重建虽然精度高、速度快,但是很难得到实际物体表面的纹理信息,所构建出来的三维模型效果不够直观。鉴于此,有学者提出了第三种方法,即利用激光和彩色相机,在得到精准的实际物体的几何模型的同时,另一方面通过纹理映射,使得对应图像的几何模型在匹配后能够得到较好的三维可视化效果。事实上,三维扫描技术在国外研究的比较早,并且取得了一定的研究成果。利用激光扫描仪和高分辨率的彩色相机,IBM的H.Rushmeier和F.Bernardini领导的团队精确扫描了米切朗基罗佛罗伦萨圣母怜子雕像,结合模型的几何数据与彩色相机的色彩信息,重建出较好的三维效果REF_Ref10492\r\h[1]。Debevoc,Taylor等构建出Facade建筑物重建系统。甚至包括基于RGB-D相机三维重建的开山之作,首次实现实时稠密的三维重建,即ShahramIzadi等人利用微软公司发布的Kinect传感器研发出的KinectFusion算法。相较于国外,国内的三维扫描技术研究较晚,在技术手段等方面涉猎不深,对于模型的重建效果也未能达到理想地步,因此具有很大的进步空间。1.3课题研究内容及总体设计方案本文主要的研究是利用手持式Kinect传感器构建并设计针对于室内场景的三维扫描系统。在完成Kinect相机的标定之后,采集彩色图像与深度图像,并通过跟踪获取图像特征点计算Kinect位姿,有效改善相机获取深度图片存在误差及图像噪声等问题,实现局部地图构建。利用回环检测降低累计误差,运用G2o优化位姿图。与此同时,在ORB-SLAM系统所构建的是稀疏点云地图基础上,通过提取关键帧,获取更多的图片像素,在提高算法速度的同时构建出三维稠密地图,取得更加良好的重建效果。总体设计方案如下:第一章绪论:主要介绍课题研究的背景发展历史及现状,概述本文的主体设计思路。第二章标定:在介绍Kinect相机及其深度测量原理之后,采取合适的方案进行相机的标定,建立相机成像的几何模型,并对标定结果进行评估,提高标定的精度和算法的稳定性。第三章处理采集的图像:分别对于RGB图像和深度图像进行处理,获取图像匹配特征点,并估计关键帧之间的匹配关系,构建局部地图,与此同时,不断进行回环检测,以降低视觉里程计过程中误差的积累,并利用G2o优化回环位姿图。第四章构建三维稠密地图:由于ORB-SLAM存在的局限性,其只能构建稀疏的点云图,在此基础上,提出提取关键帧的方法来筛选有效合适的图像,减少构建地图的时间提高效率与构建效果。介绍传统ICP算法,并提出新的改进的ICP算法,在相对比较的基础上,优化整体构建结构,以达到初始的目的。第五章实验:介绍整个实验流程,并借助一次实时有效的实验操作及采集数据来验证本文设计思路与设计结果的优劣。第六章总结与展望:对本文所有涉及的过程进行总结与评估,分析尚存的问题,提出之后可能存在的改进工作。Kinect传感器的相机标定2.1Kinect简介Kinect最早于2009年6月2日在E3大展由微软正式公布,并作为XBOX360体感周边外设(开发代号“ProjectNatal”)。2010年11月4日,Kinect在北美正式发售。图2-1KinectKinect设备上存在三个镜头,中间为用于采集RGB图像的RGB相机;左右两侧分别为红外线发射器和红外线CMOS摄影机,两者相互作用构成3D结构光深度感应器,用于采集深度数据REF_Ref20934\r\h[2]。作为游戏设备出生,Kinect本身并没有任何控制器,其利用相机跟踪客观立体空间中玩家的肢体运动,同时具有还辨识人脸、声音等功能,但由于一些原因,Kinect一直未曾被正式用于Windows平台上的开发。2011年6月,在众望所归之下,微软终于推出KinectforWindowsSDKBeta,这一发展为各领域的研究人员开启了探索充满无限可能的旅程。2.2Kinect深度测量原理在现今的3D深度摄像技术中,三种主流方案并肩而立,他们分别是TOF、结构光、双目成像:TOF(TimeOfFlight):TOF系统是一种光雷达系统,一方面从发射极向物体发射光脉冲,另一方面接收器通过计算光脉冲从发射器到对象,然后以像素格式返回到接收器的运行时间计算被测量对象的距离。结构光(StructuredLight):摄像头采集投射到物体表面的特定的光信息。通过检测物体带来的光信号的变化,计算一定空间中物体的三维数据和深度等信息,并以此复原整个三维空间。双目成像(StereoSystem):采用双摄像头拍摄物体,基于三角形原理计算物体距离。图2-2三种主流的3D深度摄像方案对比目前最新的Kinectv2采用的是ToF相机。本文所使用的Kinect为v1版本,故对此不再赘述。Kinectv1的深度传感器采用“光编码(LightCoding)”的方式,即结构光,读取投射的红外线pattern,通过pattern的变形取得深度信息。“LightCoding”是基于以色列公司PrimeSense的三维测量技术,于2013年被微软收购REF_Ref11361\r\h[3]REF_Ref11714\r\h[4]。其中具体步骤为:红外发射器向外发射红外线,经过衍射光栅被分成多束,在空间碰到照射中的物体会在形成一个随深度变化而变化的散斑图案,同时产生反射,然后由红外接收相机接收反射回来的镭射散斑,进行一定运算从而得到物体的深度信息。图2-3深度信息计算原理图在采集深度信息之前,需要对光源进行标定。Kinect测量范围一般为1m-5m,以10cm为间隔选取参考平面,记录平面上形成的散斑图像,一共得到40份具有一定差异的散斑图像。由图2-2所给出的测量计算原理图可知,红外发射器L发射红外线,照射到参考平面上在O点形成散斑,被红外接收相机采集到后在其内部成像为O’点。同理,对于实际存在的对象目标,红外发射器L发射红外线在其表面形成散斑k点,在红外接收相机内部成像为k’点。Kinect到参考平面的实际距离为设定值Zo,红外接收相机的焦距已知为f,两个相机之间的距离为b,目标物体的上形成的散斑点与参考平面散斑点在红外接受相机内部成像的距离为d,那么计算Kinect传感器到实际物体之间的距离Zk可通过以下推导:(2-1)(2-2)由式(2-1)和式(2-2)得:(2-3)式中,Zo、f、b、d均为已知,显然可计算得到此时的深度信息Zk。2.3MATLAB标定过程相机标定即建立摄像机成像的几何模型,得到相机的内外参数。为了能够得到客观世界中存在的空间物体表面某点的三维几何位置和它在相机获取的图像中对应存在点之间的相互关系,标定是必不可少的。张正友教授在1998年提出了一种基于单平面棋盘格的新标定方法,其所利用的是一个简单的打印出来的棋盘格,而不是如传统标定方法必须有高精度标定物参照,这一方法也只需要简简单单的步骤就能完成,因此得到了广大机器视觉研究者的青睐。一般标定过程主要利用到三个不用的坐标系统,图2-3揭示了世界坐标系、摄像坐标系及图像坐标系之间的联系。在下图中,点O为相机光心,Zc轴为相机光轴,O-O1为相机焦距。点P是客观世界中存在的某个点,其成像在图像坐标系中对应点p。图2-4世界坐标系、摄像坐标系和图像坐标系世界坐标系通过平行和旋转得到摄像坐标系,再由针孔摄像机得到图像坐标系,根据像素和公制单位按一定比例得到图像像素坐标系。针对本文所利用的Kinect传感器进行标定的方法有很多,本文采用MATLAB对Kinect进行标定REF_Ref12582\r\h[5]。图2-4是实验室准备好的标定板,图中黑白格子之间的顶点即为角点。图2-5实验标定板将标定板放在Kinect相机最佳拍摄范围内,Kinect不动,每拍一张照片,将标定板移动位置,不断改变其朝向和放置角度,拍摄约十五至二十组照片并保存。启动MATLAB中的标定工具箱“CameraCalibrationToolbox”(图2-5),载入拍摄的标定板图片。图片的处理需要检测并提取角点,如图2-6所示,之后对于角点进行进一步细化,提高标定精确度。图2-6CameraCalibrationToolbox图2-7提取角点MATLAB计算参数时,由于图片拍摄可能产生失真或由于光线、距离等原因,可能产生较大的误差,需要仔细检测每一幅图片在检测角点的过程中是否检测成功,对于提取角点较为失败的图片有必要将其排除,因此在第一步拍摄标定板时可以多拍摄一些作为备用。计算完成后得到最终结果,将Kinect相机参数列表2-1:参数名称深度相机(像素点)RGB相机(像素点)焦距fx522.3988532.0164fy523.5541534.7330中心点cx318.6899315.2386cy269.1692269.6484径向畸变K10.0353-0.2125K2-0.11580.2158切向畸变P10.00230.0015P2-0.012-0.0016标定误差ex0.15840.2514ey0.17650.2205表2-1Kinect标定参数从表格中可以看出,Kinect的深度相机和RGB相机的径向及切向畸变值都较小,像素点误差均小于0.3,对于本次实验所要求的精度其标定可靠性已经能够满足。在后面的建模步骤中,标定得到的部分参数可以直接被采用。图像特征匹配与局部地图构建ORB-SLAM是由RaulMur-Artal,J.M.M.Montiel和JuanD.Tardos在2015年于IEEETransactionsonRobotics上发表提出。它是一个基于特征点的实时单目SLAM系统,能够应对各种规模不同或室内室外的环境变化。随着技术的改进,ORB-SLAM2应运而生,其在ORB-SLAM的基础上,支持标定后的双目相机和RGB-D相机。如此,在这样的环境下,本文利用Kinect传感器做进一步开发利用。3.1匹配特征点的获取在计算机的图像处理中,特征点是指图像中存在灰度值发生较大变化的点或者在图像边缘上曲率变化剧烈的点。图像特征点揭示了图像的本质特征,它的存在在图像匹配时有着极大的作用。特征点是由关键点(Key-point)和描述子(Descriptor)两者组成。一般,“SIFT特征”即指“提取SIFT关键点,并计算SIFT描述子”。关键点是指该特征点在图像中的位置,其中存在部分特征点具有朝向、大小等信息。描述子是以关键点为基础而建立,依照某种人为设定的方式用于描述该关键点周围像素的信息。描述子是按“外观相似的特征应当有相似的描述子”的原则设计的。因此,如果存在两个特征点的描述子在空间向量上距离较为接近,那么就可以认为它们是相同的特征点REF_Ref26978\r\h[6]。2011年,EthanRublee,KurtKonolige,VincentRabaud和GaryR.Bradski等人发表了论文《ORB:AnefficientalternativetoSIFTorSURF》。论文中提出的ORB特征结合了改良后的FAST角点提取和BRIEF描述子,在匹配性能、计算速度以及在专利要求上都可以替代SIFT和SURF算法。提取ORB特征有两个步骤,第一步是FAST关键点提取,第二步是BRIEF描述子REF_Ref15590\r\h[12]。一方面,由于FAST特征点本身的局限性,其并不具有尺度不变性。为了解决这个问题,可以构建高斯金字塔,对于其中每一层的图像上存在的角点进行检测,并以此实现尺度不变性。与此同时,针对FAST特征点不具有方向的问题,ORB中提出了基于灰度质心法的解决方法:假设角点的灰度与质心之间存在一个偏移,该向量表示一个方向。对于任意一个特征点p来说,定义p的邻域像素的矩为: (3-1)其中,I(x,y)为点(x,y)处的灰度值。则图像的质心为:(3-2)特征点与质心的夹角定义为FAST特征点的方向:(3-3)同时,为了提高旋转不变性,x和y应当确保在半径为r的圆形区域内,即,r为邻域半径REF_Ref28752\r\h[7]。另一方面,BRIEF描述子是一种二进制字符描述子,它的描述向量为:(3-4)其中,(3-5)p(x)是图像块p中点x的强度。τ是围绕图像块中心的高斯分布。如果n选为256的话,fn(p)就是256维的向量。BRIEF所使用的二进制,十分便于存储,适用于实时的图像匹配。由于原始的BRIEF描述子不具有旋转不变性,因此图像的旋转会导致匹配性能大幅下降。ORB根据之前关键点的方向进行图像的旋转,得到“steerBRIEF”,然而这中间依然存在特定方向的角点关键点使均值发散的问题,导致其方差亏损,匹配时错误率发生明显上升。因此,BRIEF采用贪婪搜索,针对所有可能存在的τ进行搜索,找出同时具有0.5均值及高方差而且相互之间不干涉的τ,这样的最终结果称为rBRIEF。在这两方面考虑的基础上,ORB在平移、旋转和缩放的变换下都具有良好的表现。因此,本文采用ORB特征提取算法,可以得到较为理想的效果。3.2相机位姿跟踪在已成功获取特征点的基础上,需要通过之前图像帧的运动模型来计算当前图像帧的Kinect位姿。本文采用光流法跟踪其位置REF_Ref14934\r\h[8]。利用图像中的像素存在于时间域的变化求解出物体在所成图像中像素运动的瞬时速度s=(u,v),估算相邻帧间存在的运动信息上的对应关系。假设图像帧中像素的光流运动微小且亮度不变,由光流法原理则可以得到,展开得:(3-6)即有,令,得:(3-7)像素点为N时: (3-8)记为,则有:(3-9)用3.1中ORB所描述的地图点与在检测到的预测点附近的特征采取匹配,选择其中最小汉明距离的特征点作为匹配点,并采取非线性优化最小化重投影误差(Reprojectionerror)的方法计算位姿。如果跟踪失败,则重新计算ORB特征和每个图像帧的点云的对应关系,应用随机采样一致性(RandomSampleAndConsensus,RANSAC)算法进行一致性模型参数估计,从而找到近似的模型参数,然后利用PnP(Perspective-n-Point)算法估算相机位姿。在获得位姿之后,则可重新跟踪。3.3局部地图构建在获取ORB特征和匹配特征点之后,估计图像帧之间的对应关系并进行匹配。如果匹配成功,那么利用BA(BundleAdjustment)优化估计重建地图中点位置和图像关键帧位姿。假设是第j个三维地图点,是第i个关键帧的位姿,那么有:(3-10)其中,是协方差矩阵,是Huber函数。且: (3-11)(3-12)其中,为第i个关键帧上所观测到的第j个地图点;CamProj可以计算地图点在已经得到的Kinect位姿上的投影;、、、为Kinect传感器的内参。Kinect在拍摄到新的图像后,所获取的图像帧就被添加进之前构建的地图中REF_Ref15002\r\h[9]。构建时,需要通过已经得到的信息估计完整的环境地图,在拼接时不断回环检测以降低视觉里程计过程中所积累的误差,并利用通用图优化框架(GeneralGraphoptimization,G2o)进行优化REF_Ref16491\r\h[12],对位姿漂移和匹配错误进行修正,如图3-1,其公式为:(3-13)其中,。是位姿到的相似变换,是图像边的信息矩阵。图3-1回环检测位姿图经过回环检测,每当Kinect变换位置,所获得的新的图像关键帧经过优化会被添加进已构建地图中,并通过回环和之前的关键帧建立联系,之后初始化成为新的地图点,逐步实现局部地图的构建。基于ORB-SLAM的三维稠密地图构建4.1关键图像帧的提取在ORB-SLAM系统中,其所构建的三维地图由于受到其本身的限制,只能是三维稀疏点云地图,其清晰度不高、分辨率低,结果差强人意,相较于本文所制定的目标而言还未能达到。因此,在ORB-SLAM的基础上,本文采用了提取关键帧的算法弥补其缺点REF_Ref15002\r\h[9]。如果将Kinect传感器所拍摄的所有帧图像的点云都融合到三维地图中,一方面大大提高了系统的运算难度和运算时间,降低了系统的实时性能,另一方面在匹配时可能产生的冗余会极大的影响构图效果REF_Ref482964287\r\h[16]。为此,在构建地图时需要有选择性的提取关键图像帧进行匹配操作,在不影响建图分辨率的前提下,提高算法的灵活性和简易程度。本文采取基于空间域的方法提取关键图像帧,其核心是只有当新的图像帧满足一定条件时才把它作为关键帧加入到已构建的局部地图中,即需求有一定间隔的图像帧,其计算公式为:(4-1)其中,min_norm和max_norm为Kinect运动的最小和最大幅度,即只有在该区域内,才将这一图像帧视为关键帧,本文实验中分别取值为0.4和5;为初始化的图像帧与新的图像帧的位移矢量;r为相邻帧的Kinect运动旋转角度。针对于室内场景,在选取关键图像帧构建三维稠密地图时,需要考虑系统的运算复杂度,原始的对于图像场景的处理可能会占用计算机的极大内存,为了减轻计算机的负荷,有必要设计较为简便的算法,使得程序的运行更为快速。4.2传统ICP算法从20世纪80年代中期开始,点击数据的配准研究得到了广大学者的青睐1992年,计算机视觉研究者Besl和Mckay提出了一种层次的基于自由形态曲面的配准方法,即迭代最近点算法ICP(IterativeClosestPoint),其也是现今最为经典的ICP算法。ICP算法包含两部分:对应点搜索和位姿求解。它以寻求点集之间的匹配关系为目的,求解两个点集之间的平移和旋转量REF_Ref32602\r\h[10]。假设M、P为曲面S上两个点集,M是基准数据点集(可以理解为两个不同坐标系中的点集),而P是待配准点集,那么ICP算法的基本步骤为:搜索最近点:取点集P中的一个点p(i),在点集M中找到距离p(i)最近的点m(i),则(pi,mi)构成一组对应点集,两个点之间的旋转和平移存在某种关系,即(R,T),则是所要寻求的矩阵。求解变换关系(R,T):计算点集P和M的重心坐标,之后将点集中心化,获得新的点集和其正定矩阵N。由正定矩阵N的最大特征向量等价于残差平方和最小时的旋转四元数计算,并将其转换为旋转矩阵R。求得R后,平移向量T可以通过两个坐标系的重心点和旋转矩阵确定。应用变换:对点集P中的每一个点p(i)运用得到的变换关系,计算后得到点集P2,定义函数为E:(4-2)根据精度要求,定义终止迭代的实际条件,即E小于一个具体值时停止迭代。重复迭代:如果某次迭代满足要求,则终止迭代,输出最优变换关系(R,T),否则继续迭代直到达到需求,同时需要注意的是,在每一次迭代开始时都要重新寻找对应点集。迭代结束后,即完成了点云数据的配准,得到相对应的三维模型。4.3改进ICP算法经典的ICP算法在迭代过程中通过对图像间的对应关系和相对变换矩阵近不断修正,直到其收敛至局部最优,但是这对点云初始位置有着较高的要求,易陷入局部最优解的问题,且配准效率较低。为了防止这样的问题出现干扰重建模型效果,本文在随机抽样一致算法(randomsampleconsensus,RANSAC)与ICP相结合的改进RANSAC-ICP算法的基础上进行优化,利用k-dtree搜寻最近点算法提高匹配的准确度REF_Ref15590\r\h[15]。RANSAC-ICP算法的流程框架如图4-1所示。图4-1RANSAC-ICP算法流程框架通过RANSAC粗配准可以得到相对变换T(p),将其作为RANSAC-ICP算法的输入值。由RANSAC算法的知识可知,T(p)表示对点p进行刚性变换,T(p)=Rp+T。RANSAC-ICP最终输出为最优变换T*(p)。Extract_RGB_Point_Featrure函数可以从待配准的图像帧和已初始化的图像帧中提取稀疏ORB特征点云Ps、Pt。利用RANSAC算法得到的T(p)完成初始化,之后通过重复采样确定特征点的内点数,最优变换即为变换后内点数最大的变换。后三步是基本的ICP配准算法,其基于最小二乘法,计算出最优刚性变换直至满足收敛精度,具体步骤为REF_Ref15446\r\h[11]REF_Ref16491\r\h[13]:计算点集Ps中每一个在点集Pt中的最近对应点。求取满足(1)中平均距离最小的刚性变换T*:(4-3)对点集Pt应用变换矩阵,并取得新的变换点集。当新的点集与参考点集满足条件,即平均距离小于阈值时终止迭代REF_Ref2564\r\h[14]。在RANSAC粗配准下,继续采用k-dtree快速搜索最近点对,以此提高点云配准的速率REF_Ref15583\r\h[12]。其算法步骤为:对比待配准点与确定的分裂维的值的关系,如果待配准点小于或等于分裂维的值,那么其进入左子树分支,反之则进入右子树分支。在分支中继续比较,直到二叉树的叶子结点,在此情况下,只要沿搜索路径就可以找到和待配准点处于同一子空间的最近对应点。对点进行回溯,如果在搜索路径中存在别的子空间有更近点,则进行跳跃去寻找距离最近的点。反复执行上述步骤直到搜索路径为空时结束REF_Ref3971\r\h[17]。同时,为了防止错误匹配点对系统构建模型的影响,本文借鉴K最邻近(K-NearestNeighbor,KNN)算法的思想REF_Ref15596\r\h[18],在匹配图像中剔除非同一区域的匹配点对,具体步骤如下:在排序后的匹配点对中选取N组高质量的匹配点对。每次采样时,随机选取3组匹配点对进行模型估计,得出矩阵参数(A,T)。其余的匹配点在通过变换矩阵变换后统计出误差小于内点误差阈值的点对数量。不断迭代,统计得出每一组参数返回匹配点对数量最多的模型参数值。迭代到最大次数后,返回匹配点对数量最多的变换矩阵模型参数。实验重建5.1实验设备及环境本文主要的研究是利用手持式Kinect传感器构建并设计针对于室内场景的三维扫描系统,因此主要实验环境是在室内。由于Kinectv1本身采用结构光的形式进行深度测量,有必要避免强光源干扰实验。操作人员手持Kinect对室内场景进行扫描,与此同时在计算机中同步实现数据的采集与保存,当扫描结束后,针对储存的大量数据进行操作,通过特征点提取、相机位姿及轨迹求取、关键图像帧提取、点云配准等步骤实现三维模型的建立。实验需要装有Linux系统的计算机,主要利用的开发工具及软件平台MATLAB,C++,OpenCV,Codeblock,ORB-SLAM等。5.2实验操作及结果分析启动Kinect和相关软件后,手持Kinect对室内场景进行扫描。本文选取的室内场景如图5-1所示。操作人员在手持Kinect拍摄场景时,需要有一定的移动规律。由于三维建模存在闭环检测的步骤,如果在移动后对之前的同一场景反复拍摄,那么在建模还原的过程中可能导致图像帧匹配错误,其视觉里程计累计误差过大容易导致模型出现重影、错乱等问题。图5-1-1原始室内场景图图5-1-2原始室内场景图此外,因为特征点在检测过程中可能跟踪丢失,使得建模过程中存在匹配间断问题,所以在拍摄时镜头需要慢慢移动,并时刻关注计算机中显示的实际拍摄场景和在Codeblock下的包含特征点的图像,避免特征点在其中的跳跃,保证跟踪不会失败。在设计好最佳路线后,对场景进行较为仔细的拍摄。Kinect在跟踪过程中得到的深度图像和彩色图像受限于拍摄角度问题,对于同一物体某部分被遮挡的地方有必要更改拍摄角度,观察成像。当Kinect回到最初的起点后,保存拍摄的文件,执行关键帧的处理及模型重建。初次拍摄完成后,生成的文件大约在25G以上,对于计算机而言,要处理这样的较大工程是个不小的负荷,甚至在处理过程中可能出现超出运行内存而跳出或死机,因此有必要提取关键图像帧。图5-2为Linux系统下还原拍摄场景过程中的轨迹跟踪,图中包含关键图像帧;图5-3为不包含关键图像帧的轨迹跟踪。图5-2包含关键图像帧的轨迹跟踪图5-3不包含关键图像帧的轨迹跟踪从上面两个图的对比可以明显发现,提取关键帧后对于图像的处理将会变得更加简单,去掉了许多的冗余帧。一方面,大大减小了在之后建立三维模型所要处理的文件,减轻了计算机的负荷也很大程度上减少了运行时间;另一方面,有效的降低视觉里程计过程中所积累的误差,避免出现较大的匹配错误,提高了模型的还原效果。在此基础上,做进一步处理,针对提取的关键帧和其循环位姿图可以得到最后的室内场景的整体三维模型。图5-4构建失败的三维模型图5-4展示了模型构建中的一个错误典型。图中可以清晰的发现模型中存在许多“漏洞”,不仅仅对于地面的建模出现较大的错误,对于其中物体的构建也并不完整。这一方面是由于拍摄中对于特征点的把握并不理想,出现多处的跳跃,虽然在之后的处理中有针对的进行算法上的修复与改进,但是仍然达不到理想目的;另一方面是对于图像的处理出现问题,没有提取关键图像帧,从而导致运用改进的ICP算法进行点云拼接时累计误差过大,且匹配效果较差。对比之下,图5-5是注意了特征点和位姿跟踪,以及在提取关键帧的基础上运用改进ICP算法构建出的模型。图5-5构建效果较为完好的三维模型图5-6模型部分细节图在图5-5中,对于细节的处理较为完整,在整体建模效果良好的情况下,也能够清晰的看见室内盆栽、书桌、书架等物体的三维模型,其余的物体也没有出现错乱等情况。在图5-6中,从对盆栽及书架构建模型的细节来看,尤其是对于二者本身存在的层次性有着较为理想的构建效果。由此可见,本文所设计的室内场景的三维扫描系统其实现建模效果良好,在ORB-SLAM的基础上对特征点的提取和提出的提取关键帧及改进的ICP算法都能够较好的实现本文设计目标。通过三维模型,可以任意观察一个房间的边角和摆放的物体并做进一步详细了解,十分简便。总结与展望6.1工作总结本文详细的阐述了三维扫描系统在时下的研究意义和国内外的发展现状,并构建与设计了手持式室内场景三维扫描系统的方法。只需要利用Kinect相机就可以完成对于室内场景的扫描,在计算机的帮助下通过一定的步骤和算法实现室内场景的三维模型的建立,操作简便,构建效率较高且构建模型效果良好。本文完成工作大致如下:介绍了手持式设备Kinect的详细参数及其先今发展状况,并叙述了3D摄像的深度测量原理及三种主要方法完成了Kinect相机的标定对室内场景三维建模的详细步骤及主要操作流程进行了介绍概述了ORB-SLAM系统中存在的各种问题,介绍ORB特征点的获取,提出了提取关键帧的方法提出改进ICP算法,实现三维稠密地图的构建,得到良好的室内场景三维模型,并通过对比实验阐述算法的优越性6.2展望本文所提出的手持式室内场景三维扫描系统,其操作十分简便,算法流程也得到改善,得到的模型效果较为理想,未来在房地产、3D打印等方面可以广泛应用。但是由于一些原因也存在一些不足之处:本文采用的Kinect版本为v1,相较于近来得到开发和进一步优化的v2版本而言,设备本身深度测量的结构光原理具有一定局限性,v2的ToF相机则拍摄图像更为优秀。其次,虽然手持式扫描可以无视房间结构问题有效的进行全面扫描,但是会存在人为误差,需要操作人员仔细并且耐心的扫描全景,否则在后期处理过程中可能出现较大的漏洞或累计误差。此外,受限于实验条件以及本人水平,所涉及的算法还是十分基础和浅薄的,希望在以后的学习过程中能够对于机器视觉等进一步研究,学习并提出更为优越的算法。机器视觉在现今作为研究领域的热门,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论