在存在相机抖动的情况下检测基准标记

时间:2012-02-16 23:04:00

标签: opencv computer-vision augmented-reality

当用户猛烈地移动相机(手机)时,我正试图使基于OpenCV的基准标记检测更加稳健。标记是ArTag风格,黑色边框内嵌有汉明码。通过对图像进行阈值处理来检测边框,然后根据找到的轮廓查找四边形,然后检查四边形的内部。

通常,如果识别出黑色边框,则标记的解码相当稳健。我尝试过最明显的事情,即对图像进行两次下采样,并在这些级别上执行四次检测。这有助于相机在极端近地标记处散焦,并且还具有非常小的图像模糊水平,但对于相机运动模糊的一般情况并没有太大帮助

是否有关于使检测更加稳健的方法的研究?我想知道的想法包括:

  1. 你能做某种光流跟踪来“猜测”下一帧中标记的位置,然后在这些猜测区域进行某种角点检测,而不是将矩形搜索视为全帧阈值?
  2. 在PC上,是否可以导出模糊系数(可能通过在最近检测到标记的视频帧中注册)并在处理之前对图像进行去模糊处理?
  3. 在智能手机上,是否可以使用陀螺仪和/或加速度计来获得去模糊系数并对图像进行预处理? (我假设没有,只是因为如果是这样的话,市场上会充斥着纠正相机的应用程序。)
  4. 如果失败的想法能够让我尝试它们,也会受到赞赏。

2 个答案:

答案 0 :(得分:3)

  1. 是的,你可以使用光流来估计标记的位置并定位你的搜索,但它只是重新定位,你的跟踪会因模糊的帧而被打破。
  2. 我对deblurring的了解不够,只是说它的计算量非常大,所以实时可能很难
  3. 您可以使用这些传感器来猜测您所面临的模糊情况,但我认为去模糊对于移动设备来说实时计算太多了。
  4. 然后是其他一些方法:

    这里有一些非常聪明的东西:http://www.robots.ox.ac.uk/~gk/publications/KleinDrummond2004IVC.pdf他们正在进行边缘检测(可以用来找到你的标记边框,即使你现在正在寻找四边形),对相机进行建模来自传感器的移动,并使用这些值来估计如何在给定帧速率的情况下出现模糊方向的边缘,并搜索它。十分优雅。

    同样在这里http://www.eecis.udel.edu/~jye/lab_research/11/BLUT_iccv_11.pdf他们只是预先模糊了跟踪目标,并尝试匹配模糊目标,这些目标在模糊的方向上是合适的。他们使用高斯滤波器来模拟对称的模糊,因此您需要的预模糊目标数量是您最初预期的一半。

    如果您尝试实施其中任何一项,我真的很想知道您是如何继续下去的!

答案 1 :(得分:0)

从一些相关的工作(试图使用传感器/陀螺仪预测视频中一帧到另一帧的特征的可能位置)我会说3可能很难,如果不是不可能的话。我认为最多你可以得到一个近似方向和运动角度的指示,它可以帮助你使用dabhaid引用的方法来模拟模糊,但我认为你不太可能获得足够的精确度以获得更多的帮助。