Hlavní navigace

Zpracování obrazu analogovým počítačem – mozkem

12. 11. 2012
Doba čtení: 7 minut

Sdílet

Mým snem vždy bylo „takysipostavit“ nějakou neuronovou síť. Chtěl jsem ale něco jednoduchého, elegantního a užitečného. Komplikované matematické popisy mě odrazovaly, až jsem narazil na vizuální systém mozku. Poté, co jsem ho okopíroval a pustil, byl jsem šokován jednoduchostí, elegancí a sílou toho, co dokáže.

Popisy mozku, na které jsem narazil, zase většinou zdůrazňovaly neurony, synapse, dendrity a axony, neurotransmittery, jaké krásné pojmenování lidé pro ty všemožné laloky vymysleli a jestli je to 3. nebo 4. nerv odspoda.

To mě ale vůbec nezajímalo. Mě zajímalo, jak tam proudí ta informace (toto vědecké odvětví se jmenuje komputační neurověda – computational neuroscience), co se kde sčítá, odečítá a násobí, jak je to navržené, jakou to má architekturu zpracování informace a především, jak si to s minimálním úsilím postavím na vlastním stole (případně pod stolem, pokud mám místo desktopu minitower), aniž by můj vlastní mozek přitom explodoval.

Najdete v obrázku tři analogové počítače?

Zdroj: Systron-Donner Corporation

Tož mě napadlo hledat, jak funguje vizuální systém mozku, s tím, že si ho postavím, pustím, nechám rozložit obraz do reprezentace, která je uvnitř v mozku, nějaké kanály tam zesílím nebo potlačím, a složím to zase zpátky a budu se koukat, co to s obrazem dělá.

Chtěl jsem postavit něco jako zvukový ekvalizátor, jen pro obrazové kanály tak, jak jsou reprezentovány v lidském mozku. Tahátky bych si pak kanály mohl různě zesilovat a zeslabovat a koukat se, co to s obrazem udělá.

Zdroj: Wikipedia/Mover85

První, co mě šokovalo, bylo, jak je to strašně jednoduché a elegantní. Nepotřeboval jsem žádné integrály, sumy či konvergence, učící chyby ani backpropagace – vystačil jsem si s GIMPovskou funkcí gaussian blur (rozmazání), odečtením dvou obrázků od sebe, a nějakým přímočarým logaritmem a exponenciálou.

Neprávem celebrovaná rezatá vykopávka?

Další sok nastal, když jsem viděl, co tam je uvnitř naprogramované – dynamické programovaní, waveletová transformace, hardwarová akcelerace konvoluce, a to miliony let před mechanismem z Antikythéry, v porovnání mně směšně jednoduchým plechovým analogovým počítačem, jehož cílem bylo určit pohyb astronomických těles po obloze. Přijde mi, že tato 2 tisíce let stará rezatá vykopávka je neprávem celebrovaná jako první z počítačů.

Antikythérský počítač podle mého není nejstarším počítačem, ač byl vyroben o století před naším letopočtem. Jeho o milióny let starší bratříček dokáže transkódovat stereo video v reálném čase do waveletového formátu. Dokáže ale také třeba generovat články do Roota.

Zdroj: Wikipedia/Marsyas

A přitom před milióny let tu byl video systém se stereo kamerou 2×150 megapixelů s optickou stabilizací obrazu, a za tím 2×1 megapixel analyzátor videa implementující waveletovou transformaci. A to není implementace ledajaká – je to implementace luxusní kvality, s převzorkováním! Viděli jste snad někdy v obrazu aliasing na hranách? Navíc je to implementace udělaná tak chytře, že se šetří počet nutných neuronů pomocí dynamického programování, něco jako rychlá Fourierova transformace. K tomu s latencí, za jakou by se nemusel stydět ledasjaký realtimový systém – jedna synapse má asi 2 milisekundy latenci, a tak moc jich tam po cestě není.

A to je jen začátek vizuálního systému, systému jenž tvoří zhruba 50 % našeho mozku, což je analogový embedded počítač s výkonem pouhých 20 Wattů, který implementuje svět, ve kterém žijeme po celý život – svět našeho vědomí, vjemu a zážitků.

GIMP, G'MIC a GNU R pomůžou při simulaci

Postavíme si tedy simulátor, který nás vezme na cestu do zrakové kůry a zpět. Strojní zpracování obrazu přitom bude dělat mnohoúčelový obrazový procesor G'MIC, který je dostupný na Linuxu. K ručnímu předvedení operací nad obrazovými daty použiju GIMP. A určité doplňkové informace z vyšší matematiky pro nás obstará GNU R, víceúčelový statistický program, taktéž běžně dostupný na Linuxu.

GIMP In My Perception

Došel jsem k přesvědčení, že ten frontend vizuálního systému je velmi silný nástroj. Zatímco v GIMPu na různé operace potřebujeme vybírat různé položky v menu a tyto operace musí být také každá zvlášť naprogramovány, vizuální frontend mozku dokáže spláchnout mnoho operací naráz pouhými změnami koeficientů jednotlivých kanálů, a často dle mého názoru provádí ještě s obrazem kvalitnější, hodnotnější verzi operace než běžná implementace v GIMPu nebo jiném programu na počítačové zpracování obrazu. Posuďte prosím sami:

  • Colors: Levels: Gamma
  • Colors: Color Balance
  • Colors: Hue-Saturation
  • Colors: Brightness-Contrast
  • Colors: Invert
  • Colors: Auto: White Balance
  • Colors: Auto: Color Enhance
  • Colors: Auto: Normalize
  • Colors: Auto: Stretch Contrast
  • Colors: Auto: Stretch HSV
  • Colors: Retinex
  • Filter: Blur: Gaussian Blur
  • Filter: Blur: Motion Blur
  • Filter: Enhance: Sharpen
  • Filter: Enhance: Unsharp Mask
  • Filter: Edge-Detect: Difference of Gaussians
  • Generic: Convolution Matrix (v omezené míře)
  • Vyvážení barvy pleti bez vlivu na vyvážení bílé (tato operace mi přijde velmi praktická!)
  • Změny výrazu obličeje, zdánlivého stáří a atraktivity
  • Změny dojmu útulnosti obrazu a perspektivy. Když jsem na tenhle efekt narazil poprvé, úplně jsem sebou cuknul, jak jsem byl překvapen tím, co na obrazovce vidím.

Poté, co jsem si se svým simulátorem hrál a sledoval, jaký vliv mají různé barevné kanály na obraz, jsem seděl na balkóně a pozoroval mimoděk strom ozářený sluncem, obsahující světle a tmavě zelené listy, a o něčem přemýšlel. Najednou mě šokovalo zjištění, že strom hraje duhovými barvami – viděl jsem v něm sytou žlutou a červenou, sytou modrou a zelenou!

Přesně takhle na mě vyskočil strom, když jsem se na něj „díval do blba“. Díky experimentům se zpracováním obrazu mozkem přesně vím, co se můj mozek rozhodl „doladit“, a můžu tento subjektivní zážitek na simulátoru věrně reprodukovat a čistě subjektivní zážitek tak přenést do objektivního světa a podělit se o něj s ostatními. A není to žádná halucinace – 100 % toho, co na obrázku je, je také v původním obrázku, byť ne v takové síle.

Zdroj originálu: Glenn Guy, Blue Sky Photography

Myslel jsem si, že takový efekt může nastat pouze po požití drog, ale já žádné drogy nepožil – pouhé hraní si s tímto softwarem zřejmě dokáže mozek ovlivnit, domnívám se právě proto, že software separuje kanály mozku vlastní a člověk se pak naučí na ně upírat pozornost. To mě přesvědčuje o tom, že simulátor funguje správně. Jindy jsem viděl barvy v pokoji tak nepříjemně zářivé, až mě to vyčerpávalo. Musel jsem se koukat na nějaké předměty s nevýraznými barvami, abych si od tohoto efektu odpočinul.

Jindy jsem udělal experiment pomocí testovacích obrázku, s jehož pomocí jsem změřil koeficienty potřebné k implementaci vnímání hran tak, jak to dělá mozek, a naprogramoval filtr hran, jehož věrnost mě až překvapila. Vypadalo to, jako by člověk obrázek namaloval tužkou!

Detektor hran navěšený na výstupu waveletu. Vnímání hran je nakalibrováno podle mého mozku. Vnímají možná jiní lidé hrany odlišně?

Zdroj originálu: Ted Szukalski

Došel jsem k názoru, že mozek je rozhraním mezi mystickým světem vnitřních prožitků a vědecky testovatelnou objektivní realitou. Mozek, tuto hračku pro intelektuály, nosíme stále s sebou a můžeme na jeho vizuálním systému kdykoliv provádět experimenty a sledovat výsledek – vjemy máme přece přímo k dispozici – a tak se probíjet džunglí interního zpracování informace vždy o nějaký ten level dál.

Myslím, že mozek by se dal přirovnat k matrixu, v němž žijeme, a pro mě je fascinující reverse engineerovat, jak to funguje – zevnitř. Vezměme si tedy červenou pilulku a skočme do králičí díry, tam kde příběh zpracování obrazu mozkem začíná – do…

„Tvoje oči jsou tak modré, jako moře – že by se do nich dalo skočit!“

…té černé díry, co je uprostřed oka. Do té také létají fotony. Dopadnou na sítnici a tvoří na jedné straně sítnice jakýsi RGB obraz – takový, jak ho známe z obrázků na našich počítačích.

Zde se ale můžete s obrazem tak, jak ho známe, rozloučit. Dále ho už nikdy neuvidíte. Už na druhé straně sítnice je něco úplně jiného – a není to pouze obraz rozložený na černobílou a barevné složky, jak by snad někoho mohlo napadnout. Co se tam ale teda přesně děje?

Řeknete mi už konečně, jak je to tam zadrátované?

To si nejdříve budeme muset sami zjistit. Mozek nemá od přírody žádnou dokumentaci. Je to jako reverse engineerovat neznámý počítač. Jak tedy přišli vědci na to, jak to tam uvnitř funguje?

CS24_early

Poslali mozek do Číny? Ne! Takhle to nejde. Nejdřív otevřeme skříň počítače, abychom uvnitř zhruba viděli, jak je to tam zadrátované. Křížový šroubovák nám ale nepomůže, tady budeme muset sáhnout po pile. Vyndáme-li nějaké mrtvole mozek, a podíváme se zespoda, uvidíme, že z očí jdou tlusté nervy (svazky asi miliónu drátů), kříží se, a po křížení jdou do thalamu uprostřed mozku. Přesněji do části thalamu jménem lateral geniculate nucleus (LGN). Termín LGN potkávám v literatuře o zpracování obrazu mozkem velmi často. Z thalamu vystupují tlusté svazky drátů kamsi dozadu v hlavě (na obrázku dole), do mozkové kůry, tyto svazky jsou ale uvnitř hmoty mozku, a tak je bez kuchyňského náčiní neuvidíme.

Zvedneme-li kapotu mozku, uvidíme v zásadě tohle. Oranžová limonáda z očí protéká křížícími se hadičkami, probublává mozkem a shromažďuje se vespodu.

Zdroj: David Hubel; Eye, Brain, and Vision

Pak dali vědci různé části mozkové kůry pod mikroskop. A o tom, na co tam přišli ohledně funkce, budu povídat v příštím díle.

Byl pro vás článek přínosný?

Autor článku

Karel Kulhavý vystudoval operační systémy, sítě a překladače na MFF UK a je autorem optického pojítka Twibright Ronja a spoluautorem textového a grafického webového prohlížeče Twibright Links.