Projekt Photo3D

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.

Photo3D

Téma

Ú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).

Vedoucí

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)

Podrobnosti

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).

Photo3D procedure

Knihovny, zdroje, inspirace

  • Inspirace: Capturing Reality (slavná slovenská firma)
  • Vizualizace state-of-the-art: interactive survey / browser.
  • 3D reconstruction pipeline overview.
  • Multiple View Geometry: OpenMVG.
  • Progressive 3D Reconstruction All the Way Patw: zlá licencia a potrebuje prepísať. Zaujímavé je, že 3D rekonstrukcia progresivne rastie a zlepšuje sa v priebehu času.
  • Colmap: dobrá licencia new BSD, obsahuje dokumentáciu, rozumné výsledky. Chýba progresívny rast 3D modelu. Sfm + MVS
  • Knižnica MVE Celá pipeline pre photogrammetriu s BSD licenciou. Možný základ (inspirácia) ako to naprogramovať do softvérového projektu. Sfm + MVS + Mash + Texturing
  • Rozšíriteĺnosť o dalšie algoritmy. Iny MVS ... chce to vyskusat.
  • MVS texturing (BSD licence).
  • Síťová knihovna ZeroMQ.
  • Rozsáhlý zdroj publikací a kódu a tutoriálů: Awesome List.

Technické prostředky

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

Týmový projekt

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)