Jakie czynniki należy wziąć pod uwagę przy wyborze algorytmu wykrywania krawędzi?

33

Dowiedziałem się o wielu algorytmach wykrywania krawędzi, w tym algorytmach takich jak metody Sobela, Laplaciana i Canny'ego. Wydaje mi się, że najpopularniejszym detektorem krawędzi jest detektor krawędzi Canny, ale czy są przypadki, w których nie jest to optymalny algorytm do użycia? Jak zdecydować, którego algorytmu użyć? Dzięki!

PearsonArtPhoto
źródło
7
Co wykrywasz
endolith,

Odpowiedzi:

29

Istnieje wiele możliwości wykrywania krawędzi, ale 3 wspomniane przykłady należą do 3 różnych kategorii.

Sobel

To przybliża pochodną pierwszego rzędu. Daje ekstremum w pozycjach gradientu, 0, gdzie nie występuje gradient. W 1D jest to = [101]

  • gładka krawędź => lokalne minimum lub maksimum, w zależności od sygnału rosnącego lub malejącego.
  • [121]

Istnieją inne alternatywy dla Sobela, które mają +/- te same cechy. Na stronie Roberts Cross na wikipedii można znaleźć porównanie kilku z nich.

Laplace

To przybliża pochodną drugiego rzędu. Daje 0 w pozycjach gradientu, a także 0, gdy nie występuje gradient. Daje ekstremum, w którym (dłuższy) gradient zaczyna się lub zatrzymuje.

  • gładka krawędź => 0 wzdłuż krawędzi, lokalna ekstrema na początku / końcu krawędzi.
  • Linia 1 piksel = = „podwójne” ekstremum na linii, z „normalną” ekstremą z innym znakiem tuż obok

Wpływ tych 2 na różne rodzaje krawędzi można najlepiej zobaczyć wizualnie:

Porównanie Sobela vs Laplace'a

Sprytny

Nie jest to prosty operator, ale podejście wieloetapowe, w którym Sobel jest jednym z kroków. Tam, gdzie Sobel i Laplace dają ci wynik w skali szarości / zmiennoprzecinkowy, który musisz sam progować, algorytm Canny ma inteligentne progowanie jako jeden ze swoich kroków, więc otrzymujesz binarny wynik tak / nie. Ponadto, na gładkiej krawędzi, prawdopodobnie znajdziesz tylko 1 linię gdzieś pośrodku gradientu.

Pieter-Jan Busschaert
źródło
18

Podczas gdy Sobel i Laplacian są po prostu filtrami, Canny idzie dalej niż na dwa sposoby.

Po pierwsze, eliminuje nie maksymalne tłumienie, które pozbywa się szumów wytwarzanych przez różnego rodzaju obiekty i gradienty kolorów na obrazie. Po drugie, faktycznie zawiera krok, który pozwala rozróżnić różne kierunki krawędzi i wypełnić brakujące punkty linii.

Innymi słowy, wykrywacz krawędzi Canny należy do zupełnie innej klasy niż Sobel i Laplacian. Jest znacznie mądrzejszy, ponieważ obejmuje całą masę przetwarzania końcowego, podczas gdy Sobel i Laplacian są po prostu wyjściowymi filtrami górnoprzepustowymi, po których następuje liniowe progowanie binarne.

Phonon
źródło
czy istnieje pod tym względem wersja 1-D Canny? Czy byłoby to proste zastosowanie wersji 2-D?
Spacey
9

Dwie najważniejsze decyzje przy wykrywaniu krawędzi to dla mnie zwykle:

  1. Czy mogę zamiast tego segmentować obiekty, a następnie użyć operatora morfologicznego, aby znaleźć krawędź obrazu binarnego (segmentowanego)? W przypadku zaszumionych danych jest to zwykle bardziej niezawodne.

  2. Jakiego zachowującego krawędź filtra wygładzającego należy użyć w celu zmniejszenia szumów obrazu? Filtry brzegowe opierają się na różnicowaniu, które ucierpi z powodu hałaśliwych danych. Najprostszym wyborem jest filtr środkowy, ale dyfuzja anizotropowa lub nielokalna oznacza, że ​​filtry będą oferować lepszą wydajność kosztem posiadania większej liczby parametrów do poprawienia.

Jeśli chodzi o samą detekcję krawędzi, nie mam dobrego powodu, aby nie używać Canny.

Jonas
źródło
7

Podejście SUSAN

Innym podejściem do wykrywania krawędzi i narożników jest podejście SUSAN .

W tym podejściu zamiast aproksymacji pochodnych stosuje się integralną metodę aproksymacji . Ma to tę zaletę, że nie tylko wykrywa krawędzie, ale także wykrywa „cechy dwuwymiarowe” (tj. Narożniki).

Kolejną zaletą zintegrowanego podejścia przybliżającego jest to, że hałas ma mniejszy wpływ na wyniki.

Peter K.
źródło
6

Canny daje obraz binarny i jest zależny od zewnętrznych progów (które zależą od obrazu / aplikacji).
Filtry oparte na konwolucji dają obraz o „intensywności krawędzi”. Jest to przydatne, gdy ważny jest ciężar lub wytrzymałość krawędzi (np. W ważonej transformacie Hougha).

Adi Shavit
źródło