Перейти к содержимому
Compvision.ru
KAIIUK

Алгоритмы объединения изображений

Recommended Posts

И снова доброго дня, форумчане. На этот раз интересный вопрос, касающийся объединения изображений. Нужен алгоритм аналогичный ASIFT, в том смысле, что есть несколько изображений дома по кругу к примеру, их необходимо объединить воедино, а затем получить графы(с сохранение размеров). Основной вопрос у меня вот какой: какой алгоритм можно использовать вместо ASIFT,SIFT,SURF, они не подходят в силу того, что неизвестен угол съемки, может быть разная удаленность камеры(вкратце просто человек прошел, нафоткал, не задумываясь о чем либо). Второстепенный вопрос: как получить вертикальные границы здания и какова вероятность того, что они увеличат точность при построении графов(очертаний здания с сохранением пропорций).
Заранее всем огромное спасибо.

P.S. в приложениях фотографии примера здания(то, что ASIFT может соединить).

post-7042-0-47963600-1434615424_thumb.jp

post-7042-0-17247300-1434615426_thumb.jp

post-7042-0-94775600-1434615427_thumb.jp

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


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

Обычно начинают так:

1. Собрать дасет из всевозможных снимков.

2. Написать какую-нибудь реализацию алгоритма, которая их соединяет (пусть будет на основе SIFT).

3. Написать тесты (скрипты на bash, Питоне, программа на С++), которые берут твою реализацию и применяют к собранному датасету.

4. Запустить тесты, смотреть, на каких снимках сработало верно, что между ними общего; на каких есть небольшие ошибки; где совсем ничего не срослось, анализируешь почему так.

5. Более менее обрисовывается проблема, становятся видны (или не видны) направления её решения:

5.1. выбранные дескрипторы неправильно сравниваются, когда угол между их плоскостями больше 60 градусов - нужны другие дескрипторы;

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

5.3. получается, что и точек много, и сравниваются нормально, но всё равно много аутлаеров и RANSAC лажает, тогда применяем эвристики типа: отбросить все точки, для которых нашлось два и более соответствия, сравнить точки в обе стороны и оставить только те, у которых образ и прообраз в обе стороны совпадает.

6. Изменить алгоритм, поменять дескрипторы и т.д. Перейти к пункту 4.

7. Если в процессе заходишь в тупик, то выбираешь снимки, на которых алгоритм НЕ работает, показываешь тут на форуме. Коллективный разум думает.

 

P.S. Да, стороны и грани зданий могут помочь. На всякий случай: есть в OpenCV неплохие алгоритмы поиска линий типа того же LSD, есть даже дескрипторы линий и их сравнение. Если объединить с точками, то может значительно улучшить результат.

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


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

С SIFT опробовано все, по ТЗ есть набор из 300+ фоток, из них найти которые относятся у одному зданию, а затем склеить и получить контуры с сохранением отношений. В какую сторону дальше идти пока не понятно. 

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


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

Пока не понятно, с чем у тебя проблемы. Я вижу 3 фото, которые соединить получается. Отлично!

А что НЕ получается? Почему не получается? Мало совпадающих точек? Точки есть, но неправильно соотносятся? С чем, на каком этапе возникла проблема?

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


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

не получается соединить с другой стороной здания(прилегающей).

Может быть в bundler что то есть, отдельная функция или что то такое? не известно?

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


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

Запустил PhotoScan для твоиз трёх снимков: и точек много нашлось, и итоговая 3D модель неплохо выглядит. Видимо, я не очень хорошо понял твою проблему. Ммм... Может, обведи на картинках места, которые не получается соединить? Или результаты работы твоего алгоритма, чтобы всё таки понять, что конкретно не получается.

post-391-0-22777800-1434638662_thumb.png

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


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

непонятно какие графы имеются ввиду

 

С SIFT опробовано все, по ТЗ есть набор из 300+ фоток, из них найти которые относятся у одному зданию, а затем склеить и получить контуры с сохранением отношений.

 

 

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

 

Еще когда очень большие наборы изображений, то чтобы не считать все со всеми через сравнение дескрипторов особых точек, сравнивают через GIST descriptor

http://lear.inrialpes.fr/RecogWorkshop08/documents/lazebnik_como_poster.pdf

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


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

Запустил PhotoScan для твоиз трёх снимков: и точек много нашлось, и итоговая 3D модель неплохо выглядит. Видимо, я не очень хорошо понял твою проблему. Ммм... Может, обведи на картинках места, которые не получается соединить? Или результаты работы твоего алгоритма, чтобы всё таки понять, что конкретно не получается.

Вот эта программа как раз делает то, что надо. А мне необходимо именно КАК она это делает...

Я не могу использовать готовое ПО, необходимы алгоритмы по которые оно работает, чтобы создать аналог(можно брать куски кода если проект opensource)

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


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

1. Я предлагаю перебрать все доступные в OpenCV детекторы точек, а в качестве дескриптора использовать SIFT, ASIFT или AKAZE. Детекторы - это: KAZE, AKAZE, AgastFeatureDetector, BRISK, FAST, GFTT, ORB, SIFT, SURF, Star.

2. Попробовать то, что специально разрабатывалось в качестве открытого инструментария для SFM.

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


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

а конкретно нужно просто вытащить контура здания из 5 фотографий по кругу

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


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

Еще может быть полезно:

 

"open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion"

 

https://github.com/openMVG/openMVG/

 

Документация:

 

https://openmvg.readthedocs.org/en/latest/

 

Демка:

 

ЗЫ: Под VS2013 строится без вопросов.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×