基于人工离线特征库的室内机器人双目定位

2018-01-15 09:25张智张磊苏丽郭文县
哈尔滨工程大学学报 2017年12期
关键词:路标离线关联

张智, 张磊, 苏丽, 郭文县

(哈尔滨工程大学 自动化学院,黑龙江 哈尔滨 150001)

2000年以来,基于视觉传感器的SLAM (simultaneous localization and mapping)研究逐渐兴起[1-2],许多国内外学者借助SIFT(scale-invariant feature transform)或其他图像不变特征,开展了视觉SLAM问题研究[3-4]。目前研究SLAM的方法主要有扩展卡尔曼滤波[5]、信息滤波[6]、压缩滤波[7]、FastSLAM[8]方法。其中EKF-SLAM[9]定位效果好,但随路标过多时计算量较大;基于信息滤波算法的即时定位与地图构建算法虽然稳定准确,但不能进行数据关联;FastSLAM算法只能在短时间内满足一致性要求,但不适用于解决大范围的SLAM问题。

EKF-SLAM方法是一种最优循环迭代估计,在处理信息不确定性方面有独到之处,但针对其计算量随路标个数增多而增长较快的问题,常需改进处理,然而在室内独立小环境中,以子图划分等思想为基础的快速方法难以适用,此外,EKF-SLAM还存在一个明显的缺点便是数据关联脆弱问题,即一旦数据关联出现错误,会将误差代入估计结果中,而且不可恢复,即通常说的EKF(extended Kalman filter)缺乏自恢复能力。

本文以EKF-SLAM算法为基础,并采用了人工离线建立特征库的方法,克服传统方法存在的计算量过大、关联脆弱等问题,实现了室内复杂环境下实时、可靠地定位。此外,在人工建立离线特征库时,解算过程考虑众多特征的有效融合、特征密度控制、优质特征筛选等问题,为此,本算法引入了特征稀疏性策略、稳健特征点选取、误匹配去除等方法。算法在定位过程中需固化特征库,但系统实际工作环境难免会发生一定变化,为弥补算法适应动态环境能力的不足,算法引入了特征库定期更新策略,保证了算法长期有效性。

1 人工地图库建立

1.1 特征点提取及匹配

1.1.1 SIFT特征点检测算法

选取SIFT算法[10]提取图像特征,其原理如下:SIFT算法的尺度空间由DOG(different of Gaussian)金字塔与不同尺度的图片卷积得到。对于已经检测到的特征点,已知特征点的尺度值σ,根据这一尺度,得到最接近这一尺度的高斯图像。SIFT算法先进行非极大值抑制,去除低对比度的点,用直方图统计邻域像素的梯度幅值和方向,直方图的峰值代表了该特征点处邻域内图像梯度的主方向,由于可能存在多个最高点的情况,因此特征点方向可能存在多个。最后每个关键点都有三个特征信息:位置(x,y)、特征尺度σ和特征方向θ。SIFT算法将特征点方形区域划分为4×4个部分,统计每个部分内的梯度方向和特征值为8 bin的直方图,得到128维的向量作为特征描述子。

1.1.2 特征点匹配

采用基于Kd-树[11]的BBF(best bin first)算法[12]进行快速特征点匹配,该算法的优点在于其能够优先查找与查询数据点更为接近的数据空间。在匹配过程中,引入在极线、视差、方向、尺度上的约束限制,从而去除误匹配:

1)极线约束:图像经过标定校正后,左右特征点垂直方向上小于1个像素。

2)视差约束:水平方向上,左图特征点坐标大于右图坐标,且差值小于20个像素。

3)方向约束:左右特征点方向差值小于20°。

4)尺度约束:左右特征点尺度差值小于1.5。

5)唯一匹配约束:如果一个特征点有多个特征点满足约束条件与之相匹配,则该特征点失效,将其丢弃。

使用欧氏距离作为特征点间的相似性度量,两个特征点在特征空间上矢量距离公式为

(1)

式中x=(x1,x2,…,x128)、y=(y1,y2,…,y128)分别为特征点x和特征点y的128维矢量描述符。

表1统计了离线建图过程图像匹配约束结果,也可以从图1发现经过匹配约束后,能够有效地去除误匹配的特征点,误匹配的特征点显著减少。

表1 匹配约束结果Table 1 The result of match constraint

图1 第1帧图像匹配Fig.1 The frame of first frame image

1.2 特征点拍摄及位置解算

1.2.1 图片拍摄过程

如图2所示,相机系统主要由以下几个部分组成(自下往上的顺序):三脚架、旋转云台、双目相机、指南针。在室内环境下建立世界坐标系,并选取若干具有代表性的拍摄位置,每个位置在世界坐标系的坐标通过测量获得。在每个位置处,将双目相机固定在三脚架上的旋转云台上,建立以相机左目为原点的机器人坐标系,借助三脚架水平泡和云台水平泡确保旋转云台系统水平转动(即转动过程中相机的俯仰角始终为0°),并在多个角度拍摄,云台带有角度刻度,可直接读取拍摄角度,拍摄时借助指南针来保证不同位置的角度零位一致。如图3所示,本实验共选取了5个位置,每个位置选取12个拍摄方向(在360°方向均匀分布),采集的图像为1 024×768的模式,每次拍摄获得左右两幅图像。

1.2.2 特征点位置解算

利用SIFT特征点检测算法提取并保存特征点的像素坐标,已知双目相机的视差d=12 cm,焦距f=839.478 943。特征点位置以左目坐标系为基准,在右目中寻找与左目相匹配的特征点。已知左目特征点的像素坐标(xl,yl),与左目匹配的右目特征点的像素坐标(xr,yr),根据双目几何计算公式可以解算出左目特征点在摄像机坐标系下的三维坐标(xi,yi,zi)。双目几何计算公式为

(2)

(3)

(4)

其中:Δx=xl-xr,Δy=yl-yr。

图2 相机系统Fig.2 The system of camera

图3 相机拍摄位置及方向示意Fig.3 The position and direction of camera

由特征点在机器人坐标系下的坐标与相机拍摄位置在世界坐标系下的位置姿态tj=(tjx,tjy,tjz,θj)(j=1,2,3,4,5),可以解算出该左目特征点在世界坐标系下的三维坐标(ui,wi,vi):

ui=tjx+zicosθj-xisinθj

(5)

wi=tjy+yi

(6)

vi=tjz+zisinθj+xicosθj

(7)

1.3 数据关联

建图过程需要将多次拍摄的特征融合,所以每提取新的一帧双目图像中的特征时,需首先将每个特征与已记入库中的特征进行匹配,以排除重复特征,即本节所指的数据关联问题,另外,机器人在实时定位过程中也需进行数据关联。数据关联的正确性直接关系到定位和地图创建的精度,为提高关联准确性,采用双向匹配方法。具体做法如下:设LV1为当前帧图像观测到的特征点之一,遍历搜索地图库中与该点特征相似性最高的特征点,将该点设为LD1,计算公式见式(1),此为正向匹配;然后在当前帧观测特征点集中寻找与LD1特征最相似的点,将该点设为LV2,此为逆向匹配,然后判断LV1和LV2是否为同一点,是则本次关联成功,匹配点对为LV1(LV2)和LD1,否则本次关联失败。

引入数据关联方法后,可初步建立特征地图库,直接将拍摄到所有双目图像中的特征解算位置后汇总,并利用数据关联方法去除重复点即可,建立后的特征库平面分布如图4所示,其定位实验数据见第4章定位综合实验中表3全部特征点实验。

图4 特征库平面分布图Fig.4 The flat figure of feature-database

1.4 路标的稀疏性策略

考虑到过于密集的特征点未必能进一步提高定位精度,而且会增加计算量,所以为了合理控制路标的数量和密度均匀性,引入稀疏性限制。

在图4给出的建图结果中,每次提取一个新特征点时,如未关联成功,则直接作为新增特征点插入特征库,本节对未关联成功的特征点先进行稀疏性检验,满足条件的特征才进行插入操作,具体稀疏性检验策略如下:

如图5,图中绿色的标记代表地图库中已有的路标,对于地图库中的任一路标LDi,设其对应的两个空间邻域分别为ΩA和ΩB(其中ΩA⊂ΩB),ΩB以外的区域定义位为ΩC,则路标的稀疏性限制条件为:

1)在路标LDi的ΩA区域内,不允许存在任何其他路标;

2)在路标LDi的ΩB内ΩA外的区域中,不允许存在与其相似性较高的路标(为便于说明,图中用圆形标记代表与LDi相似性较高的路标,用三角形标记代表与LDi相似性较低的路标)。

图5 特征点稀疏性约束Fig.5 The sparse strategy of feature point

其中第1个限制条件可以控制路标位置空间分布密度,第2个限制条件可以控制路标的特征相似性分布,保证空间距离较近的路标都在特征上有明显的差别,可有效防止路标匹配混淆。

对于当前帧图像发现的每个路标,首先判断该路标与地图库中已存在路标的相对位置关系以及特征相似性,以LDi为例,假设新增路标LVm与地图库路标LDi相似性较低,则该路标位置位于LDi的ΩA邻域之外时才符合插入条件,而对于新增路标LVn与LDi相似性较高时,则其位置必须位于LDi的ΩB邻域以外才符合插入条件。需要说明的是,图5仅以路标点LDi为例来说明插入判断条件,实际操作时必须遍历地图库中路标点,对于所有路标均符合插入条件时,该点才允许被插入,即对于任何新发现路标LVj,需满足式(8)、(9)其中之一:

LVj∈ΩC

(8)

LVj∈ΩB,LVj∉ΩA,D(LDi,LVj)>df0

(9)

式中:i=1,2,…,N,N为地图库中路标个数;df0为阈值常量。在建图过程中,只要合理分配空间邻域和选择特征空间阈值df0,就可以同时控制地图中路标点在位置空间和特征空间的分布密度。

表2统计了离线建图过程图特征点稀疏性约束结果,图6为路标经稀疏性策略约束后(取df0=2.5),地图库中路标二维平面分布图。其定位实验数据见表3稀疏策略后实验,相比较全部特征点实验,在定位精度和实时性上有提升。

表2 特征库稀疏性约束结果Table 2 The result of sparse strategy in feature-database

图7为建图过程的双目图像及特征匹配过程,抽取相机左目拍摄的4帧图像。图中“○”表示当前帧图像中新加入全局特征库的特征点(未关联成功的特征),“┌”表示当前帧图像观测到与全局特征库数据关联成功的特征点,“×”表示当前帧图像中被稀疏掉的特征点。

图6 稀疏后特征库平面分布图Fig.6 The flat figure of sparse strategy in feature-database

图7 数据关联实验图片Fig.7 The experiment figure of data relation

1.5 稳健特征点筛选策略

在识别场景目标时,人类的视觉系统有一个对目标的显著特征区域进行定位的过程。在计算机视觉研究中,稳健局部不变特征[13-14]选择技术类似于人类的这种视觉显著区域定位功能,是指在不同位置和角度拍摄时,将被反复观测次数较多的特征点称为“稳健特征点”(或称“稳健点”)。稳健点表征了图像局部的显著特性,选择其进行特征匹配,将进一步提高定位可靠性和精度。本节将引入稳健点筛选机制,建立基于稳健点的全局特征库。

在人工建图过程中,记录每个特征点在整个人工建图过程中被双目相机观望到次数,选取观望次数不小于3次的特征点视为特征点中的“稳健特征点”;而观望次数小于3次的特征点视为特征点中的“一般特征点”(或称“非稳健特征点”)。将所有的稳健特征点数据信息保存到全局特征库。在某次拍摄中在稀疏处理基础上,进一步采用稳健点约束处理后的特征点数量,图8为特征点平面分布图,最后将去除537个一般特征点,最终仅采用307个稳健特征点定位,这不仅大大简化了计算量,同时也提高了定位精度,其定位实验见表3稳健点筛选后实验。

图8 稳健点特征库平面分布图Fig.8 The flat figure of salient feature-database

2 基于特征库的机器人定位

如图9,采用履带式移动机器人平台,并采用双目摄像机作为视觉传感器,安装在移动机器人前端,机器人左右履带差动运动,可原地旋转,利用左右轮的编码器进行里程测量,很容易估算出机器人的中心速度和角速度,因此后文设计算法时,直接假设可获得机器人的速度和角速度里程信息。在机器人定位过程中,认为特征库已经固定,定位时只需基于特征库动态推算机器人当前位置和姿态即可,本节首先建立机器人的运动模型和观测模型,然后基于扩展卡尔曼滤波方法实现机器人位置估计。

表3 机器人每帧估计位姿和实测数据Table 3 The measured data of estimated pose by every frame figure of robot

图9 移动机器人Fig.9 The figure of mobile robot

2.1 移动机器人运动模型

通常情况下机器人运动模型都是非线性的:

Xr(k+1)=f(Xr(k),u(k))+∂r(k)

(10)

(11)

式中:ΔT为时间间隔,∂r(k)为高斯噪声,其协方差矩阵为Q(k)。

图10 移动机器人运动及观测模型Fig.10 The model of process and observation

2.2 移动机器人观测模型

观测值z(k)采用极坐标表示,即在视觉坐标系下,环境中某一特征点距离传感器的距离r和方向角β,如图10所示,极坐标表示形式为

(12)

式中:(xi,yi)为观测到第i个路标的世界坐标,γh为观测噪声,其协方差矩阵为R(k)。

2.3 基于扩展卡尔曼位置估计

EKF算法将机器人的位姿随机器人的运动不断更新,Xr(k)为k时刻机器人的位姿,其状态向量为:Xr(k)=[x(k)y(k)θ(k)]T。人工地图建成后,特征库中路标的坐标信息写入一个状态向量Xl(k)=[u1v1…unvn]T,在定位过程中Xl(k)不再更新。算法步骤如下:

1)根据机器人的里程计信息,可以获得第k步机器人的速度和角速度,根据第k步机器人位姿可以推算出第k+1步的机器人位姿估计,利用扩展卡尔曼误差协方差估计公式解得误差协方差矩阵估计P(k+1)-。

(13)

P(k+1)-=F(k)P(k)FT(k)+Q(k)

(14)

式中F(k)为f对X(k)的偏导。

2)提取当前帧双目图像特征,将观测到的每个特征点利用1.2节位置解算公式解算出该特征点在世界坐标系下实际三维坐标,并与全局特征库路标进行数据关联,采用1.3节的数据关联方法,对于每次关联成功的特征点,均采用步骤3和步骤4修正机器人的位置和姿态信息。

(15)

(16)

(17)

P(k+1)=(I-K(k+1)Jh(k+1))P(k+1)-

(18)

3 特征库的定期更新

本文采用的离线建立特征库建立策略,保证了在线定位的实时性、精度和稳定性,但缺点是地图固化后无法适应环境的后期变化,为了提高算法实用性,本节引入特征库的定期更新策略进行弥补。

如图11,图中的全局特征库代表已经离线建立的特征库,也是机器人实时定位的基础,在此基础上增加一个动态特征库,记录机器人近期一段时间观测获得的特征,动态特征库不断从机器人当前观测特征中获取数据,区别只是此时机器人位置姿态不再通过人工测量,而是实时通过定位算法获取。动态库更新策略与第1节人工建图过程一致,但主要经过特征提取、数据关联、稀疏性限制等步骤,暂不进行稳健点筛选。

动态特征库会定期地更新至全局特征库,更新过程主要经过数据关联(去除重复点)、稀疏性限制和特征的稳健点筛选步骤,更新完成后即可清除动态特征库,后续定位时再重新记录。该更新过程不需要实时进行,可间隔一段时间更新一次,或者室内环境发生明显变化时再更新,这样可以保证用来定位的全局特征库不会发生快速变化,保证定位过程的稳定性,同时也便于在动态特征库中不断统计特征点的观测次数,以便作出正确的稳健点评价后再更新至全局特征库。

图11 特征库定期更新机制Fig.11 The periodically updated strategy of feature-database

为防止全局特征库中特征持续上升,可定期对其进行特征删除操作,删除条件可检测理论上应位于机器人观测视场之内,当实际观测时并未检测到该特征的情况,设机器人k时刻的位姿[x(k)y(k)θ(k)]T和机器人的观测角度范围(-β0,β0)、距离范围(rmin,rmax),遍历全局特征库中的每一个路标[uivi]T,并利用式(12)计算该路标在机器人观测坐标系下的极坐标[ri,βi]T,如果位于有效观测范围内,但数据关联时未匹配该特征,则认为本特征观测失败,为防止误操作,可对特征库中特征观测失败次数进行计数,达到一定次数时再进行删除。

通过上述特征更新策略,即可维持特征库数量的平衡,又可定期换入新的特征,从而不断适应环境的变化,达到长期有效的定位。

4 定位综合实验

定位实验选取的是1 024×768的图像,机器人直线速度约为0.07 m/s,转弯的角速度约为0.23 rad/s,机器人的初始位置(2.36 m,6.79 m)。

令机器人在实验室复杂室内环境下进行定位实验,结果如表3,为了对比前面建图及定位过程各项策略的效果,表中按照特征库选取全部特征点、稀疏策略后、稳健点筛选后以及定位过程特征库定期更

新后分别进行实验,各类实验均为离线建图模式,不同实验最终保留的特征点数量如表中第2列所示。图12为稳健特征点定位实验过程中,拍取几帧图像,图像中的两种符号(○型符号和×型符号)所代表的是该帧图像所观测到的特征点;在定位过程中,图像中○型符号为与特征库中路标匹配关联成功的特征点,而×型符号为与特征库中路标没有匹配关联的特征点。图13为本次稳健特征点实验过程中,X方向偏差曲线图、Y方向偏差曲线图、角度偏差曲线图,以及在X-Y二维轨迹上偏差曲线图。表3中分别给出了各实验过程x方向偏差、y方向偏差、角度偏差以及实时性。对比可见,在全部特征点试验结果基础上,通过引入稀疏策略、稳健点筛选策略,实时性不断提升,但定位精度并未受到明显影响,且有少量提升。另外进行了特征库后期更新试验(表中最后一行结果),在前期定位实验一周后再次在相同环境下定位实验(环境已有部分变化),引入特征库定期更新策略后,新增了56个特征点,删除掉了42个特征点,最终实验结束后,特征库共有321个特征点,其定位精度及实时性与前期实验结果接近。

图12 定位实验图片Fig.12 The figures of locative experiment

图13 稳健点筛选后机器人定位实验误差曲线Fig.13 The error curves of locative experiment in salient feature-database

5 结论

1)针对移动机器人室内环境的双目定位问题开展研究,以EKF方法为基础,但初始特征库采用人工离线测量的方法,特征库一旦建立,在线定位时仅对机器人位姿进行卡尔曼滤波估计,而不再维护包含路标位置在内的大型协方差矩阵,克服了EKF-SLAM方法计算量过大和数据关联脆弱的问题,提高了定位算法的实时性和可靠性。

2)本方法在建立基于双目视觉系统的特征库时,在房间内选择若干拍摄位置,每个位置选择多个拍摄角度,形成初始图片库,然后根据拍摄位置、角度信息和双目视觉测距公式解算特征点的三维位置等信息,解算并建立离线特征库,解算过程中引入了特征稀疏性策略、稳健特征点选取、误匹配去除等方法,既提高了定位精度和可靠性,又可合理控制特征点数量。

3)在已建立的离线特征库的基础上,通过EKF方法实现机器人在线定位,且为了适应室内环境变化,算法可定期记录图片库,并实现特征库的定期更新,最终算法可保证机器人在室内环境下长期、有效地定位。

4)本方法应用过程需要事先拍摄环境,仅适用于特定环境下的定位,不适用于对未知环境的探索过程。

[1] 权美香, 朴松昊, 李国. 视觉SLAM综述[J]. 智能系统学报, 2016, 11(6): 768-776.

QUAN Meixiang, PIAO Songhao, LI Guo. An overview of visual SLAM[J]. CAAI transactions on intelligent systems, 2016, 11(6): 768-776.

[2] 顾照鹏, 刘宏. 单目视觉同步定位与地图创建方法综述[J]. 智能系统学报, 2015, 10(4): 499-507.

GU Zhaopeng, LIU Hong. A survey of monocular simultaneous localization and mapping[J]. CAAI transactions on intelligent systems, 2015, 10(4): 499-507.

[3] LEMAIRE T, BERGER C, JUNG I, et al. Vision-based SLAM: stereo and monocular approaches[J]. International journal of computer vision, 2007, 74(3): 343-364.

[4] 林睿. 基于图像特征点的移动机器人立体视觉SLAM研究[D]. 哈尔滨:哈尔滨工业大学, 2011: 6-11.

LIN Rui. Research on image feature-based mobile robot stereo visual SLAM[D]. Harbin: Harbin Institute of Technology, 2011: 6-11.

[5] WAN E A, RUDOLPH V D M. The Unscented Kalman Filter[J]. Kalman Filtering & Neural Networks, 2009: 221-280.

[6] THRUN S, LIU Y. Multi-robot SLAM with sparse extended information filers[C]//Proceedings of the 11th International Symposium of Robotics Research. 2003: 254-266.

[7] GUIVANT J E, NEBOT E. Solving computational and memory requirements of feature-based simultaneous localization and mapping algorithms[J]. IEEE transactions on robotics and automation, 2003, 19(4): 749-755.

[8] 王玉全. 基于全景视觉的移动机器人同时定位与地图创建方法研究[D]. 哈尔滨: 哈尔滨工程大学,2010: 82-94.

WANG Yuquan. A research on simultaneous location and mapping of mobile robot with omnidirectional vision[D]. Harbin: Harbin Engineering University, 2010: 82-94.

[9] 赵鑫. 未知环境下无人驾驶汽车同时定位与地图创建研究[D]. 成都:西南交通大学, 2017: 19-27.

ZHAO Xin. Research on simultaneous locatization and mapping of self-driving vehicle in unknown environment[D]. Chengdu: Southwest Jiaotong University, 2017: 19-27.

[10] LOW D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110.

[11]LIU J, QIU Y. Application of SIFT feature extraction algorithm on the image registration[C]// 2011 10th International Conference on Electronic Measurement & Instruments (ICEMI). 2011:177-180.

[12] 杜振鹏, 李德华. 基于KD-Tree搜索和SURF特征的图像匹配算法研究[J]. 计算机与数字工程, 2012, 40(2): 96-98.

DU Zhenpeng, LI Dehua. Image matching algorithm research based on KD-Tree search and surf features[J]. Compute & digital engineering, 2012, 40(2): 96-98.

[13] 刘建军. 基于图像局部不变特征的类属超图构建与目标识别技术研究[D]. 长沙:国防科学技术大学, 2010: 18-24.

LIU Jianjun. Research on local invariant features based class specific hyper graphs learning and object recognition[D]. Changsha: Nation University of Defence Technology, 2010: 18-24.

[14] ELAZARY L, ITTI L. Interesting objects are visually salient [J]. Journal of vision, 2008, 8(3): 1-15.

本文引用格式:

张智, 张磊, 苏丽, 等. 基于人工离线特征库的室内机器人双目定位[J]. 哈尔滨工程大学学报, 2017, 38(12): 1906 -1914.

ZHANG Zhi, ZHANG Lei, SU Li, et al. Binocular localization of indoor robot based on artificial offline feature-database[J]. Journal of Harbin Engineering University, 2017, 38(12): 1906 -1914.

猜你喜欢
路标离线关联
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
异步电机离线参数辨识方法
路标
浅谈ATC离线基础数据的准备
“一带一路”递进,关联民生更紧
路标
FTGS轨道电路离线测试平台开发
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素
奇趣搭配
路标中的学问