Как основанный на маркере алгоритм дополненной реальности (как ARToolkit's один) работы?

Для моего задания я использовал версию Java ARToolkit (NyARTookit). До сих пор доказанный достаточно хороший для наших потребностей, но моего босса начинает хотеть платформу, портированную в других платформах, таких как сеть (Flash, и т.д.) и мобильные телефоны. В то время как я предполагаю, что мог использовать другие порты, я все больше раздражаюсь, не зная, как набор работает и кроме того, от некоторых ограничений. Позже я должен буду также расширить способности набора добавить материал как взаимодействие (виртуальные кнопки на картах, и т.д.), которые насколько я видел в NyARToolkit, не поддерживаются.

Так в основном я должен заменить ARToolkit пользовательским детектором метки (и в случае NyARToolkit, попытайтесь избавиться от JMF и использовать лучшее решение через JNI). Однако я не знаю, как эти детекторы работают. Я знаю о 3D графике, и я создал хорошую платформу вокруг этого, но я должен знать, как создать базовую технологию:-).

Кто-либо знает какие-либо источники о том, как реализовать основанное на маркере приложение дополненной реальности с нуля? При поиске в Google я только нахожу "применение" AR, не базовые алгоритмы:-/.

9
задан Bad Sector 10 February 2010 в 01:16
поделиться

1 ответ

«С нуля» - термин относительный. По-настоящему делать это с нуля, без использования какого-либо ранее существовавшего кода визуализации, было бы очень болезненно, и вы не справились бы с этим лучше, чем все сообщество компьютерного зрения.

Однако, если вы хотите делать AR с существующим кодом технического зрения, это более разумно. Основные подзадачи:

  1. Найдите маркеры на вашем изображении или видео.
  2. Убедитесь, что это те, которые вам нужны.
  3. Выясните, как они ориентированы относительно камеры.

Первая задача - локализация ключевых точек. Методы для этого включают обнаружение ключевой точки SIFT, угловой детектор Харриса и другие. Некоторые из них имеют реализации с открытым исходным кодом - я думаю, что в OpenCV есть детектор угла Харриса в функции GoodFeaturesToTrack.

Вторая задача - создание дескрипторов регионов. Для этого используются дескрипторы SIFT, дескрипторы HOG и многие другие. Где-то должна быть реализация одного из них с открытым исходным кодом.

Третья задача также выполняется локализаторами ключевых точек. В идеале вам нужно аффинное преобразование, поскольку оно покажет вам, как маркер находится в 3-м пространстве. Для этого должен работать аффинный детектор Харриса. Для получения дополнительной информации перейдите по ссылке: http://en.wikipedia.org/wiki/Harris_affine_region_detector

10
ответ дан 3 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: