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

Нахождение контуров зданий на снимке с космоса

Recommended Posts

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

cnt.png

masked_imaeg.png

spi.jpg

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


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

А как насчет чисто программерского решения: взять туже область карты в векторном представлении, дернуть из неё маску для нужных объектов, а потом эту маску уточнить уже по фотографии?

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


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

Самый простой вариант это отфильтровать контуры по моментам и по площади.

Почитаю, попробую что то сделать. Спсибо.

А как насчет чисто программерского решения: взять туже область карты в векторном представлении, дернуть из неё маску для нужных объектов, а потом эту маску уточнить уже по фотографии?

Немного не понял. Если бы были примеры в виде кода, ссылки или фото, был бы признателен.

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

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


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

Bes видимо имел ввиду: если эта фотография взята с карт гугла или яндекса, то взять туже область в векторном виде (у гугла это "карта") и там уже все размечено. 

Ну, а вот так взять и автоматически разметить здания по фотографии с применимой ошибкой, мне кажется это не решаем задача. 

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


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

Задача решаемая, Вы ведь можете найти здания :), значит информации достаточно. Другое дело вычислительные затраты на это.

Вот посмотрите такую штуку:

http://cs.stanford.edu/people/karpathy/rcnn/

Ее ведь можно и на здания натаскать.

 

Можно также сначала применить любой другой детектор, Виолы-Джонса, SVM+HOG, ... получите набор областей для дальнейшей обработки.

Затем применить уже контурную сегментацию, сегментацию по цвету, ну и т.д.

Дороги и многие другие лишние объекты должны отсеяться.

Изменено пользователем Smorodov

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


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

Bes видимо имел ввиду: если эта фотография взята с карт гугла или яндекса, то взять туже область в векторном виде (у гугла это "карта") и там уже все размечено. 

Ну, а вот так взять и автоматически разметить здания по фотографии с применимой ошибкой, мне кажется это не решаем задача. 

Да, это я и имел в виду. взять разметку с веторной карты, а потом прогнать по необходимым регионам еще какой-нибудь алгоритм типа водораздела, чтобы границы на фотоснимке уточнить.

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


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

Задача решаемая, Вы ведь можете найти здания :), значит информации достаточно. Другое дело вычислительные затраты на это.

Вот посмотрите такую штуку:

http://cs.stanford.edu/people/karpathy/rcnn/

Ее ведь можно и на здания натаскать.

 

Можно также сначала применить любой другой детектор, Виолы-Джонса, SVM+HOG, ... получите набор областей для дальнейшей обработки.

Затем применить уже контурную сегментацию, сегментацию по цвету, ну и т.д.

Дороги и многие другие лишние объекты должны отсеяться.

RCNN это вещь, но пока что поджимают сроки и она позволит определить лишь область, а нужно выделить именно контур здания) Области со зданиями выделяются же.

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


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

Ну я несколько иное выделение имел здесь ввиду.

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

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

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


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

можно задачу сегментации решать как задачу классификации каждого скользящего окна.

 

хотя вот в оригинальном пейпере по R-CNN пишут про semantic segmentation.

Но сдается мне это больше для чего то типа Pascal VOC, а тут это оверкил. 

 

Предлагаю изначально попробовать простой подход с готовой тулзой:

http://fiji.sc/Trainable_Weka_Segmentation

 

 

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


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

Я думаю HOG+SVM или Haar+AdaBoost здесь могут быть довольно эффективны.

Особенность изображений зданий на виде сверху, это наличие большого количества ортогональных друг другу граней.

Это будет давать на гистограмме градиентов характерную картинку (шаг 90 градусов между пиками).

Изменено пользователем Smorodov

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


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

Ну я несколько иное выделение имел здесь ввиду.

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

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

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

Я думаю HOG+SVM или Haar+AdaBoost здесь могут быть довольно эффективны.

Особенность изображений зданий на виде сверху, это наличие большого количества ортогональных друг другу граней.

Это будет давать на гистограмме градиентов характерную картинку (шаг 90 градусов между пиками).

т.е HOG обучить на здания?

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


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

Сложно сказать, можно попробовать GrabCut или LevelSet сегментацию, с начальным приближение по найденной Вами маске, но это не быстрые методы.

ЗЫ: Да, я думаю HOG (обученный на здания) должен неплохо справляться.

Изменено пользователем Smorodov

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


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

Сложно сказать, можно попробовать GrabCut или LevelSet сегментацию, с начальным приближение по найденной Вами маске, но это не быстрые методы.

ЗЫ: Да, я думаю HOG (обученный на здания) должен неплохо справляться.

Скорость методов на данный момент не имеет значения, сейчас поищу инфу про методы сегментации, мб подойдут.

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


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

Одна из реализаций LevelSet есть на форуме.

GrabCut стандартный метод, встроенный в opencv.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×