Change Detection in Point Clouds — Processing and Visualising Changes in Multi-epoch Datasets
Loading...
Journal Title
Journal ISSN
Volume Title
Sähkötekniikan korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Author
Date
2022-03-21
Department
Major/Subject
Control, Robotics and Autonomous Systems
Mcode
ELEC3025
Degree programme
AEE - Master’s Programme in Automation and Electrical Engineering (TS2013)
Language
en
Pages
94
Series
Abstract
In the past decade, 3D models and point clouds in particular have spread from research laboratories to the public and means of obtaining point clouds have become both easily available and affordable. As a consequence, point clouds representing co-located areas at different times are becoming commonplace. The aim of this thesis was to develop a processing chain and a Python program for detecting and visualising changes in a temporally separated, co-located sequence of point clouds. To accomplish this, suitable open-source Python libraries were identified and used for developing a pair of programs. The two programs are a point cloud processing pipeline and a visualising program. The processing pipeline identifies changes in the point clouds and stores the differences to a local database file. Storing only the changes minimises the resulting file size. The visualisation pipeline extracts the stored point clouds from the database and loads them in an interactive visualiser-window for the user to inspect. The most important libraries used were NumPy, Pandas, Open3D, DuckDB, and PPTK. The first two are standard Python scientific computing and data analysis libraries. Open3D is a library for processing 3D models. The last two are a visualisation library and a serverless database management system. The implemented method for change detection computes the nearest neighbour distance from the compared point cloud epoch to the reference epoch and uses a global threshold to determine whether the point has changed. This approach yields results that are comparable to the level of accuracy obtained from the industry standard software, CloudCompare. Furthermore, a visualisation mask was implemented to remove points obstructing the changes from the visualisation. The pipeline was successfully tested with datasets of up to 35 million points per epoch.Viimeisen vuosikymmenen aikana kolmiulotteiset mallit ja pistepilvet ovat löytäneet tutkijakammioista yleisön käyttöön. Nykyään pistepilvien tuottaminen on maallikoillekin mahdollista. Samalla samaa paikkaa kuvaavat pistepilviaikasarjat ovat yleistyneet. Tämän diplomityön tavoitteena oli kehittää pistepilvien prosessointiketju ja Python ohjelma pistepilvien muutostulkintaan ja visualisointiin. Tarkoitusta varten etsittiin sopivat ohjelmointikirjastot ja niillä toteutettiin ohjelmapari. Ensimmäinen ohjelma prosessoi sarjan pistepilviä, tunnistaa niistä muutokset ja tallettaa ne paikalliseen tietokantatiedostoon. Ohjelma tallentaa vain muutokset. Näin saadaan minimoitua tietokannan tiedostokoko. Toinen ohjelma lukee tietokantaa ja lataa pistepilvet interaktiiviseen visualisointi-ikkunaan. Tärkeimmät ohjelmointikirjastot olivat NumPy, Pandas, Open3D, PPTK ja DuckDB. Ensimmäiset ovat Pythonin tieteellisen laskennan peruskirjastoja. Open3D on kirjasto kolmiulotteisen datan käsittelyyn. Viimeisenä mainitut kirjastot ovat visualisointia ja tietokantaa varten. Muutostulkinta tehtiin laskemalla verrattavasta pistepilvestä pistekohtaiset etäisyydet referenssipistepilveen. Jos etäisyys oli suurempi kuin raja-arvo, piste katsottiin muuttuneeksi. Menetelmä tuotti vastaavia tuloksia kuin tarkoitukseen yleisesti käytetty ohjelma, CloudCompare. Visualisointia varten ohjelma etsii referenssipistepilvestä pisteet, jotka peittäisivät alleen muutokset ja jättää ne näyttämättä. Ohjelmat toimivat hyvin testiaineistolla, jossa suurimmissa pistepilvissä oli jopa 35 miljoonaa pistettä.Description
Supervisor
Vaaja, MattiThesis advisor
Ingman, MatiasEl-Mahgary, Sami
Keywords
temporal point clouds, multi-epoch point clouds, change detection, visualisation, Python, Open3D