1.一种基于直接法的移动机器人双目视觉定位与建图方法,其特征在于,包括以下步骤:步骤1,选取基于图像分割和分区域阈值的特征点;
步骤2,设计基于双向静态立体匹配的系统初始化算法;
步骤3,设计基于多模型预测的前端跟踪算法;
所述步骤3,将所有图像帧j中已知深度特征点投影在图像帧k上得到的所有残差进行联合优化,得到优化方程(4),通过GN优化求得图像帧j和图像帧k之间的相对位姿,式中:E表示总能量残差;Ik(p')表示点p在图像帧k的投影p'的灰度值;Ij(p)表示在图像帧j的投影p的灰度值;P表示属于Ikey且深度已收敛的点的集合;p'表示点p在当前帧I1上的投影;wi表示点p的权重;
步骤4,建立基于辐射度误差约束的后端图优化模型;
所述步骤4,具体做法是:
通过辐射度误差约束建立后端图优化模型,将各个关键帧和属于其特征点的雅克比矩阵进行堆叠组合,得到大型线性方程(5),对其迭代求解,完成滑动窗口内各个关键帧和属于关键帧的特征点的逆深度的优化:式中: 表示x方向关键帧k中xk处的灰度值梯度; 表示y方向关键帧k中xk处的灰度值梯度;ρj表示关键帧j的一个点的逆深度;ρk表示ρj在关键帧k上的投影;rkj表示从关键帧Ij到关键帧Ik的残差;w表示权重; 表示对点p在关键帧k中的逆深度求导;
xk表示该点在关键帧k中的像素坐标;u'k,v'k表示特征点在关键帧k上的归一化空间位置;
fx,fy表示相机内参中的焦距;
步骤5,选取基于重投影误差的关键帧、管理滑动窗口与边缘化处理;
所述步骤5,具体做法是:
采取重投影误差的方式进行关键帧的选取,使当前选取的关键帧与最新关键帧有一定关联但不会产生过多冗余信息,采用多线程的方式,在获得关键帧后,开辟新的线程完成后端优化,同时采用滑动窗口机制,对进入优化的关键帧数量进行限制,对去除的关键帧采取舒尔补进行边缘化;
步骤6,设计基于直接法的双目视觉定位与建图系统的整体算法;
所述步骤6,具体做法是:
设计基于直接法的双目视觉定位与建图系统的整体算法具体又包括以下步骤:步骤2的系统初始化算法完成后,对于非关键帧,进行多模型预测更新过程,保证前端跟踪时的位姿输出频率;在得到当前帧的位姿之后,依照关键帧选取策略判断其是否为关键帧,若为关键帧,则开辟新线程进行后端优化的操作;若不为关键帧,则重新读取图像开始跟踪位姿;
在后端优化线程中,将新关键帧和优化窗口内的所有关键帧进行联合优化,获得其优化后的位姿,并得到优化后的每个特征点的深度信息;然后进行边缘化过程,将多余的帧边缘化;最后对最新的关键帧进行特征点选取,并求取其深度信息。
2.根据权利要求1所述的一种基于直接法的移动机器人双目视觉定位与建图方法,其特征在于,所述的步骤1,选取图像中灰度值差异较大的点,同时基于图像分割和分区域阈值的特征点提取算法在图像所有区域均可提取特征点,保证优化时不只参考局部最优点。
3.根据权利要求2所述的一种基于直接法的移动机器人双目视觉定位与建图方法,其特征在于,所述的提取特征点,具体做法是:对于一帧图像,首先将一系列来源于此图像的分辨率逐步降低的图像集合到一起,使其呈现出金字塔形状,且在排列时,将图像分辨率较小的图像置于高层,图像分辨率较大的置于底层,每一层图像由上一层分辨率的长、宽各一半,也就是四分之一的像素组成;
将第0层图像设置为图像帧的原本图像,记为I0,对于第i层在像素坐标系下(x,y)坐标处的灰度值Ii(x,y):及在x方向和y方向的灰度值梯度、梯度平方和:
式中, 表示第i层图像x方向灰度值梯度, 表示第i层图像y方向灰度
值梯度, 表示第i层图像梯度平方和,Ii(x,y)表示第i层图像像素坐标系下(x,y)坐标处的灰度值,Ii(x+1,y)表示第i层图像像素坐标系下(x+1,y)坐标处的灰度值,Ii(x‑
1,y)表示第i层图像像素坐标系下(x‑1,y)坐标处的灰度值,Ii(x,y+1)表示第i层图像像素坐标系下(x,y+1)坐标处的灰度值,Ii(x,y‑1)表示第i层图像像素坐标系下(x,y‑1)坐标处的灰度值, 表示第i层图像x方向梯度平方, 表示第i层图像y方向梯度平方;
然后,将第0层图像分成大小相同的m*n块,每块的宽度为D,按照其在图像中排列顺序,第(i,j)块为在图像中从左至右第i从上至下第j块图像块,之后,计算每一图像块的灰度值梯度平方和的中位数g0.5,同时加上修正值作为此图像块的灰度梯度阈值,在得到每一图像块的最终阈值后,需要在每一个图像块中选取合适的点;
为了保证每一图像块中的点的量不至于过多或过少,进一步将每一图像块划分为若干长宽为d的块,并采用分级策略,其中红色块大小为d*d,绿色块包含4个红色块,其大小为
2d*2d,蓝色块包含4个绿色块,其大小为4d*4d,一共3个级层,在提取梯度点时,通过以下步骤完成:
1)通过随机算法选取一个梯度方向v=(x,y),然后对于红色块中每一个像素进行遍历,选择出满足灰度值平方和大于此阈值的点为候选点,并确定这些候选点中在梯度方向v上梯度值最大的点为此块所选取的特征点p;
2)若在红色块中选取到了特征点,则进入下一个红色块,重复步骤1),否则,进入红色块所属的绿色块,若该绿色块中所有的红色块都没有选取到特征点,则对绿色块中所有的像素进行遍历,并按照特征点选取要求进行特征点选取,此时式中的λ较红色块中的λ值小,然后进入下一个绿色块的第一个红色块,重复步骤1);若该绿色块中有红色块选取到了特征点,则此绿色块不再选取特征点,进入下一个红色块,重复步骤1);若该绿色块中也未选取到特征点,则进入绿色块所属的蓝色块,重复对蓝色块的处理步骤和对绿色块的处理步骤类似,此时λ更小;
对于对于金字塔1层及后续的层,同样采取上述方式进行特征点选取。
4.根据权利要求1所述的一种基于直接法的移动机器人双目视觉定位与建图方法,其特征在于,所述的步骤1,特征点满足:式中:λ表示该级层的阈值因子,其在第0级层时最大,后续级层逐渐减小;P表示该块中的所有候选点的集合;ths(i,j)表示位置为(i,j)的块的灰度值梯度阈值; 表示第
0层图像梯度平方和;v表示梯度方向;p表示所选取的特征点;(x,y)表示像素坐标系下点的坐标;MAX(dI(pi)*v)表示候选点中在梯度方向v上梯度值最大;dI(p)表示灰度值梯度。
5.根据权利要求1所述的一种基于直接法的移动机器人双目视觉定位与建图方法,其特征在于,所述的步骤2,系统初始化算法,具体做法是:给定第一个关键帧的位姿,根据输入的图像对关键帧中的特征点进行初始化,给后续优化一个较为良好的初始条件,使用双目视差法获得特征点的初始深度信息,通过双向匹配的方式进行优化求解,对深度信息进行优化,保证初始化时的深度精度,至此获得基于双向静态立体匹配的系统初始化算法流程。