Datum zveřejnění: 
24. 1. 2024
Začalo to hraním počítačových her jako relax po škole, skončilo výhrou 100 tisíc korun v soutěži a nabídkou pracovního místa. Tak by se dala shrnout cesta Ondřeje Baštaře, studenta třetího ročníku bakalářského programu Kybernetika a robotika (KyR) na FEL ČVUT, který zvítězil v soutěži Vrgineers. Úkolem bylo naprogramovat algoritmus na zpracování obrazu pro VR headset na grafické kartě. Ten se používá k tréninku pilotů v rozšířené realitě.

Picture

O soutěži se Ondřej Baštař dozvěděl v létě díky předmětu Hry, který se vyučuje v rámci počítačových oborů na programu Otevřená informatika (OI). "Protože jsem z KyRu, o semináři bych se neměl šanci dozvědět. Seznam předmětů z OI mi ukázala přítelkyně, která studuje Otevřenou informatiku," vypráví Baštař a dodává, že si chtěl nad rámec vlastního studia rozšířit znalosti v oblasti počítačových her, což je jeho velký koníček.

Společnost Vrgineers potřebovala návrh algoritmu na zpracování obrazu z kamery brýlí pro rozšířenou realitu. Úkolem bylo na grafické kartě naprogramovat algoritmus, aby byl obraz co nejlepší a nejostřejší.

Zásadní jsou drobné nápisy na palubní desce

Soutěž probíhala dálkově, účastníci ovšem do firmy docházeli na průběžné konzultace za svým mentorem.

"Nejdřív jsem si ve firmě vyzkoušel elektrický simulátor pro trénink pilotů, abych si to uměl představit a abych se dozvěděl, na co je třeba se zaměřit. Nový algoritmus měl sloužit k tréninku s pomocí rozšířené reality, která kombinuje skutečné fyzické předměty a grafiku. Je nutné, aby člověk sedící v maketě kokpitu letadla viděl v brýlích veškerá tlačítka a páčky potřebné k řízení letadla a zároveň mu grafika umožňovala vidět nebe a vše za oknem. Nejzásadnější v rámci úkolu bylo naprogramovat algoritmus tak, aby člověk ostře viděl veškeré drobné nápisy na ovládacích prvcích na palubní desce," popisuje Baštař.

Výroba algoritmu pro přenos obrazu z VR kamery proběhla ve třech částech. Nejdříve senzory v kameře brýlí převedou barevné pixely na obrázek, tomu se říká debayerizace či demosaicing. Poté je nutné potlačit šum. Ve třetím kroku probíhá zaostřování, což je zrovna v případě simulátorů pro piloty zásadní, aby viděli ostře veškeré drobné nápisy v kokpitu.

Celé programování se přitom muselo odehrát na grafické kartě, tento způsob se používá typicky u počítačových her, které kladou velké nároky na výpočetní výkon. Zatímco algoritmus běžící na procesoru čte obrázek postupně, grafická karta má na sobě mnoho procesorů, a tak může obrázek přečíst najednou.

Ondřej Baštař prozradil, že na úkolu pracoval zhruba 150 hodin. Polovinu času přitom strávil studiem literatury, pomocí které se v tomto složitějším typu programování na grafické kartě zdokonalil. 

Není to jako naprogramovat hru

Naprogramovat takový algoritmus pro VR headset bylo přitom mnohem složitější než dosavadní programování her, které Baštař zná. "Když se dělá hra, tak se vymýšlí příběh. Například když jsme v minulosti vyvíjeli logické hry, nejvíce času jsme s kamarády strávili u tabule a přemýšleli, jak se to bude hrát, jaká bude mít hra pravidla. To bylo nejsložitější. Pak jsme to jednoduše naprogramovali," vysvětlil Baštař.

Na kontě už přitom má úspěchy z několika programátorských soutěží pro studenty. Zmiňme například pravidelné Hackatony nebo loňský ročník soutěže studentských počítačových her na FEL ČVUT, v níž jeho tým zvítězil s hrou Peklo upeklo. 

A co udělá se stotisícovou výhrou? "Pozval jsem kamarády na pivo a za malou část nakoupil vánoční dárky. Zbytek si šetřím," uzavírá oceněný student, jemuž se společně s vítězstvím v soutěži dostalo i pracovní nabídky ve firmě Vrgineers.