KAIIUK 0 Жалоба Опубликовано June 18, 2015 И снова доброго дня, форумчане. На этот раз интересный вопрос, касающийся объединения изображений. Нужен алгоритм аналогичный ASIFT, в том смысле, что есть несколько изображений дома по кругу к примеру, их необходимо объединить воедино, а затем получить графы(с сохранение размеров). Основной вопрос у меня вот какой: какой алгоритм можно использовать вместо ASIFT,SIFT,SURF, они не подходят в силу того, что неизвестен угол съемки, может быть разная удаленность камеры(вкратце просто человек прошел, нафоткал, не задумываясь о чем либо). Второстепенный вопрос: как получить вертикальные границы здания и какова вероятность того, что они увеличат точность при построении графов(очертаний здания с сохранением пропорций). Заранее всем огромное спасибо. P.S. в приложениях фотографии примера здания(то, что ASIFT может соединить). Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIUK 0 Жалоба Опубликовано June 18, 2015 Готовые софтины, к сожалению не подходят. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 18, 2015 Обычно начинают так: 1. Собрать дасет из всевозможных снимков. 2. Написать какую-нибудь реализацию алгоритма, которая их соединяет (пусть будет на основе SIFT). 3. Написать тесты (скрипты на bash, Питоне, программа на С++), которые берут твою реализацию и применяют к собранному датасету. 4. Запустить тесты, смотреть, на каких снимках сработало верно, что между ними общего; на каких есть небольшие ошибки; где совсем ничего не срослось, анализируешь почему так. 5. Более менее обрисовывается проблема, становятся видны (или не видны) направления её решения: 5.1. выбранные дескрипторы неправильно сравниваются, когда угол между их плоскостями больше 60 градусов - нужны другие дескрипторы; 5.2. может оказаться так, что общих точек слишком мало - тогда можно использовать другой детектор, а дескрипторы оставить прежними (помним, что алгоритмы поиска точек и их дескрипторы - это разные алгоритмы, которые могут носить одинаковое название); 5.3. получается, что и точек много, и сравниваются нормально, но всё равно много аутлаеров и RANSAC лажает, тогда применяем эвристики типа: отбросить все точки, для которых нашлось два и более соответствия, сравнить точки в обе стороны и оставить только те, у которых образ и прообраз в обе стороны совпадает. 6. Изменить алгоритм, поменять дескрипторы и т.д. Перейти к пункту 4. 7. Если в процессе заходишь в тупик, то выбираешь снимки, на которых алгоритм НЕ работает, показываешь тут на форуме. Коллективный разум думает. P.S. Да, стороны и грани зданий могут помочь. На всякий случай: есть в OpenCV неплохие алгоритмы поиска линий типа того же LSD, есть даже дескрипторы линий и их сравнение. Если объединить с точками, то может значительно улучшить результат. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIUK 0 Жалоба Опубликовано June 18, 2015 С SIFT опробовано все, по ТЗ есть набор из 300+ фоток, из них найти которые относятся у одному зданию, а затем склеить и получить контуры с сохранением отношений. В какую сторону дальше идти пока не понятно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 18, 2015 Пока не понятно, с чем у тебя проблемы. Я вижу 3 фото, которые соединить получается. Отлично! А что НЕ получается? Почему не получается? Мало совпадающих точек? Точки есть, но неправильно соотносятся? С чем, на каком этапе возникла проблема? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIUK 0 Жалоба Опубликовано June 18, 2015 не получается соединить с другой стороной здания(прилегающей). Может быть в bundler что то есть, отдельная функция или что то такое? не известно? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 18, 2015 Запустил PhotoScan для твоиз трёх снимков: и точек много нашлось, и итоговая 3D модель неплохо выглядит. Видимо, я не очень хорошо понял твою проблему. Ммм... Может, обведи на картинках места, которые не получается соединить? Или результаты работы твоего алгоритма, чтобы всё таки понять, что конкретно не получается. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано June 19, 2015 непонятно какие графы имеются ввиду С SIFT опробовано все, по ТЗ есть набор из 300+ фоток, из них найти которые относятся у одному зданию, а затем склеить и получить контуры с сохранением отношений. к одному зданию относятся те у которых больше точек совпадений. Еще когда очень большие наборы изображений, то чтобы не считать все со всеми через сравнение дескрипторов особых точек, сравнивают через GIST descriptor http://lear.inrialpes.fr/RecogWorkshop08/documents/lazebnik_como_poster.pdf Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIUK 0 Жалоба Опубликовано June 22, 2015 Запустил PhotoScan для твоиз трёх снимков: и точек много нашлось, и итоговая 3D модель неплохо выглядит. Видимо, я не очень хорошо понял твою проблему. Ммм... Может, обведи на картинках места, которые не получается соединить? Или результаты работы твоего алгоритма, чтобы всё таки понять, что конкретно не получается. Вот эта программа как раз делает то, что надо. А мне необходимо именно КАК она это делает... Я не могу использовать готовое ПО, необходимы алгоритмы по которые оно работает, чтобы создать аналог(можно брать куски кода если проект opensource) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 22, 2015 1. Я предлагаю перебрать все доступные в OpenCV детекторы точек, а в качестве дескриптора использовать SIFT, ASIFT или AKAZE. Детекторы - это: KAZE, AKAZE, AgastFeatureDetector, BRISK, FAST, GFTT, ORB, SIFT, SURF, Star. 2. Попробовать то, что специально разрабатывалось в качестве открытого инструментария для SFM. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIUK 0 Жалоба Опубликовано June 22, 2015 Попробуем) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIUK 0 Жалоба Опубликовано June 22, 2015 а конкретно нужно просто вытащить контура здания из 5 фотографий по кругу Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано June 26, 2015 Еще может быть полезно: "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 строится без вопросов. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах