Jakie są ograniczenia Canny Edge Detector?

18

Zasadniczo większość literatury na temat algorytmów wykrywania krawędzi i aplikacji wykorzystujących wykrywanie krawędzi nawiązuje do detektora krawędzi Canny'ego. Tak bardzo, że wygląda na prawie „rozwiązanie” wykrywania krawędzi. Z pewnością zrobiłby to najlepiej, równoważąc hałas i zachowując krawędzie.

Jednak, jako zwykła ciekawość, czy istnieje obszar zainteresowania detektora krawędzi Canny? czy są obszary zastosowań, w których Canny nie będzie najlepszy?

W tym kontekście szybsze wdrożenie nie jest tak naprawdę problemem. Detektor brzegowy powinien skupiać się na dobrej lub złej jakości i użyteczności generowanych krawędzi.

Poza tym tak naprawdę nie koncentruję się na kwestiach związanych z implementacją. Szukam bardziej teoretycznych ograniczeń lub cech charakterystycznych dla algorytmu.

Dipan Mehta
źródło
Co ciekawe to pytanie tutaj Najlepszy sposób dzielenia żył na liście? potrzebne wykrywanie krawędzi. Jednym z pokazanych wyników jest Canny i nie wygląda zbyt dobrze. Chociaż wiele aspektów może stanowić problem z implementacją w porównaniu do zwykłego ograniczenia Canny! Jakieś poglądy na ten temat?
Dipan Mehta
Proszę zobaczyć moją odpowiedź ( dsp.stackexchange.com/questions/1714/... ), pokazuje lepszy wynik niż ten, który otrzymał od Canny'ego.
Geerten
Możliwe (częściowe) duplikowanie : dsp.stackexchange.com/questions/74/… (lub przynajmniej powiązane). Samo pytanie jest prawie takie samo (po części), odpowiedzi nieco różnią się od odpowiedzi na to pytanie.
Geerten
1
@DipanMehta: Więc detektora krawędzi Canny nie należy używać do wykrywania rzeczy, które nie są krawędziami? :)
endolith

Odpowiedzi:

19

Z mojego doświadczenia wynika, że ​​następujące punkty są ograniczeniami:

  • Wynik jest binarny. Czasami potrzebujesz pomiaru „ile” krawędź kwalifikuje się jako krawędź (np. Obraz intensywności pochodzący z detektora krawędzi amplitudy Sobela)
  • Ilość parametrów prowadzi do nieskończonej modyfikacji, aby uzyskać tylko trochę lepszy wynik.
  • Nadal musisz połączyć powstałe krawędzie, aby wydobyć pełne krawędzie, które wydają się tak oczywiste dla ludzkiego oka + umysłu.
  • Również z powodu wygładzenia gaussowskiego: położenie krawędzi może być wyłączone, w zależności od wielkości jądra gaussowskiego.

  • Metoda ma problemy z narożnikami i skrzyżowaniami:

    • Wygładzanie gaussa rozmywa je, co utrudnia ich wykrycie (to samo dotyczy samych krawędzi)
    • Piksele narożne wyglądają w złych kierunkach dla swoich sąsiadów, pozostawiając otwarte końce krawędzi i brakujące skrzyżowania

Ten ostatni problem rozwiązuje metoda SUSAN , która lepiej łączy krawędzie, a także powoduje ładne połączenia, jak pokazują te przykładowe liczby podane w powiązanym dokumencie:

Testuj obraz wejściowy:

Przetestuj obraz wejściowy

Wyniki SUSAN:

Wyniki SUSAN

Wyniki Canny:

Wyniki Canny

Możesz wyraźnie zobaczyć, że SUSAN znajduje rogi i skrzyżowania zamiast Canny.

Geerten
źródło
Ok, chodzi tu głównie o kwestie związane z implementacją. Zgadzam się, że takie problemy mogą istnieć, ale moim zdaniem wiele innych metod wykrywania krawędzi i innych algorytmów. Szukam bardziej teoretycznych ograniczeń lub cech charakterystycznych dla algorytmu.
Dipan Mehta
Nie zgadzam się, próg (prowadzący do obrazu binarnego), a parametry są częściami metody (jak opisano w pracy Canny'ego). Nie widzę tego jako szczegółów implementacji.
Geerten
Próg jest wykonywany przez każdy detektor krawędzi, dlatego wyjście każdego detektora krawędzi jest binarne. Chciałbym zwrócić uwagę na trudność w dostosowywaniu parametrów i aspekcie wygładzania Gaussa, ale w przeciwieństwie do operatora typu LoG, Canny znajduje najbardziej optymalną ilość wygładzania w obecności hałasu.
Dipan Mehta
2
Progowanie nie jest wykonywane przez każdy detektor krawędzi (np. Sobel, jak wspomniano w mojej odpowiedzi). W wielu przypadkach jest to wspólny i logiczny krok kontrolny, ale nie podstawowy krok każdej metody wykrywania krawędzi.
Geerten
6

czy są obszary zastosowań, w których Canny nie będzie najlepszy?

Mogę wymyślić kilka:

  • jeśli potrzebujesz zamkniętych krzywych, wykrywacz, który może zagwarantować, że mogą być lepsze (np. zero przejść przez segmentację laplacian lub zlewisko)
  • jeśli próbujesz wykryć jednorodny obiekt o niskim kontraście w niektórych obszarach, metoda segmentacji wykorzystująca informacje globalne (np. segmentacja zlewu) może dać lepsze wyniki
Niki Estner
źródło
1

z mojego doświadczenia wynika, że ​​proces wykrywania krawędzi za pomocą Canny Edge Detector wygładza krawędzie przed ich wykryciem, a czas i długość filtra muszą być idealnie dopasowane, aby wykryć wszystkie krawędzie bez błędów.

bugra ergin
źródło
1

Chciałbym tylko wspomnieć o jednym ograniczeniu detektora Canny'ego, które utrudnia jego zastosowanie, a mianowicie ustawieniu parametrów. Myślę, że ustawienie parametrów jest nie tylko problemem dla detektora Canny, ale także problemem dla innych metod wykrywania krawędzi.

nie krępuj się
źródło