U-Net
U-Net je neurónová sieťová architektúra navrhnutá na „presné vystrihovanie" objektov z obrázka na úrovni pixelov (segmentáciu). Pôvodne sa preslávila v medicínskych snímkach, ale dnes ju v rôznych obmenách nájdeš v satelitných dátach, pri autonómnom videní a dokonca ako jadro mnohých diffusion generátorov obrázkov. V roku 2026 ostáva U-Net jednou z mála architektúr, ktoré prežili takmer desaťročie relatívne nezmenené v jadre — čo samo osebe hovorí o sile jej základnej myšlienky.
1. Čo to je (definícia + analógia)
Segmentácia pixel po pixeli: U-Net nehovorí len „na obrázku je auto", ale označí ktoré presne pixely patria autu, ceste, oblohe atď.
Mapa namiesto štítku: Výstupom je typicky „maska" (obrázok rovnakej veľkosti), kde každému pixelu priradí triedu alebo pravdepodobnosť.
Analógia s fotografom a šablónou: Predstav si, že máš fotografiu a chceš vyrezať postavu úplne presne. Najprv si spravíš hrubý náčrt (kde približne je postava), potom sa vraciaš k detailom (hrany vlasov, prsty). U-Net robí podobné „hrubé → jemné" spresňovanie, pričom si medzivýsledky z každej fázy starostlivo uchováva.
Odkiaľ meno pochádza: Keď kreslíš blokovú schému architektúry, tvar siete pripomína písmeno „U". Ľavá vetva je encoder (zmenšovanie), pravá vetva je decoder (zväčšovanie) a spojenia naprieč oboma vetvami tvoria charakteristické horizontálne prepojenia.
2. Ako to funguje (krok za krokom)
Encoder (zmenšovanie):
- Znižovanie rozlíšenia: Sieť postupne zmenšuje obraz (napr. pooling/strided convolutions), aby zachytila globálny kontext.
- Rast počtu kanálov: Ako sa obraz zmenšuje, pribúdajú „kanály" (feature mapy) — sieť si ukladá bohatšie popisy s menšou priestorovou presnosťou.
- Zmysel: Vieš rozpoznať čo tam je a približne kde, ale strácaš jemné okraje a presné kontúry.
Bottleneck (stred):
- Najhustejšia reprezentácia: Najmenšie rozlíšenie, najviac „informácie na pixel".
- Zmysel: Kombinuje širší kontext — napríklad, že svetlá škvrna je orgán a nie šum, alebo že daná textúra patrí nádoru a nie zdravému tkanivo.
Decoder (zväčšovanie):
- Up-sampling: Sieť postupne vracia rozlíšenie späť (transposed conv / bilineárny upsampling + conv).
- Spresňovanie hraníc: Pri návrate do vyššieho rozlíšenia sa učí „vymaľovať" presné okraje objektov.
Skip connections (to je ten „U" trik):
- Preskoky z encoderu do decoderu: Z vyšších rozlíšení v encodéri berie detaily a pripája ich k dekodéru cez konkatenáciu kanálov.
- Prečo sú kľúčové: Decoder má kontext, encoder má detaily. Spojením dostaneš presné kontúry bez toho, aby sa informácia pri zmenšovaní úplne stratila.
3. Prečo je to dôležité a kde sa používa
Medicína (odkiaľ U-Net vyšlo):
- Orgány a lézie: Segmentácia orgánov v CT/MRI, nádory, cievy, bunky v mikroskopii. Medicínska segmentácia ostáva doménou, kde U-Net (a jeho varianty) dominuje aj v roku 2026.
- Málo dát: U-Net sa historicky dobre uplatnil aj tam, kde anotácie sú drahé — lekár musí ručne kresliť masky, čo je časovo náročné.
- Regulácia a interpretovateľnosť: V medicínskych systémoch sú dôležité nielen výsledky, ale aj možnosť vysvetliť, čo sieť „videla". Masky sú prirodzene vizualizovateľné.
Satelitné a mapové dáta:
- Budovy, cesty, polia: Potrebuješ presnú plochu, nie len „niekde je budova".
- Zmeny v čase: Porovnávanie masiek (napr. odlesňovanie, záplavy) je často jednoduchšie než porovnávanie celých obrázkov. Organizácie ako ESA a NASA používajú U-Net varianty v rutinnej analýze satelitných snímok.
Priemysel a kontrola kvality:
- Defekty: Škrabance, praskliny, póry — drobné chyby sú „tenká línia" a potrebuješ pixelovú presnosť pri detekcii aj lokalizácii súčasne.
Generovanie obrázkov (diffusion modely):
- Denoising jadro: V mnohých diffusion systémoch hrá U-Net rolu siete, ktorá predikuje šum alebo „čo odšumiť" v každom kroku. Stable Diffusion 1.x a 2.x stavia priamo na U-Net backbone.
- Posun smerom k transformerom: Od roku 2023 nové generácie modelov (Stable Diffusion 3, FLUX, DiT-based systémy) nahrádzajú U-Net za Diffusion Transformers (DiT). U-Net však ostáva základom obrovského množstva nasadených systémov a ľahkých modelov, kde pamäťová efektivita rozhoduje.
- Multi-scale pochopenie: Pri generovaní potrebuješ naraz riešiť kompozíciu (globálne) aj textúry (lokálne) — U-Net to prirodzene podporuje cez viac mierok a skip connections.
4. Výhody a obmedzenia
Výhody:
- Presnosť hraníc: Skip connections dávajú dekodéru priamy prístup k detailom z rôznych mierok.
- Multi-scale myslenie: Sieť vidí scénu naraz v hrubej aj jemnej mierke.
- Flexibilita: Ľahko sa upravuje na 2D, 3D, viac tried, viac kanálov vstupu (napr. CT + PET).
- Efektivita pri malých datasetoch: V porovnaní s plne transformerovými architektúrami vyžaduje menej trénovacích dát na dosiahnutie dobrých výsledkov.
Obmedzenia:
- Pamäťová náročnosť: Skipy držia veľa feature máp; pri veľkých rozlíšeniach (napr. 2048×2048 satelitné snímky) rastie spotreba VRAM kvadraticky s rozlíšením.
- Citlivosť na anotácie: Segmentácia je taká dobrá, ako dobré sú masky — nekonzistentné značkovanie sieť „naučí chaos".
- Malé objekty vs. kontext: Keď sú objekty extrémne malé, treba doplniť tréningové triky (vyváženie tried, vyššie rozlíšenie, špeciálne loss funkcie).
- Obmedzený globálny kontext: Klasický U-Net pracuje s lokálnymi receptívnymi poľami; transformerové varianty (Swin U-Net) tento problém riešia za cenu vyšších nárokov na pamäť.
| Oblasť | Čo U-Net typicky zvláda dobre | Na čo si dať pozor |
|---|---|---|
| Hranice objektov | Ostré kontúry, jemné detaily cez skip connections | Rozmazanie pri agresívnom downsamplingu |
| Viac tried | Súčasná segmentácia viacerých kategórií | Nevyvážené triedy (pozadie dominuje pixelový počet) |
| Veľké rozlíšenia | Dobrý výsledok pri patchovaní (tile-based inference) | VRAM, švy medzi patchmi, artefakty na hraniciach |
| Malé datasety | Dobrá generalizácia aj so stovkami obrázkov | Preučenie bez augmentácie |
| Globálny kontext | Bottleneck zachytáva hrubé vzťahy | Dlhé závislosti riešia lepšie transformery |
5. Varianty a modernizácie (stav 2026)
Základný U-Net z roku 2015 bol len začiatok. V praxi stretneš množstvo špecializovaných verzií:
3D U-Net: Rozširuje operácie do tretej dimenzie — nevyhnutné pre volumetrické dáta (CT/MRI), kde každý „rez" nie je nezávislý.
Attention U-Net: Pridáva mechanizmus pozornosti na skip connections — sieť sa aktívne rozhoduje, ktoré detaily z encodera sú relevantné pre konkrétnu oblasť dekódovania. Redukuje šum z irelevantných štruktúr.
U-Net++ (nested U-Net): Hustejšie prepojenia medzi enkóderom a dekóderom, viac „medzivrstiev" — stabilnejšie učenie, lepšia segmentácia objektov s variabilnou veľkosťou.
ResUNet / U-Net s reziduálnymi blokmi: Výmena konvolučných blokov za reziduálne (ResNet-štýl) — hlbšie siete bez problému s vanishing gradientom.
Swin U-Net / TransUNet: Výmena konvolúcií za Swin Transformer bloky — lepší globálny kontext, ale vyššie nároky na dáta a pamäť. Vhodné pri veľkých datasetoch (napr. celý dataset MICCAI).
nnU-Net (skôr systém než jedna sieť): Automaticky nastaví architektúru, predspracovanie a tréning na základe vlastností datasetov. Ostáva de-facto štandardom pre medicínske segmentačné súťaže aj v roku 2026 — vyhralo desiatky benchmarkov bez manuálneho ladenia.
SAM-adaptované U-Net modely: Po vydaní Segment Anything Model (SAM a SAM 2) vznikli hybridné prístupy, kde U-Net funguje ako promptovací encoder alebo dolaďovací modul na doménovo špecifické segmentácie.
| Variant | Hlavný prínos | Typická doména |
|---|---|---|
| 3D U-Net | Volumetrická segmentácia | CT, MRI, mikroskopia |
| Attention U-Net | Selektívne skip connections | Medicína, satelitné snímky |
| U-Net++ | Hustejšie prepojenia, jemnejšie výsledky | Variabilné veľkosti objektov |
| ResUNet | Stabilnejšie trénovanie hlbokých sietí | Všeobecná segmentácia |
| Swin U-Net | Globálny kontext cez transformery | Veľké datasety, komplexné scény |
| nnU-Net | Automatizované nastavenie celého pipeline | Medicínske benchmarky |
6. Loss funkcie a metriky (čo nie je jedno)
Výber loss funkcie a metriky nie je technický detail — rozhoduje o tom, čo sieť skutočne optimalizuje:
Pixel-wise cross-entropy: Základná voľba, ale zlyháva pri nevyvážených triedach (pozadie tvorí 99 % pixelov → sieť sa naučí „vždy predikuj pozadie").
Dice loss: Priamo optimalizuje Dice koeficient (F1 skóre na úrovni pixelov). Odolnejší voči nevyváženiu. Štandardná voľba v medicínskej segmentácii.
IoU loss (Jaccard loss): Podobný Dice lossu, priamo optimalizuje Intersection over Union — metriku, ktorou sa segmentácia bežne hodnotí.
Kombinácia Dice + cross-entropy: Veľmi bežná hybridná voľba v praxi — cross-entropy dáva stabilný gradient na začiatku, Dice dolaďuje presnosť.
Focal loss: Pôvodne z detekcie objektov, ale funguje aj pri segmentácii — penalizuje ľahké príklady viac ako ťažké, čo pomáha pri nevyvážených triedach.
Tversky loss: Generalizácia Dice lossu, kde môžeš nastaviť, či viac penalizuješ false positives alebo false negatives — užitočné napr. keď chceš radšej preznačiť viac pixelov ako premeškať nádor.
7. Praktické použitie: čo to znamená pre teba
Keď používaš AI nástroje na segmentáciu:
- Masky v editoroch: Výber oblohy, vlasov, objektu v moderných foto editoroch — často je pod tým U-Net alebo jeho potomok.
- Kvalita okrajov: Ak vidíš zubaté hrany, problém je zvyčajne v rozlíšení, tréningových dátach alebo postprocessingu — nie v „slabom AI".
Keď chceš U-Net trénovať alebo nasadiť (aj v malom tíme):
- Dataset je kráľ: Lepšie je mať menej dát, ale konzistentne anotovaných, než veľa nekvalitných masiek. Nekonzistencia v anotáciách je väčší problém než malý dataset.
- Vyber si vhodnú metriku: IoU/Dice zodpovedajú „prekryvu" oveľa lepšie než obyčajná pixelová presnosť — pri nevyvážených triedach je accuracy zavádzajúca.
- Augmentácia nad gold: Rotácie, prevráteniny, farebné posuny, elastické deformácie (pre medicínske dáta) — U-Net je na augmentáciu citlivý v pozitívnom zmysle, tréning vždy zlepší.
- Pozor na nevyvážené triedy: Malý defekt môže tvoriť 0,1 % pixelov. Bez vyváženia (weighted loss, oversampling patchov s triedou záujmu) sieť ignoruje presne to, čo potrebuješ detekovať.
Bežné tréningové triky (2026):
- Mixed precision (FP16/BF16): Redukuje pamäťové nároky skip connections takmer na polovicu.
- Gradient checkpointing: Prepočíta aktivácie namiesto ich ukladania — ešte väčšia úspora VRAM za cenu pomalšieho tréningu.
- Test-Time Augmentation (TTA): Predikuj s viacerými augmentáciami a priemieruji výsledky — jednoduchý spôsob ako zlepšiť výsledky bez dotrénenia.
8. Skip connection v kóde (skrátene)
Celé „U" stojí na tom, že decoder dostane späť detaily z encodera cez konkatenáciu:
# encoder uloží medzivýstupy, decoder ich „prilepí" späť
e1 = enc1(x); p1 = pool(e1)
e2 = enc2(p1); p2 = pool(e2)
b = bottleneck(p2)
d2 = dec2(cat(up(b), e2)) # skip: detaily z e2
d1 = dec1(cat(up(d2), e1)) # skip: detaily z e1
mask = head(d1) # výstupná maska v pôvodnom rozlíšení
Bez cat(..., e_i) by sieť pri zmenšovaní „rozmazala" hrany — skip ich vráti. Všimni si, že decoder nikdy nepracuje len s up-samplovanou verziou bottlenecku, vždy má k dispozícii aj pôvodné detaily z príslušnej hĺbky encodera.
9. U-Net vs. novšie prístupy (kontext 2026)
Vývoj v segmentácii a generovaní obrázkov prináša nových konkurentov:
Diffusion Transformers (DiT): FLUX, Stable Diffusion 3 a ďalšie generatívne modely z rokov 2024–2026 nahradili U-Net za DiT — transformerové bloky pracujú na patchoch latentu namiesto hierarchickej U-Net štruktúry. V generatívnom AI sa teda U-Net čiastočne sťahuje, ale v segmentácii si drží pozíciu.
Segment Anything Model (SAM / SAM 2): Meta vydala SAM ako univerzálny segmentačný model s promptovaním. SAM 2 (2024) pridáva video. Tieto modely sú silné pre interaktívnu segmentáciu, ale pre automatickú doménovo špecifickú segmentáciu (napr. CT nádory) stále dominujú U-Net varianty dotrénované na doméne.
SegFormer / Mask2Former: Čisto transformerové architektúry pre sémantickú segmentáciu v prirodzených scénach. Lepšie na veľkých datasetoch (Cityscapes, ADE20K), ale U-Net víťazí na malých medicínskych a priemyselných datasetoch.
Záver kontextu: U-Net nie je zastaraný — je to overená, efektívna a dobre pochopiteľná architektúra. Transformerové varianty sú silnejšie pri bohatých dátach a globálnom kontexte, U-Net ostáva lepšou voľbou pri obmedzených dátach, pamäťových limitoch a doménach, kde presnosť hraníc rozhoduje.
10. Ako si U-Net predstaviť ako proces (mentálny model)
- Zmenšujem, aby som pochopil scénu: „Čo je kde približne?"
- Držím si detaily bokom: „Tieto hrany sa mi ešte zídu — uložím ich."
- Zväčšujem a spresňujem: „Teraz vymaľujem presne, pixel po pixeli."
- Prilepím späť detaily: „A tu sú hrany z pôvodného rozlíšenia, aby to sedelo."
Toto je dôvod, prečo U-Net funguje tak dobre aj v situáciách, kde je dôležité byť presný na hraniciach — a zároveň nestratiť kontext celej scény. Hrubé pochopenie a jemné detaily spolupracujú namiesto toho, aby si konkurovali.
11. Súvislosti
- Diffusion models: U-Net je klasické denoising jadro difúznych generátorov; novšie DiT architektúry ho v generatívnom AI čiastočne nahrádzajú.
- Deep Learning: Je to konvolučná architektúra trénovaná gradientovým zostupom so štandardnými optimalizátormi (Adam, AdamW).
- Attention: Attention U-Net pridáva pozornosť na relevantné oblasti; Swin U-Net nahrádza konvolúcie za transformerové bloky.
- Overfitting: Pri málo anotovaných maskách hrozí preučenie — pomáha augmentácia a Dice loss ako regularizácia cez priame metrické optimalizovanie.
- Transfer learning: Encoder U-Netu sa dá inicializovať predtrénovanými váhami (napr. ImageNet ResNet) — skráti čas trénovania a zlepší výsledky pri malom datasete.
Zhrnutie
- U-Net je architektúra pre segmentáciu — pre úlohy, kde potrebuješ presne určiť, ktoré pixely patria ktorému objektu.
- Kľúčový nápad sú skip connections, ktoré spájajú „globálne pochopenie" (encoder) s „jemnými detailmi" (decoder) na každej mierke.
- Používa sa od medicíny po satelitné mapy a v rôznych obmenách fungoval ako jadro denoisingu v diffusion generovaní — kde ho v najnovších modeloch čiastočne nahrádzajú Diffusion Transformers.
- V roku 2026 ostáva U-Net relevantný najmä v medicíne, priemysle a ľubovoľnej doméne s obmedzeným množstvom anotovaných dát — kde je efektivita, interpretovateľnosť a presnosť hraníc prioritou.
- V praxi rozhodujú dáta, loss funkcia a nastavenie tréningu: konzistentné anotácie, práca s nevyváženými triedami a rozumné metriky (Dice/IoU) spravia väčší rozdiel než výmena jednej varianty U-Netu za inú.