我正在做的是编写视觉测距算法,这是一种基于图像特征计算移动(android→Java)设备的当前位置和姿势的算法。
我目前从algortihm收到的结果包含许多异常值,导致高漂移和错误的轨迹。
该算法基本上需要两帧并计算相机之间的旋转和平移。然后,通过向上添加这些值,从起点/姿势看到的总位置和旋转由此计算:
totalRotation = multiply(rotation,totalRotation);
Core.add(position,(multiply(totalRotation,translation)), position);
其中totalRotation
是到起点的绝对旋转,position
是空间中的位置(说明点是0,0,0),rotation
是最后一个之间的旋转当前帧translation
是最后一帧和当前帧之间的转换,multiply
是我自己的方法,只计算矩阵乘积。
所以我这里总共有12个值:
我希望使用openCV卡尔曼滤波器来平滑我的轨迹(并改善我的“当前位置”值)。
有谁能告诉我如何设置我的过滤器?我对卡尔曼滤波器很新,我无法理解各个参数的含义以及如何/何时使用哪种方法。
提前致谢!