基于深度相机设计_第1页
基于深度相机设计_第2页
基于深度相机设计_第3页
基于深度相机设计_第4页
基于深度相机设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1绪论1.1研究课题的目的点云[1]是由3D扫描硬件收集的空间中的一组数据点,是传感器检测到的3D位置的集合,由给定坐标系定义。点云通常由3D扫描仪产生,3D扫描仪测量周围物体外表面上的大量点。例如,在3D坐标系统中,点云可以定义一些真实或创建的物理系统的形状。点云用于创建3D网格和用于3D建模的其他模型,用于许多技术和应用领域:建筑,质量评估和保证,军事三维制图[2],环境监测,农业和林业,数字娱乐[3],生活中随处可见的电影和其他娱乐节目等。点云描述的物体可以小到几毫米,或者像整个城市一样大,包括建筑物,道路,树木和汽车。在坐标信息旁边,它们还可以包括颜色,映射到每个单独的3D点,从而给出非常逼真的呈现。使用3D点云来建模项目是减少在现场花费的时间同时生成更准确图像的常用方法。借此,本文以kinectv2传感器获取的RGB图,深度图为研究对象,重点阐述对三维点云数据的获取和三维点云处理算法的研究,实现物体的三维重建。1.2点云应用前沿有多种方法可以在现场收集高清晰度测量(HDS)[3]或3D点云数据。激光成像[4],检测和测距(LiDAR)使用脉冲激光发射光束并通过使用已知的光速和信号返回的时间量来收集大量数据点。基于相位的扫描仪将恒定的激光束发射到多个相位并比较返回的激光能量的变化。基于摄影测量的点云数据利用通过选择的软件包处理的数字摄影来创建3D点云数据。这些技术中的每一种都具有优点和局限。比如LiDAR[5]数据采集不像基于相位和摄影测量那样快,但具有更好的范围,并且通常比摄影测量更准确。基于相位的HDS[5]比LiDAR更快,并且可以收集非常密集和精确的近距离数据集。基于摄影测量的HDS比其他方法更实惠,并且由于重量更轻,可以更容易地与天线和地面设备一起使用。虽然这些方法已成为测量的标准实践已有一段时间,但目前正在引入新技术,这些技术大大提高了数据准确性,降低了成本并降低了健康和安全风险。无人驾驶飞行器(无人机)或无人驾驶飞机正迅速迎来测量员的新时代。无人机比有人驾驶飞机更便宜,功能更多,无人机可配备现成的数码相机,用于制作项目现场的重叠或“立体图像”。然后,立体图像用于生成3D点云的关键输出。捕获高质量数据以开发3D点云的好处不容小觑。要创建项目的精确模型,例如建筑物或桥梁,需要进行数千次精确测量。在过去,这些测量是手工收集的,这是一个耗时且有时很危险的过程,缺乏当今建筑师和规划师所要求的准确性和细节。现在就像将3D激光扫描仪指向目标一样简单,可以在几分钟内收集数百万个密集测量的测量结果。在Atkins[7],一直在使用这些工具安全地收集和建模全国数十个项目的准确竣工数据。位于纽约西点军校历史悠久的美国军事学院新建的戴维斯兵营就是利用HDS捕捉详细3D数据的一个例子。营房位于俯瞰哈德逊河的悬崖底部,因此任何使用传统方法对设施进行测量的尝试都将涉及排斥悬崖边以捕获准确的测量结果。这显然是一种危险且低效的工作方式。使用HDS捕获必要的数据集,然后将它们上传到点云中以创建准确的3D模型,有助于减少我们的现场时间,同时保证我们的人员安全。在无人机方面,一直在利用无人机进行各种调查项目,比如阿拉巴马州[8]调查穿越田纳西河的桥梁[8]和其他建筑物。这些数据将协助州和联邦紧急事务管理局(FEMA)更新FEMA的RiskMAP计划,以评估洪水风险,其也一直在使用基于无人机的技术进行建筑规划,最近一次是在今年早些时候协调美国主要机场的第一次商用无人机操作[9]。在未来,随着成本的下降和对移动性的需求的增加,开发基于地面和空中技术的混合的能力将为更加准确和有效的数据收集提供机会。更快的测量员和设计师适应这些进步,他们将更好地定位和设计未来的项目。1.3本文章节安排本文以Kinectv2获取实验图像,然后运用matlab进行编程,实现实验图像的三维重建算法,论文结构如下:第1章:主要介绍了论文中最重要的点云及其应用前沿。第2章:简单介绍Kinectv2摄像机的出现背景,及硬件结构。主要介绍了三个Kienctv2的摄像头,以及Kinectv2摄像机的成像原理TOF技术。第3章:介绍Kinectv2摄像机的一种成像模型——针孔模型,并且对涉及到的四种坐标系进行了介绍,并研究了相互间的坐标转换数学关系,并根据实际情况引入了切向畸变和径向畸变。第4章:对于Kinectv2摄像机获取的同一场景的RGB图和深度图生成单幅点云数据进行研究。第5章:点云配准算法(ICP)进行研究。第6章:展本毕设的实验过程,并展示了重要步骤的结果图,并对最后结果进行分析。2Kinectv2与深度图像2.1Kinectv2简介2013年微软[10]为室内视频游戏的手势识别开发了Kinect传感器,其具有红外传感器,可用于测量深度和构建3D点云。Kinect的第一个版本[11]生成640×480分辨率的彩色图像和320×240的深度图,每秒30帧[3]。它的第二个版本Kinectv2[12]采用了飞行时间(TOF)方法[13]而不是LightCoding™,并产生了512×424深度图以及1920×1080全高清尺寸彩色图像[3]。Kinectv2中使用的TOF扫描方法通过计算红外光发射的时间来测量深度,然后重新进入相​​机传感器。由于KinectV2的FOV[14](视场)水平为70度,因此只有一个Kinect传感器只可以扫描物体的正面。因此,有必要使用多个Kinect传感器来扩展FOV。另一方面,要构建全向3D点云,应在目标对象周围安装多个Kinect传感器。然后,需要在Kinect传感器之间进行校准以将扫描数据表示到公共坐标系上。图2.1即为Kinectv2的外观图。图2.1Kinectv2的硬件结构主要有摄像机和麦克风组成,本论文主要介绍kinectv2的摄像机部分[15],如图2.1所示,kinectv2有三个摄像头:1)彩色(RGB)摄像机:用于获取彩色(RGB)图像。2)激光器:又称红外发射仪,用于发射红外光,用于获取距离信息。3)深度(红外)摄像机:用于读取激光器发射的红外光,生成深度图像。本实验使用matlabAPP中ImageAcquisition的进行图像的获取操作。把Kinectv2摄像机和电脑连接,安装对应的驱动KinectSDK-v2.0_1409-Setup,使用matlabAPP中ImageAcquisition就能同步获取同一场景的RGB图和深度图。其中深度图像只有黑色,距离摄像机越近黑的程度越大比如椅子,距离越远黑的程度越小比如窗户。Kinectv2摄像机获取的RGB图与深度图如下所示:图2.2RGB图像图2.3深度图像2.2Kinectv2获取深度信息原理在上一小节2.1说到,在获取的深度图像中,每个像素点的坐标对应着空间场景中的该点到摄像机的距离,即深度图像指的是空间物体到摄像机成像平面的距离。对于普通相机相来说,其仅获取包含垂直于相机光轴的平面上的数据信息的二维图像,并且不包含空间对象的Depth数据信息[16]。对于Kinectv2获取的深度图像则含有Depth数据信息,每个像素点的值作为摄像机到空间物体中对应点的距离。深度图像通过提取出点云,从而进行ICP算法,完成三维重建[17]。在2.1小结中主要介绍了Kinect发展和Kinect的硬件相机的部分,可知Kinectv2可通过红外发射器和深度(红外)摄像机根据特定的算法来测量到空间物体的Depth数据(和传感器的距离信息)并生成深度图像,本节主要介绍kinectv2获取Depth数据的原理[19]。Kinectv2中使用的TOF扫描方法通过计算红外光发射的时间来测量深度,其原理图如下:图2.4Kinectv1和Kinectv2原理示意图TOF原理可以概括为:通过连续的向目标场景内的物体投射的红外线脉冲信号,让Depth传感器接收从空间物体表面反射的回来的红外光,根据红外光传输来回的总的时间,可以求出空间物体表面和Kinectv2摄像机成像平面的距离。计算深度的公式如下(2.1)所示。2d=cT(2.1)公式(2.1)中的参数,d表示距离,c=3*108m/s代表光速,T代表红外光传输来回的总时间。实际上,Kinectv2的TOF扫描方法,检测的是发射光和反射光的相位的偏移[18]和衰减[18]来得到Depth数据,其公式如下(2.2)所示:2d=phaseshift2πc公式(2.2)中的参数,d表示距离,phaseshift代表移相,c=3*108m/s代表光速,f代表传感器的调制频率[19]。相位差测量原理如图2.5所示:图2.5相位差测量原理Kinectv2的具体参数如表2.1中所示。表2.1Kinectv2的参数表视角水平视角70度垂直视角60度感应距离0.5~5.0m深度相机分辨率512*424帧率30fpsRGB相机分辨率1920*1080帧率30fps操作系统(OperatingSystem)Windows8USB接口USB3.02.3本章小结本章首先对Kinectv2的出现和获取的图像进行了简介。Kinectv2的相机硬件由彩色摄像机,激光器和深度摄像机组成,并由其获取实验需要的RBG图和深度图然后对Kinectv2所采用的TOF技术原理进行了介绍和说明。与Kienctv1采用的LightCoding技术不同,kinectv2采用TOF技术,通过检测发射红外光和反射红外光的相位的偏移和衰减来得到距离信息。3相机的标定3.1标定的目的和内容固定Kinectv2摄像机,可以获取同一场景的RGB图和深度图,本文通过matlab编程,可以由深度图算出对应的点云数据,由RBG图算出对应的颜色信息,从而得到彩色的点云图,实现该过程与相机的内部参数有关。标定的目的就是为从二维图像中提取点云提供数学参数,为RGB图像获取点云的颜色信息提供数学参数。标定内容包括:相机的内参以及旋转和平移矩阵。3.2相机的针孔模型与坐标变换图像的采集始于自然光线,来自特定光源(例如太阳)的光通过介质空间照射空间物体。大部分光被物体表面吸收,并且少量未被吸收的光被发射到相机中以供图像采集器吸收。解释该现象的一个简单的模型就是针孔摄像机模型[20],是一种相机线性模型[21]。Kinectv2获取二维图像的原理,在几何关系上可以用该摄像机投影模型来表示。Kinectv2的RGB摄像机和深度摄像机分别获取RGB图像和深度图像,其成像的视觉原理虽然相同,深度图像上的像素值仅代表的是Depth传感器与空间物体的距离,RGB图像每一个像素则表示颜色值。针孔摄像机模型,如图3.1所示,其中Z是针孔到物体的空间距离,X是物体的物理度量,x是物体在图像平面上投影,f是摄像机焦距。其数学关系可以通过相似三角形原理得到:-x=eq\f(fX,Z)(3.1)图3.1针孔摄像机模型、实际上,图像平面就是将投影屏幕放在针孔前面[21]。基于此将针孔相机模型重新组织成另一种等效模型,如图3.2所示,其中针孔平面和图像平面相互位置交换,针孔中点定义为投影中心。根据这个模型,可以认为每条射线源从物体表面上的某点开始,到达投影中心,光线与等效平面相交,就得到了与针孔模型大小相同的成像图形。定于等效平面为新图像平面,则投影中心到图像平面垂直距离为f。此模型目标对象不再反转,其三角关系为:eq\f(x,f)=eq\f(X,Z)(3.2)图3.2在图3.2中,点Q=(X,Y,Z)为空间物体上一点,从该点发射光线到投影中心,光线与图像平面的交点q=(x,y,f)就是成像点。Kinectv2获去取三维场景的图像,该图像被存储为数组形式,该过程涉及到四个坐标系[22]。四个坐标的关系如图3.3所示图3.3各坐标系间的关系四个坐标系的含义如下:(1)像素坐标系:在场景通过相机获取工作之后,其被存储为数组形式的数字图像。以像素为单位,如图3.4所示定义平面直角坐标系O0-UV,坐标(u,v)表示图像上一点的像素坐标,u是数组中像素的列数,(2)图像坐标系:图像坐标系来表示图像的物理位置。以毫米(mm)为单位,以光轴与图像平面的交点为原点,建立平面直角坐标系O1-XY,X轴平行于像素坐标系的U轴,Y轴平行于V轴。则(x,y)为像素在图像中的位置坐标图3.4图像坐标系与像素坐标系的关系(3)相机坐标系:以米(m)为单位,以摄像机光心为原点,建立空间直角坐标系Oc-XcYcZc,其中Zc轴垂直于成像平面并且与光轴重合,Xc轴与Yc(4)世界坐标系:以米(m)为单位,根据右手定则,建立三维直角坐标系OW由图3.3所示,设三维空间有一点P,定义其对应的世界坐标系坐标是PW(XW,YW根据三角形相似原理,可以得出相机坐标系坐标和图像坐标系坐标之间的转换关系为:Zcf=转化为矩阵形式为:xy由图3.4,图像坐标系坐标p(x,y)和像素坐标系坐标p'u=x其中dx,dy分别由X和Y方向上的单位像素表示的物理尺寸,即mm/像素。(u0,uv同样在世界坐标PW(XW,YW,ZW)与相机坐标pc(Xc,YXc在上式中,R是旋转矩阵,T是平移向量。将公式(3.4),(3.6),(3.7)相互联立,就得到像素坐标系坐标p'(u,v)与世界坐标系坐标uv1===KRT其中,fx=fdx,fy=fdyx,称为尺度因子。K是内参矩阵,fx、fy综上所述,可以把世界坐标到像素坐标的转换过程总结如图3.5所示。图3.5四个坐标系之间的转换关系根据3.2小结,我们列出相应的矩阵,如表3.1所示表3.1相机参数参数表达式内部参数[24]K=外部参数[24]R3*根据文献[25],总结图3.12和表3.1关系:K=fx0u003.3相机的非线性模型实际上,相机的镜头不能完全符合针孔相机型号的成像,主要是出于制造原因。实际上,找不到完美的镜头,并且在机械装配中,难以确保镜头和成像器完全平行。如果获取的图像的精度高,则镜头的失真不容忽视。我们需要采用相机的非线性模型[26]。镜头失真有很多类型,但最值得注意的是径向失真[27-29]和切向失真[[27-29]。所以,本文只介绍这两种主要的畸变。(1)径向畸变对于一些镜头,从镜头中心向外光线越来越弯曲。对于径向畸变,图像平面中心的畸变[30]是0,随着向外延伸,畸变的程度变大。如图3.6所示,正方形物体在图像平面成像,直边变的弯曲。图3.6径向畸变根据文献[31],这种畸变比较小,对于摄像机获取图像的图像坐标p(x,y),设矫正后的位置是p(xxcorrected其中k1和k2为径向畸变系数,(2)切向畸变因为在工业制造透镜时,不能完成其理论上的完美形状。所以透镜与图像平面平行关系会有误差,定义这种现象为切向畸变。如图3.7所示外部矩形网格点[32]的成像,该网格点在位置和半径上偏移。切向畸变可以用切向畸变系数p1,p2表示,数学公式xcorrected=x+[2合并公式(3.9),(3.10)得到:xcorrected其中(xcorrected,ycorrected)是真正的图像坐标。由图3.4几何关系,得到u=xcorrectedd用公式(3.12)代替公式(3.5),转化为新的矩阵形式,进行把3.1节的计算过程,即可得到非线性模型下的世界坐标到像素坐标的转换。图3.7外部矩形网格点的径向畸变成像3.4本章小结本章首先解释了相机标定的目的是为从二维图像中提取点云提供数学参数。再介绍了相机的线性成像模型-针孔模型,并完成了四种坐标系转换的数学关系的计算。总结本文实验中相机标定需要的得到的数据就是内部参数和外部参数,与二维图像坐标系到三维世界坐标系的转换步骤相互对应。根据实际的摄像机镜头的制作误差,我们考虑了存在的径向畸变和切向畸变,并基于此引入了相机非线性成像模型及其坐标数学关系。4彩色深度图像和坐标空间4.1图片配准根据2.1节知识,知道获取RGB图和深度图的是不同的摄像头,存储的图片也是在各自的坐标系下的数组形式,所以不能直接使用Kinectv2采集的深度图和RGB图生成彩色点云,这样点云拼接时会出现很大错误。本实验需要在计算点云数据之前需要先进行同一场景的RGB图与深度图的对齐,即RGB图像配准到深度图像,这样匹配准后的RGB图就可以直接提取其颜色信息,为深度图计算出的点云上色。根据3.2节的针孔孔成像原理,下面对RGB图像配准到深度图像的转换关系进行分析。在3D空间中采集一点P,定义其世界坐标为PW(XW,YW,ZW),因为Kinectv2摄像机的深度摄像头和RGB摄像头的位置不同,设点P在深度图像中:相机坐标为(XIR,YXRR其中R3*3是旋转矩阵,根据3.4小结,设KIR为深度相机的内参矩阵,KZc把公式(4.2)和公式(4.1)联立的得到uRR其中W4*4公式(4.3)就可以实现RGB图像配准到深度图像大小,进而可以提取RGB的颜色信息为点云上色。4.2单幅点云图生成根据参考文献[34]可知,Kinectv2的RGB和深度摄像头之前已针对径向失真进行了校正,且Kienct的切向失真很小可忽略不计。所以,本文的Kinectv2摄像机的成像模型不考虑非线性模型,即不在考虑畸变参数对采集图像的影响,直接采用本文3.2小节的针孔相机模型原理。根据3.2小结,我们知道二维图像坐标系到三维世界坐标系的转换关系。本节讨论由4.1小结得到的单幅RGB图像和对应的深度图一起生成点云图。对于配准好的图像形成单幅点云图,我们不再需要考虑旋转和平移,即旋转矩阵R3*3为单位阵,平移向量T3*1为零向量,带入公式(3.8),可以的到像素坐标与世界坐标的关系XW=Z其中,(XW,YW,ZW)基于图像的世界坐标系坐标,相应的像素坐标系坐标为(u,v)计算点云的关键代码如下:forv=1:(depthHeight)foru=1:(depthWidth)%applyintrinsicsz=single(depthImg(v,u))/1000;x=single((u-cx_d)*z)/fx_d;y=single((v-cy_d)*z)/fy_d;%applyextrinsictransformed=(transformMat*[x;y;z;1])';colorizedDepth_6layer(v,u,1)=transformed(1);colorizedDepth_6layer(v,u,2)=transformed(2);colorizedDepth_6layer(v,u,3)=transformed(3);endend首先根据公式(4.4)由深度图计算点云,然后根据配准好的RGB图像提取其颜色信息,得到彩色的点云图。配准图片和提取颜色信息关键代码如下:forv=1:(depthHeight)foru=1:(depthWidth)%ApplyRGBintrinsicsx=(colorizedDepth_6layer(v,u,1)*fx_c/colorizedDepth_6layer(v,u,3))+cx_c;y=(colorizedDepth_6layer(v,u,2)*fy_c/colorizedDepth_6layer(v,u,3))+cy_cif(x>rgbWidth||y>rgbHeight||...x<1||y<1||...isnan(x)||isnan(y))continue;endx=round(x);y=round(y);colorizedDepth_6layer(v,u,4)=uint8(rgbImg(y,x,1));colorizedDepth_6layer(v,u,5)=uint8(rgbImg(y,x,2));colorizedDepth_6layer(v,u,6)=uint8(rgbImg(y,x,3));r(j)=colorizedDepth_6layer(v,u,4);g(j)=colorizedDepth_6layer(v,u,5);b(j)=colorizedDepth_6layer(v,u,6);j=j+1;endendcolor=[r;g;b]';ptcloud.Color=uint8(color);如图4.1所示为Kinectv2获取的RGB图,图4.2是对应的深度图,图4.3为计算生成的点云图。图4.1RBG图像图4.2深度图图4.3点云图由于Kinectv2摄像机的局限性,所以三维点云是不完整的,详细解释见第5章。4.3本章小结本文介绍了由Kinectv2摄像机采集的一对RGB图像和深度图像形成一组点云数据的过程,即把RGB图像配准到深度图像大小和形成点云。为接下来进行ICP算法实现三维重建做下基础。5基于ICP算法的三维重建5.1基本理论点云配准,就是把从不同角度获取的同一个场景中计算出来的多个点云,通过点云配准,找到点云的相同的场景点,通过数学变换把这些点放在一起。所以点云配准的关键就是求解出,能把两组点云放到一起的数学关系。本文使用了基于ICP算法(详细解释见5.2小节)的点云配准技术。本文使用两组点云数据进行点云配准,算出来两堆点云的转换后再利用转换把第二帧变换到第一帧,然后与第一帧进行拼接。5.2经典ICP算法5.2.1算法原理和步骤Besl[35]和Mckay[35]在1992年提出迭代最近点算法(Iterative Closest Point,ICP),是两堆点云的配准算法。ICP算法的基本原理是:在待匹配的目标点云P和源点云Q中找到最邻近点(pi,qi),然后计算出最优匹配参数R和T,使得误差函数最小。误差函数为ER,T其中R是旋转矩阵,T平移向量,n是最邻近点对的个数,pi是目标点云P中的一点,qi是源点云Q中与ICP算法步骤如下,(1)在目标点云P中取点集pi(2)找出pi在源点云Q中的对应的点qi,使得(3)计算旋转矩阵R和平移矩阵T(求解过程见5.2.2,5.2.3或5.2.4),使得误差函数,即公式(5.1)最小;(4)计算得到新的点p(5)计算新的点pi'与源点云中对应点d=1(6)如果d小于某个阈值或大于预设的最大重复次数,则停止迭代计算;否则,返回步骤2重复计算,直到满足收敛条件。5.2.2刚性变换矩阵及目标函数根据上一小节可知,点云配准的最终目标是通过特定的旋转和平移变换将来自不同坐标系的两个或更多个点云数据组合到同一参考坐标系中。该过程可以通过一系列映射来执行。假设映射转换为H,则该H可以由以下等式表示:H=r其中R3*3=r11r12H=R公式(5.4)称为刚性变换矩阵。对于旋转矩阵R3*3R其中Rα,Rβ,Rγ分别表示则对于平移向量T3*1来说,三个分量t根据公式(5.3),(5.4),(5.5)可以知道刚性变换矩阵中涉及到六个未知数α,β,γ、tx,本文在同一场景,不同角度,Kinectv2获取两组图片计算生成两组点云数据。其中设第一组点云为P=pi,i=1,2…,m},第二组点云为Q=qj,j=1,2…,n}。取第一组为目标点云,第二组为源点云。使用f(R,T)表示在变换矩阵RT下的点集P与点集Q之间的误差。然后,求解最优变换矩阵的问题可以转换成满足min(f(R,T))的最优解fR,T通过最小化目标函数来求解最优变换矩阵,即求得刚体变换矩阵。传统的ICP算法中,求解刚体变换矩阵的方法有基于奇异值分解的方法[37]、四元数方法、正交矩阵法[37]和双四元数方法[37],本文使用四元数方法.5.2.3四元数方法爱尔兰数学家汉密尔顿[38]于1843年发明了四元数。根据汉密尔顿[39]的研究和相关研究人员的推导[39-42],单位四元数可用于生成旋转矩阵:R=α其中设单位数qR=α设平移向量qT=t1,pp根据公式(5.8)可以算出一个反对称矩阵A,其中Aij=(pp'-(pQ(p其中E为3阶单位阵。求解Q(pp')的特征值和特征向量,则最大特征值对应的特征向量即为单位数5.3改进的ICP算法在本文中,进行ICP点云配准之前,首先提取目标点云的SURF[39]特征点,然后源点云的对应兴趣点,去除不满足变化的野值,然后根据这些相匹配的特征点集进行ICP,这样可以大大减少经典ICP工作量,提高工作效率。Matlab关键代码和步骤如下:%%Step2:提取SURF特征点Points1=detectSURFFeatures(I1);Points2=detectSURFFeatures(I2);%%Step3:根据图像生成图像的特征向量[Features1,points1]=extractFeatures(I1,Points1);[Features2,points2]=extractFeatures(I2,Points2);%%Step4:初步建立一个匹配对(含野值)Pairs=matchFeatures(Features1,Features2);%showmatchedPoints1=points1(Pairs(:,1),:);matchedPoints2=points2(Pairs(:,2),:);%%Step5:预测放射变化,去除不必要的野值[tform,inlierPoints1,inlierPoints2]=estimateGeometricTransform(matchedPoints1,matchedPoints2,'affine');inlierIndices1=round(inlierPoints1.Location);inlierIndices2=round(inlierPoints2.Location);5.4本章小结本章首先介绍了ICP算法的背景知识,对经典ICP算法的过程原理进行了介绍,并对算法过程中涉及到的数学公式做了数学推导。最后提出改进的ICP算法,本文使用提取SURF特征点的ICP算法进行点云配准。6实验结果与分析6.1实验环境介绍本文三维重建实验中,使用Kinectv2摄像机采集RGB图像和深度图像,用Windows10系统的笔记本电脑,Matlab2019a软件实现算法。为了减少不必要的编码工作,本文使用了第三方库toolbox_calib.zip用于Kinectv2标定两个相机间的参数,即旋转矩阵和平移向量。6.2相机标定实验结果与分析根据第3章的知识和文献[43],分别进行Kinectv2摄像机的RBG相机标定,深度相机标定和立体标定。6.2.1RBG相机标定标定板的彩色图像如下:图6.1标定板RGB图像标定界面如下:图6.2RBG相机标定界面导出标定结果如下:图6.3导出的RGB相机标定结果径向畸变,切向畸变和内参矩阵如下:图6.3RGB相机内参标定板相对于RGB摄像机位置如下:图6.4标定板相对于RGB摄像机的位置6.2.2深度相机标定标定板的深度图像如下图6.5深度相机标定板标定界面如下:图6.6深度相机标定界面导出标定结果如下:图6.7导出的深度相机标定结果径向畸变,切向畸变和内参矩阵如下:图6.8深度相机内参标定板相对于深度摄像机位置如下:图6.9标定板相对于深度摄像机的位置6.2.3立体标定旋转矩阵R:图6.10旋转矩阵旋转角度:Rotationvector:om=[0.00249-0.004680.00951]平移向量:Translationvector:T=[-12.641470.061080.29195]T写成需要的形式就是:0.9999、相机与标定板相对位置如下:图6.11相机与标定板相对位置6.3三维重建实验和结果本节以kinectV2摄像机采集到的的RGB图像和深度图像作为处理对象,图6.12和图6.13是第一次采集到的同一场景的RGB图像和深度图像,这一对图像将形成目标点云。图6.14和图6.15是移动Kinectv2摄像机后采集的同一场景的

温馨提示

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

评论

0/150

提交评论