Я разрабатываю SDK дополненной реальности на OpenCV. У меня возникли некоторые проблемы, чтобы найти учебники по этой теме, какие шаги следует выполнять, возможные алгоритмы, быстрое и эффективное кодирование для работы в реальном времени и т.д.
До сих пор я собрал следующую информацию и полезные ссылки.
Установка OpenCV
Загрузите последнюю версию.
Вы можете найти руководства по установке здесь (платформы: linux, mac, windows, java, android, iOS).
Online documentation.
Дополненная реальность
Для начинающих здесь - это простой код дополненной реальности в OpenCV. Это хорошее начало.
Для тех, кто ищет хорошо продуманный современный SDK, я нашел несколько общих шагов, которые должны иметь каждая дополненная реальность, основанная на отслеживании маркеров, с учетом функций OpenCV.
-
Основная программа: создает все классы, инициализацию, захватывает кадры из видео.
-
Класс AR_Engine: управляет частями приложения дополненной реальности. Должно быть два основных состояния:
- обнаружение: пытается обнаружить маркер в сцене
- отслеживание: как только оно обнаружено, использует более низкие вычислительные методы для отслеживания маркера в будущих кадрах.
Также должны быть некоторые алгоритмы для поиска положения и ориентации камеры в каждом кадре. Это достигается путем обнаружения преобразования гомографии между маркером, обнаруженным в сцене, и двумерным изображением маркера, который мы обработали в автономном режиме. Объяснение этого метода здесь (стр. 18). Основные шаги для оценки позы:
-
Загружать встроенные параметры камеры. Ранее извлекается офлайн через калибровку.
-
Загрузите шаблон (маркер) для отслеживания: это изображение планарного маркера, который мы будем отслеживать. Необходимо извлечь функции и генерировать дескрипторы (ключевые точки) для этого шаблона, чтобы позже мы могли сравнить с функциями из сцены. Алгоритмы для этой задачи:
-
Для каждого обновления кадра запустите алгоритм обнаружения извлечения функций из сцены и создайте дескрипторы. Опять у нас есть несколько вариантов.
-
Найдите соответствие между шаблоном и дескрипторами сцены.
-
Найдите Homography матрицу из этих совпадений. RANSAC может использоваться раньше, чтобы найти листы/выбросы в наборе совпадений.
-
Извлечь Позы камеры из гомографии.
- Пример кода Поза из гомографии.
- Пример кода Гомография из позы.