Ako vidí počítač

Autor: Michal Récky | 6.9.2010 o 17:26 | Karma článku: 8,46 | Prečítané:  2082x

Už sú to tri roky, čo žijem v rakuskom Grazi a pracujem vo výskumnom inštitúte pričlenenom k tamojšej Technickej Univerzite. Kamaráti a známi sa ma často pýtajú, ako taký výskum vlastne prebieha a keďže je ťažké dať rýchlu a jednoduchú odpoveď, rozhodol som sa, že napíšem tento blog.

Inštitút pre Počítačovú Grafiku a Vidienie (Institute for Computer Graphics and Vision),

http://www.icg.tu-graz.ac.at/

v ktorom pracujem je financovaný z komerčného sektora a zo školstva približne v pomere 50:50. Kontakt s komerčnou sférou zaručuje, že sa uplatňujú projekty ktoré práve vyžaduje trh a nie sú teda úplne odtrhnuté od praxe, zatiaľ čo financie zo školstva umožňujú aj čistý vedecký výskum. Dve hlavné odvetvia výskumu predstavujú:

Počítačová Grafika – je zjednodušene povedané proces, počas ktorého sa údaje uložené na počítači zobrazujú pre užívateľa – teda človeka sediaceho za počítačom. Najznámejší príklad predstavujú počítačové hry, kde sa svet modelovaný v počítači zobrazuje hráčovi, ideálne tak, aby sa čo najviac podobal realite. Iný príklad je zobrazovanie údajov z medicínskych prístrojov (napr. RTG, MRI,... ) tak, aby boli čo najviac užitočné pre lekára.

Počítačové Videnie – je úplne opačný proces, ako počítačová grafika. Zatiaľ čo pri grafike zobrazujeme údaje z počítača svetu, pri videní používame (najčastejšie vizuálne) informácie z reálneho sveta na získanie informácii pre počítač. Asi najznámejší príklad predstavuje robotické videnie, kde robot za pomoci kamier sa musí navigovať v reálnom svete, a napr. vyhýbať prekážkam. Ďalšie príklady predstavujú sledovanie pohybujúceho sa objektu (tracking), alebo rozpoznávanie tvárí.

Ja pracujem v oblasti počítačového videnia a konkrétne v špecializácii zvanej Porozumenie Obrazu (Image Understanding). Svätým grálom nášho výskumu je dosiahnuť, aby počítač rozumel svetu okolo seba vďaka vizuálnym informáciám, ktoré dostane. Aby vedel rozoznať objekty a udalosti napr. na digitálnych fotografiách, alebo videozázname. Možno to znie jednoducho, ale oblasť tohto výskumu je nesmierne zložitá a zatiaľ sme ešte veľmi ďaleko od cieľa. Nie je sa ani čo čudovať, veď evolúcii trvalo milióny rokov, kým prišla s podobným systémom, zatiaľ čo ľudský výskum v tejto oblasti má iba pár desiatok rokov. Na ilustráciu, v našom svete existuje asi 20-30 tisíc vizuálnych objektov (ako človek, strom, mačka, auto,...) a každý z nich má množstvo podtried (rôzne typy áut, stromov,...).

Takže ako prebieha náš každodenný výskum? Postup by sa dal zhrnúť do týchto krokov:

  1. Určí sa východisková pozícia (t.j. údaje ktoré máme na začiatku k dispozícii, napr. typ, kvalita a množstvo digitálnych fotografii na vstupe) a cieľ projektu (teda údaje, ktoré by sme chceli z nich získať)
  2. Vyberú sa metódy, ktoré sa na dosiahnutí cieľa použijú. Toto je kritická fáza a od výberu závisí úspešnosť projektu. Venuje sa jej preto najviac času a treba prečítať množstvo publikácii. Keďže ide o výskum, každá použitá metóda by mala byť niečím unikátna, teda by buď malo ísť novú metódu, alebo (oveľa častejšie) o vylepšenie už nejakej existujúcej.
  3. Samotné programovanie (implementácia) riešenia. Táto fáza je asi to, čo si pod mojou prácou predstavujú mnohí ľudia – sedenie za počítačom a ťukanie do klávesnice. V skutočnosti je toto dosť nepodstatná a neobľúbená fáza, niečo ako nutné zlo. Našťastie sa jej venuje asi najmenej času (asi 10-15%), keďže dnešný štýl programovania tento proces značne urýchľuje.
  4. Testovanie výsledkov a porovnávanie.
  5. Ak dopadlo testovanie dobre a ak metóda obstála a priniesla do nášho odboru niečo nové nastáva publikovanie našej práce pre vedeckú verejnosť, kde bude zhodnotená ďalšími odborníkmi.

Aby som tento postup ozrejmil, ukážem aj konkrétny príklad tohto postupu:

- Na vstupe máme digitálnu fotografiu urobenú bežným človekom niekde v meste. Naším cieľom je, aby počítač porozumel, kde sa na fotografii nachádzajú základné objekty, ako vozovka, budovy, vegetácia, obloha, atď.

Problém je, že na začiatku počítač vníma fotografiu iba ako skupinu farebných bodov. Vie iba, kde má aký bod akú farbu a už nič iné.

p1050177.bmp

- Keďže body nám o obraze toho veľa nepovedia, treba nájsť väčšie objekty, ktoré už majú akýsi základ v realite. Také objekty nazývané segmenty a sú to vlastne zhluky bodov, ktoré ležia blízko seba a sú si akosi podobné. Proces prebieha tak, že počítač začne spájať susedné body do skupín a postupne skupiny do väčších útvarov, až dostane segmenty.

overseg.bmp

- Ak proces prebehol úspešne, každý segment predstavuje nejaký reálny objekt, napríklad oblak, korunu stromu, alebo fasádu budovy. Ďalej teda musí počítač určiť, o aký objekt ide. Na to použije dve nápovedy:

a) vizuálnu, teda akú farbu má segment, aké sú v ňom textúry, atď.

b) kontextovú, teda kde sa segment na obrázku nachádza, a v akom je vzťahu k ostatným okolitým segmentom. Obrázok sa teda rozdelí na akúsi skladačku, kde sa zisťuje, ako k sebe jednotlivé kusy pasujú a prečo

segment4.PNG

- Následne prebieha kritický proces učenia, keď sa počítačový algoritmus snaží naučiť napr. ako vypadá obloha a aký je jej vzťah ku oblakom a strechám domov, kde na obrázku sa zvyčajne nachádzajú fasády budov a akú môžu mať farbu. Proces učenia môže prebiehať nasledovne: počítač sa rozhodne určiť, že jeden zo segmentov je napr. oblak. Človek za počítačom mu povie, či sa rozhodol správne, alebo spravil chybu. Ak to bolo správne rozhodnutie, počítač si začne byť istejší s rozpoznávaním oblakov, ak spravil chybu, analyzuje kde sa stala a spraví príslušnú nápravu. Po určitom čase začne chýb ubúdať, až sa človek rozhodne, že už ďalšie učenie neprinesie príliš úžitku. Napohľad sa zdá, že ide o jednoduchý princíp, ale na napravenie omylu tu uvediem ukážku matematiky z jednej malej oblasti vyššie popísaného postupu.

math.bmp


Po aplikovaní tohto postupu v praxi dosiahne počítač žiadaný stupeň porozumenia obrazu. Výsledok vyzerá napríklad takto:

p1050177.bmp.bmp

Kde každý rozpoznaný objekt je kódovaný špecifickou farbou, napr. obloha modrou, cesta šedou, fasáda budovy tmavozelenou, alebo strecha hnedou. Pri tmavých oblastiach sa počítač nevedel rozhodnúť. Každopádne, aj keď je na výsledku vidieť pár chýb, máme tu ukážku, že počítač dokáže sám určiť, čo vidí.

Ak sa ukážu výsledky ako niečím zaujímavé, nastáva publikácia. Tento proces prebieha tzv. double blind metódou. Autor napíše článok (zvyčajne 6-8 strán hustého textu) a odošle ho komisii. Čo je dôležité – článok nesmie byť podpísaný, ani nič v ňom nesmie naznačovať kto a kde ho napísal. Komisia odošle článok na posúdenie niekoľkým expertom v danej oblasti a tí zostavia posudok (tiež anonymný). Ak sú posudky priaznivé, komisia postúpi článok na publikáciu, ak nie, autor môže svoju prácu upraviť na základe posudkov a skúsiť šťastie inde. Podstatné je, aby posudzovatelia nevedeli, kto je autor, ale ani autor nevie, kto sú posudzovatelia.

Články sú zvyčajne publikované v zborníkoch vedeckých konferencii (v tomto prípade musí autor zvyčajne osobne prezentovať svoju prácu na konferencii), alebo v žurnáloch. V mojom prípade som mal tento rok 3 publikácie na konferenciách v Innsbrucku, Paríži a Istanbule (pričom ešte jedna publikácia sa práve chystá).

Recky, M,. Leberl, F. Windows Detection Using K-means in CIE-Lab Color Space
In Proceedings of International Conference on Pattern Recognition (ICPR), Istanbul, Turkey, 2010

Recky, M,. Leberl, F. Window Detection in Complex Facades
In Proceedings of European Workshop on Visual Information Processing (EUVIP), Paris, France, 2010

Recky, M,. Leberl, F. Multi-View Image Interpretation for Street-Side Scenes
In Proceedings of Computer Graphics and Imaging (CGIM), Innsbruck, Austria 2010

No a na záver, prečo robím túto prácu a preč ma baví? Rozhodne nie je jednotvárna ani monotónna. Ak sa pristihnem pri tom, že nejaký postup opakujem, tak pravdepodobne niekde robím chybu, pretože našou úlohou je hľadať stále nové postupy. Je to ako každý deň prísť do práce a mať za úlohu celý čas riešiť hlavolamy, logické hádanky a snažiť sa premýšľať „out of the box“. Ale každopádne to nie je jednoduché. Dostať nápad, alebo vyriešiť dosiaľ nevyriešený problém nie je niečo čo sa dá jednoducho naplánovať, alebo len s tým počítať. Naviac, naša špecifikácia smeruje často naše uvažovanie podobným smerom ako smerovala antická filozofia. Ako vníma človek realitu okolo seba, aký model sveta si stavia vo svojej mysli? V akom vzťahu sú predmety okolo nás, ako formujú pozorovaný celok a nakoľko je to podstatné pre realitu? Ako prebiehajú akcie a udalosti v reálnom svete a ako by sa dali čo najjednoduchšie a čo najjednoznačnejšie popísať? Len pár z mnohých otázok, ktoré sa snažíme každodenne riešiť.

Páčil sa Vám tento článok? Pridajte si blogera medzi obľúbených a my Vám pošleme email keď napíše ďalší článok
Pridaj k obľúbeným

Už ste čítali?