我正在 OpenCV 上开发增强现实 SDK。我在寻找有关该主题的教程时遇到了一些问题,需要遵循哪些步骤、可能的算法、快速高效的实时性能编码等。
到目前为止,我已经收集了下一个信息和有用的链接。
OpenCV安装
下载最新发布版本 http://opencv.org/downloads.html.
您可以找到安装指南here http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html(平台:linux、mac、windows、java、android、iOS)。
Online 文档 http://opencv.org/documentation.html.
增强现实
对于初学者here http://dsynflo.blogspot.com.es/2010/06/simplar-augmented-reality-for-opencv.html是 OpenCV 中的一个简单的增强现实代码。这是一个好的开始。
对于任何寻找精心设计的最先进 SDK 的人来说,考虑到 OpenCV 功能,我发现了每个基于标记跟踪的增强现实都应该具备的通用步骤。
主程序:创建所有类,初始化,capture https://stackoverflow.com/a/10697379/744859视频中的帧。
-
AR_Engine 类:控制增强现实应用程序的各个部分。应该有2个主要状态:
-
检测:尝试检测场景中的标记
-
tracking:一旦检测到,就使用较低的计算技术来跟踪即将到来的帧中的标记。
还应该有一些算法来查找每一帧中相机的位置和方向。这是通过检测场景中检测到的标记与我们离线处理的标记的 2D 图像之间的单应变换来实现的。该方法的解释here http://cvlab.epfl.ch/~lepetit/papers/lepetit_ftcgv05.pdf(第 18 页)。姿态估计的主要步骤是:
Load camera Intrinsic Parameters. Previously extracted offline through calibration.
-
加载图案(标记)要跟踪:这是我们要跟踪的平面标记的图像。需要提取特征并生成描述符(关键点 http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#keypoint)对于这种模式,以便稍后我们可以与场景中的特征进行比较。此任务的算法:
- SIFT http://docs.opencv.org/modules/nonfree/doc/feature_detection.html#sift
- FAST http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#fast
- SURF http://docs.opencv.org/modules/nonfree/doc/feature_detection.html#surf
-
对于每个帧更新,运行检测算法从场景中提取特征并生成描述符。我们再次有几种选择。
- SIFT
- FAST
- SURF
-
FREAK http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#freak:一种新方法(2012)应该是最快的。
- ORB http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#orb
-
Find matches模式和场景描述符之间。
- 弗兰匹配器 http://docs.opencv.org/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html#flann-index
Find 单应性 http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#findhomography这些匹配的矩阵。之前可以使用 RANSAC 来查找匹配集中的异常值/异常值。
-
Extract 相机姿势从单应性。
- 示例代码位于来自同应性的姿势 https://stackoverflow.com/a/10781165/744859.
- 示例代码位于姿势的单应性 https://stackoverflow.com/a/10750648/744859.
完整的例子:
- aruco http://sourceforge.net/projects/aruco/
- 掌握 OpenCV 示例 https://github.com/MasteringOpenCV/code
由于 AR 应用程序通常在移动设备上运行,因此您还可以考虑其他功能检测器/描述符:
- FREAK http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#freak
- ORB http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#orb
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)