基于ORB特征点法的视觉里程计的设计与研究毕业论文
2021-11-05 19:05:52
摘 要
在对自动驾驶汽车的研究中,定位问题是非常重要的,首先要让汽车知道“自己”在哪儿,汽车才能做出下一步的路径规划。本课题的视觉里程计就是一个通过处理图像序列来确定产生图像的机器人的位置和姿态的算法。
本文使用可以同时获得图像的彩色和深度信息的深度相机为传感器来获得机器人所处环境的信息。系统在获得由深度相机采集的环境信息之后会采用改进的非线性优化方式计算出每两帧图像间相机的运动,采用这种算法会得到更加精确的相机运动轨迹。本研究的主要工作工作为:
首先,介绍了针孔相机模型与各种坐标系之间的变换关系,为计算帧间相机运动奠定了基础。研究了深度相机的测量原理以及标定方法,标定可以精确的获得相机的内参数,方面后续的计算。
其次,阐释了SIFT(Scale Invariant Feature Transform)算法与FAST(Features from accelerated segment test)算法,并分析两种算法的优缺点,以此作为使用ORB(Oriented FAST and Rotated BRIEF) 特征点的依据。介绍了软件平台ROS及硬件平台NVIDIA Jetson TX2。
然后,详细介绍了基于ORB特征点的视觉里程计的实现方式。并对基本的视觉里程计做了改进:改进非线性优化方法以求取更加精确的相机位姿和轨迹,增加局部地图和路标点匹配以减少误差累计。最后根据改进后的视觉里程计的实验结果在Matlab中绘制出相机的运动轨迹。
本文在Linux系统下搭建了ROS平台,在此基础下,基于ORB特征点,构建了一种视觉里程计系统,该系统具备较高的精度。
关键字:ORB;视觉里程计;深度相机;ROS
Abstract
In the study of self-driving cars, the positioning problem is very important. First, let the car know where "self" is before the car can make the next path plan. The visual odometer in this subject is an algorithm that determines the position and posture of the robot that generates the image by processing the image sequence.
In this paper, a depth camera that can obtain both color and depth information of the image is used as a sensor to obtain information about the environment in which the robot is located. After obtaining the environmental information collected by the depth camera, the system will use an improved nonlinear optimization method to calculate the camera motion between every two frames of the image. Using this algorithm will get a more accurate camera motion trajectory. The main work of this study is:
First, the transformation relationship between the pinhole camera model and various coordinate systems is introduced, which lays the foundation for calculating the camera motion between frames. The measurement principle and calibration method of the depth camera are studied. The calibration can accurately obtain the internal parameters of the camera and the subsequent calculation.
Secondly, the SIFT algorithm and the FAST algorithm are explained, and the advantages and disadvantages of the two algorithms are analyzed as a basis for using ORB feature points. The software platform ROS and the hardware platform NVIDIA Jetson TX2 are introduced.
Then, the implementation of visual odometer based on ORB feature points is introduced in detail. And the basic visual odometer has been improved: improved nonlinear optimization methods to find more accurate camera poses and trajectories, adding local maps and landmark point matching to reduce error accumulation. Finally, according to the experimental results of the improved visual odometer, the movement track of the camera is drawn in Matlab.
In this paper, the ROS platform is built under the Linux system. On this basis, based on the ORB feature points, a visual odometer system is built, which has high accuracy.
Key words: ORB;visual odometer;depth camera;ROS
目 录
摘 要 I
Abstract II
目 录 I
第1章 绪论 1
1.1 研究背景介绍 1
1.2 国内外研究现状 1
1.2.1国外研究现状 1
1.2.2国内研究现状 2
1.3 本文内容和结构 3
1.3.1 本文主要研究内容 3
1.3.2 本文结构安排 3
第2章 深度相机 4
2.1 针孔相机模型及坐标系变换 4
2.1.1 针孔相机模型 4
2.1.2 坐标系变换 6
2.2 深度相机测量原理及标定原理 6
2.2.1深度相机测量原理 7
2.2.2 深度相机的标定原理 8
2.3本章小结 9
第3章 基于 ORB 特征点法的视觉里程计 10
3.1 图像特征的检测与描述 10
3.1.1 SIFT 特征点的检测与描述 10
3.1.2 ORB 特征点的检测与描述 10
3.2 不同算法的对比 12
3.3 非线性优化 13
3.3.1 PnP 方法 14
3.3.2 非线性优化 15
3.3.3 PnP方法与非线性优化方法的对比 18
3.4 本章小结 21
第4章 基于ORB特征点的视觉里程计实验及结果 22
4.1 软硬件平台介绍 22
4.2 搭建视觉里程计框架 22
4.2.1 确定程序框架 22
4.2.2 确定基本数据结构 22
4.2.3 Camera类 23
4.2.4 Frame类 25
4.2.5 MapPoint类 26
4.2.6 Map类 27
4.2.7 Config类 27
4.3 特征点提取和匹配 29
4.4 改进的非线性优化的结果 34
4.5 加入局部地图以改进视觉里程计 39
4.6 本章小结 44
第5章 结论与展望 45
5.1 结论 45
5.2 展望 45
参考文献 46
附录A 基于ORB特征点的视觉里程计核心程序 49
致 谢 58
第1章 绪论
1.1 研究背景介绍
随着科技迅速发展,各种机器人已经应用在我们生活的方方面面,在不久的将来,服务机器人会的到更多的应用。许多国家都有了相应的发展服务机器人的规划。目前,我们在市面上就可以看到各种类型的服务机器人。
移动机器人的基本技术就是定位与建图技术,即同时定位与地图构建(simultaneous localization and mapping,简称SLAM)。 自H. F. Durrant-Whyte [1]提出以来,SLAM技术已成为移动机器人领域中最基本的技术。从那时起,对移动机器人的研究也有日趋深入。在中国,移动机器人在陌生环境中的定位和地图绘制方面也取得了重大进展。 从技术角度来看,机器人可以分成以视觉为传感器和以激光为传感器的两种类型。现在在设计时会考虑多传感器辅助融合的方法以满足对机器人精度的要求。尽管移动机器人已经取得了如此大的进步,但是仍然存在许多精度和鲁棒性的问题需要解决。随着计算机视觉的发展,其在移动机器人中的应用越来越广泛。 深度相机由于具有多种优势,因此特别实用,并且测量范围足以满足日常情况。 此外,深度相机可以接收更详细的信息,包括基于ORB功能的视觉里程计所需要的彩色图像信息和深度图像信息,它可以接收精确的定位和地图构建[2]。对于多变的工作环境,视觉传感器比激光传感器更为灵活。这直接催生了视觉SLAM技术。一方面,视觉SLAM可以减少状态估计误差;另一方面,可以通过相似性对应关系重新定位轨迹,以确定是否返回先前到达的位置(成为回环检测)[3]。具有所有这些优点,可以想象,将来视觉SLAM的发展必将势不可挡。
1.2 国内外研究现状
1.2.1国外研究现状
深度相机所拍摄的图片内容包括彩色信息和深度信息,这对于SLAM系统的准确性的提高非常有帮助。传感器技术近年来一直在不断进步,由于其低成本和高精度,深度相机已得到越来越多的使用,并且对于视觉SLAM的研究工作,深度相机已成为首选。