Я разрабатываю SDK дополненной реальности на OpenCV. У меня возникли проблемы с поиском руководств по этой теме, какие шаги следует выполнять, возможные алгоритмы, быстрое и эффективное кодирование для работы в реальном времени и т. Д.
Пока собрал следующую информацию и полезные ссылки.
Установка OpenCV
Загрузите последнюю версию выпуска .
Вы можете найти в руководстве по установке здесь (платформы: Linux, Mac, Windows, Java, Android, IOS).
Электронная документация .
Дополненная реальность
Для новичков вот простой код дополненной реальности в OpenCV. Это хорошее начало.
Для всех, кто ищет хорошо спроектированный современный SDK, я нашел несколько общих шагов, которые должна иметь каждая дополненная реальность, основанная на отслеживании маркеров, с учетом функций OpenCV.
Основная программа: создание всех классов, инициализация, захват кадров из видео.
Класс AR_Engine: управляет частями приложения дополненной реальности. Должно быть 2 основных состояния:
- обнаружение : пытается обнаружить маркер в сцене
- отслеживание : при обнаружении использует более низкие вычислительные методы для отслеживания маркера в следующих кадрах.
Также должны быть алгоритмы определения положения и ориентации камеры в каждом кадре. Это достигается за счет обнаружения преобразования гомографии между маркером, обнаруженным в сцене, и 2D-изображением маркера, обработанного в автономном режиме. Объяснение этого метода здесь (стр. 18). Основные этапы оценки позы:
Загрузить внутренние параметры камеры . Ранее извлекался в автономном режиме через калибровку.
Загрузите шаблон (маркер) для отслеживания: это изображение планарного маркера, который мы собираемся отслеживать. Для этого паттерна необходимо извлечь признаки и сгенерировать дескрипторы ( ключевые точки ), чтобы позже мы могли сравнивать их с особенностями сцены. Алгоритмы решения этой задачи:
Для каждого обновления кадра запускайте алгоритм обнаружения для извлечения функций из сцены и создания дескрипторов. Опять же у нас есть несколько вариантов.
Найдите совпадения между шаблоном и дескрипторами сцены.
Найдите матрицу гомографии из этих совпадений. RANSAC можно использовать раньше, чтобы найти выбросы / выбросы в наборе совпадений.
Извлеките позу камеры из омографии.
- Пример кода на Pose from Homography .
- Пример кода на гомографии из позы .
Полные примеры:
источник
Ответы:
Поскольку приложения AR часто запускаются на мобильных устройствах, вы можете рассмотреть также другие функции детектора / дескриптора:
источник
Как правило, если вы можете выбрать маркеры, вы сначала обнаруживаете квадратную цель с помощью детектора края, а затем либо Hough, либо просто контуры, а затем определяете конкретный маркер по внутренней конструкции. Вместо того, чтобы использовать общий сопоставитель точек.
Взгляните на Aruco, чтобы получить хорошо написанный пример кода.
источник