首页 文章

自然标记增强现实实现

提问于
浏览
11

在发现OpenCV的强大功能后,我决定使用该库来开发我正在研究的自然标记跟踪引擎 . 但我的问题是我不知道如何正确实施这种跟踪器 .

我制定了以下计划:

  • 使用对象跟踪算法之一(例如SIFT,SURF等)从实时摄像机源中描述和提取关键点 .

  • 基于提取的关键点,将它们转换为直方图,并将直方图与存储标记的直方图进行比较 .

  • 找到匹配后,转换这些位置信息并将其传递给负责渲染3d对象的引擎 .

我尝试了SIFT和SURF算法来描述和提取关键点,最终结果是两种算法的超低fps(即小于0 fps) . 我注意到SIFT和SURF在计算上相当昂贵,它是否适合在现场摄像机上进行这种跟踪?

谢谢 .

3 回答

  • 4

    开发这样的标记需要您对图像处理,3D成像,跟踪等有深入了解 . 不像开发一个简单的应用程序 .

    最好使用开发的;)

    FERNS比SIFT更有效,更简单 . 你可以使用它 . 它是由EPFL的研究开发的 . 如果你阅读AR /跟踪论文,你会发现这些人是行业/领域的领导者 . 它也在更高版本的OpenCV中实现(我想在2.1或2.2?)

    否则,您始终可以从此处获取该算法的源代码:Ferns: Planar Object Detection

    EDIT:

    基本上像FERNS这样的算法会告诉你位置/旋转等(这是由称为Homography的矩阵表示的变化)某个表面将参考另一个帧 . 这个Homography是3D渲染所需的一切;)

    使用OpenGL或类似的3D库,您可以使用计算的Homography绘制对象 . 如果您为每个帧重复此过程,您将拥有一个简单的AR应用程序 .

    理论书籍:Image Processing3D Imaging

    了解AR阅读:ARToolKit paper

    更多关于FERNS:oezuysal'site

  • 4

    SIFT是一个很好的算法,但你无法从中获得最好的效果 . 有些方法使用FAST进行检测,然后构建检测点的简化SIFT描述符(而不是它们使用的128个值,例如32) . 还开发了用于FAST的金字塔方法(你有ORB,但它的描述符不够好) .

    现在OpenCV刚刚发布了FREAK,他们承诺它是最快和最强大的,所以我会尽快尝试 . 你可以在OpenCV上看看这种增强现实的这种tutorial .

  • 1

    SIFT和SURF是成功的视觉特征,可能是正确的方法(尽管存在更快的计算功能) .
    可以在GPU上有效地计算SIFT . 见siftGPU .

相关问题