📷 Badatelský deník inženýra AI

Laboratoř počítačového vidění | CNN Filter Lab - Jak počítače "vidí"
1

Co je konvoluce?

~ 35 min

1. Jak počítače "vidí"

Konvoluční neuronové sítě (CNN) jsou specializované sítě pro zpracování obrazu.

Jejich tajemství? Malá matice 3×3 zvaná kernel (nebo filtr), která se posouvá přes obrázek a extrahuje důležité vlastnosti (rysy).
🖼️
Vstup
Obrázek (pixely)
🔲
Kernel 3×3
Posuvné okno
🗺️
Feature Map
Mapa rysů

2. Jak funguje konvoluce?

Pro každou pozici kernelu:

1. Vynásob každý pixel kernelu s odpovídajícím pixelem obrázku
2. Sečti všechny výsledky
3. Výsledné číslo je jeden pixel výstupu

Výstup = Σ (Pixel × Váha)

3. Příklad výpočtu

Spočítej výstup pro střed této 3×3 oblasti s edge detection kernelem:

Pixely (0-255):
100
100
100
100
200
100
100
100
100
×
Edge Kernel:
-1
-1
-1
-1
8
-1
-1
-1
-1

Výpočet:

(100×-1) + (100×-1) + (100×-1) +
(100×-1) + (200×8) + (100×-1) +
(100×-1) + (100×-1) + (100×-1) = ?

= 8×(-100) + 1×(1600) =

Co výsledek znamená?

2

Typy filtrů (kernelů)

~ 40 min

1. Přednastavené filtry v simulátoru

Hrany (Edge)
Detekuje změny jasu
Ostrost (Sharpen)
Zvýrazňuje detaily
Rozmazání (Blur)
Průměruje okolí
Reliéf (Emboss)
3D efekt stínování
Sobel X
Svislé hrany
Sobel Y
Vodorovné hrany

2. Experiment: Porovnej filtry

Načti preset "Dům" a aplikuj různé filtry. Zaznamenej pozorování:

Filtr Co vidíš ve výstupu? K čemu by se hodil?
Hrany
Ostrost
Rozmazání
Sobel X
Sobel Y

3. Experiment: Sobel X + Sobel Y

Proč CNN používají oba Sobel filtry současně?

4. Nakresli kernel

Navrhni vlastní kernel pro detekci rohů (tip: kombinace Sobel X a Y):

3

Stride a Padding

~ 30 min

1. Co je Stride (Krok)?

Stride = 1

Kernel se posune o 1 pixel → výstup má (téměř) stejnou velikost

Stride = 2

Kernel přeskočí 2 pixely → výstup je poloviční

2. Co je Padding (Okraj)?

Padding = přidání nul (černých pixelů) okolo obrázku.

Bez paddingu: Výstup je menší než vstup (okraje se "oříznou").
S paddingem: Zachová se velikost výstupu.

3. Experiment: Měň Stride a Padding

Nastav různé kombinace a zaznamenej velikost výstupu:

Stride Padding Velikost výstupu Poznámka
1 0
1 1
2 0
2 1

4. Vzorec pro velikost výstupu

Výstup = floor((Vstup + 2×Padding - Kernel) / Stride) + 1

Pro 64×64 vstup, kernel 3×3, stride 2, padding 1:
= floor((64 + 2×1 - 3) / 2) + 1 = floor(63/2) + 1 =
4

Matematická vizualizace

~ 30 min

1. Interaktivní inspekce

V simulátoru: Najeď myší na libovolný pixel výstupu.

Pod výstupem se zobrazí přesný výpočet: které pixely vstupu a hodnoty kernelu se vynásobily a sečetly pro vytvoření tohoto výstupního pixelu.

2. Experiment: Analyzuj výpočet

Vyber si zajímavý pixel na hraně objektu a zapiš jeho výpočet:

Pozice pixelu [X, Y]:
Použitý filtr:
Součet před ořezáním:
Výsledná hodnota (0-255):

Proč se hodnota ořezává na 0-255?

3. Záporné hodnoty

Zapni "Záporné hodnoty" v nastavení. Co se změní?

Proč jsou záporné hodnoty užitečné?

5

Vícevrstvé CNN a Max Pooling

~ 35 min

1. Proč více vrstev?

Hierarchické učení:

🔹 Vrstva 1: Detekuje jednoduché hrany a přechody
🔹 Vrstva 2: Kombinuje hrany do rohů a textur
🔹 Vrstva 3+: Rozpoznává složitější vzory (oči, obličeje, objekty)

2. Experiment: 2 vrstvy

Nastav "Vrstvy: 2" v nastavení. Zkus různé kombinace:

Vrstva 1 Vrstva 2 Co vidíš na výstupu?
Hrany Rozmazání
Sobel X Sobel Y
Rozmazání Hrany

3. Max Pooling

Max Pooling 2×2:

Z každého bloku 2×2 pixelů vybere pouze maximum.
→ Výstup je poloviční velikost
→ Zachovává důležité rysy, ignoruje pozadí
→ Poskytuje odolnost vůči malým posunům

4. Experiment: Použij Max Pooling

Aplikuj filtr, pak zmáčkni "Max Pooling 2×2":

Stav Velikost Co se zachovalo?
Před poolingem
Po 1× poolingu
Po 2× poolingu

Proč se používá Max místo průměru?

6

Kvízový mód a kreativita

~ 25 min

1. Kvíz: Uhádni filtr

Spusť "Kvízový režim" v simulátoru. Zaznamenej své výsledky:

Pokus Tvá odpověď Správná odpověď ✓/✗
1
2
3
4
5

Skóre: / 5

2. Vlastní kernel

V simulátoru můžeš upravit hodnoty kernelu ručně. Zkus vytvořit:

Cíl Tvé hodnoty kernelu (9 čísel) Fungovalo?
Silnější rozmazání
Detekce pouze svislých čar
Inverze (negativ)

3. Nahraj vlastní obrázek

Přetáhni vlastní obrázek do simulátoru a experimentuj:

Jaký obrázek jsi použil/a?
Který filtr fungoval nejlépe?
Co filtr zdůraznil?
7

Klíčové závěry a reflexe

~ 20 min

1. Co jsme se naučili

Koncept Tvé shrnutí
Konvoluce
Kernel (filtr)
Feature Map
Stride a Padding
Max Pooling

2. Reálné využití CNN

Kde se CNN používají:

📷 Rozpoznání obličejů: Odemykání telefonů, detekce osob
🚗 Autonomní vozidla: Detekce chodců, značek, vozovky
🏥 Medicína: Analýza rentgenů, detekce nádorů
🔍 Vyhledávání: Google Image Search, "najdi podobný produkt"
📝 OCR: Čtení textu z obrázků (skenování dokumentů)

3. Závěrečná reflexe

Jaký byl tvůj největší "aha moment"?

Který filtr tě překvapil nejvíce a proč?

Jak bys vysvětlil/a konvoluci kamarádovi?

4. Sebehodnocení

Jak dobře rozumím CNN filtrům? (1 = vůbec, 5 = úplně)