基于室内标志的视觉定位方法*

2022-01-08 04:58许宁波
交通信息与安全 2021年6期
关键词:标志点全局标志

黄 刚 蔡 浩 邓 超 何 志 许宁波

(1.武汉科技大学汽车与交通工程学院 武汉 430081;2.武汉纺织大学计算机与人工智能学院 武汉 430200)

0 引 言

随着对位置信息服务(location-based services,LBS)的需求增加,室内环境下的高精度定位[1]成为研究热点。例如盲人室内无障碍导航[2]、室内服务机器人自主巡航[3]以及室内停车场中的智能汽车自动泊车[4]等室内交通场景,都需要获取目标的高精度位置信息。室内场景屏蔽了GNSS(global navigation satellite system)信号,传统的基于GNSS的定位方法无法在室内环境有效应用。对此,国内外学者提出诸多室内定位系统(indoor positioning system,IPS),但是在定位效率和精度及实用性方面仍然存在很多问题。

目前在室内定位中常用的传感器包括无线传感器、测量传感器和视觉传感器等,其中使用的无线传感器包括Wi-Fi[5-6]、蓝牙[7]和超宽带(UWB,Ultra Wide Band)[8]等,利用室内场景中广泛存在的Wi-Fi资源进行定位是最常见的室内定位方法,王博远等[9]提出1种改进的加权k近邻Wi-Fi指纹定位方法,该方法通过引入加权系数和设计信号加权欧氏距离,对加权k近邻算法进行改进,利用信号加权欧氏距离进行指纹匹配和位置估计,实验中平均定位误差为1.82 m。杨保等[10]提出1种基于蓝牙的室内定位方法,该方法利用不同无线接入点(access point,AP)对位置的影响差异,实现空间分割以自动构建指纹数据库,结合用户的运动状态实现室内定位,定位误差小于2 m。在室内场景中,由于无线信号受到非视距传播的影响,且单个信号锚点的信号值随时间变化也会发生变化,因此基于Wi-Fi或蓝牙的室内定位算法定位精度较低,且基于指纹的定位方法需要时常对指纹进行更新。而基于UWB的室内定位方法,由于成本高昂,难以进行大规模推广应用。基于测量传感器的室内定位方法主要使用的传感器包括激光测距仪和陀螺仪等[11],通过测量与周围物体的相对距离,以及自身的加速度和角加速度等信息,实现自身位置的计算。然而,测量传感器的成本较高,陀螺仪在无GPS环境漂移误差较大,同样难以进行大规模推广应用。

视觉传感器由于其感知数据丰富、直观,价格低廉,且易于集成,基于视觉传感器的室内定位算法更容易进行推广应用。现有的视觉定位算法按照其过程,可以分为SLAM(simultaneous localization and mapping)方法和“离线制图-在线定位”方法。ORB-SLAM3[12]是基于图像ORB(oriented fast and rotated brief)[13]特征提取和匹配的视觉SLAM方法,是ORB-SLAM[14]上的改进版本,该方法使用效率较高的ORB特征进行特征点的计算和匹配,然而该方法在构建即时地图时,特征点比较稀疏,在特征点较少的场景中,计算误差较大。“离线制图-在线定位”方法的核心是通过提取和匹配当前图像和地图图像的特征进而找出最近图像,并在图像匹配结果的基础上进行定位计算。在计算最近图像中,胡月志等[15]提出利用ORB特征进行交通标志的快速识别,从构建的交通标志图像库中找出最近图像。在定位计算中,陶倩文等[16]提出利用SURF(speeded up robust features)[17]特征进行场景特征的提取和计算,然而SURF特征的计算比较耗时,导致算法整体的耗时较大。Wael Elloumi等[18]提出基于Harris特征和ZNCC(zero-normalized cross-correlation)匹配算法的室内定位方法,该方法需要人工选取室内场景中的关键帧,进行预先地图构建,在定位时,通过安装在人体上固定机位的摄像机拍摄场景图像,并与地图进行匹配,进而获取位置信息。

笔者针对目前文献中方法的不足,特别是针对文献中方法计算耗时较大的问题,以及人工选择关键帧时取点工作量大的问题,以室内场景中已有的各类标志为视觉目标,引入局部BEBLID(boosted effective binary local image descriptor)[19]特征提取算法,并对该算法进行改进,提出全局BEBLID特征提取算法,并以此面向室内场景中的机器人或智能汽车提出1种视觉定位方法。该方法分为离线阶段和在线阶段,离线阶段中,采集各个标志点的场景图像和标志的坐标信息,构建场景标志地图。在线阶段中,通过当前图像与场景视觉地图中图像的全局和局部BEBLID特征匹配,以及利用存储的标志坐标信息,计算拍摄当前图像时的摄像机在场景中的位姿,以实现机器人或智能汽车位置信息的计算。

1 本文算法

本文算法以室内各类标志为视觉目标,算法包括离线阶段和在线阶段,见图1。在离线阶段中,采集各类标志所在的场景图像,在对图像进行预处理后,提取其全局BEBLID特征和局部BEBLID特征,并提取标志在场景中的坐标信息,构建场景标志地图。在线阶段中,车辆/机器人获取包含标志的场景图像后,对图像进行处理,并与标志地图进行匹配,计算获得当前的位置信息。其中,定位阶段的计算分为3个步骤:①通过基于KNN算法的全局BEBLID特征匹配,获取最近图像;②通过局部BEBLID特征匹配获取当前图像与场景标志地图中图像的特征点对应关系;③利用特征点对应关系和场景标志地图中存储的标志坐标,进行度量计算,获取当前的位置信息。

图1 方法流程图Fig.1 Flow of the proposed method

1.1 离线阶段:场景标志地图构建

在离线阶段,场景标志地图构建步骤如下。

步骤1。选取场景中已存在的标志点,并对场景中的标志点进行编号。

步骤2。采集每个标志点的场景图像,为了适应在定位过程中拍摄的图像可能来自于不同的距离和角度的摄像机,在采集标志点图像时,每个标志点采集3张不同角度和距离的场景图像。

步骤3。在获取原始场景图像后,对场景图像进行预处理,将图像尺寸统一缩放至640×480 pixels,并对缩放后的图像进行灰度化和直方图均衡化处理。对经过图像预处理后的场景图像进行全局特征点设定和全局BEBLID特征提取,以及局部特征点检测和局部特征提取。BEBLID是1种局部特征点描述算法,是Iago Suárez等[19]提出1种基于Ada-Boost的二值化特征,能够对图像中局部点的特征进行计算,但不具备对图像整体进行表征的能力。在本文中,对文献[19]中的BEBLID算法改进,提出全局BEBLID特征计算方法,首先,将图像缩放成标准的图像块;然后,将图像块的中心点作为特征点所在的位置,即设定中心特征点,直接略过特征点检测步骤,极大减少特征点计算耗时;最后,提取中心特征点的BEBLID特征。BEBLID特征通过对图像块中的区域进行灰度值比较计算获得,对于图像中的图像块A和B,利用AdaBoost最小化损失[19]。

式中:λ为弱学习器的权重;ri∈{-1;1};h(A)为图像A中u个弱学习器组成的向量,特征值通过对图像块的平均灰度值进行比较获得。

式中:f为特征值提取器;T为设定的阈值。f的具体计算方法见式(3)。

式中:I(p)和I(q)分别为图像块A和B在p和q处的灰度值;s为A和B的尺寸,通过f计算可以获得图像块A和B的平均灰度值差异。通过式(2)~(3)计算后,可以获得由+1和-1组成的一组特征值向量,为了获得二值化描述符,将+1变换为1,-1变换为0,则生成的新向量为BEBLID特征描述符。所提取的BEBLID特征能够对图像整体进行特征表征,区分于局部BEBLID特征,该特征为图像整体的全局BEBLID特征。在局部特征点检测和局部特征提取中,采用文献[19]的方法进行。为了方便位姿计算,同时提取图像的局部特征点及其局部BEBLID特征。图2为场景中随机标志图像所提取的全局和局部BEBLID特征。

图2 BEBLID全局与局部描述符示例Fig.2 Examples of holistic and local BEBLID features

步骤4。通过人工测量,采集室内标志在场景中的坐标,并计算标志坐标系和场景坐标系的转换关系(R0t0)。

通过以上4个步骤,完成对场景标志地图的构建。对于场景标志地图中的每1个节点i,其数值化表示为

式中:Fi为每个节点的数值化表示;gi为节点i中图像提取的全局BEBLID特征;oi为节点i中图像提取的局部特征点和局部BEBLID特征;ci为节点所对应的标志的坐标信息以及坐标转换信息。

1.2 在线阶段:基于全局和局部BEBLID特征的定位

在线阶段中,将采集的当前图像与场景特征地图进行匹配,获取当前的位置信息。包含3个步骤:①基于KNN算法的全局BEBLID特征匹配;②局部BEBLID特征匹配;③度量计算。以上3个步骤分别利用全局特征信息、局部特征信息和坐标信息,通过设计层次化的定位过程,能够有效提升定位效率。

1.2.1 基于KNN算法的全局BEBLID特征匹配

全局BEBLID特征的数值化形式是256位二进制数据,通过对2幅图像提取的2个全局BEBLID特征的异或匹配计算其Hamming距离。

式中:L1和L2分别为2个待匹配图像的全局BEBLID特征描述符;和分别为2个全局描述符中的第i个数;XOR表示异或匹配。通过公式,即可计算出2幅图像的Hamming距离,Hamming距离代表了图像的相似程度。在构建场景标志图像时,每个标志点采集了3张图像,为了计算出最近图像,引入KNN算法[15],选出其中Hamming距离最小的K张图像作为候选结果。通过基于KNN算法的全局BEBLID特征匹配,不仅可以计算出距离当前位置最近的标志点,还可以从该标志点的3张地图图像中获取最近图像。

1.2.2 局部BEBLID特征匹配

在获取最近标志点以及最近标志点图像后,利用局部BEBLID特征匹配获取图像中特征点的对应关系。局部特征匹配计算较为成熟,选择文献[19]中的方法进行局部BEBLID特征匹配计算。通过以上方法,可以计算出当前图像与场景标志地图中最近图像特征点的一一对应关系,该对应关系用于在下一步的度量计算中,对当前位置进行计算。

1.2.3 度量计算

度量计算是通过局部BEBLID特征匹配获取的二维特征点对应关系,以及场景标志地图中存储的标志坐标,获取当前三维位姿以及位置信息的计算过程。通过局部BEBLID特征匹配,可以获取当前图像与场景标志地图中最近图像的单应关系Hcm。

式中:[uc vc1]T和[um vm1]T分别为通过局部BEBLID特征匹配确定的特征点对在当前图像与场景标志地图中最近图像中的坐标。同时,场景标志地图中的图像与场景坐标系存在关系,见式(7)。

在本文中近似认为标志处于1个平面上,因此场景标志地图中的图像与场景坐标系之间的关系退化为单应关系Hm。

通过式(6)和式(8)可以获取当前图像与场景坐标系之间的单应关系

对于小孔成像模型,单应矩阵与摄像机内参数、旋转矩阵和平移向量相关。

式中:K为摄像机内参数,通过张正友标定法[20]获得。通过对Hc进行分解计算,可以获取当前图像拍摄的位姿。

通过当前图像拍摄的位姿(R,t),其中R为旋转矩阵,t为平移向量。可以通过以下公式获取相机在地图中的位置。

式中:(R0t0)为旋转和偏移矩阵,是标志坐标系和整个场景坐标系的转换关系;为正交投影矩阵。

2 实验验证

根据本文所提出的方法,进行算法设计,并在实际场景中进行验证。选择的实验场景是武汉科技大学黄家湖校区9号楼、恒大楼以及恒大楼停车场,分别是典型的办公楼、教学楼和室内停车场。在场景1的9号楼中,选取标志点10个,共采集30张地图图像,利用1.1中的方法构建场景标志地图。同理,在场景2和场景3中,分别选取标志点10个,分别采集30张地图图像。图3为场景1、场景2和场景3中采集的部分场景标志图像。

图3 实验场景中部分标志图像Fig.3 Sign images from experiment scenes

其中场景19号楼和场景2恒大楼的实验面向室内服务机器人应用场景,定义为第一类场景;场景3恒大楼停车场面向智能汽车应用场景,定义为第二类场景。每个标志点拍摄10张图像作为测试图像,即场景1、场景2和场景3的测试集图像数量均为100。由于2类场景针对的应用对象不同,对第一类场景和第二类场景分别进行实验,在第一类场景中,对本文提出的基于KNN算法的全局BEBLID特征匹配算法性能进行验证,与文献[15]的方法进行对比,并对整体定位算法的定位误差和耗时进行验证。并在第二类场景中,同样进行实验验证。

2.1 第一类场景实验

2.1.1 基于KNN算法的全局BEBLID特征匹配实验

利用本文所提出的基于KNN算法的全局BEBLID特征匹配算法对测试集图像进行处理,对输出的结果进行判定和统计。算法运行的硬件环境为Intel Core i7。由于事先对场景内的标志进行编号,当算法识别的结果与当前图像对应的标志编号相同时,则说明计算结果正确,反之计算结果错误。图4为第一类场景的标志识别实验结果。

从图4可以看出,在场景1中,本文算法的正确识别的数量为91,正确识别率为91%。文献[15]正确识别的数量为82,正确识别率为82%。在场景2中,本文算法的正确识别的数量为90,正确识别率为90%。文献[15]正确识别的数为83,正确识别率为83%。

图4 第一类场景标志识别结果Fig.4 Recognition results of the signs in the class-1 scene

计算效率也是对算法进行评估的重要指标,实验中,对算法的计算耗时进行统计,见表1。

表1 计算效率对比实验结果Tab.1 Comparison experiments of calculation efficacy

从表1可以看出,在相同地图图像以及相同测试图像的情况下,场景1中,本文方法的平均计算耗时为92.0 ms,文献[15]中方法的平均计算耗时为92.7 ms;在场景2中,本文方法的平均计算耗时为95.3 ms,文献[15]中方法的平均计算耗时为96.4 ms。在计算效率方面,本文方法与文献中的方法均能达到较快的速度,其原因在于本文方法与文献[15]中的方法类似,都是基于灰度值比较的二值化描述符对全局图像进行特征描述。结合图4和表1中展示的实验结果可以表明,本文所提出的基于全局BEBLID特征的场景最近图像计算方法在识别成功率和计算耗时方面可以获得较好的效果。

2.1.2 本文算法的定位误差

基于KNN算法的全局BEBLID特征匹配获得最近图像后,进行局部特征匹配和度量计算。图5为BEBLID局部特征匹配效果,其中图5(a)为场景标志地图中的图像,图5(b)为测试集图像。通过度量计算,可以获得当前的位置信息,将该位置信息与测量真值进行对比,即可获得本文算法的定位误差,实验中测量真值通过人工测量获得。对计算获得的定位误差进行统计分析,见图6,为本文方法在场景1和场景2中的定位误差,以累计分布函数CDF(Cumulative Distribution Function)进行展示,反映了在不同定位误差下的累计概率。

图5 局部BEBLID特征匹配效果Fig.5 Matching performance of local BEBLID features

图6 第一类场景定位误差Fig.6 Localization error in the class-1 scene

从图6可见:在场景1中定位误差小于0.5 m的次数超过60次,定位误差小于2 m的次数达到89次;在场景2中,定位误差小于0.5 m的次数同样超过60次,定位误差小于2 m的次数接近90次。

第一类场景的实验结果见表2。从表2可以看出,场景1中,本文算法的平均定位误差为0.80 m,标准偏差为1.38 m;场景2中,平均定位误差为0.82 m,标准偏差为1.41 m,定位误差小于1 m的次数均达到87%。导致标准偏差较高的原因在于当识别错误时,定位误差定义为标志点之间的距离,实验中测定该误差距离的均值约为5 m。本文方法的整体计算耗时包括3个部分,分别对应定位方法中的3个步骤,包括基于KNN算法的全局BEBLID特征匹配、局部BEBLID特征匹配和度量计算。从表2可以看出,本文方法的平均计算耗时为152.0 ms。通过以上实验可以表明,本文方法可以在保证计算效率基础上获得较好的定位结果。

表2 第一类场景定位误差Tab.2 Localization error in the class-1 scene

2.2 第二类场景实验

图7为本文方法在第二类场景中的实验结果。从图7可以看出,在停车场场景中,测试样本总量为100时,本文方法对标志的正确识别次数为90次,文献[15]中方法正确识别次数为84次。由此可见,本文方法比文献[15]方法正确率高出6%。

图7 第二类场景标志识别结果Fig.7 Recognition results of the signs in the class-2 scene

图8为本文方法在第二类场景中的最终定位误差,从图8中可以看出,在室内停车场中,本文方法定位误差小于1 m的概率达到86%,定位误差小于0.5的概率达到51%,平均定位误差小于1 m。

图8 第二类场景定位误差Fig.8 Localization error in the class-2 scene

通过以上2部分实验,可以看出:①本文方法在教学楼、办公楼及室内停车场场景中,利用场景中的标志,能够进行有效的场景识别和定位计算;②通过改进特征提取方法,与传统方法相比,本文方法在识别精度方面有一定的提升,相对提升率约为10%。

3 结束语

本文利用室内场景中的标志,提出1种基于全局和局部BEBLID特征的视觉定位算法。本文方法的创新之处主要在于:①对BEBLID算法改进,使其具备描述全局特征的能力,并且通过设置中心特征点的方式,大大提高算法效率;②基于所提出的全局BEBLID特征,引入KNN算法,不仅能够快速确定最近图像所属的标志点,还能够确定与当前拍摄位姿最相近的场景标志地图图像,避免由于视场重叠过小而导致的特征点匹配数量降低的问题。本文方法在典型的教学楼、办公楼和室内停车场场景进行实地验证,实验结果表明,算法在场景中对标志点的正确识别率达到90%,平均定位误差在1 m内。

本文所提出的方法能够应用于各类室内交通场景下的机器人/智能汽车定位,例如地下停车场中的智能汽车定位以及室内服务机器人导航等。同时,本文方法也存在不足之处,拟在后续的研究中进行完善和拓展:①在特征单一且相似的场景中定位误差较大,后续拟通过引入其他的定位方式进行融合,以提升算法的鲁棒性;②由于仅针对标志进行定位,可以与其他定位算法结合,例如在面向智能汽车定位时,可以与ORB-SLAM3等算法进行结合,以完成整个场景中的定位计算,并提高定位精度。

猜你喜欢
标志点全局标志
Cahn-Hilliard-Brinkman系统的全局吸引子
测量标志现状分析及保护措施
多功能标志杆的使用
量子Navier-Stokes方程弱解的全局存在性
认标志
首都的标志是只熊
标志点定向系统几何精度因子的计算方法
落子山东,意在全局
一种圆形编码标志点的设计及解码算法研究
医改进入新阶段的重要标志