SDK для доповненої реальності з OpenCV [закрито]


94

Я розробляю SDK для доповненої реальності на OpenCV. У мене були проблеми з пошуком навчальних посібників з даної теми, яких кроків слід виконувати, можливих алгоритмів, швидкого та ефективного кодування для роботи в режимі реального часу тощо.

Поки що я зібрав наступну інформацію та корисні посилання.

Установка OpenCV

Завантажте останню версію випуску .

Ви можете знайти в керівництві по установці тут (платформи: Linux, Mac, Windows, Java, Android, IOS).

Інтернет- документація .

Доповнена реальність

Для початківців ось простий код доповненої реальності в OpenCV. Це хороший початок.

Для тих, хто шукає добре розроблений сучасний SDK, я знайшов кілька загальних кроків, які повинна мати кожна доповнена реальність на основі відстеження маркерів, враховуючи функції OpenCV.

  1. Основна програма: створює всі класи, ініціалізацію, захоплення кадрів з відео.

  2. Клас AR_Engine: Керує частинами програми доповненої реальності. Має бути 2 основних стани:

    • виявлення : намагається виявити маркер у сцені
    • відстеження : після виявлення використовує нижчі обчислювальні методи для відстеження маркера в майбутніх кадрах.

Також мають бути алгоритми пошуку положення та орієнтації камери в кожному кадрі. Це досягається виявленням перетворення гомографії між маркером, виявленим у сцені, та двовимірним зображенням маркера, який ми обробили в автономному режимі. Пояснення цього методу тут (стор. 18). Основними кроками для оцінки пози є:

  1. Завантажити внутрішні параметри камери . Раніше вилучено в автономному режимі шляхом калібрування. внутрішні параметри

  2. Завантажте шаблон (маркер) для відстеження: Це зображення площинного маркера, який ми збираємося відстежувати. Необхідно витягти функції та сформувати дескриптори ( ключові точки ) для цього шаблону, щоб пізніше ми могли порівняти з особливостями сцени. Алгоритми виконання цього завдання:

  3. Для кожного оновлення кадру запускайте алгоритм виявлення для вилучення об’єктів зі сцени та генеруйте дескриптори. Знову ж таки, у нас є кілька варіантів.

    • SIFT
    • ШВИДКО
    • SURF
    • ФРЕЙК : Новий метод (2012), який вважається найшвидшим.
    • ORB
  4. Знайдіть збіги між шаблоном та дескрипторами сцени.

  5. Знайдіть матрицю гомографії з цих збігів. RANSAC можна використовувати раніше, щоб знайти інлієри / відхилення в наборі сірників.

  6. Витяг пози камери з гомографії.

Повні приклади:


1
На жаль, це "не конструктивно", ви шукаєте пропозиції.
bfavaretto

3
Щодо завдання інсталяції, зараз OpenCV перейшов на GIT, тому для завантаження коду курсу необхідно зробити "git clone git: //code.opencv.org/opencv.git".
Carlos Cachalote,

12
47 голосів за все ще закрито через нерозумні правила.
SvaLopLop

Відповіді:


19

Оскільки додатки AR часто працюють на мобільних пристроях, ви можете розглянути також інші функції детектора / дескриптора:


3
Дякую! Існує також "швидка" версія FAST, яка працює в режимі реального часу на мобільних телефонах, вона є пірамідальною, а дескриптори SIFT зменшені
Jav_Rock

2
Я отримав майже ідеальні результати за допомогою ORB
динамічний

Насправді, читаючи про ORB, там сказано, що це ШВИДКО в пірамідах
Jav_Rock

3
Freak - останній алгоритм, який обробляє дескриптор на AR. Швидше, ніж ШВИДКО.
goe

13

Як правило, якщо ви можете вибрати маркери, спочатку виявляєте квадратну мішень за допомогою детектора краю, а потім або Hough, або просто контури - тоді ідентифікуйте конкретний маркер із внутрішньої конструкції. Замість того, щоб використовувати загальний бальний збіг.

Погляньте на Aruco, щоб отримати добре написаний приклад коду.


4
Так, фідуціальний підхід є найпростішим, але він не зовсім сучасний. Думаю, зараз слід вказати на текстуровані маркери. Дякую. Приклад дуже цікавий, оскільки він добре пояснюється.
Jav_Rock

1
Якщо ви хочете знати позу, вам потрібно встановити відповідність положення 3D об’єктів маркера до відповідних координат зображення. Цілі правильної форми полегшують це, але їм не потрібно бути площинними
Мартін Беккет

Але якщо вони не є площинними, вам потрібна 3d-модель або модель САПР, інакше гомографія від 2d до 3d більше не є дійсним методом, чи не так? Я маю на увазі Пряме лінійне перетворення, що використовується у пошуковій гомографії
Jav_Rock

Так, якщо у вас є 3D-маркер, вам потрібно знати справжнє слово 3d-фігури (від cad, або виміряти його), але це дає кращий результат
Мартін Беккет
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.