Derichův hranový detektor

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

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

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á derivacey-ová derivace
0
1
-1
0
0
1
-1
0
11
11

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

Literatura

  • 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

Externí odkazy

Média použitá na této stránce

Grapevine leaf.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Detail of grapevine leaf.
Magician processed by Deriche edge detector.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Magician artwork after applying Deriche edge detector with parameters alpha = 4, low_treshold = 50, high_treshold = 90.
F1A glider hook processed by Deriche edge detector.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
F1A glider hook after applying Deriche edge detector with parameters alpha = 0.8, low_treshold = 26, high_treshold = 41.
Sun flower - Deriche filter smoothing - alpha = 1.jpg
Autor: Zbysek Nemec, Licence: CC BY-SA 3.0
Sun flower picture smoothed with Deriche IIR filter withat parameter aplha = 1
Sunflowers in July.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Photo of sunflowers in bloom.
Sunflowers image processed by Deriche edge detector.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Sunflowers image after applying Deriche edge detector with parameters alpha = 1.5, low_treshold = 20, high_treshold = 40.
Sun flower - Deriche filter smoothing - alpha = 0.25.jpg
Autor: Zbysek Nemec, Licence: CC BY-SA 3.0
Sun flower picture smoothed with Deriche IIR filter withat parameter aplha = 0.25
Magician artwork.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Artwork created using china ink.
Grapevine leaf processed by Deriche edge detector.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Grapevine leaf picture after applying Deriche edge detector with parameters alpha = 1, low_treshold = 15, high_treshold = 35.
F1A glider hook.jpg
Autor: Zbysek.nemec, Licence: CC BY-SA 3.0
Image of F1A hook used for free flight models.
Sun flower - Deriche filter smoothing - alpha = 2.jpg
Autor: Zbysek Nemec, Licence: CC BY-SA 3.0
Sun flower picture smoothed with Deriche IIR filter withat parameter aplha = 2
Sun flower - Deriche filter smoothing - alpha = 0.5.jpg
Autor: Zbysek Nemec, Licence: CC BY-SA 3.0
Sun flower picture smoothed with Deriche IIR filter withat parameter aplha = 0.5