摘要:针对在城市环境中全球导航卫星系统间歇失锁时运动平台无法连续定位的问题,研究一种GNSS辅助的视觉动态定位方法。该方法利用相机对街景拍摄3幅影像且记录相应位置的GNSS坐标,以GNSS坐标系为世界坐标系。首先分别提取这3幅影像中的SIFT特征点进行三维重建,得到这些特征点在第1幅影像所对应相机坐标系中的坐标以及相机在这3个位置之间的位姿变换,接着利用这3幅影像所对应的GNSS坐标求得相机坐标系与GNSS坐标系之间的位姿变换。然后通过对此街景任意拍摄1幅影像,即可利用P3P+RANSAC对当前影像所对应的相机位姿进行解算得到相机平台此时的GNSS坐标。最后对某场景的影像数据进行实验,实验结果验证了此方法的可行性,且其定位精度一般不超出6 m。
引用:[1] 聂凤祥,郝向阳,代君,等. GNSS辅助的视觉动态定位方法研究[J]. 测绘科学技术学报, 2024, 40 (05): 476-483.
全球导航卫星系统自问世以来,由于其在一般环境中定位精度高、可全天候提供平台的三维坐标,便迅速成为导航定位的主要方式 [1-2] 。然而,卫星导航定位也存在着明显的局限性:一是导航信号易受到干扰,使得定位结果出现很大误差;二是在高楼大厦林立的城市环境中会产生“城市峡谷” [3-4] 效应,使得GNSS定位出现间歇失锁或信号不稳定现象;三是在室内环境中,由于卫星信号会受到墙体的阻隔,导致卫星定位方法不再适用 [5] 。近年来,基于计算机视觉理论的视觉导航定位技术得到了快速发展。与传统的GNSS定位相比,视觉导航定位方法具有方便灵活、不易被外界干扰、成本低廉等优势。只需用相机获取场景视频或影像序列,即可实现导航定位。目前,城市地区视觉导航定位方法主要有两种模式:一种是结构化场景导航定位模式,即基于内容的影像检索导航定位模式。将城市地区的影像及其三维位置标签相结合组成影像数据库,通过输入身边环境的影像,在数据库中进行检索找到最相似的影像,从而判断自身所处位置 [6-8] 。这种定位方式虽然可以在不依赖GNSS的条件下求得定位点的绝对位置,但也存在构造影像数据库的工作量大、流程繁琐、定位精度较低等诸多缺点 [9-11] 。另一种是非结构化场景导航定位模式。该模式的理论基础是计算机视觉多视图几何理论。无需事先建立影像库,而是根据序列影像中相邻影像的同名特征点来解算搭载平台上相机的相对位姿 [12-13] 。这种模式更加灵活方便,但是其缺点是难以确定绝对位置。针对以上问题,研究一种可将GNSS与视觉定位各自优势相结合的方法。以便GNSS卫星间歇性失锁之后依然能够进行定位,同时实现室内外导航的无缝衔接。对城市地区的导航应用具有重要价值。本文在视觉定位理论的基础上,提出了一种GNSS辅助的视觉动态定位方法。首先利用相机对街景拍摄3幅影像(三像组)且记录相应位置的GNSS坐标;然后使用opencv库中有关函数自动提取这3幅影像的SIFT特征点并进行flann匹配。根据匹配点集计算其在第1幅影像所对应相机坐标系中的坐标和3个相机之间的位姿变换关系;进而利用3幅影像所对应的GNSS坐标求得相机坐标系与GNSS坐标系之间的关系。最后利用P3P+RANSAC算法对影像数据中后续各帧影像所对应的相机位姿进行解算,得到平台相机此时的GNSS坐标。
1 特征点三维重建
1.1 计算三像组相机位姿变换
设同一相机的光心在不同的3个点位C 1、C 2和C 3对同一街景区域各自拍摄一张影像(三像组)分别记为I 1、I 2和I 3,它们所对应的GNSS坐标分别为X W C 1 、X W C 2 和X W C 3 。GNSS坐标系即世界坐标系。将拍摄时相机光心在C 1的坐标系称为C 1坐标系(X A B 表示在A坐标系下点B的坐标,下同),如图1所示。
4 实验与结论
4.1 实验设备
实验使用的电脑系统为Windows10,编程平台为Spyder, 程序语言为python 3.7。由于如今智能手机非常普及,在获取影像方面十分方便,所以实验使用相机为智能手机VIVO X27的后置摄像头(如图4所示)。对应焦距为11.5 mm, 所拍摄照片像素为2 000×1 500。为了提供更加精确的GNSS坐标信息,实验使用的定位装置为千寻公司所产L500智能终端(如图5所示)。其定位模式可同时融合BDS、GPS、GLL等卫星定位数据,再结合千寻的地基增强系统,即“RTK大号基准站”,可以得到cm级精度的定位结果。
4.2 相机标定
实验中使用MATLAB的Camera Calibrator工具箱进行张正友标定。只考虑桶形畸变,求出其两个畸变参数分别为k 1=0.008 1,k 2=0.097 3。
其内参数矩阵为
相机标定误差如图6所示。其总体误差不超过0.3像素,平均误差为0.18像素。
4.3 实验场景与数据采集
以某食堂及其周围的开阔地带为实验场景。令相机光心在点Ci拍摄8幅影像,分别命名为“00i”(i=1,2,3,4,5,6,7,8)。经过畸变矫正的拍摄影像如图7所示。拍摄位置的GNSS坐标如表1所示。
根据表1中的数据,可以得到相机在GNSS坐标系中X-Y平面(相机位移轨迹在X-Y平面上具有良好的首尾连贯性,故使用X-Y平面内相机位移轨迹图)的位移轨迹(横轴为X轴;纵轴为Y轴;单位为m),如图8所示。从最上面点位开始,沿着连线依次为C 1~C 8点位。
4.4 实验过程与结果
以001为基准影像,以相机光心在点C 1处的相机坐标系为C 1坐标系。使用opencv分别提取001、002、003的SIFT特征点,并对其特征点进行flann匹配,使用K-D树寻找匹配点。参数设置为trees=5,遍历次数checks=50,确定匹配点时比率ratio=0.4,其匹配结果如图9和图10所示。其中001与002有256对匹配点;001与003有107对匹配点。
由影像I 1与影像I 2的匹配点集,结合先验尺度信息,利用式(6)借一个超定方程组即可求出各特征点在C 1坐标系下的三维坐标的最小二乘值。部分结果如图11所示。
然后由式(7)计算相机坐标 X C 1在影像001与002上的重投影误差。绘制散点示意图(横轴:像素坐标u轴;纵轴:像素坐标v轴;单位:像素),如图12所示。其中坐标越靠近原点,重投影误差越小;反之则相反。从图12中得知在256个散点中,除了少数噪点外,绝大多数点重投影误差在10以内。
根据已知条件,利用式(8)~式(12)解出由GNSS坐标系向C 1坐标系进行欧式变换的最佳旋转矩阵为
接着,分别对I 1与I 4、I 1与I 5、I 1与I 6、I 1与I 7以及I 1与I 8进行SIFT特征点提取与匹配,其规则与上文一样。得到的匹配结果分别如图13中5幅图像所示。
最后,以式(13)~式(16)等式使用P3P+RANSAC算法求解相机位移向量;再以式(12)、式(17)~式(19)等式解算点位C 4、C 5、C 6、C 7、C 8的GNSS坐标。在RANSAC中设定阈值为8.0,若此时重投影误差小于8.0,则视为内点;否则视为外点。并与表1中相关数据进行比对得到定位误差,结果汇总于表2。其GNSS中X-Y平面上的相机位移轨迹图(横轴为X轴;纵轴为Y轴;单位为m)如图14所示。
由表2可以看出,根据本文所述的GNSS辅助的视觉动态定位方法,得到的定位结果误差最低在2 m之内,最高不超出6 m。
4.5 误差分析
比较图8与图14,由于定位误差存在,除前3个基准点之外,后续的5个点位置皆有变化导致轨迹图有一定程度变形。其误差来源主要有以下3个方面:
1)在每幅影像记录GNSS坐标时,尽管仪器精度可达到cm级,但这些cm级的误差也被含入实验整体位置验证体系中。
2)在进行空间特征点三角剖分与相机标定时,由于重投影误差不可能完全为0,所以这部分误差进入到后续P3P位姿解算中,从而降低了解算精度。
3)在求取GNSS坐标系与相机坐标系之间的旋转矩阵 R W 时,所得结果往往并不能严格遵守旋转矩阵的内在约束关系。将其标准化后所得结果必然会与真实的 R W 有一定误差,这将导致解算出的相机位移向量精度降低,进而影响最终定位结果。
5 结论
在本研究中,以I 1作为基准影像,I 2、I 3作为辅助影像,GNSS坐标已知的C 1、C 2、C 3作为“控制点”,相机光心在点C 1处的相机坐标系为C 1坐标系,求出这3个点之间的相对位置关系,以及GNSS坐标系与相机坐标系之间的旋转矩阵。以此为基础,可对同一街景区域拍摄任意影像I 4。若它与I 1有足够多匹配点对,就可以依照上述方法求出此时相机光心的GNSS坐标。
因此本研究的理论方法可以满足GNSS卫星间歇失锁或者信号较差时,用户在城市街景环境中的定位。而且精度可以与一般GNSS定位精度相媲美。
下一步研究工作是将本文方法与结构化的影像检索导航定位模式相结合,提高后者定位精度,实现“以图定位”。
Android智能手机GNSS定位研究进展
一体式GNSS接收机观测值精度评估
一种用于GNSS干扰源的四星时差定位算法
新标准!GNSS测量规范GBT 18314-2024
⬆️联系我们⬆️