一种基于机器学习算法的单目里程计研究
2016-11-22顾海艳陈颖洁丁尧
顾海艳 陈颖洁 丁尧
摘要:视觉里程计(VO)通过轨迹推算,累加运动矢量,得出当前位置的相对定位方法,单目里程计仅使用单个相机作为图像获取载体,使获得信息的要求更低,且能较精确地识别和定位特征点,实时性好,成本也少很多,因此具有更广的应用前景。本课题采用SURF算法来同时检测和匹配特征点,使用一种基于机器学习算法(SVM)自适应卡尔曼滤波器,减缓原本卡尔曼滤波器中会出现的精度低和发散状况,起到优化单目里程计的系统准确度。
关键词:单目;视觉里程计;SURF算法;卡尔曼滤波
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)43-0257-03
移动机器人的自主定位导航是机器人运动的前提之一,随着计算机技术和图像处理技术的发展,利用机器视觉进行导航逐渐成为热点之一[1]。视觉里程计(VO)通过轨迹推算,累加运动矢量,得出当前位置的相对定位,从而帮助机器人感知周围环境和自由移动。对比双目里程计,单目里程计仅使用单个相机作为图像获取载体,使获得信息的要求更低,实时性好,成本也更少,因此具有更广的应用前景[2]。本研究课题引入机器学习算法,对传统单目视觉里程计进行改良,提出了一种新的解决方案,优化单目视觉里程计,对后期的工程应用有一定的实践意义。
一、设计单目视觉里程计系统模型
单目视觉里程计模型设计分为:硬件设计和软件设计。硬件设计就是安装在机器上带有调节机构的单个相机。软件模型设计包括:图像的采集和预处理、目标的选取特征与运动估计等模块,其软件设计工作流程如图1所示:
图1中,在采集到图像后,要进行滤波、图像矫正、标定参数等预处理,相机参数标定获得的参数能将现实三维与相机二维图像联系起来,是单目里程计能否准确定位的关键[3],本课题采用张友正的棋盘标定法,较其他算法实现起来更简单,准确度较高。
图片在成像过程中会出现畸变、失真等情况,可以采用灰度插值法或双线条插值法进行矫正,以起到减小里程计误差的作用。由于估算图像特征的运动参数是估算相机运动的关键,因此特征的选取显得尤为重要。选择具体的物体作为特征,在复杂的外部环境中是不现实的,所以,应该尽可能的选择简单,明显的点线面、角点、特定区域作为特征。在计算图像特征运动时,需要检测出两幅连续的图像中对应的特征点,然后找出所有特征点之间的对应关系进行匹配[4]。常用的特征点提取算法有Harris角点检测算法,SUSA(smallest univalve segment assimilating nucleus)角点检测算法,SIFT,SURF,FAST角点算法等。Harris算法定义局部领域内极大兴趣值对应的像素点为检测的特征点,并不如SURF(Speeded Up Robust Features)算法选取的特征点明显[5],所以相较于两者SURF更适合于本课题的研究,SURF基于积分图像提取特征点,通过Haar小波滤波器描述特征点,是一种集特征提取和描述于一体的算法,其抗干扰能力强,运算量低于SIFT算法,运算速度却更快,并且结合了SIFT算法的许多优点,因此本文选用SURF算法进行特征提取和匹配。由于SURF算法具有平移、旋转时尺寸不变的优势,因此所检测出的特征无论在哪个角度都是同一个特征,首先给特征点确定一个主方向,以特征点为原点,建立二维直角坐标系,获得一个64维特征向量r来描述特征点。之后SURF对特征点的匹配就可分为两步:第一步,快速索引进行初步匹配,但是会存在较大的误差,第二步进行最近邻匹配算法运算,若最近邻欧氏距离与次近邻欧式距离的比值在一定阈值范围内,则认为特征点匹配正确,反之则是匹配错误[6],能快速有效的剔除错误的匹配点。SURF算法的流程图如图2所示:
SURF最近邻欧式距离算法如式1所示:
dis(j)=(dis(rr)) (式1)
SURF次近邻欧氏距离算法如式2、式3所示:
dis(j)=(dis(rr)) (式2)
R= (式3)
式(1)中,dis(j)——两个特征点间的最近邻欧氏距离,r中第j个向量与r中第i个向量的欧式距离最小;
式(2)中,dis(j)——两个特征点间的次近邻欧氏距离,r中第j个向量(除第j个向量外)与r中第i个向量的欧式距离最小;
式(3)中,R为最近邻欧氏距离与次近邻欧氏距离之比。设阈值为R,当R≤R时,特征向量匹配成功,反之则失败。
二、单目视觉里程计目标定位:
在设计完单目视觉里程计的模型后,进行计算,得出现实中的点的三维坐标;首先先确立相机的位置关系,就是在本质矩阵E(一个有5个自由度,秩为2的三阶矩阵)中分解出旋转矩阵R和平移向量T,可以由E=UDV,计算出R=UGV,其中G=,
Z=。而得到的平移向量T是一个比例值,只能根据现实数据计算出,因此平移向量还是一个未知数。在现实相机标定时可直接选用张友正的棋盘标定算法,使用ROS下的标定库,通过camera_calibration直接标定插入电脑的相机,当拍摄照片达到一定量之后,标定程序会自动开始计算各种参数,我们只需要选定焦距值,图像尺寸大小,主点坐标(u,v)。知道两张相片的坐標分别为A=(x,y,z),A=(x,y,z),可以通过数学计算来获取目标的三维坐标, 由先前得到的相机坐标位置关系可得式4:
A=RA+T (式4)
由于(u,v)和(u,v),R,T均可得出所以可以求出x,y如式5所示:
x=y= (式5)
z和平移系数可由最小二乘法得出。算出结果后我们可以的得出A=(x,y,z)为当前相机坐标系下算出的目标点的三维坐标,因此目标点被定位成功。
三、基于機器学习算法的Kalman滤波改良设计
卡尔曼滤波器(Kalman Filtering)是一种软件滤波方式,以最小方差估计为算法基础,通过状态方程来描述被估计量的动态变化过程,利用相机上一时刻的状态和当前时刻传感器的测量值来估计当前的状态值[7]。基本卡尔滤波器算法,适用于解决随机线性离散系统的参数估计问题,卡尔曼滤波器在滤波过程中不需要存储历史数据,有效地减少了计算量,大大节省了运算时间。但是基本卡尔曼滤波器会因为实际噪声和其使用的噪声不相符,而导致滤波运算精度低,甚至会出现滤波器发散的现象。为了直观地理解卡尔曼滤波器的应用,可给出其运行流程图如图3所示:
研究者们曾提出自适应卡尔曼滤波器(AKF)来克服这一缺点,其中Sage-Husa自适应滤波器算法因为原理简单,实时性好,受到广泛的关注,但存在着时间窗口难以设置的问题,时间窗口是指测量数据选取的时间长度,若设得过大,算法效率会变得很低,动态性能也变差;若过小,算法中用到的数据就显得过少,估算出的当前相机状态值会发生偏差。所以本文介绍了一种基于机器学习算法SVM(支持向量机)的自适应卡尔曼滤波设计方法。支持向量机(SVM)是一种将结构风险最小化的机器学习算法[8],在解决非线性问题领域有着极大的优势,恰好在基于SVM的新型自适应卡尔曼滤波算法中,正是运用SVM的回归预测分析(SVR),将原本复杂的非线性问题通过构造线性函数转化成线性问题,进而动态的调节卡尔曼滤波器算法中的噪声矩阵参数。巧妙地避开了选取时间窗口的难题,并且这一新型的算法增加了单目里程计的稳定性和准确性。
四、提高单目里程计算法的研究
如何提高单目里程计算法,可以从三个角度进行分析:鲁棒性、实时性和精确度。
1.提高系统的鲁棒性。鲁棒性可以是指,控制系统在参数摄动情况下保持系统某个性能指标保持不变,即抗干扰能力。在视觉里程计中,局部视觉特征能有效的提高系统的鲁棒性,局部视觉特征有尺寸不变特性,并且对复杂的外部环境有很好的检测能力,适用于室外等复杂场地,若与GPS等设备结合使用,实现多传感器信息融合。
2.提高系统的实时性。在特征检测和匹配时,选取有效的少量特征进行检测和匹配,并运用好的数据加以描述,能有效的提高系统的实时性,简而言之,特征的选取要易跟踪,匹配算法要高效可行。可以从两个角度提高算法的实时性:数据处理并行优化和数据降维。数据降维能高效利用有限的计算能力,主成分分析PCA(Principle component analysis)方式已有效的运用于SIFT数据降维中,可以在大大降低计算量的情况下,达到了相同的特征匹配效果。
3.提高系统的精确度。视觉里程计是一个数据迭代累加的过程,但在迭代累加过程中,都会存在误差的累积,如何有效地减少误差的累加,就成了视觉里程计特高精确度的关键。减少误差的累加,应该从选取特征点这一源头开始。由此特征的选取,检测和匹配都要选择合适的方式[9]。特征点的选取应尽量选择静止物体的显著特征,减少特征带来误差和大量的无用外点。运用图的最大团内点检测方法对错误匹配有很强的制约能力。
视觉里程计作为移动机器人自主导航的重要组成部分,已成功运用于海陆空及宇宙探索中,本文主要研究了一种基于机器学习算法的单目里程计算法,仅使用一个摄像机,在不借助于其他传感设备的帮助下,实现机器的自主定位。本课题引入SURF算法对目标进行特征匹配,提高了系统的鲁棒性,同时较SIFT算法提高了运算速度。利用机器学习改善传统的卡曼滤波,有效的抑制了噪声发散。通过上述改善,本课题所研究设计的单目里程计在鲁棒性、实时性和精准性上有了一定的提高。
参考文献:
[1]姜国权,何晓兰,杜尚丰,柯杏.机器视觉在农业机器人自主导航系统中的研究进展[J].农机化研究,2008,(3):9-11.
[2]罗堪.基于复眼模型的视觉里程计方法研究[D].湖南大学,2014.
[3]刘晓利,田媛,童飞,唐舰,隋国荣,陈抱雪.双目立体视觉的光学标定技术[J]光学仪器,2013,(3):11-15.
[4]苏宇,郭宝龙.一种基于曲率尺度空间的图像拼接算法[J].计算机工程与应用2008,(1):39-41.
[5]相阳.基于点特征的图像配准技术研究[D].东北大学,2010.
[6]白廷柱,侯喜报.基于SIFT算子的图像匹配算法研究[J].北京理工大学学报,2013,(6):622-627.
[7]戴洪德,陈明,周绍磊,李娟,彭贤.基于支持向量机的自适应卡尔曼滤波技术研究[J].控制与决策,2008,(8):949-952.
[8]张偲敏,汪艳,郭天太,洪博,刘焱煜.支持向量回归机的参数择优算法[J].中国科技信息,2015,(13):26-27.
[9]李宇波,朱效洲,卢惠民,张辉.视觉里程计技术综述[J].计算机应用研究,2012,(8):2801-2805,2810.
A Study on Monocular Mileage based on Machine Learning Algorithm
GU Hai-yan 2,CHEN Ying-jie 1,DING Yao 1
(1.Nanjing University Jinling College,Nanjing,Jiangsu 210089,China;2. Jiangsu Police Institute,Nanjing,Jiangsu 210000,China)
Abstract:Visual odometry(VO) through the trajectory calculation,cumulative motion vector,the relative positioning method of current position. Monocular odometer using only a single camera as image acquisition carrier,make information requirements lower,and can identify and locate the feature point accurately,real-time,cost much less,so it has more wide prospect of application. This paper uses SURF algorithm to simultaneously detect and match feature points,using a machine learning algorithm based on adaptive Calman filter (SVM),slow down will appear originally Calman filter in low precision and divergence,to system optimization of monocular odometric accuracy.
Key words:Single camera;Visual odometry;SURF;Calman filter