in

Co je za technologiemi pro rozpoznávání tváří? Inspirací je biologie

V dnešní době dokážeme rozpoznávat tváře, detekovat osoby a mnoho jiných věcí. Mají však stroje skutečně zrak? A co za rozpoznáváním vlastně v pozadí stojí?

Už od počátku historie se lidé snaží ulehčit si svou práci. Vytváří složité a důmyslné stroje, které nahrazují čím dál tím více pracovních činností, vykonávaných lidmi samotnými.

Důležitým smyslem, potřebným pro vykonávání práce, je zrak. Je to nejdůležitější smysl, kterým člověk disponuje.

Stroje v dnešní době tuto schopnost také ovládají, a dokáží jej použít například pro kontrolu výrobků, vytvořených ve výrobě, pro orientaci v prostoru, detekci osob, tváří, či pro složitější analýzu vstupního obrazu.

Konvoluce

V současné době je v běžných případech obraz zaznamenáván různými zařízeními za pomocí CCD čipů. Obraz je reprezentován jako matice jednotlivých bodů obrazu. Rozměry této matice, počet bodů ve výšce a šířce, reprezentují rozlišení daného čipu. Obraz, zaznamenaný těmito čipy, může být zpracován za pomocí různých algoritmů.

Některé algoritmy mohou daný obraz změnit, upravit a vylepšit, jiné zase obraz analyzovat a poskytnout informace dalším systémům, na základě kterých mohou rozhodnout o následujícím kroku či akci.

Jednou z operací, kterou lze pro zpracování obrazu a jeho analýzu či úpravu použít, je tzv. konvoluce. Jedná se o operaci mezi kernelem (malá matice s hodnotami, které se liší operace od operace, podle toho, co chceme s obrazem provést) a zpracovávaným obrázkem.

Tato operace umožňuje na daný obrázek například aplikovat rozmazání, ostření, vyhlazování hran, detekci hran, různých vzorů, a další operace.

Operace je aplikována na každý jednotlivý pixel a její výsledek je reprezentován novou maticí, kterou lze poté zobrazit jako klasický obrázek.

2D Convolution Animation

Tato animace zobrazuje použití operace konvoluce – výsledkem je v tomto případě zaostření obrázku

U klasického přístupu programování je ale zapotřebí definovat jednotlivé operace krok za krokem. Celkem velkým problémem ale může být definice postupů pro detekci určitých vzorů u obrazu, ve kterém dochází k velké variabilitě – např. ke změně světelných podmínek, či orientace pozorovaných objektů.

Podobné problémy ale v dnešní době dokáže řešit aplikace algoritmů strojového učení.

Inspirace v biologii

Některé z algoritmů strojového učení mají za inspiraci funkci biologických neuronových sítí a jejich chování. V mozku je optický signál zpracováván v části zvané vizuální kortex. V něm si také některé algoritmy pro zpracování obrazu, využívající umělé neuronové sítě, berou inspiraci.

Vizuální kortex

Vnímání obrazu mozkem je obecně založeno na detekci hran, díky čemuž lze rozpoznávat jednotlivé objekty. Můžeme pak vnímat předměty v okolí, jejich vlastnosti a vzájemné vztahy a interakci.

Vizuální kortex má hierarchickou strukturu, kde neurony na nejnižších vrstvách reagují na jednodušší vizuální stimuly (jako například hrany, přechody mezi kontrastními částmi obrazu atd.) v jejich poli vnímání, reprezentující část celkového viděného obrazu

Vyšší vrstvy už reagují na větší seskupení jednotlivých částí, pokrývajících větší část viditelného pole. Mohou například určovat, co je z vizuálního vstupu důležitější pro vrstvy ještě vyšší.

A toto vnímání takto v hierarchii pokračuje až po intuitivní vnímání obrazu na vyšší úrovni abstrakce. Ve výsledku tak díky tomu můžeme například rozpoznat známou tvář u právě přicházející osoby.

Neocognitron a konvoluční neuronové sítě

Jednou z prací, inspirovanou výzkumem vizuálního kortexu a jeho hierarchickou strukturou, je vícevrstvá neuronová síť, navržená v roce 1979 Kunihiko Fukushimou. Tento algoritmus byl použitelný například pro rozpoznávání ručně psaného písma a jiných vzorů. Také posloužil jako inspirace pro tvorbu pozdějších konvolučních neuronových sítí, určených pro zpracování obrazu.

V rámci algoritmů strojového učení není třeba psát přesný postup řešení určitého problému krok za krokem tak jako u klasického programování. Tyto algoritmy umožňují odpovídající postup natrénovat například na základě vstupní sady dat. Pro nalezení řešení některých problémů může být potřebné množství dat dost velké. Mezi tyto případy patří také zpracování obrazu.

Díky digitálnímu boomu, ve kterém v dnešní době žijeme (a také díky neustále zvyšujícímu se výkonu hardwaru, který tento boom umocňuje), lze ale vytvořit či získat dostatečné množství trénovacích dat i pro tento typ problémů.

Na to, jakým způsobem lze obraz zpracovávat za pomocí umělých neuronových sítí, se podíváme v dalším díle.

FOTO: Ukázkovou sadu trénovacích dat pro experimenty se strojovým viděním tvoří například dataset MINST, obsahující 70000 normalizovaných snímků ručně psaných číslic (zdroj: wikipedia.org). Úvodní fotografie ilustrační, zdroj: https://pixabay.com/cs/photos/%C5%BEena-tv%C3%A1%C5%99-my%C5%A1lenky-m%C3%A9dia-hlava-1446557/

What do you think?

1 point
Upvote Downvote

Comments

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Loading…

0

Comments

0 comments

GIS ve veřejné správě: Malý přehled zajímavých aplikací, které využívají obce a města

Chápou počítače opravdu obrázky? A co rozpoznávání videa a samořídící auta?