Модификация фильтра Кэнни в рамках задачи обнаружения строений
Новоторцев Л.В., ИПМ им. М.В. Келдыша РАН Шгйб 13 @§шаИ. сот Волобой А.Г., ИПМ им. М.В. Келдыша РАН [email protected]
Аннотация
В данной статье рассматривается задача выделения границ на изображениях с целью наиболее точно выделить границы строений. Предлагается использовать модификацию фильтра Кэнни, опирающуюся на анализ гистограммы яркости небольших областей изображения и подбор параметров фильтра под результат анализа.
1 Введение
В задачах распознавания объектов по изображениям часто встречается необходимость использовать выделение границ. В частности это активно используется в задачах фотограмметрии, в особенности в задаче обнаружение строений.
Наиболее распространёнными алгоритмами решения такого рода задачи являются фильтры Собеля [1] и Кэнни [2]. Основное отличие между этими фильтрами заключается в том, что фильтр Собеля для каждой точки выдаёт насколько чёткая граница в данной точке изображения, а фильтр Кэнни даёт ответ в двоичном виде: есть граница или её нет. Обычно для выделения объектов используют фильтр Кэнни, поскольку в задачах такого рода гораздо важнее выявление наличия или отсутствия деталей, чем насколько ярко они выражены. Этот фильтр и его модификации [3] очень распространён в современных алгоритмах выделения строений по аэрофотоснимкам [4,5,6] и в алгоритмах, базирующихся на методе Хафа [7, 8, 9].
Для дальнейших рассуждений понадобится обзор основных шагов фильтра Кэнни. В первую очередь применяется фильтр Гаусса. Сначала строится градиенты по каждой из размерностей изображения Ох и Оу, применяя ядра свёртки (1) и (2) к изображению соответственно. После этого вычисляется величина градиента (3) и угол наклона (4), который округляется до ближайшей величины: 0, 45, 90 или 135 градусов.
в.
1 0 -1 2 0 - 2 1 0 -1
х А
(1)
О =
1 -2 0 2
0 1
0 1
хА
а = 70^+0
6 = а 1ап20у; 0Х)
(2)
(3)
Х (4)
Следующим шагом выполняется операция подавления. Она заключается в том, что для каждого пикселя получившегося градиента выполняются следующие операции:
1. Значение градиента сравнивается со значениями по положительному и отрицательному направлению градиента.
2. Если оно не является наибольшим, то пиксель помечается как не относящийся к границе.
Все пиксели имеющие величину градиента больше, чем верхний порог (входной параметр), помечаются как "сильная" грань. Если величина градиента меньше, чем нижний порог, но больше, чем нижний порог, пиксель помечается как "слабая". В противном случае пиксель отмечается как не относящийся к грани. Все пиксели, помеченные как "слабые" грани, дополнительно последовательно проверяются и отбраковываются те, что не имеют в свой окрестности "сильные" пиксели. Множество оставшихся пикселей и образуют результат алгоритма.
Однако в контексте обнаружения строений часто возникает проблема, что крыша по яркости (и цветности) мало отличается от окружения. В основном это касается крыш, серого цвета на фоне асфальта (см. Рис. 1). В таких случаях получается, что фильтр Кэнни не выделяет границы некоторых крыш (см. Рис. 2), что может привести к ухудшению результата.
1
Рис. 1. Пример малозаметной границы
Рис. 2. Результат применения фильтра Кэнни с параметрами (0.1, 0.3)
Рис. 3. Результат применения фильтра Кэнни с параметрами (0.01, 0.05)
Если задать входные параметры фильтра на большую чувствительность, то помимо интересующих крыш будет выделено много элементов, относящихся к шуму (см. Рис. 3).
Для решения этой проблемы предлагается применять фильтр Кэнни не ко всему изображению с одними и теми же входными параметрами, а к отдельным элементам, проводя анализ и, исходя из него, подбирать параметры фильтра к каждому элементу отдельно.
2 Основная идея
Особенность рассматриваемой задачи (обнаружение строений) состоит в том, что крыши, имеют равномерный цвет каждой из своих граней. Поэтому можно улучшить точность выделения границ фильтром Кэнни за счёт подбора подходящих параметров специально для областей, где проходит крыша и использования стандартных параметров для всех остальных областей.
Первый шаг предложенного алгоритма -применить фильтр Кэнни для всего изображения, подобрав наиболее подходящие входные параметры.
Далее изображение разбивается на прямоугольные сегменты. На рассматриваемых данных использовались сегменты 16х16.
Для каждого сегмента строится гистограмма. На основе полученной гистограммы и содержимого сегмента может либо проведена повторная фильтрация фильтром Кэнни с обновлёнными параметрами, либо этот сегмент так и остаётся как есть. Этот этап является основной частью описанного алгоритма. Рассмотрим подробнее его.
3 Анализ сегмента
В первую очередь необходимо проверить относится ли текущий сегмент к тем, которые нас интересуют. Иными словами имеет малый диапазон значений цветов. Для этого построим гистограмму для сегмента. Если 80% (цифра подобрана экспериментально) пикселей находятся в диапазоне, не превышающем значение верхнего порога фильтра Кэнни из первого шага алгоритма, то этот сегмент входит в число интересующих нас и подлежит дальнейшему рассмотрению. В противном случае сегмент пропускается и рассматривается следующий.
Выбранные сегменты можно разделить на три вида, которые представляют интерес. Первый вид - две области, немного отличающиеся по яркости (см. Рис. 4). Второй вид -две области примерно одинаковой яркости с границей отличающийся от этих областей (см. Рис 5). К последнему, третьему виду относятся сегменты, содержащие шум, и такие регулярные структуры, как трава, деревья и вода. Для нас важно отделить первые два типа от последнего.
Рис. 4. Две области
Рис. 5. Области с границей
Первый тип характеризуется тем, что гистограмма имеет два пика (см. Рис 6). Причём пиксели, соответствующие каждому из максимумов, сосредоточены каждый на своей части изображения. Для выявления данного типа необходимо произвести следующие действия.
Рис. 6. Пример гистограммы "два пика"
Во-первых, необходимо проверить, имеет ли гистограмма два пика. Если имеет, то переходим к следующему шагу
Во-вторых, необходимо найти окрестности пиков на гистограмме такие, что пиксели, относящиеся к окрестности одного из пиков, относились к одной и той же части изображе-
ния. Это позволит сегментировать изображение на зоны. Есть две стратегии достижения этой цели. Первая предполагает брать в качестве окрестности пика расстояние между пиком и локальным минимумом, находящимся между двумя максимумами. Вторая стратегия предполагает использовать половину расстояния между пиками. Именно её и будем использовать в дальнейшем.
Далее для каждого пика гистограммы считаем геометрический центр пикселей, попавших в окрестность этого пика.
Следующим шагом проводим прямую линию через получившиеся центры. Делаем проекцию пикселей из каждой группы на эту прямую. Дисперсия получившихся проекций не должна превышать 70% от расстояния между центрами. Если полученные результаты удовлетворяют данным требованиям, то можно сделать вывод, о том, что сегмент принадлежит первому типу.
Второй тип характеризуется тем, что гистограмма изображения имеет один «узкий» пик (см. Рис 7). И этот пик содержит больше половины всех пикселей сегмента в свой окрестности (1-2 значения гистограммы). Для проверки этого типа достаточно убедиться, что центр пикселей попавших в окрестность пика не сильно отличается от центра сегмента изображения и имеет дисперсию соизмеримую с размерами сегмента.
Рис. 7. Пример гистограммы " один пик"
К третьему типу относятся все сегменты не классифицированные, как первый и второй тип и в дальнейших рассуждениях рассматриваться не будет.
4 Выделение границ
Теперь всё, что осталось это произвести повторную обработку фильтром Кэнни сегмента, но уже учитывая особенности данного сегмента. В данной статье предлагается использовать линейную коррекцию (5) изображения для сегмента. После этого снова применить фильтр Кэнни с теми же параметрами.
255
Inew = (I - Imin ) ХI-(5)
max min
Поскольку линейная коррекция увеличит контраст между областями сегмента, то фильтр Кэнни уже сможет выделить ранее пропущенную грань.
5 Результаты
Рассмотрим работу описанного выше алгоритма на примере изображения, приведённого на Рис. 8. На Рис. 9 приведён результат применения к нему фильтра Кэнни, реализованного в системе Matlab. На Рис. 10 приведены результаты работы описанного алгоритма c аналогичными параметрами фильтра Кэнни..
Рис. 8. Исходное изображение
Рис. 9. Результат использования фильтра Кэнни в Matlab
Рис. 10. Результат использования описанного алгоритма
Список литературы
1. I. Sobel and G. Feldman. A 3 x 3 Isotropic Gradi-
ent Operator for Image Processing. R. Duda and P. Hart (Eds.), Pattern Classification and Scene Analysis, 1973. pp. 271-272.
2. Canny J. A computational approach to edge detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 6, 1986. pp. 679-698.
3. Bao P., Zhang D., Wu X. Canny edge detection
enhancement by scale multiplication. IEEE transactions on pattern analysis and machine intelligence, 27(9), 2005. pp. 1485-1490.
4. Ghaffarian S., Ghaffarian S. Automatic building
detection based on supervised classification using high resolution Google Earth images. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 40(3), 2014. pp. 101-106.
5. Ok A. O. Automated Extraction of Buildings and
Roads in a Graph Partitioning Framework. ISPRS Annals of Photogrammetry. Remote Sensing and Spatial Information Sciences II-3/W3, 2013. pp. 79-84, 2013.
6. Singhal S., Radhika S. Automatic Detection of Buildings from Aerial Images Using Color Invariant Features and Canny Edge Detection. International Journal of Engineering Trends and Tech-nology(IJETT) 11(8), 2014. pp. 393-396.
7. Hough P. V. C. Method and Means for Recognizing
Complex Patterns. U.S. Patent 3069654, Dec. 18, 1962.
8. Du, S., van Wyk, B. J., Tu, C., & Zhang, X. An
improved Hough transform neighborhood map for straight line segments. IEEE Transactions on Image Processing, 19(3), 2010. pp. 573-585.
9. Baillard C., Zisserman A. A plane-sweep strategy for the 3D reconstruction of buildings from multiple images. International Archives of Photogram-metry and Remote Sensing, 33(B2) part 2, 2000. pp. 56-62.