9 сообщений в этой теме

Приветствую!

Думаю я обращусь по адресу со следующей задачей:

Необходимо вычислить позиционирование объекта по карте местности.

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

Попробовал реализацию хэшем:

h_1.png.f6fff09fcb46be8f861cdf626733172a.pngh_2.png.e5b76200b5b4f24e1671c7b9d9fd4ade.png

Слева направо - изображение полученное объектом, изображение из Google maps

расстояние = 15

 

h_5.png.5d641282b9cadcbf8d3c139a45d7abfe.pngh_6.png.8dfbe9f0e2ed4aa3c618352ad866f4f1.png

Слева направо - Google maps, Yandex maps

Расстояние = 7

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

 

Второй вариант который я попробовал это контурный анализ при помощи Hu моментов:

Подал на вход сегментированное сетью изображение, в котором белым залит класс "вода". Затем подал векторную карту в качестве шаблона. Получилось не очень хорошо. Алгоритм выделил контур в самой нижней части изображения (окно find).

58f08a711f7d2_2017-04-1415_36_39.thumb.png.acc60f9acc43bb2aeffc6de5ba1e9b1c.png

Если подать на вход маску а не изображение совмещенное с результатами сегментации, то вроде бы как алгоритм срабатывает:

58f08bf4370f6_2017-04-1415_44_06.thumb.png.c1b4b5c06d584847c6b791b5f96267f8.png

Немного не то нашел, ну да ладно. Близко.

Минус данного алгоритма в том, что если у меня будет множество шаблонов, скажем это будут все озера и реки в округе, и я стану сравнивать изображение на котором не полностью уместилось в кадр озеро или река, то ничего хорошего не выйдет из этого, так как контур не полностью замкнет водную поверхность. Что посоветуете в данной ситуации? Только не нужно вопросов про GPS, на то оно и тех. зрение, для того и спрашиваю совета на данном форуме.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

1. Точек может быть слишком мало. В этом случае надо использовать другой метод, те же контуры (если они есть).

2. Может быть слишком много похожих объектов, у точек будет несколько матчей в обе стороны. Чаще всего такие матчи просто выбрасывают, как недостоверные. Альтернативный способ - представлять точки как биполярный взвешенный граф и искать в нём максимальный поток (кажется так).

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

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

1 пользователь нравится это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Применимость зимой я не рассматривал как раз из-за низкой корреляции.

6 часов назад, Nuzhny сказал:

1. Точек может быть слишком мало. В этом случае надо использовать другой метод, те же контуры (если они есть).

В примере с контуром, который не замкнут как будет производиться сравнение? Ведь моменты дадут нам много совпадений.

Тут нейронка может дать существенный прирост информации для существующих/модифицированных алгоритмов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Контуры можно сравнивать и напрямую, без использования моментов.

И да: нейронки дадут больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задача не ясна. Пары изображений заданы заранее?

 

p.s. Есть такая штука

http://www.terrapattern.com/

https://github.com/CreativeInquiry/terrapattern

1 пользователь нравится это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда я сталкивался с такой задачей, то было примерно так: по телеметрии и GPS известны примерные координаты коптера (который летит высоко). Надо было максимально точно наложить фото с беспилотника на спутниковую карту. Просто по телеметрии это сделать не получается, пробовали по изображениям. А там был ряд проблем типа актуальности карт спутника, их разрешения конкретно в данной местности (это могли быть леса и поля, а не города с картами высокого разрешения), сезонной изменчивости.

Если у топикстартера задача аналогичная, то terrapettern ему не поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какая точность достижима?

Тут вот например пишут про погрешность при определении центра фотографирования, но не пишут про то как эта погрешность потом будет влиять на привязку ортофотоплана сгенерированного Photoscan'ом.

http://gisinfo.ru/techno/photoscan.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В моей задаче точность требовалась до пикселя. Если снимок делался с большой высоты достаточно плоского куска местности, то, по-большому счёту, такой точности добиться удавалось. Если на снимке были горы - сразу нет.

Зависело от ситуации, короче. Фотоскан решает несколько иную задачу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 17.04.2017 at 15:27, mrgloom сказал:

Задача не ясна. Пары изображений заданы заранее?

 

p.s. Есть такая штука

http://www.terrapattern.com/

https://github.com/CreativeInquiry/terrapattern

Задача первичная стоит не в сопоставлении фотоснимков, а в определении геопозиции объекта. Сопоставление пар кадров - это метод решения данной задачи, который первым пришел мне в голову. Какую информацию будем загружать в объект - здесь нет ограничений, пока не найдено оптимальное решение. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!


Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу