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

Ale*_*ier 7 opencv computer-vision augmented-reality

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

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

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

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

失败的想法的链接也将受到赞赏,如果它节省我尝试它们.

dab*_*aid 3

  1. 是的,您可以使用光流来估计标记可能在哪里并定位您的搜索,但这只是重新定位,您的跟踪将因模糊帧而中断。
  2. 我对去模糊了解不多,只是说它的计算量很大,所以实时可能很困难
  3. 您可以使用传感器来猜测您所面临的模糊类型,但我猜想实时去模糊对于移动设备来说计算量太大。

然后是其他一些方法:

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

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

如果您确实尝试实施其中任何一个,我真的很想听听您的进展如何!