====== Detekce hran, segmentace ====== ===== Detekce hran ===== [[wp>Edge detection]] **Hrany** jsou místa kde sa prudce mění jas a dají sa využít na identifikaci důležitých oblastí (regionů) v obraze. Jsou vstupem mnoha algoritmů na detekci objektů v obraze, případně při segmentaci obrazu. Defnice hrany: * Prudká změna jasu = hrana * Lokální změna jasu = jasová hrana * Globální změna = jasový hraniční segment * Vlastnosti: velikost, směr ==== Základní postupy při detekci ==== - Filtrace obrazu − odstranění vzorkovacího či kvantovacího šumu, rozmazání, apod. - Diferenciace − zvýraznění oblastí s výraznou změnou intenzity - Hranový detektor === Hranový detektor === * Vlastnosti * Odolnost vůči šumu * Lokalizace * Početnost odezvy * Aplikace konvolučního jádra (detekce směru hrany vyžaduje množinu jader korespondujících s určitými směry). Detektory můžeme rozdělit podle detekcie hrany: == Operátory 1. derivace == * Analýza malého okolí, konvoluce s jádrem hranového operátoru * Detekce směru hrany vyžaduje množinu jader korespondujících s určitými směry * Závislost na velikosti objektu v obraze, citlivost na šum * Roberts − malé okolí pro výpočet gradientu, vysoká citlivost na šum * Prewitt − více pixelů použito k výpočtu gradientu * Sobel − možné použít pouze dvě masky (detekce horizontálních a vertikálních hran) * Kirsch * Robinson == Operátory 2. derivácie == Hladají hranu při průchodu nulou v okolí. Nevýhodami jsou velké vyhlazení obrazu a ztráta ostrých rohů, případně dvojitá odezva na hrany. * Laplacián − invariantní vůči rotaci, normalizovaná odezva na čtyřokolí, osmiokolí * LoG (Marr-Hildreth) − laplacián na vyhlazeném obrazu Gaussem, velice stabilní, nebezpečí falešných hran * DoG − Rozdíl Gaussovek – aproximace LoG * Cannyho detektor − operátor první derivace Gaussovské funkce, non-maxima suppression, prahování s hysterezí (//hystereze// znamená závislost stavu na stavech předchozích; v tomto kontextu jde o to, že jsou ponechány jen ty nejsilnější hrany a slabé, pokud jsou spojeny s nějakou silější, velmi slabé jsou potlačeny) * Aktivní kontury − vnitřní (hladkost křivky) a vnější síly (tvarují konturu směrem ke hranám objektu) == Parametrické modely hran == * Přesnější popis hran, náročné na výpočet, např. Houghova transformace. * Takto získané hrany je možné dále filtrovať (např. filtr s hysterzí) ==== Kvalita hranových detektorů ==== * Dobrá detekce (odolnost vůči šumu) * Dobrá lokalizace (detekované hranové body co nejblíže středu hrany) * Jedinečná odezva (měla by existovat jen jedinečná odezva na skutečnou hranu) ==== Nejpoužívanější detektory ==== === Cannyho detektor === [[wp>Canny edge detector]] * Realizován tak, aby co nejlépe vyhověl požadavkům na kvalitu (zmíněno výše) * Realizován různými způsoby, které se snaží co nejlépe vyhovět stanoveným podmínkám * Operátor první derivace Gaussovské funkce + potlačením nemaximálních hodnot === Houghova transformace === [[wp>Hough transform]] * Metoda pro nalezení parametrického popisu objektů v obraze * (Transformace z Kartézského souřadnicového systému do polárního ... určitě?) * Výpočetně náročná, robustnost, není citlivá na porušená data nebo šum * Stejný princip se používá i pro hledání dalších křivek, které je možné popsat parametricky (kružnice, elipsa apod.) * Houghova transformace se dá použít i na detekci tvarů, které nejde přímo popsat parametricky * Body obrazu jsou prezentovány křivkami v parametrickém prostoru * Jedná-li se o kolineární body (z jedné přímky), pak křivky v parametrickém prostoru se protínají. Průnik reprezentuje parametry hledané křivky ===== Segmentace ===== [[wp>Segmentation (image processing)]] ==== Co je to segmentace obrazu? ==== * Proces rozdělování obrazu na významné části (regiony, např. obsahující jednotlivé objekty), které mají podobné vlastnosti (např. podobné barvy, tím sa dá např. oddělit obloha od trávy). * Objekt je zajímavá část obrazu, zbytek je tzv. pozadí (angl. background). * Segmentace je závislá na interpretaci obrazu! * Jeden z nejdůležitějších kroků analýzy obrazu! * Neexistuje univerzální metoda ==== Proč je segmentace složitá? ==== * Výsledek je závislý na konkrétní aplikaci. * Velký vliv má proces snímání obrazu – proměnlivé osvětlení, šum, apod. * Struktura obrazu může být velmi složitá – komplexní tvary objektů, překrývající se objekty, stíny, ... * Neexistuje univerzální metoda pro všechny typy obrazů. ==== Základní přístupy k segmentaci obrazu ==== === Statistické metody === == Orientovaná na regiony == Region based (porovnávání vnitřků) * Obrazové pyramidy – Nejvyšší úroveň je jeden pixel, redukce výpočetní náročnosti, segmentace – spojování oblastí, quad tree * Grafy sousednosti (Region Adjacency Graphs (RAGs)) – Vztahy mezi regiony * [[wp>Region growing]] – 4-okolí, 8-okolí * Barvení oblastí – Barvi dokud práh, nutné dva průchody, není deterministická (Region Merging, Region Splitting) == Orientovaná na hrany == Edge based * Hrany mohou nést důležitou informaci o objektech * Často oddělují regiony v obraze. * Typický problém: porušené a nevýrazné hrany, zároveň mnoho nepodstatných hran. * Edge relaxation – zotavení hrany, mnoho heuristických algoritmů, často iterační, degraduje hrany * Spojování hran – Vytváří seřazené hrany == Prahování == * Band * Dva a více prahů * Semi-thresholding * Mode based * Iterative * Adaptivní * Otsu's == Shluková analýza == * Učení bez učitele, řazení do podobných shluků * [[wp>k-means clustering]], Shift, Fuzzy C-Means, nebo GMM === Hybridní metody === == Metoda rozvodí == [[wp>Watershed (image processing)]] * Morfologická metoda segmentace, obraz chápán jako terén nebo topografický reliéf, který je postupně zaplavován vodou. * Výsledný obraz rozdělen do povodí oddělených hrázemi. * Nepoužívá se přímo originální obraz, ale gradientní obraz. * Metoda produkuje velký počet regionů, nadměrně segmentovaný obraz -> spojování segmentů === Znalostní metody (knowledge-based) === Nejčastěji detekce předdefinovaných vzorů v obraze (tzv. //template matching//)