Konvoluční operace na matici 7×7 s jádrem 3×3
  1. V matematice je konvoluce operace prováděná na dvou funkcích (f a g), jejímž výsledkem je třetí funkce. Konvoluce je jednou z nejdůležitějších operací při zpracování signálů a obrazů. Může pracovat v 1D (např. zpracování řeči), 2D (např. zpracování obrazu) nebo 3D (zpracování videa).
  2. Ve zpracování obrazu je konvoluce proces transformace obrazu použitím jádra nad každým pixelem a jeho lokálními sousedy v celém obraze. Jádro je matice hodnot, jejíž velikost a hodnoty určují transformační účinek procesu konvoluce.
  3. Proces konvoluce zahrnuje tyto kroky. (1)Umístí matici jádra nad každý pixel obrazu (čímž se zajistí, že celé jádro je uvnitř obrazu), vynásobí každou hodnotu jádra s příslušným pixelem, nad kterým se nachází. (2)Poté sečte výsledné vynásobené hodnoty a výslednou hodnotu vrátí jako novou hodnotu středového pixelu. (3) Tento proces se opakuje napříč celým obrazem.
  4. Jak vidíme na obrázku, 3×3 jádro je konvolutováno přes 7×7 zdrojový obraz. Středový prvek jádra je umístěn nad zdrojový pixel. Zdrojový pixel je poté nahrazen váženým součtem sebe sama a okolních pixelů. Výstup je umístěn do hodnoty cílového pixelu. V tomto příkladu máme na první pozici 0 ve zdrojovém pixelu a 4 v jádře. V pixelu 4×0 je 0, při přechodu na další pixel pak máme v obou místech 0 a 0. 0x0 je 0. Pak je opět 0x0 0. Dále je ve středu 1 ve zdrojovém obrázku a 0 v odpovídající pozici jádra. 0x1 je 0. Pak opět 0x1 je 0. Pak 0x0 je 0 a 0x1 je 0 a na poslední pozici je -4×2, což je -8. Nyní sečteme všechny tyto výsledky a jako odpověď dostaneme -8, takže výstup této konvoluční operace je -8. Tento výsledek se aktualizuje v cílovém obrázku.
  5. Výstup konvolučního procesu se mění s měnícími se hodnotami jádra. Například níže zobrazené jádro Identity při použití na obrázek prostřednictvím konvoluce nebude mít na výsledný obrázek žádný vliv. Každý pixel si zachová svou původní hodnotu, jak je znázorněno na následujícím obrázku.

Identity Kernel

.

Původní obrázek(vlevo) a obrázek po aplikaci filtru identity o velikosti 3×3(vpravo)

Jádro Sharpen takto při aplikaci na obrázek pomocí konvoluce, bude mít na výsledný obrázek efekt doostření obrazu. Přesné hodnoty lze přizpůsobit pro různé úrovně ostrosti, jak ukazuje následující obrázek.

Jádro pro doostření

.

Původní obrázek(vlevo) a obrázek po aplikaci filtru Sharpen o velikosti 3×3 (vpravo)

Jádro Gaussova rozostření takto vypadá při aplikaci na obrázek prostřednictvím konvoluce, použije na výsledný obrázek efekt Gaussova rozostření.

Jádro Gaussova rozostření

.

Původní obrázek(vlevo) a obrázek po aplikaci rozostřovacího filtru o velikosti 7×7 (vpravo)

Stejně jako lze měnit hodnoty jádra pro různé úrovně efektů, lze měnit i velikost jádra a utvářet tak efekt konvoluce.Zvětšením velikosti matice Kernel se zvýší prostorová lokalizace ovlivňující výslednou hodnotu každého pixelu, protože do rovnice jsou vtahovány pixely ze vzdálenějších míst. Existuje mnoho dalších Kernelů, které se používají při zpracování obrazu, jako je detekce hran, reliéf, rotace atd.

6. Konvoluce je klíčovým konceptem konvolučních neuronových sítí. Konvoluční neuronové sítě (CNN) jsou typem hlubokých neuronových sítí. CNN se skládá z konvoluční vrstvy, sdružovací vrstvy a plně propojené vrstvy. V konvoluční vrstvě CNN aplikuje konvoluci na své vstupy pomocí jádrové matice, kterou kalibruje prostřednictvím trénování. Z tohoto důvodu jsou CNN velmi dobré při porovnávání příznaků v obrazech a klasifikaci objektů. Parametry konvoluční vrstvy se skládají ze sady učitelných jader. Každé jádro je malá matice, která se rozprostírá přes celou hloubku vstupního objemu. Během dopředného průchodu konvolujeme každé jádro přes šířku a výšku vstupního obrazu a vypočítáme bodový součin mezi hodnotami pixelů zdroje a jádra na odpovídajících pozicích.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.