OpenCV中的卡尔曼滤波器,用于平面跟踪

时间:2018-06-25 11:04:42

标签: c++ opencv image-processing computer-vision tracking

我正在使用 C ++ OpenCV 开发基于自然特征的实时平面物体跟踪应用程序。 算法是这样的:

  1. 使用 ORB 功能描述符和 FLANN 识别跟踪图像 匹配器。
  2. 估计单应性矩阵并计算对象的角(4个角)。
  3. 找到 GoodFeaturesToTrack
  4. 计算 OpticalFlow 并从跟踪角中删除异常值。
  5. 估计单应性和对象的角点。
  6. 如果跟踪误差不高,则转到第4步,否则停止跟踪并转到第1步。

这给我带来不错的结果,尤其是如果去除异常值对他的工作有好处。但是,当我开始移动时,对象的角开始倾斜,它们不再位于平面对象的实际角上。请观看:Good trackingBad tracking

我认为我应该使用卡尔曼滤波器来预测和校正离群单应性估计。我尝试在估计的拐角处应用卡尔曼滤波器,但没有成功,也尝试在追踪点上应用卡尔曼滤波器,但也没有成功。 有人可以告诉我哪种方法是平面跟踪的最佳方法,也可以告诉我如何正确使用卡尔曼滤波器。

0 个答案:

没有答案