问题:
单目相机的弱点在于很难把同一个地点不同方向的特征对齐。比如道路上两个方向行驶的车,虽然空间位置很近,但是从视觉的共視关系上看却很远。如果只使用视觉的话,唯一能够对不同方向的地图进行对齐的信息就是十字路口。但这种方式不是十分稳定。能够提供绝对位置的gps的精度在10米左右,又不够用。
视觉建图中,特征点和相机相互耦合,理论上任意两个特征点的位置都是相关的。这样给大规模的建图带来了困难,因为每次优化都必须考虑所有的特征点和相机。如果能有一个比较靠谱的绝对位置的信息,就能把特征点之间的耦合变为局部的。这样可以大大简化地图优化流程的复杂度。
以上两个问题可以通过使用RTK来解决,但是RTK不是消费级设备能够装备的(手机,行车记录仪等)。本文章提出可以通过大量视觉和消费级gps的融合来得到厘米级精度的绝对位置。从而只使用消费级设备实现大规模定位地图的建立。
原理:
方法的本质是多次测量求平均。如果我们能够每次在同一位置,长时间的使用消费级gps进行测量。然后把结果求平均,能够得到更加精确的位置。但是使用众包方式得到的数据没有办法保证每次gps的测量都在同一个地点。所以这里需要使用视觉的辅助。视觉的特点是可以得到高精度的相对位置。所以我们可以使用视觉得到相对位置,把不同地点的gps换算到同一个地点上。然后再做平均。
实现:
其实把视觉和gps放入一个优化方程里面进行优化就实现上述原理。
结果:
绿色点是gps的位置,红色点是最终生成的地图中相机的位置,白色大点是RTK固定解的位置。这个地图是融合了大概在同一条道上行驶20圈的数据。
局部放大图。可以看出gps的位置很散,但融合后得到的位置和RTK很一致。
一个小格子是1m。可以看出视觉的位置rtk的大概在50cm偏差以内。因为不能保证每次通过的位置都一样,视觉地图中相机的位置有一些离散正常。RTK的位置只是其中一圈的位置。