i

Aktuální číslo:

2024/11

Téma měsíce:

Strach

Obálka čísla

Jak počítače hledají soby nebo bazény

Nahlédnutí do využití strojového a hlubokého učení při zpracování snímků
 |  31. 10. 2022
 |  Vesmír 101, 708, 2022/11
komerční prezentace

Na jednom z prvních cvičení z geografických informačních systémů, které jsem před lety na vysoké škole navštívil, jsme řešili úlohu, která se týkala strojového učení. Tehdy jsem netušil, že se možnosti této oblasti umělé inteligence rozvinou do současné šíře a dnešní rozmach technologií pro generování obrazů napovídá, že se teprve máme na co těšit. Tímto článkem vás chci provést současnými možnostmi strojového učení při analýze dat (zejména družicových a leteckých snímků), které už samy o sobě mohou připomínat nástroje ze seriálů sci-fi.

Úloha, kterou jsme tehdy na počítačích řešili, se nazývá řízená klasifikace a její princip je vlastně nesmírně jednoduchý. Analytik (to jsem byl já) pracuje s družicovým snímkem a označí na něm druhy oblastí, které chce ze snímku získat (například vodu, les, pole, silnice, zástavbu). Pro každý druh vyznačí jednu nebo více typických ploch a počítač se pak pokusí na základě těchto příkladů zbytek snímku vyhodnotit.

A to je vlastně strojové učení v kostce: naučíme počítač něco rozeznávat a on za nás bude sám pracovat. V praxi to ale tak jednoduché samozřejmě není, protože „naučit počítač něco rozeznat“ není jen tak. Zmiňovaný případ byl relativně snadný, algoritmus se řídil barvou jednotlivých pixelů (čili hodnotami R, G a B) a choval se podobně, jako když v grafickém editoru vybíráme kouzelnou hůlkou stejně barevné oblasti (matematicky řečeno, snažil se pixely přiřadit k některému shluku v trojrozměrném RGB prostoru). Tímto způsobem však dokážeme rozeznat jen několik tříd, a to nejlépe takových, které vypadají dost odlišně. Vyšší počet tříd a jejich vzájemná podobnost zvyšují chybovost klasifikace. Lepších výsledků dosáhneme, pokud budeme mít k dispozici ještě další proměnné – například snímek v infračerveném spektru, který nám pro identifikaci kategorií dodá další informace, nebo dokonce hyperspektrální snímky. Ty pocházejí ze senzorů, které snímají zemský povrch ve stovkách úzkých spektrálních pásem, a fungují jako jakýsi vzdálený spektrometr.

Učíme počítač hledat věci

To všechno ale stále není pravé strojové učení. Zatím jsme se totiž zabývali každým pixelem samostatně, což je výpočetně docela jednoduché a pro některá využití to stačí. Každý pixel v obraze je však součástí něčeho většího, a pokud začneme brát tento fakt v potaz, dostaneme se k zajímavější úloze – detekci objektů.

Při detekci objektů na snímku již vyhodnocujeme i určité okolí, výřez, ve kterém algoritmus hledá shluky pixelů v zadaném tvaru. Dobrým vodítkem je při tom opět barva, ale v mnoha případech se na ni nedá spoléhat (například při vyhledávání automobilů).

I nástroje pro detekci objektů byly ve specializovaném softwaru k dispozici již před mnoha lety, byly ale většinou úzce zaměřeny na určité typy objektů, například na automobily nebo letadla. K sestavení takového nástroje byla potřeba přece jen již nějaká erudice a vhled do celé problematiky. Pokrok v oblasti strojového a (jeho podmnožiny) hlubokého učení umožnil sestavovat nástroje takřka pro každou situaci. Princip je stále stejný, jen dnešní počítače umějí rozeznávat mnohem lépe a rychleji, než tomu bývalo kdysi. Segmentace obrazu čili identifikace různých objektů, které počítač „vidí“, se totiž využívá u autonomních vozidel, při interakci člověka s počítačem, při rozpoznávání obličejů, sledování dopravy a v mnoha dalších případech.

Analytik, který se dnes zabývá segmentací obrazu a extrahováním prvků, postupuje ve třech krocích:

• Příprava trénovacích dat.

• Trénování modelu.

• Použití modelu na celou datovou sadu (neboli inference).

Příprava trénovacích dat

Příprava trénovacích dat spočívá ve výběru ukázkových objektů, které se chystáme rozeznávat. V prostředí GIS to obvykle vypadá tak, že si vytvoříme jednu vrstvu pro každou kategorii a v ní pak zakreslujeme obdélníky kolem dotyčných objektů. Čím více ukázkových dat nasbíráme, tím lépe, přičemž vhodný počet vzorků pro trénování modelu se počítá přibližně na stovky.

Nasbíraná data pak počítač exportuje jako obrázkové dlaždice, pro každý vzorek jednu. Někdy je vhodné tyto dlaždice zkopírovat, otočit o 90 nebo 180 stupňů a použít je jako další data, protože osvětlení a úhel záběru se na leteckých snímcích mohou měnit. Někdy se také hodí „okno“ pro dlaždici v náhodném směru o několik pixelů posunout a vytvořit si tak další vzorky. Pro algoritmus je důležité znát co nejvíc variací hledaného objektu, aby si mohl vytvořit hranice, jaké případy má ještě identifikovat. Mnohdy je tato fáze zpracování dat součástí automatizovaného procesu trénování, stejně jako normalizace obrazových dat a úprava jejich jasu a kontrastu, takže ji nemusíme provádět manuálně.

Trénování modelu

Před samotným trénováním nejprve určíme poměr dat, na kterých se bude model trénovat, a dat pro kontrolu. Obvykle se poměr volí jako 80 : 20 nebo 90 : 10 – na osmdesáti (respektive devadesáti) procentech dat se model naučí a zbylých dvacet (deset) procent se pokusí správně určit. Zkontroluje se úspěšnost a cyklus, jemuž se říká epocha, je ukončen. Pro správný trénink modelu je potřeba provést desítky až stovky epoch, často se používá opakování epoch až do doby, kdy chybovost u kontrolních dat klesne pod určitou mez. Průběh spolehlivosti tréninku pak může analytik sledovat v grafu a z jeho průběhu rozpoznat, jestli je model nastaven správně a zda má dostatek dat.

Použití modelu

Když jsme s modelem spokojeni, můžeme jeho prostřednictvím zpracovat celou datovou sadu. To již bývá oproti trénování rychlejší proces, zejména pokud probíhá výpočet na grafické kartě. Ty jsou totiž pro podobné typy výpočtů optimalizované.

Pokud máme fungující model, můžeme ho použít na další data s podobným charakterem, například ho periodicky spouštět na nových snímcích nebo na zcela jiném území. Organizace, které GIS používají jako systém dostupný přes web, mohou dokonce model publikovat na serveru a všichni ostatní uživatelé mohou svá data zpracovávat jeho prostřednictvím.

Co tedy dnes dokáže počítač rozeznat?

Zpracování obrazových dat nástroji strojového učení je možné využít všude, kde potřebujeme nalézt, lokalizovat či vyhodnotit objekty, které jsou viditelné na družicové nebo letecké fotografii (nebo z dronu). Namátkou můžeme uvést tyto příklady:

Vyhodnocení stavu budov po katastrofě. Po velkých požárech, které před několika lety zasáhly Kalifornii, letadla nasnímala zasažené plochy a strojové učení identifikovalo domy, které byly požárem poničeny nebo zcela zničeny, což pomohlo organizovat práci v době, kdy byl terén ještě obtížně přístupný.

Přehled o situaci. Humanitární organizace, které se starají o životní podmínky v uprchlických táborech, mohou tábory nasnímkovat pomocí dronů, automaticky spočítat stany a odhadnout aktuální počet obyvatel. Snímkování lze průběžně opakovat a udržovat si přehled o změnách.

Nalezení bazénů. Daně z nemovitosti se v USA odvíjejí od hodnoty pozemků a bazén hodnotu pozemku zvyšuje. Strojovým učením je možné identifikovat bazény na leteckých snímcích města a vytipovat parcely s bazény, které ještě nejsou ohlášeny (obr. 1). Pokud jsou data dost podrobná, je možné zhodnotit i kvalitu vody v bazénu a vytipovat ty neudržované, které by mohly ohrožovat okolí jako líhniště komárů.

Sčítání zvěře. Letecké fotografie polárních sobů, migrujících v létě na Aljašce, mohou sloužit i jako nástroj při jejich sčítání. Stačilo na snímcích identifikovat zhruba 1000 jedinců, což je sedmina celého stáda, a algoritmus následně spočítal velikost celé skupiny a dokázal navíc rozlišit mezi mladými a dospělými jedinci (obr. 2). Některá stáda mohou čítat až 400 000 jedinců, proto možnost automatizace přijde jistě vhod.

Dobře trénovaný model dokáže určovat objekty i v částečně odlišných, ztížených podmínkách. Například model pro detekci bazénů, trénovaný na datech z Kalifornie, jsme úspěšně vyzkoušeli i ve vesnicích Středočeského kraje – tedy v území svým charakterem, barvou a osluněním výrazně jiném, než je Kalifornie. Nejlepší výsledky ale přirozeně přináší model, který je co nejvíc přizpůsoben používaným datům.

Kam míříme?

V posledních měsících je svět fascinován využitím techniky při tvorbě ilustrací a klade si otázky o limitech umělé inteligence. Analytici obrazových dat se sice o možnosti generování obrazu tolik nezajímají (jejich úkolem je data analyzovat, a ne tvořit), přesto se nyní vývoj i v algoritmech pro rozpoznávání a segmentaci obrazu odehrává velkými skoky a v následujících letech můžeme očekávat ještě větší zpřístupnění celého procesu. Pokud jsou vám některé z příkladů, které jsme v článku zmínili, blízké, určitě toto odvětví sledujte.

Obrázky byly se svolením autorů převzaty z článku S. Mathew, P. Yadav: Performing Feature Extraction & Classification Using Deep Learning with ArcGIS Pro.

Ke stažení

OBORY A KLÍČOVÁ SLOVA: Geografie, GIS a navigace

O autorovi

Jan Souček

 

Doporučujeme

Se štírem na štíru

Se štírem na štíru

Daniel Frynta, Iveta Štolhoferová  |  4. 11. 2024
Člověk každý rok zabije kolem 80 milionů žraloků. Za stejnou dobu žraloci napadnou 80 lidí. Z tohoto srovnání je zřejmé, kdo by se měl koho bát,...
Ustrašená společnost

Ustrašená společnost uzamčeno

Jan Červenka  |  4. 11. 2024
Strach je přirozeným, evolucí vybroušeným obranným sebezáchovným mechanismem. Reagujeme jím na bezprostřední ohrožení, které nás připravuje buď na...
Mláďata na cizí účet

Mláďata na cizí účet uzamčeno

Martin Reichard  |  4. 11. 2024
Parazitismus je mezi živočichy jednou z hlavních strategií získávání zdrojů. Obvyklá představa parazitů jako malých organismů cizopasících na...