Я розробляю SDK для доповненої реальності на OpenCV. У мене були проблеми з пошуком навчальних посібників з даної теми, яких кроків слід виконувати, можливих алгоритмів, швидкого та ефективного кодування для роботи в режимі реального часу тощо.
Поки що я зібрав наступну інформацію та корисні посилання.
Установка OpenCV
Завантажте останню версію випуску .
Ви можете знайти в керівництві по установці тут (платформи: Linux, Mac, Windows, Java, Android, IOS).
Інтернет- документація .
Доповнена реальність
Для початківців ось простий код доповненої реальності в OpenCV. Це хороший початок.
Для тих, хто шукає добре розроблений сучасний SDK, я знайшов кілька загальних кроків, які повинна мати кожна доповнена реальність на основі відстеження маркерів, враховуючи функції OpenCV.
Основна програма: створює всі класи, ініціалізацію, захоплення кадрів з відео.
Клас AR_Engine: Керує частинами програми доповненої реальності. Має бути 2 основних стани:
- виявлення : намагається виявити маркер у сцені
- відстеження : після виявлення використовує нижчі обчислювальні методи для відстеження маркера в майбутніх кадрах.
Також мають бути алгоритми пошуку положення та орієнтації камери в кожному кадрі. Це досягається виявленням перетворення гомографії між маркером, виявленим у сцені, та двовимірним зображенням маркера, який ми обробили в автономному режимі. Пояснення цього методу тут (стор. 18). Основними кроками для оцінки пози є:
Завантажити внутрішні параметри камери . Раніше вилучено в автономному режимі шляхом калібрування.
Завантажте шаблон (маркер) для відстеження: Це зображення площинного маркера, який ми збираємося відстежувати. Необхідно витягти функції та сформувати дескриптори ( ключові точки ) для цього шаблону, щоб пізніше ми могли порівняти з особливостями сцени. Алгоритми виконання цього завдання:
Для кожного оновлення кадру запускайте алгоритм виявлення для вилучення об’єктів зі сцени та генеруйте дескриптори. Знову ж таки, у нас є кілька варіантів.
Знайдіть збіги між шаблоном та дескрипторами сцени.
Знайдіть матрицю гомографії з цих збігів. RANSAC можна використовувати раніше, щоб знайти інлієри / відхилення в наборі сірників.
Витяг пози камери з гомографії.
- Зразок коду на позі з гомографії .
- Зразок коду з гомографії від Pose .