Каковы ограничения Canny Edge Detector?


18

В основном в литературе, посвященной алгоритмам обнаружения кромок и приложениям, в которых используется обнаружение кромок, упоминается детектор кромок Canny. Настолько, что это выглядит почти как «решение» для обнаружения краев. Конечно, он лучше всего справится с балансировкой шума и сохранением краев.

Однако, как любопытство, есть ли область беспокойства для детектора края Кэнни? или есть области применения, где Canny не будет лучшим?

В этом контексте более быстрая реализация не имеет большого значения. В центре внимания детектора кромок - хорошее или плохое - должно быть качество и полезность генерируемых кромок.

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


Интересно этот вопрос здесь Лучший способ сегментации вен в листьях? необходимо обнаружение края. Одним из показанных результатов является Кэнни и выглядит не очень хорошо. Хотя многие аспекты могут быть проблемой реализации, а может быть простым ограничением Canny! Какие-либо взгляды на это?
Дипан Мехта

Пожалуйста, посмотрите мой ответ ( dsp.stackexchange.com/questions/1714/… ), он показывает лучший результат, чем тот, который он получил от Canny.
Гертен

Возможный (частичный) обман: dsp.stackexchange.com/questions/74/… (или хотя бы связанный). Сам вопрос в значительной степени такой же (для части), ответы несколько отличаются от ответов на этот вопрос.
Гертен

1
@DipanMehta: То есть детектор краев Canny не должен использоваться для обнаружения предметов, которые не являются краями? :)
эндолит

Ответы:


19

Исходя из моего опыта, следующие пункты являются ограничениями:

  • Результат является двоичным. Иногда вам нужно измерить, «насколько» край квалифицируется как край (например, изображение интенсивности, полученное с помощью детектора амплитудных краев Собеля)
  • Количество параметров приводит к бесконечной настройке для получения только этого немного лучшего результата.
  • Вам все еще нужно соединить получающиеся ребра, чтобы извлечь полные ребра, которые кажутся настолько очевидными для человеческого глаза + разума.
  • Также из-за гауссова сглаживания: расположение ребер может быть отключено, в зависимости от размера гауссова ядра.

  • Метод имеет проблемы с углами и перекрестками:

    • Гауссово сглаживание размывает их, затрудняя их обнаружение (то же самое касается самих краев)
    • Угловые пиксели смотрят в неправильных направлениях для своих соседей, оставляя края с открытым концом и пропуски соединений

Эта последняя проблема решается методом SUSAN , который лучше соединяет ребра, а также приводит к хорошим переходам, как показано на следующих рисунках, приведенных в связанном документе:

Тест входного изображения:

Тест входного изображения

Результаты SUSAN:

Результаты Сьюзан

Результаты Canny:

Результаты Canny

Вы можете ясно видеть, что SUSAN находит углы и перекрестки вместо Canny.


Хорошо, вы имеете в виду, в основном, вопросы, связанные с реализацией. Я согласен, что такие проблемы могут существовать, но, на мой взгляд, много других обнаружение краев и другой алгоритм. Я ищу более теоретические ограничения или характеристики, присущие алгоритму.
Дипан Мехта

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

Установка порога выполняется каждым детектором фронта, и, следовательно, выход каждого детектора фронта является двоичным. Я бы взял вашу точку зрения о трудностях в настройке параметров и аспекте сглаживания по Гауссу, но в отличие от оператора типа LoG, Canny фактически находит наиболее оптимальное количество сглаживания при наличии шума.
Дипан Мехта

2
Установление порога не выполняется каждым детектором краев (например, Sobel, как упоминается в моем ответе). Во многих случаях это общий и логичный шаг, но не базовый шаг для каждого метода обнаружения фронта.
Гертен

6

или есть области применения, где Canny не будет лучшим?

Я могу думать о нескольких:

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

1

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


1

Я просто хочу упомянуть одно ограничение детектора Canny, которое препятствует его применению, и это настройка параметров. Я думаю, что установка параметров - это не только проблема детектора Canny, но и проблема других методов обнаружения краев.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.