Серфинг и просеивание альтернативный алгоритм отслеживания объектов для дополненной реальности



После запроса здесь и попытки как серфинга, так и просеивания, ни один из них не может быть достаточно эффективным, чтобы генерировать интересные точки достаточно быстро, чтобы отслеживать поток с камеры.

SURF, например, занимает около 3 секунд, чтобы создать интересные точки для изображения, это слишком медленно, чтобы отслеживать видео, поступающее с веб-камеры, и это будет еще хуже, когда вы используете его на мобильном телефоне.

Мне просто нужен алгоритм, который отслеживает определенную область,ее масштаб, наклон и т. д.. и я могу это сделать. стройте поверх этого.

Спасибо

174   7  

7 ответов:

Я подозреваю, что ваше использование серфинга может потребовать некоторых изменений?

Вот ссылка на статью MIT об использовании SURF для приложений дополненной реальности на мобильных устройствах.

Отрывок:

В этом разделе мы представляем наши реализация алгоритма серфинга и его адаптация к мобильному телефон. Далее мы обсудим влияние что точность имеет на скорость поиск ближайших соседей и показать, что мы можем достичь порядка величины ускорение с помощью минимальное воздействие на точность подбора. Наконец, мы разошлись- материть подробности по телефону реализация сопоставления изображений трубопровод. Мы изучаем производительность, использование памяти и потребление полосы пропускания по телефону.

Вы также можете изучить алгоритмы OpenCV, потому что они опробованы и проверены.

В зависимости от ограничений вашего приложения, вы можете уменьшить обобщенность этих алгоритмов для поиска известных POI и маркеров в пределах изображения.

Часть отслеживания POI оценивает его вектор из одной точки в 2D-изображении в другую, а затем необязательно подтверждает, что он все еще существует там (через характеристики пикселей). Тот же подход может быть использован для отслеживания (а не повторного сканирования всего изображения) изменений перспективы POI и POI группы/объекта и поворота.

В интернете есть тонны документов для отслеживания объектов на 2D-проекции (во многих случаях до перекос сервера).

Хорошо Удача!

Вы должны попробовать быстрый детектор

Http://svr-www.eng.cam.ac.uk/~er258/work/fast.html

Мы используем SURF для проекта, и мы нашли OpenSURF, чтобы превзойти реализацию SURF OpenCV в сырой скорости и производительности. Мы все еще не проверили повторяемость и точность, но это намного быстрее.


Обновление: Я просто хотел отметить, что вам не нужно выполнять шаг SURF match в каждом кадре, вы можете просто сделать это в каждом другом кадре и интерполировать положение объекта в кадре, на котором вы не выполняете SURF.

Вы можете использовать более простой алгоритм, если вы хотите сделать более строгие ограничения на область, которую вы хотите отслеживать. Как вы наверняка знаете, ARToolKit довольно быстр, но отслеживает только черно-белые маркеры с очень четкой рамкой.

Если вам нужен (несколько) универсальный трекер, вы можете проверить PTAM. Сайт (http://www.robots.ox.ac.uk/~gk / PTAM / ) в настоящее время не работает, но вот шикарное видео его работы на iPhone (http://www.youtube.com/watch?v=pBI5HwitBX4 )

Как уже упоминали другие, три секунды кажутся необычно долгими. Тестируя реализацию SURF в библиотекеMahotas , я обнаружил, что она занимает в среднем 0,36 секунды, даже с некоторыми довольно большими изображениями (например, 1024x768). И это при сочетании Python и C, поэтому я думаю, что некоторые другие реализации pure-C будут еще быстрее.

Я нашел это хорошее сравнение алгоритмов обнаружения каждой функции в http://computer-vision-talks.com/2011/01/comparison-of-the-opencvs-feature-detection-algorithms-2/

Взгляните. Это может оказаться полезным!

В соответствии с этим сравнением, и как mirror2image также предложил, быстрый является лучшим выбором. Но это зависит от того, чего вы действительно хотите достичь.

Один из вариантов, который я использовал в ограниченных встроенных системах, заключается в использовании более простого детектора точек интереса: например, FAST или Shi-Tomasi. Я использовал Shi-Tomasi, так как я был нацелен на FPGA и мог легко запустить его со скоростью пикселя без существенной буферизации.

Затем используйте SURF для генерации дескрипторов для патча изображения вокруг идентифицированных объектов и используйте их для сопоставления и отслеживания целей.

    Ничего не найдено.

Добавить ответ:
Отменить.