Обнаружение краев включает в себя множество математических методов, которые направлены на идентификацию краев , определяемых как кривые в цифровом изображении , на которых яркость изображения резко меняется или, более формально, имеет разрывы . Та же проблема поиска разрывов в одномерных сигналах известна как обнаружение шагов , а проблема поиска разрывов сигнала с течением времени известна как обнаружение изменений . Обнаружение краев является фундаментальным инструментом в обработке изображений , машинном зрении и компьютерном зрении , особенно в областях обнаружения и извлечения признаков . [1]
Целью обнаружения резких изменений яркости изображения является фиксация важных событий и изменений свойств мира. Можно показать, что при довольно общих предположениях для модели формирования изображения разрывы яркости изображения, вероятно, соответствуют: [2] [3]
В идеальном случае результат применения детектора краев к изображению может привести к набору связанных кривых, которые указывают границы объектов, границы поверхностных отметок, а также кривых, которые соответствуют разрывам в ориентации поверхности. Таким образом, применение алгоритма обнаружения краев к изображению может значительно сократить объем обрабатываемых данных и, следовательно, отфильтровать информацию, которая может считаться менее релевантной, сохраняя при этом важные структурные свойства изображения. Если этап обнаружения краев успешен, последующая задача интерпретации информационного содержания в исходном изображении может быть существенно упрощена. Однако не всегда возможно получить такие идеальные края из реальных изображений умеренной сложности.
Края, извлеченные из нетривиальных изображений, часто затруднены фрагментацией , что означает, что кривые краев не связаны, отсутствуют сегменты краев, а также ложные края, не соответствующие интересным явлениям на изображении, что усложняет последующую задачу интерпретации данных изображения. [4]
Обнаружение краев является одним из основных этапов в обработке изображений, анализе изображений, распознавании образов изображений и методах компьютерного зрения.
Края, извлеченные из двумерного изображения трехмерной сцены, можно классифицировать как зависимые от точки обзора или независимые от точки обзора. Край, независимый от точки обзора, обычно отражает неотъемлемые свойства трехмерных объектов, такие как поверхностные отметки и форма поверхности. Край, зависимый от точки обзора, может меняться при изменении точки обзора и обычно отражает геометрию сцены, например, объекты, перекрывающие друг друга.
Типичным краем может быть, например, граница между блоком красного цвета и блоком желтого цвета. Напротив, линия (которую можно извлечь с помощью детектора хребта ) может быть небольшим количеством пикселей другого цвета на в остальном неизменном фоне. Для линии, таким образом, обычно может быть одно ребро с каждой стороны линии.
Хотя в определенной литературе рассматривалось обнаружение идеальных ступенчатых краев, края, полученные из естественных изображений, обычно не являются идеальными ступенчатыми краями. Вместо этого они обычно подвержены одному или нескольким из следующих эффектов:
Ряд исследователей использовали сглаженный по Гауссу ступенчатый край ( функцию ошибок ) как простейшее расширение идеальной модели ступенчатого края для моделирования эффектов размытия краев в практических приложениях. [4] [5] Таким образом, одномерное изображение , имеющее ровно один край, расположенный на , может быть смоделировано как:
Слева от края интенсивность равна , а справа от края — . Параметр масштаба называется масштабом размытия края. В идеале этот параметр масштаба должен быть скорректирован в зависимости от качества изображения, чтобы избежать разрушения истинных краев изображения. [ необходима цитата ]
За исключением изображений с простыми объектами или хорошо контролируемым освещением, обнаружение края не является тривиальной задачей, поскольку может быть сложно определить, какой порог следует использовать для определения края между двумя пикселями. [4] Например, в следующем одномерном сигнале большинство интуитивно скажет, что есть край между 4-м и 5-м пикселями:
Однако, если бы разница в интенсивности между 4-м и 5-м пикселями была меньше, было бы не так просто сказать, что в соответствующей области должен быть край. Аналогично, если бы разница в интенсивности между соседними пикселями была выше, можно было бы утверждать, что следует считать, что существует более одного края, или даже вообще ни одного.
Существует множество методов обнаружения границ, но большинство из них можно разделить на две категории: основанные на поиске и основанные на нулевом пересечении . Методы, основанные на поиске, обнаруживают границы, сначала вычисляя меру прочности границы, обычно производное выражение первого порядка, такое как величина градиента, а затем выполняя поиск локальных направленных максимумов величины градиента, используя вычисленную оценку локальной ориентации границы, обычно направление градиента. Методы, основанные на нулевом пересечении, ищут нулевые пересечения в производном выражении второго порядка, вычисленном по изображению, чтобы найти границы, обычно нулевые пересечения Лапласа или нулевые пересечения нелинейного дифференциального выражения. В качестве этапа предварительной обработки для обнаружения границ почти всегда применяется этап сглаживания, обычно гауссово сглаживание (см. также снижение шума ).
Опубликованные методы обнаружения краев в основном различаются по типам применяемых сглаживающих фильтров и по способу вычисления мер прочности краев. Поскольку многие методы обнаружения краев основаны на вычислении градиентов изображения, они также различаются по типам фильтров, используемых для вычисления оценок градиента в направлениях x и y .
Обзор различных методов обнаружения границ можно найти в (Ziou and Tabbone 1998); [6] см. также статьи энциклопедии по обнаружению границ в Encyclopedia of Mathematics [3] и Encyclopedia of Computer Science and Engineering. [7]
Джон Кэнни рассмотрел математическую задачу вывода оптимального сглаживающего фильтра с учетом критериев обнаружения, локализации и минимизации множественных ответов на один край. [8] Он показал, что оптимальный фильтр с учетом этих предположений представляет собой сумму четырех экспоненциальных членов. Он также показал, что этот фильтр может быть хорошо аппроксимирован производными первого порядка от гауссианов. Кэнни также ввел понятие немаксимального подавления, что означает, что с учетом фильтров предварительного сглаживания точки края определяются как точки, в которых величина градиента принимает локальный максимум в направлении градиента. Поиск нулевого пересечения 2-й производной вдоль направления градиента был впервые предложен Хараликом . [ 9] Потребовалось менее двух десятилетий, чтобы найти современное геометрическое вариационное значение для этого оператора, которое связывает его с детектором края Марра-Хилдрета (нулевое пересечение Лапласа). Это наблюдение было представлено Роном Киммелем и Альфредом Брукштейном. [10]
Хотя его работа была выполнена на заре компьютерного зрения, детектор границ Кэнни (включая его вариации) по-прежнему является современным детектором границ. [11] Детекторы границ, которые работают лучше, чем Кэнни, обычно требуют больше времени вычислений или большего количества параметров.
Владимир А. Ковалевский [12] предложил совершенно иной подход. Он использует предварительную обработку изображения с помощью фильтра Sigma [13] и специального фильтра для разбавления градиентов. Этот метод не использует яркость изображения, а только интенсивности цветовых каналов, что важно для обнаружения границы между двумя соседними пикселями одинаковой яркости, но разных цветов. Метод сканирует изображение два раза: сначала по горизонтальным линиям, а затем по вертикальным столбцам. В каждой горизонтальной линии рассматриваются шесть последовательных соседних пикселей и вычисляется пять цветовых различий между каждыми двумя соседними пикселями. Каждое цветовое различие представляет собой сумму абсолютных разностей интенсивностей цветовых каналов Red, Green и Blue соответствующих соседних пикселей. Если эта сумма больше заданного порога, то знак цветового различия устанавливается равным знаку разности интенсивностей зеленого. Если зеленое различие равно нулю, то знак цветового различия устанавливается равным знаку разности интенсивностей красного. Однако если и зеленая, и красная разности равны нулю, то знак цветовой разности устанавливается равным знаку синей разности, которая в этом случае не может быть нулем, так как сумма больше порога. Определенные условия для значений и знаков пяти цветовых разностей задаются таким образом, что если условия выполняются, то между третьим и четвертым из шести пикселей в качестве метки края ставится короткая вертикальная черта. Аналогичные вычисления выполняются для вертикальных столбцов. В этом случае между третьим и четвертым из шести последующих пикселей ставится короткая горизонтальная черта. Вертикальные и горизонтальные штрихи (будучи одномерными ячейками абстрактного комплекса ячеек, соответствующего изображению) в основном составляют связанную последовательность, представляющую край. Этот метод является надежным и очень быстрым и, что более важно, он может обнаруживать края между соседними пикселями одинаковой яркости, если цветовая разница между этими пикселями больше порога.
Детектор Кэнни–Дериша был получен на основе тех же математических критериев, что и детектор краев Кэнни, хотя он начинался с дискретной точки зрения, а затем приводил к набору рекурсивных фильтров для сглаживания изображений вместо экспоненциальных фильтров или гауссовых фильтров. [14]
Описанный ниже дифференциальный детектор границ можно рассматривать как переформулировку метода Кэнни с точки зрения дифференциальных инвариантов, вычисляемых из масштабного представления пространства, что приводит к ряду преимуществ с точки зрения как теоретического анализа, так и субпиксельной реализации. В этом аспекте было показано, что фильтр Log Gabor является хорошим выбором для извлечения границ в естественных сценах. [15]
Различные операторы градиента могут быть применены для оценки градиентов изображения из входного изображения или его сглаженной версии. Самый простой подход — использовать центральные разности:
соответствующие применению следующих масок фильтров к данным изображения:
Известный и более ранний оператор Собеля основан на следующих фильтрах:
При наличии таких оценок производных изображения первого порядка величина градиента вычисляется следующим образом:
в то время как ориентация градиента может быть оценена как
Другие операторы разности первого порядка для оценки градиента изображения были предложены в операторе Превитта , кроссе Робертса , операторе Кайяли [16] и операторе Фрея–Чена.
Можно расширить размерность фильтров, чтобы избежать проблемы распознавания края на изображении с низким SNR . Стоимость этой операции — потеря в разрешении. Примерами являются Extended Prewitt 7×7.
После того, как мы вычислили меру силы края (обычно величину градиента), следующим этапом является применение порога, чтобы решить, присутствуют ли края в точке изображения или нет. Чем ниже порог, тем больше краев будет обнаружено, и результат будет все более восприимчив к шуму и обнаружению краев нерелевантных особенностей на изображении. И наоборот, высокий порог может пропустить тонкие края или привести к фрагментированным краям.
Если край применяется только к изображению величины градиента, полученные края в целом будут толстыми, и потребуется некоторая постобработка с утончением краев. Однако для краев, обнаруженных с немаксимальным подавлением, кривые краев тонкие по определению, и пиксели краев могут быть связаны в многоугольник края с помощью процедуры связывания краев (отслеживания краев). На дискретной сетке этап немаксимального подавления может быть реализован путем оценки направления градиента с использованием производных первого порядка, затем округления направления градиента до кратных 45 градусов и, наконец, сравнения значений величины градиента в оцененном направлении градиента.
Обычно используемый подход к решению проблемы соответствующих порогов для порогового значения — это использование порогового значения с гистерезисом . Этот метод использует несколько пороговых значений для поиска краев. Мы начинаем с использования верхнего порогового значения для поиска начала края. Как только у нас есть начальная точка, мы затем прослеживаем путь края через изображение пиксель за пикселем, отмечая край всякий раз, когда мы находимся выше нижнего порогового значения. Мы прекращаем отмечать наш край только тогда, когда значение падает ниже нашего нижнего порогового значения. Этот подход предполагает, что края, скорее всего, будут находиться в непрерывных кривых, и позволяет нам следовать за слабым участком края, который мы видели ранее, не имея в виду, что каждый шумный пиксель на изображении отмечен как край. Тем не менее, у нас есть проблема выбора соответствующих параметров порогового значения, и подходящие значения порогового значения могут различаться в зависимости от изображения.
Утончение краев — это метод, используемый для удаления нежелательных ложных точек на краях изображения. Этот метод применяется после того, как изображение было отфильтровано от шума (с использованием медианы, фильтра Гаусса и т. д.), был применен оператор края (например, описанные выше, Canny или Sobel) для обнаружения краев и после того, как края были сглажены с использованием соответствующего порогового значения. Это удаляет все нежелательные точки и, если применяется аккуратно, приводит к элементам края толщиной в один пиксель.
Преимущества:
Для этого используется множество популярных алгоритмов, один из которых описан ниже:
Количество проходов в поперечном направлении следует выбирать в соответствии с желаемым уровнем точности.
Некоторые операторы обнаружения краев вместо этого основаны на производных второго порядка интенсивности. Это по сути фиксирует скорость изменения градиента интенсивности. Таким образом, в идеальном непрерывном случае обнаружение нулевых пересечений во второй производной фиксирует локальные максимумы в градиенте.
Ранний оператор Марра–Хилдрета основан на обнаружении нулевых пересечений оператора Лапласа, примененного к гауссово-сглаженному изображению. Однако можно показать, что этот оператор также будет возвращать ложные края, соответствующие локальным минимумам величины градиента. Более того, этот оператор будет давать плохую локализацию на изогнутых краях. Поэтому этот оператор сегодня представляет в основном исторический интерес.
Более совершенный подход к обнаружению краев второго порядка, который автоматически обнаруживает края с точностью до субпикселя, использует следующий дифференциальный подход к обнаружению нулевых пересечений производной направления второго порядка в направлении градиента:
Следуя дифференциально-геометрическому способу выражения требования немаксимального подавления, предложенному Линдебергом, [4] [17] введем в каждой точке изображения локальную систему координат с -направлением, параллельным направлению градиента. Предполагая, что изображение было предварительно сглажено гауссовым сглаживанием и масштабное представление пространства в масштабе было вычислено, мы можем потребовать, чтобы величина градиента масштабного представления пространства , которая равна производной направления первого порядка в -направлении , имела свою первую производную направления в -направлении, равную нулю
в то время как производная второго порядка в -направлении должна быть отрицательной, т.е.
Записанное как явное выражение в терминах локальных частных производных , это определение края может быть выражено как кривые пересечения нуля дифференциального инварианта
который удовлетворяет условию знака на следующем дифференциальном инварианте
где обозначают частные производные, вычисленные из масштабного представления пространства , полученного путем сглаживания исходного изображения с помощью гауссовского ядра . Таким образом, края будут автоматически получены как непрерывные кривые с точностью до субпикселя. Гистерезисный порог также может быть применен к этим дифференциальным и субпиксельным сегментам края.
На практике аппроксимации производных первого порядка можно вычислить с помощью центральных разностей, как описано выше, тогда как производные второго порядка можно вычислить из представления масштабного пространства согласно:
соответствующие следующим маскам фильтров:
Производные более высокого порядка для условия знака третьего порядка могут быть получены аналогичным образом.
Недавнее развитие методов обнаружения краев использует подход частотной области для поиска местоположений краев. Методы фазовой конгруэнтности (также известные как фазовая когерентность) пытаются найти места на изображении, где все синусоиды в частотной области находятся в фазе. Эти места, как правило, соответствуют местоположению воспринимаемого края, независимо от того, представлен ли край большим изменением интенсивности в пространственной области. Ключевым преимуществом этого метода является то, что он сильно реагирует на полосы Маха и избегает ложных срабатываний, обычно встречающихся вокруг краев крыши. Край крыши — это разрыв в производной первого порядка профиля уровня серого. [18]
Преобразование фазового растяжения или PST — это вычислительный подход к обработке сигналов и изображений, основанный на физике. Одной из его утилит является обнаружение и классификация признаков. [19] [20] PST — это побочный продукт исследований дисперсионного преобразования Фурье с растяжением во времени . PST преобразует изображение, имитируя распространение через дифракционную среду с разработанным 3D-дисперсионным свойством (показатель преломления). Операция основана на симметрии профиля дисперсии и может быть понята в терминах дисперсионных собственных функций или мод растяжения. [21] PST выполняет ту же функциональность, что и фазово-контрастная микроскопия, но на цифровых изображениях. PST также применим к цифровым изображениям, а также к временным, временным рядам, данным.
Для повышения точности обнаружения краев было предложено несколько методов субпикселей, включая методы подгонки кривой, основанные на моментах, [22] [23] реконструкционные и методы частичного эффекта области. [24] Эти методы имеют разные характеристики. Методы подгонки кривой просты в вычислительном отношении, но легко подвержены влиянию шума. Методы, основанные на моментах, используют подход на основе интегралов для уменьшения влияния шума, но в некоторых случаях могут потребовать больше вычислений. Методы реконструкции используют горизонтальные градиенты или вертикальные градиенты для построения кривой и нахождения пика кривой в качестве субпиксельного края. Методы частичного эффекта области основаны на гипотезе о том, что каждое значение пикселя зависит от области по обе стороны края внутри этого пикселя, что дает точную индивидуальную оценку для каждого пикселя края. Было показано, что некоторые варианты метода, основанного на моментах, являются наиболее точными для изолированных краев. [23]
Детектор краев Марра-Хилдрета [25] отличается использованием оператора Лапласа Гаусса (LoG) для обнаружения краев на цифровых изображениях. В отличие от других методов обнаружения краев, подход LoG объединяет гауссово сглаживание с операциями второй производной, что позволяет одновременно снижать уровень шума и улучшать края. Ключевое преимущество этого метода заключается в его способности обнаруживать края в различных масштабах путем регулировки стандартного отклонения ядра Гаусса, что позволяет обнаруживать как мелкие детали, так и более широкие переходы. Более того, этот метод использует обнаружение пересечения нуля в отклике LoG для точного определения краев, обеспечивая устойчивость к шуму и поддерживая непрерывность краев. Этот подход особенно эффективен для обнаружения краев с четкими границами на изображениях, при этом сводя к минимуму ложные срабатывания из-за шума, что делает его ценным инструментом в приложениях компьютерного зрения, где точная локализация краев имеет решающее значение.
Источник: [26]
% Код MATLAB для prewitt% оператор обнаружения краяk = imread ( "logo.png" );k = rgb2gray ( k );k1 = двойной ( k );p_msk =[ - 1 0 1 ; - 1 0 1 ; - 1 0 1 ]; kx = conv2 ( k1 , p_msk , 'то же самое' ); ky = conv2 ( k1 , p_msk ' , 'то же самое' ); ked = sqrt ( kx .^ 2 + ky .^ 2 ); % отобразить изображения.imtool ( k ,[]);% отобразить обнаружение края вдоль оси x.imtool ( abs ( kx ), []); % отобразить обнаружение края вдоль оси Y.imtool ( abs ( ky ),[]);% отобразить полное обнаружение края.imtool ( abs ( ked ),[]);
Оператор %Scharr -> обнаружение краяk = imread ( "logo.png" );k = rgb2gray ( k );k1 = двойной ( k );s_msk =[ - 3 0 3 ; - 10 0 10 ; - 3 0 3 ]; kx = conv2 ( k1 , s_msk , 'то же самое' ); ky = conv2 ( k1 , s_msk ' , 'то же самое' ); ked = sqrt ( kx .^ 2 + ky .^ 2 ); %отобразить изображения.imtool ( k ,[]);%отобразить обнаружение края вдоль оси x.imtool ( abs ( kx ), []); %отобразить обнаружение края вдоль оси Y.imtool ( abs ( ky ),[]);%отобразить полное обнаружение края.imtool ( abs ( ked ),[]);
% Код MATLAB для оператора Собеля% обнаружения краяk = imread ( "logo.png" );k = rgb2gray ( k );k1 = двойной ( k );s_msk =[ - 1 0 1 ; - 2 0 2 ; - 1 0 1 ]; kx = conv2 ( k1 , s_msk , 'то же самое' ); ky = conv2 ( k1 , s_msk ' , 'то же самое' ); ked = sqrt ( kx .^ 2 + ky .^ 2 ); %отобразить изображения.imtool ( k ,[]);%отобразить обнаружение края вдоль оси x.imtool ( abs ( kx ), []); %отобразить обнаружение края вдоль оси Y.imtool ( abs ( ky ),[]);%отобразить полное обнаружение края.imtool ( abs ( ked ),[]);
M. Gupta, SN Tazi, A. Jain и Deepika, «Обнаружение границ с использованием модифицированного алгоритма Firefly», Computational Intelligence and Communication Networks (CICN) 2014 Международная конференция, стр. 167–173, 14–16 ноября 2014 г. Просмотреть статью Google Scholar