【技术实现步骤摘要】
一种基于直线引导特征提取的视觉SLAM建图方法
[0001]本专利技术涉及地图构建
,特别涉及一种视觉SLAM建图方法。
技术介绍
[0002]SLAM(simultaneous localization and mapping)即时定位与地图构建,是自主移动机器人、无人机、汽车自动驾驶的关键技术。在基于视觉进行地图构建中,准确提取出图像中的特征点进行位姿估计,是准确判断关键帧和降低建图误差的重要保障。
[0003]针对室内环境进行SLAM,视觉相机采集到的图像中含有大量的直线特征。现有技术中通常会用到EDLines等直线特征提取算法获得图像中的直线特征。但是现有的EDLines算法受噪声的影响,在非直线特征处会提取出较短的直线,因此其抗噪声干扰能力还有待提高。并且采用现有EDLines直线特征提取算法提取得到的线段特征,中间断点较多,与实际情况的吻合度还有待提升。
[0004]并且现有方法在提取图像中的特征点时,特征点多数位于线段的端点、线段间交点、纹理丰富的区域,而在线段中部、低纹理区域提取出特征点较少,特征点的分布不够合理,这在SLAM过程中不利于准确判断关键帧图像和提高位姿估计准确度。
[0005]而且现有技术在构建八叉树地图时,由于在根据相邻帧图像进行位姿估计时存在累计误差,建立的地图容易出现参考平面不平、角度与实际不一致的问题,导致建图准确度降低;且在将三维点云转换为八叉树地图时,由于三维点云数据量大,转换过程耗时长,很难保证算法的实时性。
技术实现思路
[0 ...
【技术保护点】
【技术特征摘要】
1.一种基于直线引导特征提取的视觉SLAM建图方法,包括步骤:1)通过相机实时拍摄环境图像;2)对图像进行高斯滤波,以平滑图像;其特征在于:3)提取图像中的线段特征,其又包括以下步骤:3.1)计算图像中每个像素的梯度方向和梯度大小;3.2)遍历每个像素,选取在梯度方向上梯度值大于或等于相邻像素梯度值的像素,定义为锚点,3.3)连接锚点,形成边缘像素链;3.4)对每条边缘像素链采用PROSAC方法剔除噪声点,拟合线段,其又包括以下步骤:a)从边缘像素链中任选2个像素作为线段的起点和终点,并根据所选的2个像素计算出一条直线;b)求取边缘像素链中的其它像素到步骤a)计算所得直线的加权距离,以加权距离在d
H
范围内的像素作为内点构成内点集;其中d
H
为给定阈值;d
i
=αd
i1
+βd
i2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)d
i2
=cos(θ1‑
θ2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中,d
i
为像素距直线的加权距离,d
i1
为像素(x
i
,y
i
)到直线y=kx+b的欧式距离,k为直线斜率,b为直线截距,d
i2
为像素(x
i
,y
i
)梯度方向θ1与直线y=kx+b的法线方向θ2的单位向量距离,α和β为权值因子;c)以最大化内点数量为指标进行迭代过程,每次迭代过程中用于确定新直线的2个像素从上一次迭代得到的内点集里面选取,直至内点占像素链中所有像素的比例超过比例阈值τ或达到迭代次数num;d)以最后一次迭代得到的线段作为最终结果,并输出提取到的线段方程;3.5)对步骤3.4)得到的线段进行筛选和合并,其包括以下步骤:A)任意选择图片中的一条线段作为主线段,再拓展一个长为l+Δl,宽为Δw的矩形,主线段位于矩形的中心位置,矩形的长边与主线段平行,其中l为主线段的长度,Δl和Δw为设定的阈值,以向量相似度筛选矩形内及与矩形相交的线段,将满足向量相似度筛选公式的线段放入集合中得到线段集合;向量相似度筛选公式为:的线段放入集合中得到线段集合;向量相似度筛选公式为:的线段放入集合中得到线段集合;向量相似度筛选公式为:cosθ≥cosθ
min
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)其中为主线段l1的向量表示,为待合并线段l2的向量表示;主线段l1的两个端点坐标分别为(x
1a
,y
1a
)、(x
1b
,y
1b
),待合并线段l2的两个端点坐标分别为(x
2a
,y
2a
)、(x
2b
,y
2b
),θ为
主线段l1与待合并线段l2的夹角,θ
min
为设定的夹角阈值;B)对线段集合中的线段按照与主线段的距离升序排序,距离度量公式为:B)对线段集合中的线段按照与主线段的距离升序排序,距离度量公式为:B)对线段集合中的线段按照与主线段的距离升序排序,距离度量公式为:其中,为待合并线段的中点p的坐标,d
p
为中点p到主线段y=k1x+b1的欧式距离,k1为直线斜率,b1为直线截距;C)依次选择步骤B)中升序排序中的线段作为待合并线段,将待合并线段正投影到包含该主线段的直线上,得到待合并线段的投影线段,再分情况合并线段:情况一:当投影线段的两个端点主线段之外,且投影线段的两个端点在主线段的同一侧,则计算主线段和投影线段的两相邻端点的距离,如果两个相邻端点的距离小于设定的阈值则在主线段的两个端点和投影线段的两个端点...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。