Navrhované téma týmového softwarového projektu od podzimu 2019 do léta 2020. Tým by měl mít velikost 4 až 6.
Úkolem je za pomoci veřejně dostupných knihoven navrhnout systém pro rekonstrukci 3D okolí z fotografií nasnímaných mobilní kamerou – vestavěnou do některých brýlí rozšířené reality (Microsoft HoloLens).
Téma je zadáváno externí firmou Pocket
Virtuality a Vaším vedoucím bude:
Josef Pelikán (CGG MFF UK a Pocket Virtuality)
Brýle pro rozšířenou realitu Microsoft HoloLens umějí za pomoci vestavěného senzoru (viz Kinect 2) v reálném čase snímat okolní 3D scénu – spolu s trackingem brýlí se tomu říká SLAM. Kinect senzor však není příliš přesný a má malý dosah. My bychom chtěli vyvinout systém, který do mapování okolí přispěje metodami fotogrammetrie, tj. za pomoci normálních snímků, které pořizuje RGB kamera v brýlích.
Protože je naše kamera umístěna na brýlích, máme k dispozici dost přesná geometrická data, což bude jistě výhodou proti běžným "slepým" metodám, které musí nejprve polohy snímků spočítat z pořízených fotografií (my budeme také polohy zpřesňovat, ale naše optimalizace již bude mít k dispozici dost dobré počáteční hodnoty).
Výpočet rekonstrukce scény se bude odehrávat na výpočetním serveru připojeném k brýlím přes lokální síť (HoloLens mají rychlý WiFi adaptér). Helma by pouze fotografie pořizovala a odesílala na server. Server bude provédět výpočet, 3D model okolní scény bude kontinuálně zlepšovat a výsledky již ve formě otexturovaných trojúhelníkových meshí se budou v případě potřeby zase zpět posílat do brýlí. Ideální by bylo navrhnout takové algoritmy, které budou pracovat progresivně v čase – například za pět sekund bude k dispozici hrubý model, ten se bude neustále v čase zpřesňovat (dále probíhajícím výpočtem, tak i započítáváním stále dalších a dalších fotografií) a třeba po několika minutách už bude k dispozici velmi přesný model s dobrým otexturováním, dosahující až desítky metrů od uživatele (původní SLAM dosáhne maximálně cca 6m).
Programovací jazyk C++ (my používáme standard C++17)
Vývojové prostředí Visual Studio 2019 (co se bude dělat pod Windows + HoloLens /ty mají
výhradně Windows 10 UWP/). Pokud bude server na jiném OS, tak adekvátní jiný systém překladu.
Repository GIT
Chtěli bychom projekt otevřít pro čtyři až šest studentů (zhruba tři zájemce už máme). Preferujeme lidi zajímající se o počítačovou grafiku a/nebo strojové vidění, bylo by velkou výhodou absolvování alespoň některé z přednášek prof. Flussera, prof. Hlaváče nebo doc. Šikudové.
V první fázi bychom se seznamovali s existujícími knihovnami a řešeními, testovali bychom je a výsledky porovnávali. Není cílem, abyste zgruntu programovali nějaké úplně nové algoritmy, ale abyste se naučili využívat existujícího kódu a s jeho pomocí dosáhli požadovaných výsledků. Pokud bude potřeba něco vylepšit/dodělat, to je přesně Váš úkol (a nakonec to zaintegrovat všechno dohromady).
Druhá fáze již znamená rozdělení týmu na menší skupiny a práce na jednotlivých komponentách:
1. aplikace na brýlích HoloLens, která odesílá fotky (ve finále musí být integrována do našeho systému Fata Morgana, domluvíme se, jestli by se to tak dělalo už od začátku).
2. nejdůležitější a nejrozsáhlejší část – výpočetní server. Z větší části postavený na existujících a vylepšených knihovnách, obohacený o síťovou komunikaci s brýlemi (např. ZeroMQ), data bude potřeba rychle posílat oběma směry (i zde se bude zřejmě síťový přenos integrovat do našeho firemního systému – to by Vám však mělo spíš situaci zjednodušit – např. jen sestavíte na serveru v paměti definovaným způsobem 3D scénu, předáte ji našemu systému a o přenos po síti do HoloLens a následné zobrazení se už vůbec nebudete muset starat...).
3. progresivní počítání: to bychom radši oddělili jako "nepovinnou" (bonusovou) část, protože není jasné, jak bude celý projekt náročný a kolik členů bude náš tým mít...
Třetí fáze, to je spojení vytvořených komponent, jejich testování v praxi (třeba i v celkem zajímavých "exotických" prostředích jako je jaderná alektrárna v odstávce), porovnávání výsledků a ladění parametrů. A nakonec učesání zdrojových kódů, jejich komentování a psaní vývojové dokumentace.
Všechny tyto fáze bychom chtěli stihnout za šest až osm měsíců od zahájení projektu
(formální deadline obhajoby je nejdéle devět měsíců od zahájení projektu).
Domníváme se, že je to zadání realistické a proveditelné a ze strany firmy Pocket Virtuality
i na katedře KSVI MFF UK k němu máme už teď vytvořené všechny podmínky.
Například i na MFF UK máme již k dispozici jedny brýle HoloLens, které si tam budete
moci prezenčně půjčovat na vývoj a testování.
Laboratoř Pocket Virtuality ležící v budově CIIRC ČVUT na Dejvické (cca 15 minut cesty
z MFF) Vám také bude k dispozici.
Copyright (C) 2019 J.Pelikán, last change: 2019-11-11 00:16:05 +0100 (Mon, 11 Nov 2019)