王式太 张博宇 殷 敏
1 桂林理工大学测绘地理信息学院,桂林市雁山街319号,541006 2 广西空间信息与测绘重点实验室,桂林市雁山街319号,541006
阴影匹配算法的原理是以依据信噪比判定标准获得的卫星可见性为参考基准,对接收机在城市峡谷中的可能位置(搜索范围)上依据已有的3D建筑模型和卫星方位角、仰角等信息获得的卫星空间可见性进行评分,所有可能位置中评分(可见性匹配度)最高者作为接收机定位位置。传统算法定位步骤为:
1)移动终端初始化定位。通过GNSS接收机获取单点定位结果,得到精度较低的P0点位置信息,将P0点设为可能位置的搜索原点。
2)设定搜索区域。以P0点为中心设定搜索区域,通常情况下可设置为圆形或者矩形,搜索半径可根据不同终端的定位精度设为10~50 m。
3)预测搜索区域内每个候选位置的卫星可见性。在每个候选位置上,通过卫星坐标和候选位置坐标计算该时刻卫星方位角和高度角,同时结合周围建筑物三维模型判定该候选位置上的卫星可见性。
4)依据信噪比判断卫星可见性。一般认为,接收机直接接收到卫星信号时其SNR值较高,当接收到经过建筑物衍射和反射的卫星信号时,SNR值会变低。设定固定的信噪比阈值作为判断标准,当信噪比低于阈值时则判定卫星不可见,否则为可见。
5)候选位置评分。对比步骤3)和4)评估卫星可见度预测值与观测值之间的匹配度,匹配较好的候选位置将被赋予更高的权重。利用评分方案,根据预测和观测到的可见度,采用打分模板(图1)对每颗卫星进行打分。
图1 打分模板示意图
每个候选位置的总得分为:
(1)
式中,fpos(j)为侯选位置j的最终得分,fsat(i,j)为卫星i在侯选位置j的得分,n为大于截止高度角的卫星颗数。
对于我国来说,制定促进农户适应新型农业食品体系的政策是非常必要的。政策旨在解决农户参与超市供应链时可能遇到的营销壁垒,以及促进集体行动,从而尽可能地降低农户参与过程中的交易成本。
6)定位解算。由打分方案可知,在卫星预测和观测准确的情况下,高分值所在的侯选位置更接近真实位置。高分侯选位置通常不止一个,则取坐标均值作为阴影匹配的定位结果。
在实际运算过程中,传统方法通过卫星信噪比经验阈值来判定卫星的可见性不够准确,因为同为可见或同为遮挡的不同卫星,其SNR值由于信号穿过不同大气/云层会存在差异,采用相同阈值可能会存在误判。在高分值区域内,如果阈值设置正确,理论上当搜索位置与实际观测位置一致时,预测可见性与观测可见性将完全一致,但实际上每个历元的候选位置中通常不存在满分位置。据此,本文提出在每个历元中找到可使最优区域产生满分的一组动态阈值,阈值组随时间继承,直至因非满分再进行局部阈值改变。动态阈值算法计算流程如图2所示,具体步骤为:
图2 动态阈值计算流程
1)设定初始阈值组为k(k1=k2=…=kn)(n为观测到的卫星个数),采用此阈值组进行该历元卫星观测可见性判断,与预测可见性对比获得最高分区域。
2)在该历元的最高分区域内统计每个候选位置上预测可见性与观测可见性不符的卫星,设分差为d,全部不符卫星数为m(m≥d),统计m颗卫星在最高分区域内的不符次数。
3)选择不符卫星中出现次数由高到低的前d颗卫星。
4)依据卫星预测可见性对d颗卫星依次改进SNR阈值Si:
①依据几何关系判断为遮挡,SNR阈值判断为不遮挡:
Si=SNRi+1
(2)
②依据几何关系判断为不遮挡,SNR阈值判断为遮挡:
Si=SNRi-1
(3)
5)重新对搜索区域内的候选位置进行打分,根据最高分区域计算改正后的点位,将阈值组传入下一历元。
本实验采用某品牌智能手机作为接收机,同时使用RTK对实验区周围建筑物进行测量,包括建筑物各角点测量以及楼层高度测量,以此建立三维模型。实验区为桂林理工大学雁山校区7A、7B、6B、6C四栋楼之间的过道,峡谷总长为130 m,宽度为16 m,进行静态模式测量。
实验中同时采用RTK测定坐标。由于RTK获得的坐标精度远高于手机定位的坐标精度,因此将其作为分析实验精度的参考值。数据采集时间为2020-05-10 14:13~14:36,采样间隔为1 s。以3 s时刻采集的坐标数据为例,以采集的坐标为中心建立20 m×20 m矩阵搜索区域,候选区域边长为0.5 m,共1 600个候选区域。
图3为整个观测过程中部分卫星信噪比值变化,从图中可以看出,卫星信噪比值在每个历元均会发生波动,不同卫星信噪比所处区间具有较大差异。为避免采用单一阈值可能造成的卫星可见性误判,引入动态阈值来减弱该影响(图4),对每颗卫星在不同历元均采用动态阈值后,阈值与相应卫星的信噪比区间能较好对应。对于单颗卫星,在SNR值波动较小的情况下阈值变化也非常稳定。
图3 卫星信噪比值变化
图4 卫星动态阈值
根据文献[7],基于高分值加权的改进阴影匹配定位算法研究中推荐使用38作为单阈值,本文所采集数据的信噪比值偏低,经验证后采用32作为单阈值。以3 s时刻为例,手机原始观测接收到16颗卫星的信号,每颗卫星的信噪比值如图5(a)所示,灰色标记的卫星为5°截止高度角过滤的卫星,不参与匹配过程,红色横线为单阈值(32阈值),红色部分为该时刻从上一时刻继承及本时刻改进后的动态阈值。从图中可以看出,采用动态阈值后在卫星可见性判断方面与单一阈值相比具有明显差异,红色字体卫星为采用动态阈值后可见性发生变化的卫星。图5(b)为每个历元采用单阈值和动态阈值判断的卫星可见性与SNR判断一致的卫星个数(得分)。
图5 依据32阈值、动态阈值判断第3 s卫星可见性及与SNR判断一致卫星个数随时间的变化
图6为分别依据单一阈值法和动态阈值法进行阴影匹配计算后的得分,单一阈值法搜索区域中最高得分的位置较多,采用邻近点KNN-SM算法确定的位置精度存在偏差。通过动态阈值处理后原高分区域内出现分化,存在相对单一阈值的更高分区域,面积相对变小,计算的点位位置相对更加精确。图中红色“*”代表真实位置,紫色“○”代表动态阈值阴影匹配计算的位置,黑色“+”代表32阈值阴影匹配计算的位置。从图中可以看出,动态阈值较32单阈值在匹配结果精度上具有明显提升。通过对比可知,第3 s时刻动态阈值算法的改正值相较于32阈值在点位误差上降低1.08 m,相比于原始观测值降低8.37 m。如图7所示,在第96 s时刻动态阈值改进后的点位误差比32阈值SM算法降低3.46 m,定位精度具有较大提升。
图6 32阈值和动态阈值下第3 s打分图
图7 第96 s动态阈值打分图
对实验中采用不同算法获得的点位误差进行分析发现,动态阈值法相对于单阈值法(32阈值)和原始观测值在过街方向上均有一定程度的改进(图8),点位误差也有一定程度改善(图9)。然而,也存在部分位置的改进效果不理想甚至变差的情况,为该时段卫星数较少所致。卫星数越少,动态阈值所能改正的卫星阈值越少,同样单阈值时能使用的卫星也就越少,导致误差增大,改正效果不理想。
图8 过街方向平均绝对误差
图9 点位误差
从整体上看,动态阈值法(DTSM)相对于32阈值阴影匹配(SM)算法在计算精度上有所改进,动态阈值相比于固定阈值,点位平均绝对误差(mean absolute error,MAE)降低约15.1%,均方根误差(root mean square error,RMSE)降低约14.9%。在过街方向上,相对于固定阈值,动态阈值MAE降低约26.7%,RMSE降低约19.7%;相对于原始值,MAE降低约28.9%,RMSE降低约16.4%。
对原始观测值进行卡尔曼滤波(KF)后再进行阴影匹配,采用动态阈值和32阈值计算的坐标点如图10所示,卡尔曼滤波后采用动态阈值阴影匹配(KF+DTSM)的RMSE为3.09 m,相比于卡尔曼滤波的4.09 m降低24.4%。图11为不同方法的点位误差,动态阈值相比于其他两种方法更加稳定,卡尔曼滤波的MAE为4.77 m,KF+32阈值SM的MAE为4.58 m,KF+DTSM的MAE为3.55 m。KF+DTSM相比于KF在误差上降低1.22 m,精度提升25.6%;相比于KF+32阈值SM降低1.03 m,精度提升22.4%。实验中不同算法的点位误差统计见表1。
图10 点位分布
图11 加入卡尔曼滤波后的点位误差对比
表1 不同算法点位误差统计
阴影匹配算法对于城市峡谷中智能移动设备GNSS导航定位的精度具有一定提升,但采用单一阈值进行卫星可见性判断会增加部分卫星误判的可能。针对该问题,本文提出采用动态阈值法进行卫星可见性判断,在每个历元中对基于卫星几何判断可见性与信噪比判断可见性进行一致性分析,采用动态阈值使一致性最大,从而改进阴影匹配算法的定位精度。实验分析表明,相对于单一阈值法,动态阈值阴影匹配算法对于手机GNSS定位结果的改正效果更加明显,点位精度更加稳定。在实验中也发现,初始定位精度对算法的有效性具有较大影响,利用卡尔曼滤波处理后再进行动态阈值阴影匹配,初始定位精度会有明显改进,原因可能为初始定位偏离真实值较大,搜索区域无法覆盖到真实值,进而导致算法改进不理想。沿街方向由于直视信号较好,其定位更准确,阴影匹配的改进效果不够理想。