Derichův hranový detektor

Z Wikipedie, otevřené encyklopedie

Derichův hranový detektor je hranový operátor vyvinutý R. Derichem v roce 1987. Jedná se o vícekrokový algoritmus pro získání optimálního výsledku při detekci hran v diskrétním dvourozměrném obraze. Tento algoritmus vychází z práce Johna F. Cannyho a přebírá jak jednotlivé kroky hranové detekce, tak také navržená kritéria pro optimální hranový detektor, kterými jsou:

  • Kvalita detekce – Musí být nalezeny všechny hrany v obraze, a naopak nesmí být za hrany označeny ty části obrazu, které jimi nejsou.
  • Přesnost − nalezené hrany musí být tak blízko skutečné hraně v obraze, jak je to jen možné.
  • Jednoznačnost − nalezená hrana v obraze je označena jako hrana pouze jednou, nesmí docházet ke vzniku vícenásobné odezvy na jednu hranu.

Z tohoto důvodu se často tento operátor označuje jako Cannyho-Derichův detektor.

Rozdíl mezi Cannyho a Derichovým hranovým detektorem[editovat | editovat zdroj]

Derichův hranový detektor se skládá stejně jako Cannyho hranový detektor ze 4 kroků:

  1. Eliminace šumu
  2. Výpočet magnitudy a směru gradientu
  3. Potlačení lokálních nemaxim
  4. Prahování s hysterezí (pomocí dvou prahů)


Podstatný rozdíl je však v implementaci prvních dvou kroků algoritmu, kdy na rozdíl od Cannyho Derichův detektor používá IIR filtr ve tvaru:

který optimalizuje Cannyho kritéria. Jak je patrné z předcházejícího vzorce, nejefektivnější filtr získáme v případě, kdy se limitně blíží k 0. Takovýto filtr pak používá vzorec:

Výhodou takového filtru je existence pouhého jednoho parametru, jehož změnou můžeme přizpůsobit filtr podle vlastností zpracovávaného obrazu buď ve prospěch lepší detekce, pokud je hodnota malá (pro obraz zatížený šumem se doporučuje hodnota parametru v rozmezí 0.25 až 0.5), nebo naopak ve prospěch lokalizace, kdy se pro normální obrázky doporučuje α ≈ 1

Příklad vyhlazování derichovým 2D filtrem
Obrázek
Příklad vyhlazování derichovým filtrem 0.25
Příklad vyhlazování derichovým filtrem 0.5
Příklad vyhlazování derichovým filtrem 1
Příklad vyhlazování derichovým filtrem 2
α α = 0.25 α = 0.5 α = 1 α = 2

Použití IIR filtru má velký smysl především v případech, kdy je zpracováván obraz zatížený šumem či je potřeba provádět vyhlazení obrazu filtrem s velkým konvolučním jádrem. V těchto případech má Derichův detektor značnou výhodu oproti Cannyho detektoru, protože je schopen zpracovat obraz v konstantním krátkém čase nezávislém na požadovaném množství vyhlazení.

Implementace Derichova detektoru[editovat | editovat zdroj]

Algoritmus popisující získání hodnoty 2D Derichova filtru je možné rozdělit do dvou částí. V první části se provádí horizontální průchody zleva doprava podle vzorce:

a zprava doleva dle:

Výsledek prvního kroku se pak uloží do dočasného dvourozměrného pole:


Druhý krok algoritmu je velice podobný prvnímu. Jako vstup zpracovává dvourozměrné pole z předcházejícího kroku, ale tentokrát provádí průchody ve vertikálním směru shora dolů a zdola nahoru podle následujících matematických vztahů:

Vzhledem k nezávislosti zpracovávaných řádků (respektive sloupců), která vyplývá z popisu algoritmu, se řešení založené na IIR filtru často používá na vestavěných systémech či architekturách umožňujících vysoký stupeň paralelizace, jako je např. NVIDIA CUDA.

Koeficienty Derichova filtru
vyhlazení x-ová derivace y-ová derivace
0
1
-1
0
0
1
-1
0
1 1
1 1

Při praktické implementaci Derichova detektoru se často využívá matematických vlastností algoritmu, kdy stačí vytvořit kód pouze pro jednu část algoritmu, která se pak volá dvakrát, přičemž mezi jednotlivými voláními se provede transpozice matice výsledku zpracování obrazu.

Několik příkladů použití Derichova filtru
Původní obraz
Slunečnice v Červenci
Kouzelník, kresba
Nástroj
List
Výsledný obraz
Hranový detektor
Hranový detektor
Hranový detektor
Hranový detektor
Parametry filtru α = 1.5
spodní práh = 20
horní práh = 40
α = 4.0
spodní práh = 50
horní práh = 90
α = 0.8
spodní práh = 26
horní práh = 41
α = 1.0
spodní práh = 15
horní práh = 35

Odkazy[editovat | editovat zdroj]

Literatura[editovat | editovat zdroj]

  • R. Deriche, Using Canny's criteria to derive a recursively implemented optimal edge detector, Int. J. Computer Vision, Vol. 1, pp. 167–187, April 1987.
  • R. Sirdey, A Gentle Introduction to the Deriche Optimal Edge Detector, Éditions des Nik's news, 1998.
  • J. Canny, A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8(6):679–698, 1986.

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]