Нужно разработать приложение для визуального одометра (пройденное расстояние) для использования внутри помещений - PullRequest
2 голосов
/ 29 июня 2011

Существует ли какой-либо открытый исходный код, который возьмет видео, снятое в помещении (со смартфона, например, дома или офисные здания, коридоры), и наложит его на 2D-изображение, показывающее пройденный путь? Это может быть нарисованная от руки картина или фотография планировки пола.

Сначала я подумал об этом, используя акселерометр и датчики компаса, но подумал, что, возможно, можно добиться большей точности с помощью визуального одометра. Мне нужна только точность от 0,5 до 1 метра. Телефон также будет собирать важную информацию в помещении (без GPS) для наложения этих данных на пройденный путь (это реальное применение этого проекта, и мы знаем, как выполнить эту часть). Последующая обработка видео может быть выполнена позже на автономном компьютере, поэтому скорость и мощность процессора не являются проблемой.

Проблемы - Пользователь будет просто нести смартфон, чтобы видеосъемщик двигался (шел) и не фиксировался ограничьте скорость видео, чтобы размер файла был небольшим (5 кадров в секунду - это нормально?). Обычно требуется, возможно, целый час видео

Поможет ли использование входов от датчиков телефона визуальный подход?

любая помощь или руководство приветствуется Спасибо

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

Я работал в этом районе довольно долгое время. Есть три момента, о которых я бы хотел рассказать.

Зрение только трудно

Навигация на основе видения с использованием только камеры мобильного телефона очень сложна. Большая часть литературы с отличными результатами показывает, что пройденное расстояние составляет ~ 1%, как современные, но обычно используют стереокамеры. Стерео очень помогает, особенно в помещениях, для преодоления смещения масштаба. Я работал над системой, которая достигает 0,5% пройденного расстояния для стерео, но только примерно 5% пройденного расстояния для монокуляра. Хотя я не могу поделиться кодом, большая часть нашей системы была вдохновлена ​​этой Sibley and Mei paper .

Стерео код в нашем случае работал на полных 60 кадров в секунду на рабочем столе. Если вы можете отправить данные достаточно быстро, все будет хорошо. С вашим конвертом ошибки вы можете перемещаться только на 100 м или около того. Этого достаточно?

Мультисенсор это путь. Хотя другие датчики хуже, чем зрение сами по себе.

Я слышал хорошую работу с акселерометрами, установленными на ноге, для выполнения ZUPT (обновления с нулевой скоростью), когда нога ненадолго неподвижна на земле, делая шаг, чтобы обнулить занос. Этот подход имеет явный недостаток, заключающийся в необходимости устанавливать устройство на ноге, что делает обзорный подход практически бесполезным.

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

В конечном счете, комбинация датчиков, вероятно, будет наилучшей, если вы сможете сделать эту работу.

Можете ли вы решить более простую задачу?

Насколько вы контролируете свое окружение? Можете ли вы шлепнуть фидуциальные маркеры? Можете ли вы сделать Wi-Fi триангуляции? Это должно быть начальное исследование? Если вы сможете обойти окружение заранее и создать визуальные пузыри (схожие с Google Street View) для сравнения, вы будете гораздо точнее.

0 голосов
/ 30 июня 2011

Я не знаю ни о каком программном обеспечении, которое бы делало это напрямую (хотя оно могло бы существовать), но что-то похожее на то, что вы хотите сделать, уже сделано. Несколько указателей:

  • Google для "Локализация роботов на основе Vision" Проблема, о которой вы говорите, очень похожа на проблему, с которой сталкиваются роботы с камерой при входе в новую среду. В этой области обычно используется робот, который отображает свою среду, а затем использует модель для дальнейшего использования, но методы аналогичны тем, которые вам понадобятся.
  • Оптический поток примерно скажет вам, в каком направлении движется камера, но не скажет вам скорость, потому что у вас нет объективного ориентира. Это потому, что вы не знаете, находятся ли объекты, которые вы видите в видео-канале, на расстоянии 1 см и очень маленькие или в 1 миле от них и очень большие.
  • Если вам известна матрица камеры камеры, записывающей изображения, вы можете попробовать метод частичной реконструкции 3D-сцены , чтобы сделать удар на скорости. Обратите внимание, что вы можете выполнять 3D-сцену без матрицы камеры (это «некалиброванная» часть, которую вы видите в заголовке многих результатов Google), матрица камеры позволит вам добавлять размеры объектов реального мира (и, следовательно, расстояния). ) к вашей реконструкции.
  • Количество изображений в секунду, которое вам нужно, зависит от скорости камеры. Чем больше, тем лучше, но я предполагаю, что на скорости ходьбы должно хватить 5 секунд.
  • Использование дополнительных датчиков поможет. Вероятно, об этом говорят и статьи по локализации роботов.
...