1.基于双目视觉的实时高精度车辆里程计算方法,其特征在于,该方法包括以下步骤:步骤1、采用视觉传感器获取图像序列;
步骤2、对获取的前后帧立体图像利用改进FAST角点检测算法提取特征点;
步骤3、利用SIFT算法计算特征点的主方向并生成特征描述子;
步骤4、根据生成的特征描述子进行特征匹配,并采用自适应RANSAC算法剔除误匹配点;
步骤5、根据匹配点集误差构造目标函数,求解目标函数得到运动估计信息;
步骤6、利用粒子滤波进行最优估计,减小误差;
步骤2中,使用改进的FAST角点检测算法提取特征点,具体步骤如下:S1、获取一张图片;
S2、在图片中任意选择一个像素点p,假设它的亮度是Ip;
S3、设定一个阈值T;
S4、以像素点p为中心,分别选取半径为3和2的两个同心圆上的16和12个像素点;
S5、将选取的这些像素点的亮度分别与Ip+T或Ip‑T相比较;
S6、如果在这两个同心圆上分别有M和N像素点的亮度大于Ip+T或小于Ip‑T,则可以认为p是一个特征点;
S7、循环S2‑S6,对每一个像素点进行上述操作;
S8、对选取的特征点进行非极大值抑制,并记录最终特征点的位置;
步骤4中,根据生成的特征描述子进行特征匹配,具体方法如下:对于t‑1时刻这一帧图像上的特征点集{P}中的每一个特征点p,从t时刻这一帧图像上的特征点集{P′}中找到与特征点p的特征向量最近邻的特征点和次近邻的特征点,并记录它们之间的距离;
若最近邻特征点的距离与次近邻特征点的距离比小于等于设定的阈值T,则认为特征点p与最近邻的特征点p′是一对匹配点,记为(p,p′);
若最近邻特征点的距离与次近邻特征点的距离比大于设定的阈值T,则认为特征点p在特征点集{P′}中没有相匹配的特征点;
由以上可知,对每一个特征点都进行上述操作,并记录匹配上的特征点对,最后可以得到一个匹配点对的集合{(Pn,P′n)};
自适应RANSAC算法剔除误匹配点,具体方法如下:S1、对于得到的粗匹配点对集合{(Pn,P′n)},计算集合中每对匹配点对之间的欧氏距离,并按从小到大的顺序进行排列;
S2、取排在前20%的匹配点对组成新的样本点对集合U;
S3、从U中随机选取6个匹配点对,利用其中4个计算变换模型Hi;
S4、利用剩余的2个对Hi进行验证,如果通过验证,则进行下一步;否则,舍弃Hi,重新返回S3;
S5、对匹配点对集合{(Pn,P′n)}根据变换模型Hi计算对称变换误差d,若d小于设定的值t,则认为是一个内点,并统计内点的数量M;
S6、重复S3‑S5三步N次,若M大于设定的阈值S,则利用M重新估算变换模型H,即为最优的变换模型。
2.根据权利要求1所述基于双目视觉的实时高精度车辆里程计算方法,其特征在于,步骤3中,根据得到的特征点的位置信息,利用SIFT算法计算特征点的主方向以及特征描述子,具体方法如下:对于一个特征点,以它为中心,计算它邻域像素的梯度和方向,用直方图进行统计,得到特征点邻域像素的梯度分布,直方图中的峰值就是特征点的主方向;梯度和方向的计算公式如下:θ(x,y)=arctan((L(x,y+1)‑L(x,y‑1))/(L(x+1,y)‑L(x‑1,y))) (2)以关键点为中心选取16×16的邻域窗口,关键点所在的行和列不取,计算邻域窗口内所有像素点的梯度模值和梯度方向,然后将每个窗口分成4×4的子区域,总共16个子区域,每个子区域包含8个方向上的信息,一共有128个方向信息,生成128维的SIFT特征向量,即
128维的特征描述子。
3.根据权利要求2所述基于双目视觉的实时高精度车辆里程计算方法,其特征在于,步骤5中,根据匹配点集的误差构造目标函数,求解目标函数得到运动估计信息,具体方法如下:根据步骤4可以得出一组匹配好的3D点:
Pm={p1,L,pm},P′m={p′1,L,p′m} (3)得到一个欧式变换R和t,使得
这个问题可以用迭代最近点(ICP)来求解,这里采用的方式SVD为代表的方法进行求解,先定义第i对点的误差项:ei=pi‑(Rp′i+t) (5)
然后构建最小二乘函数,求使误差平方和达到极小的R,t:最后使用SVD方法求解出两帧图像之间的运动估计信息(R,t),即Tk。
4.根据权利要求3所述基于双目视觉的实时高精度车辆里程计算方法,其特征在于,步骤6中,利用粒子滤波进行最优估计,减小误差,具体方法如下:由步骤5得到的运动估计信息,通过计算Ck=Ck‑1Tk来连接转换,得到运动系统的状态方程和观测方程如式(7),(8)所示:xk=f(xk‑1,uk,wk) (7)
zk=h(xk,vk) (8)
其中,xk为k时刻系统的状态变量,uk为系统的控制变量,zk为k时刻的观测变量,wk和vk分别为输入的白噪声和观测噪声;基于粒子滤波的视觉里程计算法是先利用k‑1时刻的位置xk‑1和系统噪声vk‑1来预测k时刻的位置 然后在根据k时刻的观测值zk来更新k时刻的位置xk,就这样不停的循环迭代以得到车辆的最优位姿估计值。