Creating 3D models using reconstruction techniques

Martin, Javonne Jason (2018-12)

Thesis (MSc)--Stellenbosch University, 2018.

Thesis

ENGLISH ABSTRACT :Virtual reality models of real world environments have a number of compelling applications, such as preserving the architecture and designs of older buildings. This process can be achieved by using 3D artists to reconstruct the environment, however this is a long and expensive process. Thus, this thesis investigates various techniques and approaches used in 3D reconstruction of environments using a single RGB-D camera and aims to reconstruct the 3D environment to generate a 3D model. This would allow non-technical users to reconstruct environments and use these models in business and simulations, such as selling real-estate, modifying pre-existing structures for renovation and planning. With the recent improvements in virtual reality technology such as the Oculus Rift and HTC Vive, a user can be immersed into virtual reality environments created from real world structures. A system based on Kinect Fusion is implemented to reconstruct an environment and track the motion of the camera within the environment. The system is designed as a series of selfcontained subsystems that allows for each of the subsystems to be modified, expanded upon or easily replaced by alternative methods. The system is made available as an open source C++ project using Nvidia’s CUDA framework to aid reproducibility and provides a platform for future research. The system makes use of the Kinect sensor to capture information about the environment. A coarse-to-fine least squares approach is used to estimate the motion of the camera. In addition, the system employs a frame-to-model approach that uses a view of the estimated reconstruction of the model as the reference frame and the incoming scene data as the target. This minimises the drift with respect to the true trajectory of the camera. The model is built using a volumetric approach, with volumetric information implicitly stored as a truncated signed distance function. The system filters out noise in the raw sensor data by using a bilateral filter. A point cloud is extracted from the volume using an orthogonal ray caster which enables an improved hole-filling approach. This allows the system to extract both the explicit and implicit structure from the volume. The 3D reconstruction is followed by mesh generation based on the point cloud. This is achieved by using an approach related to Delaunay triangulation, the ball-pivot algorithm. The resulting system processes frames at 30Hz, enabling real-time point cloud generation, while the mesh generation occurs offline. This system is initially tested using Blender to generate synthetic data, followed by a series of real world tests. The synthetic data is used to test the presented system’s motion tracking against the ground truth. While the presented system suffers from the effects of drift over long frame sequences, it is shown to be capable of tracking the motion of the camera. This thesis finds that the ball pivot algorithm can generate the edges and faces for synthetic point clouds, however it performs poorly when using the noisy synthetic and real world data sets. Based on the results obtained it is recommended that the obtained point cloud be preprocessed to remove noise before it is provided to the mesh generation algorithm and an alternative mesh generation technique should be employed that is more robust to noise.

AFRIKAANSE OPSOMMING : Modelle in virtuele realiteit van werklike omgewings het ’n aantal belangrike toepassings, soos byvoorbeeld die behoud van die argitektuur en ontwerpe van geskiedkundig belangrike geboue. 3D kunstenaars kan ingespan word om omgewings te modelleer, maar dit is ’n lang en duur proses. Hierdie proefskrif ondersoek verskillende tegnieke en benaderings wat gebruik word in die 3D rekonstruksie van omgewings deur gebruik van ’n enkele RGB-D kamera en beoog om die 3D rekonstruksie van die omgewing te omskep in ’n 3D-model. Hierdie sal nie-tegniese gebruikers toelaat om self modelle te skep van omgewings, en om hierdie modelle te gebruik in besigheid toepassings en simulasies, soos byvoorbeeld die verkoop van vaste eiendom, die wysiging van bestaande strukture vir beplanning en opknapping. Met die onlangse tegnologiese verbeteringe in die veld van virtuele realiteit soos, byvoorbeeld, die Oculus Rift en HTC Vive, kan ’n gebruiker geplaas word in ’n virtuele omgewing wat geskep was vanaf strukture in die werklike wˆereld. ’n Stelsel gebaseer op Kinect Fusion word ge¨ımplementeer om ’n omgewing te rekonstrueer en die beweging van die kamera binne die omgewing te volg. Die stelsel is ontwerp as ’n reeks selfstandige modules wat die afsonderlike aanpassing, uitbreiding of vervanging van die modules vergemaklik. Die stelsel word beskikbaar gestel as ’n open source C++ projek met behulp van Nvidia se CUDA raamwerk om reproduseerbaarheid te bevorder en bied ook ’n platform vir toekomstige navorsing. Die stelsel maak gebruik van die Kinect-sensor om inligting oor die omgewing vas te vang. ’n Grof-tot-fyn kleinste kwadraat benadering word gebruik om die beweging van die kamera te skat. Daarbenewens gebruik die stelsel ’n beeld-tot-model benadering wat gebruik maak van die beraamde rekonstruksie van die model as die verwysingsraamwerk en die inkomende toneel data as die teiken. Dit verminder die drywing ten opsigte van die ware trajek van die kamera. Die model word gebou met behulp van ’n volumetriese benadering,met volumetriese inligting wat implisiet gestoor word as ’n verkorte getekende afstandfunksie. Die stelsel filter ruis in die ruwe sensor data uit deur om ’n bilaterale filter te gebruik. ’n Puntwolk word uit die volume onttrek deur ’n ortogonale straalvolger te gebruik wat die vul van gate in die model verbeter. Dit laat die stelsel toe om die eksplisiete en implisiete struktuur van die volume te onttrek. Die 3D-rekonstruksie word gevolg deur maasgenerasie gebaseer op die puntwolk. Dit word behaal deur ’n benadering wat verband hou met Delaunay triangulasie, die bal wentelings algoritme, te gebruik. Die resulterende stelsel verwerk beelde teen 30Hz, wat intydse-puntwolkgenerasie moontlik maak, terwyl die maasgenerering aflyn plassvind. Hierdie stelsel word aanvanklik getoets deur om met Blender sintetiese data te genereer, gevolg deur ’n reeks werklike wˆereldtoetse. Die sintetiese data word gebruik om die stelsel se afgeskatte trajek teenoor die korrekte trajek te vergelyk. Terwyl die stelsel ly aan die effekte van wegdrywing oor langdurige intreevideos, word dit getoon dat die stelsel wel die lokale beweging van die kamera kan volg. Hierdie proefskrif bevind dat die bal wentelingsalgoritme die oppervlaktes en bygaande rande vir sintetiese puntwolke kan genereer, maar dit is sterk gevoelig vir ruis in sintetiese en werklike datastelle. Op grond van die resultate wat verkry word, word aanbeveel dat die verkrygde puntwolk vooraf verwerk word om ruis te verwyder voordat dit aan die maasgenereringsalgoritme verskaf word, en ’n alternatiewe maasgenereringstegniek moet gebruik word wat meer robuust is ten opsigte van ruis.

Please refer to this item in SUNScholar by using the following persistent URL: http://hdl.handle.net/10019.1/104919
This item appears in the following collections: