2. Crowdsourcing alapú térképépítés 14
2.3. Monokuláris képeken alapuló közösségi adatgyűjtés
2.3.1. Structure-from-Motion
A 3D struktúra meghatározása során kiemelten fontos feladat a szenzor és a kör- nyezetében található objektumok távolságának meghatározása. Amennyiben közvetlenül nem áll rendelkezésre mélységinformáció – például a Lidar, Radar vagy RGB-D (RGB + mélység, RGB + depth – RGB-D) kamerák jeleiből – akkor a képi információból szüksé- ges a távolságot becsülni. E probléma megoldását napjainkban leggyakrabban felügyelt és felügyelet nélküli tanulásos módszerek használatával kísérlik meg, azonban a térbeli el- rendeződés síkbeli képmátrixokból való meghatározása a klasszikus képfeldolgozási mód- szertanban is egy sokat vizsgált terület. A viszonylagosan alacsony erőforrás-igényének köszönhetően egy rendkívül széles körben elterjedt megoldási lehetőség a Structure-from- Motion. A megnevezést először disszertációjában, 1977-ben használta Ullman [52], majd 1979-ben publikálta is azt [53]. A szerző definíciója szerint: „Négy, mereven összekap- csolt, nem egy egyenesen található térbeli pontot ábrázoló három elkülönülő ortografikus nézet felhasználásával a struktúra és a három nézőpont közötti elmozdulás egyértelműen meghatározható”.
A fenti definíció megjelenését követő évtizedekben az SfM algoritmusok fokozódóan kutatott területté váltak a számítógépes látórendszerek kutatási irányzatai között. Egy elterjedt nevezéktan szerint a fokozatosan növekvő számú nézőpontot használó SfM és a több nézőpontos sztereó (multiview stereo – MVS) technikák szerializált együttesét nevezik inkrementális SfM-nek. E technika alkalmazása során az egymással átlapolódó 2D képek vizsgálatával a képrögzítő eszköz – jellemzően kamera – elmozdulásának, valamint a mélységi információ – illetve térbeli elrendeződés – kinyerésére nyílik lehetőség [54, 55].
Az inkrementális algoritmus legfontosabb lépései:
1. Képjellemzők kereséseés társítása a különböző nézőpontból készített felvételeken;
2. Klasszikus SfM, melynek eredményeként előállnak – sugárnyaláb kiegyenlítés (bundle adjustment – BA) segítségével – a külső és belső kameraparaméterek, vala- mint egy ritka pontfelhő a vizsgált térrészről;
3. MVS, mely lépés során az előzőekben előállított ritka pontfelhő felbontása növekszik meg, vagyis „besűrűsödik”.
Az SfM módszer térnyerése napjainkban számtalan tudományterületen és alkalmazási esetben megfigyelhető [56], ahol változó nézőpontból készített 2D képekből szükséges a 3D környezet rekonstrukcióját elvégezni: fotogrammetriában [57], robotikában [58], kiterjesz- tett valóság (augmented reality – AR) alkalmazásokban [59].
A módszer népszerűségének köszönhetően számottevő értékes inkrementális SfM meg- oldás lelhető fel mind a szakirodalomban mind pedig az ipari forgalomban:
• Colmap: egy nyílt forráskódú inkrementális SfM implementáció, melynek célja egy általánosságban használható eszközrendszer biztosítása 3D rekonstrukciós munka- folyamatokhoz. Az implementációhoz egy grafikus felhasználói felületet (graphical user interface – GUI) is létrehoztak [60].
• Theia: egy SfM építőelemek implementációját tartalmazó, nyílt forráskódú és így szabadon bővíthető függvénykönyvtár. A szerzők a könyvtárat C++ nyelven írták [61].
• OpenMVG: elsősorban többnézőpontos geometria (multiview geometry – MVG) algoritmusokat megvalósító, szintén nyílt forráskódú függvénykönyvtár. Az imple- mentáció tartalmaz klasszikus SfM algoritmusokat is, valamint a külső kamerapara- méterek becsléséhez GNSS koordináták felhasználását is lehetővé teszi [62].
• VisualSFM: az inkrementális SfM algoritmust implementáló, GUI-t is kínáló, nyílt forráskódú megoldás [63].
• Ipari alkalmazások: Számos – nem szabadon hozzáférhető – ipari megoldás is elérhető a kereskedelmi forgalomban. Széles körben elterjedt megoldások – egyebek mellett – az Agisoft PhotoScan6, a RealityCapture7, illetve az Autodesk ReCap8. A fenti listában írt eszközök közül a kutatásaim során a Colmap alkalmazást hasz- náltam fel flexibilis működésének, robusztus algoritmusainak, valamint a nyílt forráskódú elérhetőségének köszönhetően.
6agisoft.com
7capturingreality.com
8autodesk.com/products/recap
2.3.2. 3D térképezés közösségi adatgyűjtéssel
A Google Maps alkalmazás virtuális sétát lehetővé tevő alrendszere is egy SfM-alapú megoldásra épít [64]. A szerzők az interneten elérhető képek összerendelésével tették kö- rüljárhatóvá az egyes látványosságokat. Ehhez a megoldásuk egy ritka 3D modellt készít a képek alapján a vizsgált terület geometriájáról. A képek összerendelését SIFT (Shift Inva- riant Feature Transform) jellemzők megkeresésével [65], majd a potenciálisan összetartozó pontok RANSAC (random sample consensus) párosításával végzik [66]. A találatokat több lépésben szűrik, végül a megmaradt, összetartozó képeken egy több lépésből álló SfM algo- ritmus segítségével határozzák meg az egyes képekhez tartozó külső kameraparamétereket – extrinsic mátrixokat. A paramétereket egy rekurzív algoritmus segítségével finomítják.
A felhasznált képek és a 3D modell együttes megjelenítésével bejárhatóak a vizsgált látvá- nyosságok. Az itt leírt algoritmus eredményeként előálló „fotó turizmus” eredményeinek szemléltetésére a szerzők egy látványos GUI-t is létrehoztak.
Agarwal et al. 2009-es munkájukban – melyet csak később, 2011-ben publikáltak [26]
– SfM módszer felhasználásával hoztak létre egy sűrű 3D modellt nagyszámú, kizárólag közösségi médiában megosztott kép felhasználásával. A „Róma” kifejezésre a Flickr oldal több, mint 2 millió fotótalálatot ad, melyek egy kiterjedt gyűjteményt biztosítanak a város nevezetességeit ábrázoló fényképekből. Egy ilyen jelentős terület rekonstrukciójához óriá- si számítási teljesítmény volt szükséges: a számos összetartozó kép hatékony kezelésének érdekében a megoldást egy 62 kétszer négymagos processzort tartalmazó (összesen 496 magos) klaszteren futtatták. 21 óra alatt 150000 képet dolgoztak fel, melyek felhasználá- sával sikeresen fel tudtak építeni egy modellt Rómáról – valóban kevesebb, mint egy nap alatt. A megoldást a későbbiekben a kutatók kiterjesztették más, turisták által gyakran látogatott – és fényképezett – városokra is (Dubrovnik, Velence).
Egy hasonló kutatást a Budapesti Műszaki és Gazdaságtudományi Egyetem Foto- grammetria és Térinformatika Tanszékének kutatói is végeztek. A Flickr oldalra feltöl- tött, Budapesten készült képek felhasználásával egyes itteni látványosságok – a Lánchíd oroszlánja (63 kép), a Parlament (173 kép), a Hősök tere (1626 kép) – modelljét készí- tették el egy i7-es CPU-val rendelkező átlagos asztali számítógép használatával [27]. A rekonstrukció eredményei a 2.1. táblázatban vethetők össze Agarwal et al. munkájának metrikáival. A referenciaként használt geometriai modellt a kutatók saját terepi méré- sek eredményeként állították elő tükörreflexes és mobiltelefon kamerák képeiből készített modellek, valamint földi lézerszkennelés (terrestrial laser scanning – TLS) használatával.
Mivel a 2.1. táblázatban felsorolt megoldásokban a modellek által lefedett területek mérete nagyságrendekkel eltér egymástól, így a megjelenített futási idők inkább tájékoz- tató jellegűek. Azonban azok így is jól demonstrálják a feldolgozáshoz szükséges számítási kapacitást és futási időt. Ezek az eredmények szemléletes bizonyítékot adnak a közösségi közreműködésű adatgyűjtés felhasználásával megvalósított környezeti modellezés kivitelez- hetőségére.
Rekonstruált helyszín Felhasznált képek száma
Képjellemzők párosítása
3D rekonstrukció
Sűrű rekonstrukció
Róma 150000 13 h 1 h 7 h
Dubrovnik 57845 5 h 1 h 16,5 h
Velence 250000 27 h 21,5 h 16,5 h
Lánchíd oroszlánja 63 86 s 57 s 22 s
Parlament 173 875 s 102 s 113 s
Hősök tere 1626 3342 s 104 s 278 s
2.1. táblázat. Közösségi közreműködés alapú modellezés, feldolgozási idők [26, 27]
A CrowdMapping platform felépítése azonban járműveken található szenzorok segít- ségével gyűjtött adatok meglétét feltételezi, mely a fenti adatgyűjtési módszerekhez képest egy megkötést jelent. Míg a Flickr-re feltöltött képek esetén azok készítői turisták vol- tak, és így jellemzően gyalogosként készítették ezeket a képeket, addig a CrowdMapping adatgyűjtő ágensei járművek, illetve az azokra szerelt kamerák. E különbségek kiküszö- bölhetőségének vizsgálatára létrehoztam az alább leírt közösségi adatgyűjtési szimulációt, valamint az abból renderelt képek 3D rekonstrukciós technikáját alkotó feldolgozási eljá- rást.
2.3.3. Szimulátorok
Egy kiemelkedően nehéz probléma a közösségi közreműködésen alapuló megoldások fejlesztése során az adatok elérhetősége – pontosabban annak hiánya. Egy lehetséges meg- oldás erre a hiányra az 1.4. fejezetben már említett Sim2Real technikák alkalmazása. Ez a módszer elsősorban a robotikai megoldásokban terjedt el [67], azonban napjainkban egyre nagyobb térnyerés jellemzi az általános gépi tanulás [68] – valamint specifikusan az autonóm járművekben alkalmazott [69, 70] – algoritmusok tanító adatbázisainak létreho- zásban. A Sim2Real megoldások alkalmazása során a szimulációs környezetből exportált adatok felhasználásával fejleszthetők, illetve tesztelhetők a fizikai valóságban működtetett eljárások. Ez a fejlesztési folyamatok során elengedhetetlen adatgyűjtés és ground truth létrehozás költségeit, valamint erőforrás-igényességét egyaránt csökkenti.
A Sim2Real eszközöket használó fejlesztések során azonban gyakran felmerülő prob- léma a valóságos és a szimulált környezet közötti különbség. E diszparitás kiküszöbölésére tesz kísérletet Zhang et al. [71]: a szerzők a robot ágens „otthonérzetét” – és ezáltal ha- tékonyságát – úgy próbálják növelni, hogy a fizikai környezet valószerű modelljét a robot által használt szimulációs környezetbe importálják. Ez az eljárás a valóságból a szimulá- cióba, vagyis a Real2Sim (reality to simulation).
Real2Sim megoldások használatával tehát a valóságra nem hasonlító modellek, míg Sim2Real eszközökkel a nem elegendő rendelkezésre álló adat problémáját tudjuk enyhíte- ni. A CrowdMapping platform validációja során egy olyan szimulációs környezetet alkal- maztam, amely gyakran használatos autonóm járművek algoritmusainak fejlesztésére. Az
ilyen szimulátorok lehetővé teszik valószerű (bel- és külvárosi) útszakaszok szintetizálását, valamint autonóm és manuálisan irányítható ágensek – mint például járművek, gyalo- gosok – szimulációját. Az adatszintézis megvalósításának érdekében egy számos passzív szenzort (például monokuláris és sztereo RGB kamerát), illetve aktív távolságszenzorokat (például RGB-D kamerák, Lidarok, Radarok) tartalmazó palettáról csatlakoztathatunk érékelőket az egyes ágensekhez. A renderelt képek és adatok valós idejűen exportálhatók a szimulátorból. A Sim2Real technológiák térnyerésével párhuzamosan számos, a fentiekben felsorolt funkciókat – vagy azok többségét – kínáló szimulációs szoftver látott napvilágot:
• VISTA 2.0, egy nyílt, adatvezérelt szimulátor az autonóm közlekedésre jellemző kombinált érzékelő- és vezérlőeljárások fejlesztésére [72];
• NVIDIA DRIVE Sim, mely az NVIDIA Omniverse platformon alapszik. E sorok írásának idején ez a szimulátor kizárólag egy korai hozzáférést biztosító program résztvevői számára érhető el. [73];
• AIMotive aiSim, az első ISO26262 ASIL-D minősített szimulátor, melynek célja az önvezető járművekhez kapcsolódó technológiák szimulációs környezetben végre- hajtott validációs lehetőségének megteremtése [74];
• Carla szimulátor, mely egy Unreal Engine 4 alapú, autonóm járművek fejlesztését elősegítő, nyílt forráskódú szimulációs környezet. A Carla egy olyan szerver-kliens struktúrát valósít meg, melyben a szimuláció beállításai, az ágensek, a szenzorok konfigurálása, illetve egyéb testreszabási lehetőségek egy Python API-n keresztül érhetők el [75];
• Tass PreScan, mely egy célzottan ADAS megoldások virtuális tesztelésére létreho- zott szimulációs környezet [76];
• IPG CarMaker, egy specifikusan személy- és kistehergépjárművek tervezésének és tesztelésének érdekében fejlesztett környezet [77];
• Vires Virtual Test Drive, egy szimulátor, melynek célja – hasonlóan a Tass Pre- Scanhez – tesztelő és validációs eszközkészlet biztosítása közúti járművek ADAS megoldásaihoz [78].
Az olyan tulajdonságainak köszönhetően, mint a kutatási tevékenység támogatására szabott munkamenete, a hozzáférhetősége – nyílt forráskódúsága, valamint az online elér- hető, bőséges mennyiségű felhasználói segédanyag rendelkezésre állása, a munkám során a Carla alkalmazást használtam fel mint a közösségi adatgyűjtési szimuláció létrehozásának környezetét.