上一篇讲了利用随即一致性来减少错误匹配的情况,这一篇讲一下使用最小二乘多项式平滑方法来减少姿态的抖动问题。因为我们的设备是手持单目,相机在移动的过程中,会产生细微的抖动。虽然EKF或者G2O(通用图优化)会帮我们最小化错误,但是当我们得到正确的最接近真实的姿态后,我们会发现这些姿态是存在细微抖动的。下图为未平滑的相机姿态(Matlab):
我们看到有大量的抖动在里面。体现在图像上则是AR物体会有小幅度的波动。这个波动其实很小,如果AR物体比较小的话,这个波动是不明显的(肉眼几乎察觉不到)。但是当我们拉远距离,呈现很大的AR物体时(如车展上的汽车),这个波动肉眼还是能察觉到。另外现在的VR/AR系统里,减小眩晕感是很重要的,所以有必要使呈现出的虚拟物体更加的稳定。因为AR系统是实时的,而复杂的滤波或者平滑方法会消耗更多的时间,所以我们采用基础的最小二乘法来消除抖动。这种方法参数少,计算量小,速度快,平滑效果不错。完整的名字是最小二乘移动窗口多项式平滑,我们用周围多个带有不同权重的点来表示其中的一个点,合理的选择平滑窗口的大小和多项式的次方数,对于消除抖动的效果和时间消耗极为重要。对于平滑后的数据与原始数据之间的误差,我们做了相应的数据补偿。
首先来看看最小二乘多项式平滑中最重要的两个参数:平滑窗口大小2m+1,多项式次数n。如下图所示:
我们先来计算一下m=2(移动窗口大小为5),n=2情况下的权重(系数)矩阵