SLAMCam: Using camera emulation in Unreal Engine 4 to aid the development of SLAM systems.
Master thesis
Permanent lenke
http://hdl.handle.net/11250/2625672Utgivelsesdato
2019Metadata
Vis full innførselSamlinger
Beskrivelse
Full text not available
Sammendrag
Visuell simultan lokalisering og kartlegging (forkortet på engelsk VSLAM eller SLAM) er et aktivt forskningsfelt. Nye SLAM systemer blir hvert år utviklet og publisert, og disse blir i økende grad brukt for navigasjon og kartlegging i robot systemer. Denne avhandlingen presenterer SLAMCam -- et verktøy med mål om å hjelpe utviklere teste og feilsøke SLAM systemer på en presis og reproduserbar måte. SLAMCam lar utviklere benytte høykvalitets datagenererte bilder i deres SLAM algoritmer. Dette gjør de i stand til å, på en enkel og billig måte, utforske hvordan systemene deres takler et bredt spekter av scener og miljøer. Dette er demonstrert i denne avhandlingen med store fjellandskap, mørke huler og høy-realistiske innendørs scener.
Ved å dra nytte av toppmoderne grafikkteknologi i Unreal Engine 4 (UE4) kan SLAMCam realisere store dynamiske scener, med høy grad av fotorealisme, i sanntid. SLAMCam gjør det enkelt å fremstille bildedata med vanlige kamera-artefakter som motion blur, auto-eksponering og kromatiske forvrengninger. En ny teknikk for emulering av kameraer med rullende lukker (rolling shutter), ved bruk av pixel-shadere i UE4 er også presentert. Det er kjent at disse effektene er utfordrende for SLAM systemer, og SLAMCam gjør utviklere i stand til å studere effekten de har i isolasjon. Ekstraksjon av fasit-data for kamera posisjoner og rotasjoner, samt dybdebilder (RGB-D bilder) er støttet, noe som gjør det mulig å verifisere presisjonen av både kartlegging- og lokaliseringsestimater.
Denne avhandlingen sammenligner bruk av datagenerte bilder og bruk av SLAM-datasett ved utvikling. Dette inkluderer en diskusjon om fordeler og ulemper med de to fremgangsmåtene. Det konkluderes med at bruk av datagrafikk i mange tilfeller er fordelaktig. Datagenererte bilder fra SLAMCam er også sammenlignet med ekte kamerabilder, og det er foretatt en evaluering om hvorvidt det er betydelige kvalitative forskjeller mellom disse. Visual simultaneous location and mapping (VSLAM or SLAM) is an area of active research. New SLAM systems are developed and published every year, and the technology is increasingly used for navigation and mapping purposes in robotic systems. This thesis presents SLAMCam -- a tool intended to help developers working on SLAM systems test and debug their software in a precise and repeatable fashion. SLAMCam lets developers use high-quality computer-generated imagery as input for their SLAM algorithms. This gives them the ability to quickly and cheaply explore how their systems perform in a wide array of scenes, and environments and examples used in this thesis include vast mountain landscapes, dark caves, and realistic indoor environments.
By leveraging the state-of-the-art rendering technology in Unreal Engine 4 (UE4) can SLAMCam render large dynamic scenes with a high level of photo-realism in real time. SLAMCam makes it easy to create footage with common camera artifacts, including motion blur, auto exposure, and chromatic aberration. A novel technique for rolling shutter emulation in UE4 using pixel shader post-processing is also presented. These are effects known to be challenging for most SLAM systems, and SLAMCam enables developers to study their impact in isolation. Ground truth camera poses, and RGB-D depth imagery is made available, which can be used to verify the accuracy of mapping and localization estimates.
The thesis compares the usage of computer-generated imagery (CGI) with the usage community-standard datasets for benchmarking and development of SLAM systems. This includes a discussion of the merits and drawbacks of the two approaches and concludes that the use of CGI will, in many cases, be advantageous. CGI rendered in SLAMCam is also compared to real-world camera footage, and an evaluation of whether these have significant qualitative differences is conducted.