Обзор методов выделения границ объектов на цифровом изображении

  

Шаалан Мохаммед       /     2 год

                                                                                                 ЮФУ

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

Края характеризуются резкими изменениями интенсивности пикселей. Чтобы обнаружить края, нам нужно искать такие изменения в соседних пикселях. Необходимо рассмотреть использование двух важных алгоритмов обнаружения краев, доступных в OpenCV: обнаружение краев Sobel и обнаружение краев Canny.

Обнаружение краев по методу Собеля

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



Рисунок 1 - График интенсивности пикселей в зависимости от t

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



Рисунок 2 – График первой производной интенсивности пикселей в зависимости от t

Приведенный выше график демонстрирует, что ребра могут быть обнаружены в областях, где градиент превышает определенное пороговое значение. Кроме того, внезапное изменение производной также покажет изменение интенсивности пикселей. Имея это в виду, мы можем аппроксимировать производную, используя ядро 3×3. Мы используем одно ядро для обнаружения внезапных изменений интенсивности пикселей в направлении X, а другое-в направлении Y.

Это ядра, используемые для определения границ Sobel:



Ядро в направлении X



Ядро в направлении по оси Y

Когда эти ядра свернуты с исходным изображением, вы получаете "изображение края Собеля".

  • Если мы используем только Вертикальное ядро, свертка дает изображение Собеля с ребрами, увеличенными в направлении X
  • Использование горизонтального ядра дает изображение Собеля, с краями, увеличенными в направлении Y.

    Gx и Gy представьте градиент интенсивности в x и y направления соответственно. Если A и B обозначьте ядра X и Y, определенные выше:

    Gx=A*I

    Gy=B*I

    где * обозначает оператор свертки, и I представляет входное изображение.

    Окончательное приближение величины градиента, G может быть вычислено как:



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



    В приведенном ниже примере кода мы используем Sobel() функция для вычисления:

    • изображение края Собеля по отдельности, в обоих направлениях (x и y);
    • составной градиент в обоих направлениях (xy).

      Обнаружение краев по методу Canny

      Обнаружение краев Canny – один из самых популярных методов обнаружения краев, используемых сегодня, потому что он настолько надежен и гибок. Сам алгоритм следует трехэтапному процессу извлечения краев из изображения. Добавьте к этому размытие изображения – необходимый этап предварительной обработки для уменьшения шума. Это делает его четырехэтапным процессом, который включает в себя:

      1.     Снижение уровня шума

      2.     Вычисление градиента интенсивности изображения

      3.     Подавление ложных краев

      4.     Пороговое значение гистерезиса

      Снижение уровня шума

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

      Вычисление градиента интенсивности изображения

      Как только изображение сглажено (размыто), оно фильтруется ядром Собеля как по горизонтали, так и по вертикали. Результаты этих операций фильтрации затем используются для расчета как величины градиента интенсивности (G), и направление (

      )                                   для каждого пикселя, как показано ниже.





      Затем направление градиента округляется до ближайшего угла 45 градусов.

      Подавление ложных краев

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

      Пороговое значение гистерезиса

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

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

        Выводы

        Мы описали, что делает обнаружение краев таким важным методом обработки изображений, и сосредоточились на знании двух его наиболее важных алгоритмов (Обнаружение краев Собеля и Обнаружение краев Кэнни). Демонстрируя их использование в OpenCV, мы подчеркнули, почему размытие является таким важным этапом предварительной обработки.

        Мы также видели, как Canny Edge Detection на самом деле использует оператор Собеля для вычисления числовых производных. И является надежным и гибким, с максимальным преимуществом используя даже не максимальное подавление и пороговое значение гистерезиса. Наконец, мы поняли, почему осторожное обнаружение ребер является предпочтительным и наиболее широко используемым методом для выполнения обнаружения ребер.

        СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

        1.                 Википедия. Оператор Собеля [Электронный-ресурс]. – Режим доступа: ru.wikipedia.org/wiki/Оператор_Собеля

        2.                 Потапов, А.С. Распознавание образов и машинное восприятие: общий подход на основе принципа минимальной длины описания/ А.С. Потапов. – СПб.: Политехника, 2007

        3.                 Лимановская, О.В. Основы машинного обучения : учебное пособие / О.В. Лимановская, Т.И. Алферьева ; Мин-во науки и высш. образования РФ.— Екатеринбург : Изд-во Урал. ун-та, 2020. — 88 с.

        4.                 Барский А. Б. Нейронные сети: распознавание, управление, принятие решений. — М.: Финансы и статистика, 2004. — 176 с: ил. — (Прикладные информационные технологии).

        5.                 Черняк, Евгений. Введение в глубокое обучение. : Пер. с англ. - СПб. : ООО "Диалектика", 2020. - 192 с. : ил. - Парал. тит. англ.