基于双目视觉的三维点云图重构毕业论文
2020-04-05 10:52:34
摘 要
近年来,计算机视觉一直处于科学研究的热门,其中双目立体视觉更是计算机视觉 的重中之重。双目立体视觉可以获得对象的三维细节,它是对人眼的视差原理并利用成像设备从不同的位置获取同一场景下被测物体的两幅图像,通过计算两幅图像之间互相匹配的点的位置偏差,来获取物体三维坐标与了立体几何信息的方法。本次利用双目立体视觉来实现三维点云图重构。
本次设计采用配以红外机构光辅助的双目立体视觉设备DM460三维深度传感器,因为其具有更好的环境适应能力和更高的精度。通过分析传感器输出的深度数据格式,确定设计方案。先利用相应的接口函数读出传感器缓冲器中的数据,然后创建OpenCV中的Mat对象接受数据,用于构建深度图像。在利用PCL库中的PCLVisualizer类进行 可视化初始化,在分析点数据的数据结构,将Mat对象中的数据进一步传递给PointClo ud对象,在相用该类中的相应函数输出点云图,实现三维重构。
本次论文首先对课题研究的背景、现行的三维重建技术进行了简单的介绍,其次详 细介绍了双目立体视觉获得物体三维数据中涉及的坐标系的变化,相机相关因素的矫正及平行对其的双目立体视觉的三维坐标恢复式。同时,简单介绍了硬件DM460的相关参数与整体方案。然后,先整体介绍了所使用的软件、开源库和程序总体流程图,其次分模块对程序进行说明,最后演示本次的研究成果。最后进行对本次研究的不足与未来发展进行总结。
关键词:双目立体视觉;深度摄像头;深度图;三维重建
Abstract
In recent years, computer vision has been a hot topic in scientific research, among which binocular stereo vision is the most important. Binocular stereo vision can obtain the 3D details of objects. It is the principle of parallax to human eyes and the method of using imaging equipment to obtain two images of objects under the same scene from different positions. By calculating the position deviation of points matching each other between two images, the 3D coordinates of objects and three-dimensional geometric information are obtained. The 3D reconstruction is realized by using binocular stereo vision.
This design adopts DM460 3D depth sensor of binocular stereo vision equipment with infrared mechanism light assist, because it has better environment adaptability and higher precision. By analyzing the depth data format of the sensor output, the design is determined. The corresponding interface function is used to read out the data in the sensor buffer, and then the Mat object in OpenCV is created to receive the data for constructing the depth image. The PCLVisualizer class in the PCL library is used for visualization initialization. In analyzing the data structure of point data, the data in Mat object is further passed to the PointClo ud object, and the corresponding functions in this class are used to output point cloud map and realize 3D reconstruction.
The paper begins with a brief introduction to the background of project research, the current 3D reconstruction technology, and then I'm going to give you a detailed description of the changes in the coordinates that are involved in the way to get 3D data of the object by using binocular stereo vision, and correction of camera related factors and parallel coordinate recovery of binocular stereo vision. At the same time, the related parameters of hardware DM460 and overall plan are introduced. Then, the software, open source library and the overall flow chart of the program were introduced, and the program was explained in modules. Finally, the research results were demonstrated. Finally, the deficiencies and future development of this study are summarized.
Key words:Binocular stereo vision;Depth camera;Depth map;3D reconstructio
目录
第1章 绪论 1
1.1课题研究背景 1
1.2研究的目的及意义 2
1.3国内外研究现状 2
1.4研究内容及方法 4
1.4.1研究方法 4
1.4.2研究内容 4
第2章 双目立体视觉系统原理 6
2.1相机的成像模型 6
2.2 相机成像的四个坐标变换关系 6
2.2.1相机成像的四个坐标 6
2.2.2 四个坐标系间的变换关系 7
2.3相机透镜畸变 10
2.4单相机的标定 11
2.5对极几何 12
2.6平行对齐的双目立体视觉模型 13
第3章 双目视觉的硬件方案 15
3.1总体方案设计 15
3.2硬件部分介绍 16
3.2.1 硬件参数部分 17
3.2.2 输出数据 19
第4章 基于双目的三维重构实现 21
4.1总体程序设计 21
4.1传感器设置模块 22
4.2内存分配模块 23
4.3数据获取模块 24
4.4深度图和左右目图像显示模块 25
4.4.1创建Mat对象 25
4.4.2深度图输出 27
4.5点云图输出 28
4.6程序演示 30
第5章 总结及后续工作 34
5.1论文总结 34
5.2存在不足及后续展望 34
参考文献 36
致谢 37
第1章 绪论
1.1课题研究背景
人类通过感官认知世界,而视觉信息则是重中之重。由研究表明,80%的外部信息来自于视觉。所以如果使计算机,机器等设备具备类似人眼的能力,这些设备可以更有效地更多地获取外界环境的信息。通过大量的信息这可以帮助其做出更为合理科学的判断。
计算机视觉就是为了帮助机器与设备获取外界信息而诞生的学科,所以可以说计算机视觉发展是其他科学研究发展的重要助力。
计算机视觉[1],是利用通过合理的算法利用计算机科学技术手段来模仿人眼的视觉功能,人眼的视觉实现基于人眼接受物体本身或物体反射发出的光,这些光会在视网膜上成像,视网膜上的锥状体主要对颜色信息高度敏感,杆状体一般感受视野内总体图像。并将信息通过神经末梢反馈给大脑形成图像感。计算机视觉技术是为了让机器也拥有同人类一样观看世界的能力。其主要研究内容是指用摄影机等图像获取设备和电脑代替人眼对目标进行图像获取,并进一步做图像预处理如消除因为光线,天气等原因造成图片内容模糊不清的噪声,在根据算法用电脑编写合适的程序进行处理使其变成更适合人眼观察或其他的仪器检测[4]。
双目立体视觉是计算机视觉实现三维数据测量的重要分支,我们知道在我们观察同一事物时,左眼和右眼成像中的相同物体存在着位置差异即视差,这也正是双目立体视觉实现的机理。根据视差,大脑会将左右眼的图像差异进行整合,从而得到深度信息。双目立体视觉技术就是通过使用两个摄像机从不同的位置,获取同一时间段下同一个场景的两幅图像信息,并使用双目视觉的视差原理来恢复该三维场景下的深度信息和立体几何信息。通常情况下,一个完整的双目视觉三维测量系统由图像获取,摄像机标定,特征提取,立体匹配,三维信息恢复这几个步骤构成。
三维重建技术是在机器上使用恰当的计算机表示和处理的数学模型来描述三维客观物体;是在计算机环境下处理、操作三维实物和分析其性质的基础,也是在计算机中构建表达客观世界的虚拟现实的关键技术;也是基于单视图或者多视图的图像来恢复三维信息的过程. 随着科学技术的进步与发展,现如今已经有许多的理论成果来支持三维物体的三维重构,本文选用双目立体视觉技术进行物体的三维点云图重构。
1.2研究的目的及意义
随着人们生活水平的提高,人们对图像信息的追求已从2D到了3D。同时,三维重建技术比二维信息能更加形象具体地反映物体本身,也受到了产品设计,工业检测等方面的需求。所以,我们对三维重建技术的要求越来越高,而不论从人们不喜欢等待,追求精致的事物,还是工业方面,对效率和精度追求。这都说明决定一个三维重建系统好坏取决于它的重建速率和重建精度。
现如今三维重建技术在各个领域都有很大的需求,不论是人们日常的生活娱乐还是工业中的质量检测,还是在工程上的设计辅助都有重大应用,我们可以将其总结如下:
1.快速成型,它是一种在上世纪80年代被研究出来的的一种使用计算机进行辅助生产制造的技术,它可以将原先设计好的复杂样品分割成简单设计地模块,最后在拼接起来。
使制造者能够快速得到样品,从而对样品进行相应的实验,测量其外观,形状,性能等指标是否符合预期,可以让厂家尽早地对产品修改使其符合市场需求抢占先机。所以三维重建技术对于生成有重大意义。
2.在工业质量检测方面,三维重建技术对比二维图像信息可以更好地反映产品地质量。三维重建技术可以在计算机上生成所生产地立体模型,通过模型可以更好的观察产品,如产品是否存在裂纹和变形等不良情况。同时可以通过人工操纵让它反馈出产品上各点地距离信息,从而使人们更好的检测产品。
3.在文娱产业,如今人们都对电影电视中的场景和游乐场等娱乐场所地场景有了更高的要求,三维重建技术可以更好的帮助人们设计这些场景中的人物和场景模型。同时,3D电影中的特效例如构建一个魔幻世界,宇宙旅行等场景为赋予观众更好更逼真的3D体验,也对三维重建技术地要求不断加深。文化方面,我们可以对已破损地文物现有部分进行数据采集。然后通过相应地绕轴选择,轴对称等几何特征来恢复整个文物原有的外貌。
1.3国内外研究现状
国内外在都对三维重建技术,取得了许多理论成果,并提出了多种测量方法。其中根据物体射出地光线的来源,分为主动式三维重建技术和被动式三维重建技术。
被动式三维重建技术一般是接收目标对象反射出的光,根据反射出的光中地某些信息建立起深度与光所反映的信息的关系。被动式三维重建技术的方法有纹理恢复、阴影恢复、散焦测距等方法:
1)纹理恢复法。物体的纹理信息是通过具有重复性的物体表面的像素及领域灰度来描述的,当一个表面布满纹理信息而且光滑的物体反射环境光线被投影在二维平面上时,
其纹理信息会发生产生投影变形和透视收缩两种形变,这两种形变会对纹理形象造成不同的影响,投影形变会使远离成像平面的纹理信息变小,而投射形变会使与像平面夹角越大的纹理信息越小。而这些变化值可以从图像上进行测量,然后通过算法逆向求取深度值。
2)明暗恢复法。是一种通过物体的漫反射模型中表现出的物体表面的明暗度不同来实现,它可以通过单幅图像来实现物体的三维重建,通过将输入的图片先转化成灰度图,然后变换到光源坐标系,由lambert余弦定理求出相应的偏角来计算光源坐标系上对应点的法向量,通过法向量中的Z轴分量与物体材质对应的反射率求取图像对应的深度信息。但是,该方法是基于物体的漫反射模型为基础,但现实生活中的反射情况尤为复杂。同时如今的技术很难从灰度突变点来辨别噪声信息,即会将噪声引入三维重建这一过程。所以该方法对环境与被测物体有较高的要求。
3)散焦测距法。与其他方法需要精确的图像不一样该方法是该通过物体投射出的模糊像来实现深度距离的测算,正如我们知道的那样,当我们将物体摆放置远离相机聚焦平面的位置,物体反射出的光线会在成像平面上生成一个模糊的散焦距图像,通过相应的算法建立不同距离情况下的图像模糊程度和深度的关系,我们可以从模糊的图像中求解深度信息。
主动式三位重建技术是指人为的将光线发射到物体上(一些情况下将会在光线中加入特征信息便于圈定特征点)物体将光反射,接受这种人为产生的反射光中的与深度相关的信息来构建相关参数到深度信息的映射。现行的主动式三维重建技术的方法有以下几种方法。
1)莫尔条纹法。我们知道当光线经过两个刻线呈一定角度的光栅时,没被光栅阻挡的光形成亮纹,而被挡住的光线会形成暗纹,这就是莫尔条纹。我们可以将莫尔条纹投射在物体上,当两块光栅沿着垂直于刻线方向相对移动时,物体表面的莫尔条纹将沿着刻线方向移动。通过获取物体反射光线中莫尔条纹因移动产生的相位信息,我们可以建立相位变化同深度数据的映射光系,但物体反射回的反射光线容易收到环境光线的影响,所以其抗干扰能力较弱。
2)飞行时间法。我们都知道距离等于速度乘以时间,所以我们可以保证环境稳定的情况下,即保证环境不会使光速,声速或其他信号光速发生变化。通过记录信号发出的时间和接受到信号的时间,再除以往返的距离数,就可以得到距离信息即深度该方法主要与往返的时间与飞行速度相关,与物体表面受否具有易于辨别和处理的纹理信息。而且飞行时间不会受到环境光线的影响,对环境光线没有太严苛的要求。但是,必须保证信号发射器和接受器处于同步状态,以免造成时间上的误差。
3)结构光法。一些情况下由于一些物体表面不具有纹理信息,难以从图像中寻找到特征点。所以我们可以将特征信息加到到光线之中投影到目标物体的表面,人工为目标物体添加特征信息。常用的特征信息有点结构光,线结构光以及面结构光。在通过图像获取设备带有特征信息的目标物图像,通过特征信息的几何形态信息,在使用滤波等手段去除噪声,提取到特征点在使用三角测距法来确定物体的深度信息。
1.4研究内容及方法
1.4.1研究方法
基于双目立体视觉三维扫描立体成像这篇论文,我们通过大量文献和博客资料来了解计算机视觉技术和人眼工作机理,及其分支双目立体视觉技术与视差原理,进而确定如何实现数据采集,并理解所得到的数据的数据结构。然后对当前的国内外发展现况和技术进行概括、分析和总结,理解传感器如何通过双目立体视觉技术实现从二维图片中恢复深度数据,进而理解相机成像过程中,相应坐标系的传递与变化,从而理解三维坐标系最终与像素坐标系的表达式。然后利用现有的库函数获取传感器的数据,将采集到的三维数据转换为深度图和点云图。
1.4.2研究内容
基于双目立体视觉的三维点云图重构这篇论文中,我们在绪论部分先引出了计算机视觉技术及其分支双目立体视觉技术。然后主要介绍了三维重建技术的意义、目的和广泛的应用需求,并介绍了用于三维重建的相关理论与方法以及本次所用的双目立体视觉,在查阅论文和博客资料后,我们在绪论部分简要介绍了目前国内外三位重建技术的技术现状以及发展前景,同时明确本次毕业设计需要完成的论文成果和方法等。
基于双目立体视觉的三维扫描立体成像论文主题部分将详细讨论我们如何利用双目立体视觉获取深度信息的原理、以及程序如何一步一步将数据从传感器中提取出来,运用现有的计算机视觉开源库OpenCV和点云开源库PCL去实现三维模型的构建。
通过了解传感器输出的深度数据的结构确定了本次如何实现三维立体重构。其方案为利用深度摄像头采集双目图像,并从双目图像中提取到深度信息,为此我们先要从传感器中提取数据,将获取到的深度信息通过传感器官方提供一个对外的数据借口函数提取出来,并将数据进一步传递给OpenCV库中的Mat类对象,以便实现深度图的输出,同时通过Ope nCV提供的鼠标响应函数设置鼠标事件从而实现单点深度数据的读取,最后在将Mat对象的深度数据进一步传递给PCL库中的PointCloud对象,并使用PCL的类PCLVisua lizer所定义进行可视化设置,最终输出点云图实现三维建模。同时将具体介绍基于双目视觉的三维数据恢复原理,硬件的性能,以及程序模块,几个部分程序实现的流程,最终对代码进行演示,展示所完成的研究成果。
第2章 双目立体视觉系统原理
2.1相机的成像模型
双目立体视觉技术是一种从两幅拍摄于同一时间,同一环境下的二维图像中获取三维信息的方法。我们都知道,摄像机常用的成像模型即小孔成像模型其实质是一个简单的透视投影的线性模型,如图1所示。
图2.1 针孔相机模型
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: