Используем фотограмметрию для распознавания и геолокации объекта

от автора

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

Задача: В системе координат, для которой известны GPS координаты (обозначена на рисунке красным цветом) определить расстояние и вектор направления для объекта, обозначенным на рисунке желтым крестиком. Затем, соответственно определить GPS координаты этого объекта.

Теперь пара слов про фотограмметрию.

Фотограмметрия позвояет создавать 3д модели по фотографиям. Все этапы создания 3д объектов нам в данном случае не нужны, а нужен только этап достройки отдельных поверхностей модели дополнительными фотографиями. Бывают ситуации, когда 3д модель уже построена, но качество некоторых элементов или поверхностей хочется улучшить. Тогда к готовому проекту можно добавить одну или несколько фотографий нужных элементов.

Каждая пирамидка на этой gif это местоположение камеры при съемке фото. Добавление новой фотографии в проект требует вычисление координат места съемки новой фотографии.

Каждая пирамидка на этой gif это местоположение камеры при съемке фото. Добавление новой фотографии в проект требует вычисление координат места съемки новой фотографии.

Решение задачи по сути заключается в переносе системы отсчета в местонахождение искомого объекта и предварительном построении 3д модели данного объекта.

 фотография, сделанная с беспилотника является дополнительной к нескольким сотням фотографий с координатами, на основе которых предварительно  построена 3д модель объекта.

фотография, сделанная с беспилотника является дополнительной к нескольким сотням фотографий с координатами, на основе которых предварительно построена 3д модель объекта.

На практике добавление одной фотографии с вычислением ее координат занимает в среднем проекте около 5 минут на десктопном процессоре. Отсюда и главное ограничение применения данного метода. Обработка 1 секунды видео 1080р с частотой 30 к/сек заняла бы примерно 150 минут (или 9000 секунд). То есть для обработки видеопотока в реальном времени нужен процессор в 9000 раз мощнее современных десктопных типа core i5

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

Вместо вывода. Если мы сможем ускорить вычисления в 9000 раз, то что у нас получится? Получится программа, которая определяет местоположение только одного объекта (даже не типа объектов, а одного объекта). Для детекции и локализации второго объекта нужна вторая программа, и так далее. Это не похоже на современные системы машинного зрения, которые детектируют и классифицируют сотни и тысячи объектов. Скорее такая система будет напоминать концепцию «нейрона бабушки», о которой говорят российские нейробиологи Константин Анохин и Татьяна Черниговская.

ссылка на оригинал статьи https://habr.com/ru/articles/1041922/