### Make it Complete: Surface Reconstruction

### Aided by Geometric Primitives

### Robert Norlander

### October 23, 2017

**Sammanfattning**

Att kunna återskapa riktiga miljöer till digitala 3D-modeller är något som har många intressanta typer av tillämpningar. Genom att använda moderna tekni-ker går det idag att nå imponerande resultat, men det finns förstås fortfarande områden som skulle behöva förbättras. Målet med det här examensarbetet är att undersöka väsentligen två olika saker. Den första delen handlar om att förstå om det går att detektera geometriska primitiver, till exempel plan, i det initialt rekonstruerade punktmolnet. Den andra delen av det här examensarbetet, base-rat på resultaten från den första delen, kommer att undersöka olika metoder att använda informationen om de detekterade primitiverna för att kunna förbättra utseendet på det slutgiltiga resultatet.

Detekteringen av de geometriska primitiverna utförs med hjälp utav RANSAC-algoritmen, som är en metod för att upptäcka en given modell i en datamängd.

Olika alternativ för att använda informationen om de geometriska primitiver-na för att förbättra den slutgiltiga ytan jämförs. Det första alterprimitiver-nativet är att de punkter som har matchats till en primitiv projiceras på den primitiv som de har identifierats tillhöra. Det andra alternativet är att ta bort de punkter som inte matchar en primitiv. Det sista alternativet är att utnyttja möjligheten som finns i den valda ytrekonstruktionsmetoden att öka vikten på de punkter som är intres-santa och på så sätt göra det mer sannolikt att de punkterna blir inkluderade i den slutgiltiga ytan.

Detekteringen av de intressanta formerna visar viss potential men kräver en del manuell anpassning för olika dataset för att nå goda resultat. Projicering av punkter och borttagning punkter som inte har matchats till någon utav primiti-verna lyckas inte addressera de problem som de var tänkt att lösa. Att öka vikter-na på de intressanta punktervikter-na visar dock en viss potential, även om det är långt ifrån en komplett lösning.

En liten del av arbetet handlar om att försöka detektera områden där det ini-tiala punktmolnet skiljer sig mycket ifrån den slutgiltiga ytan, med hjälp av hie-rarkisk klustring. Den här delen utvärderas dock inte kvantitativt.

**Abstract**

Being able to reconstruct real-world environments into digital 3D models is some-thing that has many different types of interesting applications. With the current state of the art, the results can be very impressive, but there is naturally still room for improvements. This thesis looks into essentially two different parts. The first part is about finding out wether it is feasible to detect geometric primi-tives, mainly planes, in the initially reconstructed point cloud. The second part looks into using the information about which points have been fitted to a geomet-ric primitive to improve the final model.

Detection of the geometric primitives is done using the RANSAC-algorithm, which is a method for discovering if a given model is present in a data set.

A few different alternatives are evaluated for using the information about the geometric primitives to improve the final surface. The first option is to project points onto their identified shape. The second option is to remove points that have not been matched to a shape. The last option is to evaluate the possibility of changing the weights of individual points, which is an alternative available in the chosen surface reconstruction method.

The detection of geometric primitives shows some potential, but it often re-quires manual intervention to find correct parameters for different types of data sets. As for using the information about the geometric primitives to improve the final model, both projecting points and removal of non-matched points, does not quite address the problem at hand. Increasing the weights on matched points does show some potential, however, but is still far from being a complete method.

A small part of the thesis looks into the possibility of automatically finding areas where there are significant differences between the initial point cloud and a reconstructed surface. For this, hierarchical clustering is used. This part is however not evaluated quantitatively.

**Contents**

1 Introduction 1

1.1 Motivation . . . 1

1.2 Goal . . . 2

1.3 Related Work . . . 3

1.3.1 Finding Geometric Primitives . . . 3

1.3.2 Reconstruction Using Primitives . . . 3

1.3.3 Detection of Problematic Areas . . . 4

1.4 Delimitations . . . 5

2 Point Cloud Reconstruction 7 2.1 Structure from Motion . . . 7

2.2 Multi-View Stereo . . . 7

2.3 Oriented Point Clouds . . . 8

3 Surface Reconstruction 9 3.1 Overview . . . 9

3.2 Computational Geometry Methods . . . 9

3.3 Implicit Methods . . . 10

3.3.1 Marching Cubes . . . 10

3.3.2 Poisson Surface Reconstruction . . . 10

4 Geometric Primitive Detection 13 4.1 RANSAC . . . 13

4.2 Efficient RANSAC . . . 15

5 Detection of Missing Data 17 5.1 FLANN . . . 17 5.2 Clustering Methods . . . 17 5.2.1 K-Means Clustering . . . 18 5.2.2 Agglomerative Clustering . . . 18 6 Method 19 6.1 Tools . . . 19 vii

viii Contents

6.2 PLY File Format . . . 19

6.3 JSON File Format . . . 19

6.4 Generating Test Data . . . 20

6.5 Identifying Primitives . . . 20

6.6 Estimation of Density . . . 21

6.7 Preprocessing of the Point Cloud . . . 21

6.7.1 Refitting a Shape . . . 21

6.7.2 Increase Confidence on Identified Shapes . . . 22

6.8 Automatically Identifying Problematic Areas . . . 22

6.8.1 Computing Clusters of Missing Points . . . 23

6.9 System Architecture . . . 24 6.10 Metro . . . 24 7 Datasets 27 7.1 Bus Stop . . . 27 7.2 H3 . . . 28 7.3 Synthetic Fence . . . 29 7.4 Synthetic Wall . . . 29 8 Experiments 33 8.1 Evaluation of Screened Poisson Surface Reconstruction . . . 33

8.1.1 Impact of the Point Weight Parameter . . . 33

8.1.2 Noise Robustness . . . 36

8.1.3 Running Time . . . 37

8.2 Finding Primitive Shapes . . . 38

8.2.1 Synthetic Data . . . 38 8.2.2 Real-World Data . . . 41 8.2.3 Summary . . . 45 8.3 Refitting a Shape . . . 46 8.3.1 Synthetic Data . . . 46 8.3.2 Real-World Data . . . 46 8.3.3 Summary . . . 48

8.4 Increasing Confidence of Primitive Shapes . . . 49

8.4.1 Synthetic Data . . . 49

8.4.2 Real-World Data . . . 50

8.4.3 Summary . . . 57

8.5 Automatically Identifying Problematic Areas . . . 57

8.5.1 Comparing Point Cloud and Mesh . . . 57

8.5.2 Agglomerative Clustering . . . 59

8.5.3 Summary . . . 59

9 Conclusions 63

**1**

**Introduction**

Reconstructing real-world environments into digital models is a very exciting area and is something that have become increasingly easier to do. It is an area that has several interesting applications. For example, it can be useful for preserving areas which have historical importance, giving future generations the possibility of exploring them, even if the real object is for some reason no longer available. Seen from another perspective, it can also provide a method for making it easier to plan the location and appearance of new constructions, by being able to make the modelling in a very accurate model of the surrounding area.

The area of reconstructing real-world environments is an active research area and it is interesting to find further techniques for improving the final result. This thesis will look into the possibility of improving the reconstructed model, in a very specific context. The focus in this thesis is to investigate the possibility of detecting certain shapes, in this case mostly planes, and incorporating that infor-mation into the final reconstructed model.

**1.1**

**Motivation**

The problem that this thesis will focus on is if, mainly architectural, 3D models that have been reconstructed using Structure from Motion and Multi-View Stereo can be improved by identifying geometric primitives in the point cloud and using that information to improve the final reconstructed surface.

The motivation for investigating this problem comes from the fact that there is often a certain amount of information lost in the process of creating the triangle mesh from the point cloud, despite using state of the art surface reconstruction methods. This can cause holes in the mesh or other defects or some parts of the scene to not be included at all. Typically, this effect is more common for thin structures such as walls or fences. This is especially true when the resolution of

2 1 Introduction

Figure 1.1:Illustration of a point cloud with seemingly enough information to be reconstructed well, but which produces holes in the final reconstruc-tion. The surface has been reconstructed using Screened Poisson Surface Reconstruction. [14].

the reconstruction method is limited relative to the size of the input data. By identifying geometric primitives in the point cloud, this information loss can potentially be mitigated. Given that information, the level of noise could be reduced by aligning points according to their identified shape. Another alterna-tive is to increase the relaalterna-tive importance of such points. By doing so, this could potentially help guide the process of constructing the final model.

This thesis will mostly focus on models of buildings, which can often be well described by a combination of different geometric primitives, which makes this method even more compelling.

**1.2**

**Goal**

The goal of this thesis is to find ways of improving the final 3D model by using in-formation about the primitives identified in the point cloud, either by projecting points on their identified shape to reduce noise, or by incorporating information about the shapes into the reconstruction method. To summarize, the thesis will try to answer the following questions:

• Is it feasible to identify geometric primitives in point clouds created by Structure from Motion and Multi-View stereo using RANSAC?

• Given a problematic area, can the information about the geometric primi-tives be used for improving the final 3D model?

• Can the areas that have not been reconstructed well be automatically iden-tified by comparing the final model and the initial point cloud?

1.3 Related Work 3

**1.3**

**Related Work**

**1.3.1**

**Finding Geometric Primitives**

The problem of identifying geometric primitives is an active research area. La-farge et al. [17] presented a method based on performing curvature analysis on the reconstructed mesh to classify areas as either planar, developable-convex, developable-concave or non-developable. This method could be used to identify both planes (as in Jonsson [12]) and cylinders, and potentially other shapes.

This thesis however, aims to identify the primitives before the mesh has been created, by looking directly at the point cloud data. This is motivated by the fact that important information may already have been lost at the stage of when the mesh has been created, if an implicit surface reconstruction method is utilized. This effect can for example be seen when using Poisson Surface reconstruction [14] for reconstructing the surface, see for example figure 1.1.

As for earlier research focused on finding primitives in point clouds, a com-mon method for identifying primitives is by using the Hough transform. For example, Rabbani et al. [25] presented a method for extracting cylinders given a point cloud, using the transform.

Lafarge et al. [18] presented a method for finding shapes of roof tops in point clouds in large-scale city models, based on region growing.

Schnabel et al. [27] presented a method based on RANSAC [3], where the idea is to randomly select the minimal number of points to describe a shape and then look at the other available points to see how many could be fitted in the proposed shape. This process is repeated until the probability is high that the shapes in the cloud have been found. In the previous work [27], the method has also proven itself to be robust even when there are relatively high levels of noise present in the data.

In contrast, this thesis will focus on models depicting mostly buildings of dif-ferent kinds, whereas the previous work seemed to be more focused on machine parts.

It should be noted that many of the methods for identifying geometric primi-tives in point clouds also rely on having information about the normals for each point. In this thesis, information about the normals will in general be assumed to be present.

**1.3.2**

**Reconstruction Using Primitives**

The idea of finding and using geometric primitives in 3D to reconstruct missing data has been researched previously as well. Schnabel et al. [26] presented (in addition to their "Efficient RANSAC" [27] method) a method for reconstructing the entire model only by the identified primitives. In contrast, the main goal of this thesis will not be to try to describe the entire model by primitives, but instead to try to improve the point cloud such that the mesh can then become more accurate.

Lafarge et al. [16] presented a method for surface reconstruction using infor-mation about planar surfaces in the point cloud. The method does not rely on a

4 1 Introduction

specific method for actually finding the planes, but instead focused on describing a method for how already identified planes could be used to guide the surface re-construction. In contrast, this work will not aim at creating a new mesh method, but rather relying on existing methods for the final surface reconstruction.

Slightly related, Li et al. [19] presented a method for aligning identified prim-itives based on heuristics that can be assumed to be true for man-made objects, which could also be relevant.

This thesis will however try to investigate if pre-processing can be performed on the point cloud to make Poisson Surface Reconstruction [14] perform better. One example of a previous work related to this is [11] where edges were resam-pled prior to performing the surface construction, in order to produce a better final mesh.

**1.3.3**

**Detection of Problematic Areas**

One way of approaching this problem is by comparing the original point cloud and the reconstructed surface. Based on that, the points that are not represented well by the surface could be calculated. However, assuming that the surface re-construction method has a smoothing effect on the data, it is expected that there will be many such points, depending on the threshold for the maximum distance that a point can deviate from the surface. Therefore, it is necessary to have some form of technique for classifying areas to determine which areas need to be im-proved. One potential method for doing this is to use some form of clustering, for finding relatively dense areas of points that differ from the reconstructed surface. Clustering is a form of unsupervised learning. Unsupervised learning means that the methods are focused on understanding relationships in data without any prior information available. There have been many different clustering meth-ods described and presented in the literature. As described in [23], one way of classifying the different types of algorithms is by classifying them into either par-titioning or hierarchical algorithms. It should be noted that there are also other methods that have been presented which do not fall into either of the two cate-gories. For example, there is also DBSCAN [7] which instead relies on the density and connectivity properties in the data.

Partitioning algorithms, such as for example K-Means [10], constructs an ini-tial partitioning of the data. Based on the iniini-tial configuration, the rest of the points in the input data are evaluated and eventually all of the points in the data has been assigned to one of the clusters.

Hierarchical algorithms can be further divided into two subgroups, namely agglomerative and divisive. Agglomerative clustering algorithms start with each observation being in a separate cluster and for each iteration merges the clusters that are closest to each other. Divisive algorithms instead start with all data be-ing assigned to the same cluster. Based on some measure, the data points are separated into different clusters.

In general, hierarchical algorithms suffer for large data sets since they have a relatively high time complexity.

1.4 Delimitations 5 Another aspect of clustering is that it can be a difficult task to decide the pa-rameters for these methods. Chameleon [13] is an attempt for using a more adap-tive and dynamic model. It constructs a graph based on the distance between points and uses graph cuts, of which there are efficient methods for computing, for deciding the initial clusters.

**1.4**

**Delimitations**

This thesis will mainly focus on processing the point cloud in such a way that already existing data is included in the final mesh. Importantly, this means that the goal here is to process a point cloud such that a better structure can be gener-ated. In other words, the goal is not necessarily to infer missing parts of a shape, but mainly to make sure that existing shapes are preserved.

**2**

**Point Cloud Reconstruction**

In this chapter, a brief explanation of some of the relevant components that are necessary for reconstructing a 3D point cloud from a set of images, is presented.

**2.1**

**Structure from Motion**

The first step of the 3D reconstruction pipeline is to estimate the camera param-eters for each image. The camera paramparam-eters include properties such as the rela-tive position compared to the other cameras and the rotation. A common method for doing this is structure from motion. The idea is to find matching features in images taken from different camera poses. If such features can be found, the cam-era parameters and a set of points that are visible in the images can be computed. By having this information the depth can be estimated for each generated point.

The set of points that this step generates is commonly referred to as a sparse point cloud. As the name implies, the point cloud contains relatively few points, which makes it not sufficient for generating an accurate 3D model of the scene. The camera parameters combined with the sparse point cloud can however be used to achieve a denser cloud using subsequent methods.

For further information about structure from motion, see Szeliski [29] for ex-ample.

**2.2**

**Multi-View Stereo**

Secondly, it is necessary to make the point cloud denser. One approach for doing this is commonly referred to as Multi-View Stereo.

The information generated by the Structure from Motion is the input of this step, so the camera parameters are now considered to be known, and there is

8 2 Point Cloud Reconstruction

already a sparse set of points. Given that information, a number of methods have been presented for creating a denser point cloud. For a comparison of the performance difference between a number of MVS algorithms, see [28].

Multi-View Stereo is also described in detail in Szeliski [29].

**2.3**

**Oriented Point Clouds**

Oriented point clouds extend a set of points with information about which direc-tion the underlying surface is pointing at, or in other words, stores the normal vector for each point. As this report will describe, having information about the normal vectors for each point can be useful when reconstructing a surface from the set of points.

**3**

**Surface Reconstruction**

Surface reconstruction is an essential part of this thesis. In this chapter, a brief overview of the available surface reconstruction techniques are described. The techniques that are relevant in this thesis are reviewed in greater depth.

**3.1**

**Overview**

Once a point cloud has been reconstructed from a set of images, in order to make it a complete 3D model, the surface has to be reconstructed based on these points. As with the other steps of the reconstruction pipeline, there are different ways to achieve this.

To provide an overview, one way of classifying the different methods is by di-viding them into computational geometry and implicit reconstruction methods.

**3.2**

**Computational Geometry Methods**

Computational geometry methods are methods which introduces relationships between existing point samples in the input data. This implies that noise or cor-ruption in the input data set will also be included in the final surface. A good example of such an algorithm is the Ball pivoting algorithm [2]. The basic idea of the algorithm is that a ball is moving around in the point set. The ball is initially placed so that it is in contact with three point samples. While still being con-nected to two of the initial points, it moves until it intersects with a third point. Whenever it connects to three points, triangles are created.

10 3 Surface Reconstruction

**3.3**

**Implicit Methods**

There are mainly two different types of implicit methods. Methods based on interpolation of the data and methods based on approximating a surface that is near the data. Both Marching Cubes [21] and Poisson Surface Reconstruction [14] are examples of the latter. Interpolation based methods will create a surface that goes through all the input data while approximating methods will not necessarily do so [9].

**3.3.1**

**Marching Cubes**

The Marching Cubes [21] algorithm constructs a grid of cubes which is compared against a surface. Initially, the surface is represented as a function which maps a coordinate to a value, which depends on if the coordinate is inside or outside of the surface. This function is commonly referred to as an indicator function. The algorithm then looks at every cube in the constructed grid, calculating if there is an intersection between the surface and the cube. This is done by checking every corner of the current cube, if it is inside or outside of the volume. This means that a cube can be in 28 number of configurations (because each corner can be in two different states), and based on this it uses a look up table for determining how the triangles should be created given the configuration of the cube.

**3.3.2**

**Poisson Surface Reconstruction**

One way of finding the indicator function for a surface is by looking at the prob-lem as solving a Poisson equation. This is the fundamental idea of the Poisson Surface Reconstruction [14] method.

*The estimation of the indicator function is seen as finding a function χ such*
*that the distance between ∇χ and* −→*V is minimized, where* →−*V is the vector field*

*based on the normal vectors of the input data. The function, χ, is defined to be*
one inside and zero outside of the volume. Ω is the box containing all of the point
samples.

The surface that the indicator function describes is extracted using a modified Marching Cube [21] algorithm, which constructs a triangular mesh.

More formally, the Poisson Surface Reconstruction [14] method minimizes the following function:

*E(χ) =*

Z

Ω

||∇* _{χ(p) −}*−→

*2*

_{V (p)||}

_{dp}_{(3.1)}

There has been adaptations to the method. One of them is the Screened Pois-son Surface Reconstruction [15] algorithm. The motivation for the adaptation was that in certain situations, the method did not take all the points positions sufficiently in account, causing the final model to diverge significantly from the initial point cloud. The method introduced a way of setting a weight for the posi-tions of the points, which makes it adhere better to the points. In essence, a new

3.3 Implicit Methods 11

*term was added in the energy function E(χ), which the method aims to reduce,*
*with a parameter α. This parameter is commonly referred to as the point weight*
in the literature. Note also that the term is multiplied by the area of a subset of
points, P . In [15] it is defined to be an estimate of the area of the reconstructed
surface.

The modified method also introduced a method for assigning a confidence
value to individual points, as a way of introducing constraints. Increasing the
confidence value of an individual point will cause the surface to become closer to
that specific point. This was introduced by adding a new parameter in the energy
*function, β, which is multiplied with the amount that the surface deviates from*
the original point. This parameter is commonly referred to as the confidence of a
point.

Given a point set P , the function that the method minimizes is the following:

*E(χ) =*
Z
Ω
||∇* _{χ(p) −}*→−

*2*

_{V (p)||}*P*

_{dp +}α ∗ Area(P )*p∈P*

*β(p)*X

*p∈P*

*β(p)χ*2

*(p)*(3.2)

This means that in order to minimize the error function, points with a higher confidence will give an increased penalty when having the surface too far away from it.

The choice of these parameters is a way of balancing preservation of points and excluding noise.

An important aspect of the implicit algorithms mentioned is that they are highly dependent on which resolution is used for constructing the 3D grid of cubes. With a higher resolution, more details can be extracted from the point data. In the case of the Poisson Surface Reconstruction method [14], it uses an adaptable octree for representing the points efficiently in memory. The resolution is the lowest allowed depth that can be reached in the tree. Increasing the resolu-tion usually increases the running time and memory usage of the reconstrucresolu-tion process considerably.

**4**

**Geometric Primitive Detection**

Since this thesis is mainly focused on identifying geometric primitives in a point cloud, a more detailed description of the methods used is provided.

**4.1**

**RANSAC**

RANSAC [8] stands for Random Sample Consensus and is an algorithm for iden-tifying structures in a data set. It is particularly suited for data sets where there is an expectation that not all of the samples will be part of the structure in question. The idea of this algorithm is to randomly select a minimum number of samples that is sufficient to fit a given model, and then evaluate the rest of the samples to find data that supports the fitted model. This process is repeatedly performed until some criterion is met.

This can be compared to other methods trying to fit all of the available data to a proposed model. In the presence of many outliers, this will lead to a bad approximation of the true model. The idea of this method is instead to ignore all points that could not be fitted to the proposed model.

For example, if the model is a plane, the minimum number of points required to fully specify it is three samples. All other samples in the data set can then be evaluated to see if they are located within the plane or not.

In the original article proposing the algorithm, the following parameters were proposed as input:

• Error tolerance

• Number of subsets to try • Threshold

14 4 Geometric Primitive Detection

Figure 4.1: Illustration of using RANSAC for identifying a line in a noisy
data set. Initially, all points are unassigned. In the second step, two points
are chosen at random to form a candidate configuration for a line. In the
third step, all the points in the data set are checked if any of them are in
*support of the proposed line. illustrates the threshold that a point can*
deviate from the proposed candidate.

4.2 Efficient RANSAC 15

The error tolerance determines the maximal amount that a point can deviate from the model for it to be included. The number of subsets to try is the num-ber of randomly selected initial configurations. The threshold is the minimum number of points necessary to claim that the model in question is present in the data.

Naturally, the number of minimum configurations that can be constructed
from a given point set grows very rapidly in relation to the input size. Assuming
*there are M points in a data set, and N is the number of samples required for*
describing the model, the number of possible configurations can be calculated as
follows:
*C = M*
*N*
!
= *M!*
*N !(M − N )!* (4.1)

Since point clouds can easily contain several millions of points, trying all pos-sible candidates in the data is in general not tractable.

**4.2**

**Efficient RANSAC**

In Schnabel et al. [27], some extensions were proposed to the RANSAC [8] algo-rithm for making it more efficient. One of the strategies is focused on improving the probability of selecting a good initial candidate. The idea is based on the fact that there is a higher probability that points that are close to each other belong to the same primitive. This assumption can be used for reducing the number of initial candidates significantly.

The method presented also incorporates an octree for making the retrieval of points more efficient.

Another important aspect of RANSAC [8] is that a model does not necessarily impose size limits, for example a line or a plane. Hence, points that have been identified as supporting the model are not necessarily connected to the same part as the other data points. "Efficient RANSAC" [27] introduces a method for deter-mining this. The method projects the points that are found to support the model on a bitmap and the points are connected if the distance in the bitmap is below a configurable threshold.

The method relies on the following parameters:

*• : Threshold for the distance that a data point can deviate from the *
candi-date model.

*• γ: Minimum sampling rate of the input data.*

*• η: Threshold of the maximum deviation of the normal vector from the *
can-didate model.

*• τ: Minimum number of data points required for a candidate to become*
accepted.

16 4 Geometric Primitive Detection

*The parameter is measured in the least-squares sense. Given normalized*
*vectors A and B, the η parameter, which is used to limit the maximum *
devia-tion in direcdevia-tion between normal vectors and the candidate shape, is used in the
following sense:

|_{A · B| > η}_{(4.2)}
In other words, it is necessary that the absolute value of the dot product
*between the two vectors are at least η for them to be determined to be similar*
enough. The absolute value of the dot product between two normalized vectors
range between one and zero, where it will be zero if the vectors are orthogonal
and one if they are parallel.

**5**

**Detection of Missing Data**

This chapter will explain the different techniques that will be used in order to find differences between a reconstructed surface and the point cloud that was used for the reconstruction.

**5.1**

**FLANN**

Since the point clouds typically contain on the order of several million points, it is important to use efficient data structures for performing operations on them. FLANN [22] is a library built for performing fast approximate nearest neighbour searches. The library helps with identifying a good configuration for the data pro-vided. The library implements three different operations that can be efficiently performed:

*• KN N : K nearest neighbour search. Retrieves the K number of nearest*
neighbours.

*• RN N : Radius nearest neighbour search. Returns all the points within a*
given radius of a specified data point.

*• RKN N : Radius K nearest neighbour search. A combination of K nearest*
neighbour and radius search.

**5.2**

**Clustering Methods**

Two candidates of clustering methods have been selected for evaluation. One partitioning and one hierarchical method.

18 5 Detection of Missing Data

**5.2.1**

**K-Means Clustering**

*The K-Means [10] method aims to group a given set of points in K groups, or *
clus-ters. The criterion that it attempts to minimize is the sum of squared distances
between points inside the group. Finding the optimal solution to this problem is
NP-hard but many heuristics have been published for making it useful still [24].
*A common heuristic for computing the K-Means clusters is the Lloyd’s method*
[20]. It is described as follows in [24]:

1. Seed the process with some initial centers.

2. Cluster all the data samples to belong to the center that is closest.

3. Update the center of the cluster to be the average of all points that has been assigned to that particular cluster.

There are different ways of choosing an initial configuration. A common
*method is to select K random points from the set and use those as initial *
clus-ter cenclus-ters.

The steps are repeated until no changes are made in the cluster configuration. Given that this method is a heuristic for the problem, it does not guarantee find-ing a global optimal solution.

A major aspect of the K-Means [10] method is that it is necessary to select the number of clusters before running the algorithm. This can in many cases be a challenging task, since for many types of input data the number of expected clusters will vary.

**5.2.2**

**Agglomerative Clustering**

Agglomerative clustering [1] is a form of hierarchical clustering, and can be seen as a bottom-up approach. Initially, all points are assigned a unique cluster. Iter-atively, the closest pair of clusters are combined. There are a couple of different methods for determining which clusters are the most similar. One method, which is perhaps the simplest one, is the single-linkage method. The idea behind this approach is the following:

*Given two distinct clusters, CAand CB, find the two points, PA*∈*CAand PB*∈

*CBsuch that kPA*−*PB*kis minimized. If the distance is below a certain threshold,

the clusters are joined.

Compared to the K-means [10] method, hierarchical methods avoid the prob-lem of having to decide beforehand the number of clusters. Instead, the probprob-lem here is selecting an appropriate threshold of when to stop merging clusters. If no threshold is used, eventually all data samples will be in one single cluster.

**6**

**Method**

This chapter will present and motivate the choice of method and describe the im-plementation of the different parts necessary to answer the posed research ques-tions described in section 1.2.

**6.1**

**Tools**

All of the different components of this work are implemented using the C++ pro-gramming language and the Standard Template Library. The tool for visualizing the point clouds will in general be MeshLab.

**6.2**

**PLY File Format**

All input and output data containing point clouds or triangular meshes will be represented in the PLY file format. The PLY file format is a simple format for storing both point clouds and triangular meshes.

**6.3**

**JSON File Format**

The input for the data generator is formatted using the JSON (Javascript Object Notation) [6] file format. The format provides a convenient way of representing objects in ASCII.

20 6 Method

**6.4**

**Generating Test Data**

To efficiently be able to evaluate the results, a tool will be created for generating point cloud data. This tool takes a specification of geometric primitives and pro-duces a point cloud and also has the ability of generating noise. Noise can be used for normal vectors, positions of the points or adding additional points that can be considered outliers.

The noise on the normal vectors are created using a normal distribution, where
*the standard deviation will be referred to as σN*. Each component of the vector is

added with a sample from the distribution before it is normalized.

When generating noise for the position of the points, a normal distribution is
*also used. The standard deviation for the position will be referred to as σP* in the

experiments.

Outliers are uniformly generated over the scene. This is done by calculating
the bounding box of the generated point cloud and then using a uniform
distri-bution for determining the position of the outliers. The directions of the normal
vectors are calculated using a normal distribution, where one sample is drawn
for each component of the vector. The normal vectors are then normalized. The
number of outliers will generally be described as the number of points expressed
as a percentage of the total amount of points in the original data. That is, if for
example the level of outliers is 100%, the number of points in the total data set
*will have doubled from the original. This type of noise will be referred to as σo*.

This tool will be used throughout the work to continuously evaluate the per-formance of the different methods.

The generator takes a JSON file as input which specifies the shapes that should be included in the result, and produces a point cloud in the PLY file format. It also stores a matching of which shape a point in the point set belongs to, which is later used for measuring the accuracy of the primitive detection method.

**6.5**

**Identifying Primitives**

As previously mentioned, there has been many methods related to identifying primitives in different types of input data. Based on studying the available lit-terature, the method that has been chosen for this thesis is the one presented by Schnabel et al. [27], which is described in further detail in section 4.2. The moti-vation for choosing the method is that it has the ability to detect not only planes but also many other types of shapes such as cylinders and spheres. Given that it is based on the RANSAC [3] algorithm, it should theoretically be highly resilient to noise, which is an important characteristic for this investigation.

The implementation of [27] is available for research purposes, hence this will be used as a basis for the evaluation.

6.6 Estimation of Density 21

**6.6**

**Estimation of Density**

Since reconstructed point clouds do not necessarily have the same density of points, the density parameter is automatically estimated from the input point cloud. As [27] states, the density parameter should correspond to the distance between points in the point cloud. To calculate this, the FLANN [22] library is used for efficiently calculating the median distance between points. The median is chosen instead of the average to try and negate the impact of potential outliers.

**6.7**

**Preprocessing of the Point Cloud**

If the primitives are successfully identified, the information needs to be incorpo-rated into the final mesh. A number of different alternatives are explored.

**6.7.1**

**Refitting a Shape**

Given that a primitive has been identified with a high probability in a set of points, this information could be used to adapt the points more precisely to the primitive to reduce the amount of noise. There are a few different aspects of this which are explored.

**Recalculating point normals**

Based on the theory of the Screened Poisson Surface Reconstruction [15] and the experimental results presented in the result chapter 8.1, the normal vectors are an important aspect of the point cloud for a successful surface reconstruction.

Given information about what primitive a particular point belongs to, the normal vector can potentially be better approximated. Adhering to the primitive shape better in terms of direction can guide the surface reconstruction method in making a better choice of how to reconstruct the surface.

There is an obvious limitation regarding this approach, given that the method for identifying the primitives also relies on normal information.

**Projection of points onto the shape**

The placement of the points are of course an important part of the surface recon-struction as well. If a shape can be successfully identified, projecting the noisy points on an ideal shape might guide the reconstruction to a better final result.

22 6 Method

Figure 6.1:Illustration of projecting points onto their identified shape.

**Removal of outliers**

The methods for constructing the point clouds are subject to noise. Under the assumption that the majority of the input can be described by a set of shapes, removing points that could not be fitted to a primitive could potentially be a method for reducing the noise. Removal of these points are done by segmenting the point cloud based on the primitives and excluding the points that could not be described accurately with the accepted shapes.

**6.7.2**

**Increase Confidence on Identified Shapes**

Since the chosen surface reconstruction method allows for the possibility of weight-ing points, this is an interestweight-ing opportunity to explore. Assumweight-ing that points that can be matched to a specific primitive are points that are interesting to keep, increasing the confidence on those points, seems like it could have a positive im-pact on the reconstruction.

With the available implementation of the Screened Poisson Surface Recon-struction method [15], it is possible to specify the confidence by changing the length of the normal vector, which the implementation will include in the calcu-lations.

Using prior information about points to infer the importance and correctness of them can be seen as trying to reduce the relative impact of noise in the input data, or conversely trying to strengthen the signal relative to the noise.

**6.8**

**Automatically Identifying Problematic Areas**

In order to be able to use this type of system in a more automated manner, a desir-able property is that it has as little effect as possible on areas which do not need any additional processing. One way of approaching this problem is potentially to first reconstruct a surface and then compare that surface to the initial point cloud. That information can potentially be used to only do additional process-ing on areas where the point cloud differs significantly from the reconstructed surface.

The ideal method would be to check if every point is on one of the triangles in the mesh. This would however be relatively computationally expensive. Given

6.8 Automatically Identifying Problematic Areas 23

that Screened Poisson Surface Reconstruction [15] produces a mesh where ver-tices are relatively dense and similarly spaced, it could potentially be sufficient to only compare the vertices against the points. The purpose is also not to get a perfect comparison between the surface and the point cloud, but rather use it as an indication for problematic areas.

Naively comparing all points in the point cloud with all the vertices in the
*surface will not scale well, due to the time complexity being O(nm), where n is*
*the number of points in the point cloud and m is the number of vertices in the*
mesh. This means the overall complexity will be roughly squared in relation to
the input data.

To avoid the quadratic behavior, the FLANN [22] library will be utilized.
To summarize, the goal of this approach is to classify points as either being
counted as being close enough to the reconstructed surface, or not being close
enough. The threshold for determining the maximum distance allowed before a
point is classified as not being included in the final surface, will be referred to
*as φ. The idea is then to specify a threshold on how many points a cluster must*
contain for it to be deemed as sufficiently large, but this is not explored in the
evaluation.

**6.8.1**

**Computing Clusters of Missing Points**

A problem with looking at the total number of points that are not described well by the surface, is that for a large primitive, it is likely that many points will be classified as outliers. In this case, it would be interesting to see if it is possible to find dense areas of points which are not described well.

There are many available methods for performing clustering of data samples. Two methods have been described in this thesis, the K-Means [10] method, and the Agglomerative [1] method. As described, K-Means [10] requires the number of clusters to be selected beforehand. For this scenario, that might not be a simple task. The expectation is also that clusters will be of many different sizes, which K-Means [10] is not well suited for.

Based on that motivation, Agglomerative [1] clustering has a few
characteris-tics that are well suited for this task. Namely, that the number of clusters does not
need to be decided beforehand. Additionally, it can handle clusters of different
*sizes and shapes better. θ will refer to the maximum distance allowed for when*
merging clusters.

As previously stated, the problem with hierarchical clustering methods is that they do not scale well for large input data. Depending on the threshold for de-termining what is a classified as an outlier and not, the number of outliers is expected to be relatively small compared to the full input data.

Regardless of the time complexity, it is important to try and make use of ac-celeration structures for making it as efficient as possible. For that reason, the Union-Find [5] data structure will be used for managing the merging of clusters, and FLANN [22] will be used for performing efficient search of neighbours of clusters.

24 6 Method

**6.9**

**System Architecture**

To summarize, the overall system architecture is illustrated with a flowchart in figure 6.2 to clearly demonstrate the relationships between the different compo-nents and subsystems.

Figure 6.2:Overall system architecture.

Figure 6.2 provides an overview of the entire proposed system. The blue part of the system is an overview of the main system. The first part of this system is the reconstruction of a point cloud from a set of images. The second step in the process is identifying shapes in the reconstructed point cloud. As for the third step, it is yet to be determined based on evaluations in chapter 8. It will be based on either refitting shapes as described in section 6.7.1 or increasing confidence on relevant points as described in section 6.7.2.

The green part of the system is a potential addon to the system. The full addon will not be evaluated fully in this thesis due to time constraints. The idea of the addon is to detect areas where there seem to be a significant difference between the initial point cloud and the reconstructed surface.

**6.10**

**Metro**

For evaluating the results quantitatively, it will be necessary to perform a com-parison between triangular meshes. For this purpose, the Metro [4] tool will be used. The tool can be used for calculating the RMS (root mean square) distance

6.10 Metro 25

between two surfaces. This metric will be used for quantitatively measuring im-provements by any of the methods. RMS is defined as:

*xRMS*=
r
1
*N(x*
2
1*+ x*22*+ .. + xN*2) (6.1)

In the context of comparing two meshes, each term represents the distance between a sampled point on the pivot surface and the closest point of the surface that it is being compared against.

**7**

**Datasets**

A number of data sets have been provided by Spotscale, and these will be used for evaluating the effectiveness of this method on real-world data, where there are areas that do not reconstruct well. The problem with real-world data is that it is difficult to measure the error. As a complement, a number of 3D models have also been created. In this way, the initial 3D model can act as the truth and it will also be reconstructed through the same pipeline as the real-world data. Noise can then be added to the reconstructed data to introduce the problems that this thesis is aiming to investigate.

As for evaluating detection of primitive shapes, a slightly different approach will be taken. Even if the 3D model is built with primitive shapes, it might not be possible to label each point in the point cloud with information about which primitive it belongs to. Therefore, point clouds are generated using the data generator, where information is kept of which point belongs to which shape.

**7.1**

**Bus Stop**

Figure 7.1 illustrates the bus stop data set. This point set is interesting for mul-tiple reasons. The model includes a small house which contains mulmul-tiple planar regions, both the walls and the ground, and to some extent the roof. Two of the walls are also reconstructed poorly. The wall to the right of the entrance lacks sufficient data and the wall in the back suffers from a significant amount of noise and also a lack of data in the inside of the house.

Another interesting aspect of this data set is that it contains two clear cylin-ders. The lamp and the sign posts.

28 7 Datasets

Figure 7.1:Illustration of the bus stop data set.

**7.2**

**H3**

Figure 7.2 illustrates the H3 data set. This data set is relatively large, containing about 38M points. This makes it useful for looking at how well the method scales to larger data sets. The model also contains two regions which construct poorly, which are both modelling thin fences, where there is both noise and a lack of data.

7.3 Synthetic Fence 29

**7.3**

**Synthetic Fence**

Figure 7.3 illustrates the synthetic fence data set. The point set is generated by one big rectangle for representing the ground, and four rectangles of which pur-pose is to model, with some imagination, a thin fence.

**7.4**

**Synthetic Wall**

Figure 7.4 illustrates the synthetic wall data set. The point set is generated by four rectangles, one rectangle covering the entire back side and three planes on the front at different heights. The purpose of this point set is to model a thin wall segment, similar to the walls for the bus stop.

30 7 Datasets

7.4 Synthetic Wall 31

**8**

**Experiments**

In this chapter, a number of experiments will be presented. Initially, a short evalu-ation of Screened Poisson Surface Reconstruction [15] is presented. The purpose is to gain an intuitive understanding of the impact of the different parameters that control the method, such as resolution and point weight. After that, the "Ef-ficient RANSAC" [27] method will be evaluated both on synthetically generated data and real-world data on its effectiveness at finding shapes.

Based on the geometric primitives that could be identified, both refitting of points as described in section 6.7.1, and increasing confidence on points as de-scribed in section 6.7.2, are evaluated on few different scenarios.

The final experiments evaluate the effectiveness of comparing a reconstructed surface and the initial point cloud combined with agglomerative clustering.

**8.1**

**Evaluation of Screened Poisson Surface**

**Reconstruction**

Since Poisson Surface Reconstruction [14] and Screened Poisson Surface Recon-struction [15] is a vital component of this thesis, a number of evaluations relevant to this work will be presented, and will be used as a basis for understanding the properties necessary of the point cloud for the method to be able to produce a good reconstruction.

**8.1.1**

**Impact of the Point Weight Parameter**

In figure 8.1, the bus stop data set 7.1 is used for illustrating the effects of modify-ing the point weight for all points in the reconstruction, when usmodify-ing a relatively low resolution. In this case, the octree depth is set to 8, which would correspond to a regular 3D grid of size 2563.

34 8 Experiments

Figure 8.1:Illustration of using a different point weight with an octree depth of 8. Top left to bottom right: point weight = 0, point weight = 4, point weight = 16, point weight = 32, point weight = 64, point weight = 128.

8.1 Evaluation of Screened Poisson Surface Reconstruction 35

Figure 8.2:Illustration of using a different point weight with an octree depth of 10. Top left to bottom right: point weight = 0, point weight = 4, point weight = 16, point weight = 32 point weight = 64, point weight = 128.

36 8 Experiments

In figure 8.2, to illustrate the impact of increasing the resolution, the effect is illustrated when a maximum octree depth of 10, a resolution corresponding to 10243.

The relation between the point weight parameter and the complexity in the reconstructed surface is displayed in figure 8.3.

0 20 40 60 80 100 120 140
Point Weight
0
0.5
1
1.5
2
2.5
×106 **Surface Complexity**
Vertices
Faces

Figure 8.3:Graph of the complexity in the terms of number of vertices and the number of faces, of the final surface for different levels of point weights.

From a qualitative perspective, it is clear that when increasing the weight uniformly for all points in the input data, more details are captured in the recon-structed surface. This comes at the cost of capturing more noise and also a slight increase in the complexity of the surface in terms of the number of triangles nec-essary to represent the model.

It is also important to notice that despite weighting the positions of the points with a relatively high value, 128, compared to the default, 4, the holes in the wall are still present. Additionally, the surface has become very rough.

The fact that the holes are still present illustrates an important fact. Increas-ing the importance of individual points will naturally lead to increasIncreas-ing the im-portance of defects and noise in the data as well, making it important to only increase the weight on features that are more valuable to keep.

**8.1.2**

**Noise Robustness**

It is important to understand the effect of noise in the reconstruction phase. The following illustrations will try to illustrate qualitatively to the reader the effects of noise for a simple scenario, where noise has been introduced on the synthetic fence dataset 7.3.

8.1 Evaluation of Screened Poisson Surface Reconstruction 37

Figure 8.4:Illustration of thin surfaces reconstructed with different levels of
*noise applied to the normal vectors. Top left to bottom right: σN* *= 0, σN* =

*0.4, σN= 0.8, σN= 1.2, σN* *= 1.6, σN* = 2.0.

Figure 8.5:Illustration of thin surfaces reconstructed with different levels of
*noise applied the position of the points. Top left to bottom right: σp= 0, σp*

*= 0.1, σp= 0.2, σp= 0.3, σp= 0.4, σp*= 0.5.

Figure 8.4 illustrates the effects of adding noise to the normal vectors of the point cloud, which in other properties is kept ideal, and figure 8.5 illustrates the effects of adding noise to the position of the points. The illustrations demonstrate an important fact, which is that both the position and the direction of the normal vectors can have a significant impact on the reconstructed surface.

**8.1.3**

**Running Time**

Another aspect which is increasingly important as the size of the data sets grow, is the running time of the reconstruction method.

Graph 8.6 shows the running time when reconstructing the full bus stop data set, using Screened Poisson Surface Reconstruction [15] for different levels of

38 8 Experiments

depth. Note that level 12 did not finish, which was likely caused by a limited amount of memory (16 GiB) on the machine used for the evaluation.

5 6 7 8 9 10 11
Depth
0
20
40
60
80
100
120
140
160 **Running Time**
Time (seconds)

Figure 8.6:Graph displaying the running time of the surface reconstruction for different depths.

**8.2**

**Finding Primitive Shapes**

A number of experiments will be presented for evaluating the effectiveness of the "Efficient RANSAC" [27] approach on scenarios, including both synthetic (to make quantitative evaluations possible) and real-world data, that are interesting in the context of this thesis.

**8.2.1**

**Synthetic Data**

**Detection of a Plane**

The first evaluation is performed with one generated plane where various levels of noise has been introduced on the placement of the points. The results are displayed in Figure 8.7. The results are the average of 10 measurements.

8.2 Finding Primitive Shapes 39 0 0.05 0.1 0.15 0.2 0.25 σ p 0.75 0.8 0.85 0.9 0.95 1

Ratio of correctly classified points

**Detection of Plane**

ǫ = 0.1
ǫ_{ = 0.2}
ǫ = 0.3

Figure 8.7:Chart illustrating the ratio of correctly classified points with
*dif-ferent levels of σp*applied. Each line represents how the detection performed

for different thresholds values, .

Figure 8.7 illustrates the effectiveness of the plane detection for different
*lev-els of noise. For the blue line, where the threshold has been set to 0.1, the ratio*
of points that are not classified as belonging to the plane, at around 0.15, which
*is slightly higher than expected. For the red line, where has been set slightly*
*higher, 0.2, the percentage of detected points goes down almost exactly when σP*

is 0.2, which is what would be expected. Similarly, the yellow line includes all
*points up to when σP* is 0.25.

**Detection of multiple planes**

The second evaluation will be based on a model with two planes with a varying
degree of noise. Both planes consist of 10 000 points. The distance between the
*planes is 1 and is set to 0.1. The results are presented in table 8.1.*

40 8 Experiments

Figure 8.8:Illustration of the point set used for the evaluation.

*σP* Correctly classified Shapes identified

0 100% 2 0.1 100% 2 0.2 99% 2 0.3 97% 2 0.4 92% 2 0.5 88% 2 0.6 82% 2 0.7 81% 2 0.8 47% 1 0.9 41% 1 1.0 34% 1

Table 8.1:Results of identifying the two planes when increasing the noise of the points in the planes.

**Detection of Cylinders**

Figure 8.9 illustrates the results of detecting a plane and a cylinder in a synthetic ideal point cloud.

Figure 8.9: Illustration of detecting a plane and a cylinder. The plane has been assigned green as color, and the cylinder has been assigned red as color.

8.2 Finding Primitive Shapes 41

As can be seen in figure 8.9, both the plane and the cylinder are correctly identified in the point cloud.

**8.2.2**

**Real-World Data**

**Detection of planes**

For real-world data, as previously mentioned, it is difficult to quantitatively eval-uate the results. Because of this, the evaluation of the detection is limited to visual inspection for real-world data. A number of illustrations will be presented where the point sets have been segmented based on the identified shapes. Figure 8.10 shows a small part of the bus stop data set, where a wall has been segmented into different planes for different values of , the error tolerance.

To evaluate the method for finding primitives in larger data sets, a comparison
is illustrated in figure 8.11, where the entire data set has been the input to the
segmentation method. The illustration shows how the segmentation varies for
different levels of , while the other parameters have been kept constant. The
*other parameters have been set to γ = 0.005, η = 0.95, τ = 200.*

**Detection of cylinders**

Figure 8.12 illustrates the results when detecting cylinders in the bus stop data set, for various levels of the error threshold.

42 8 Experiments

Figure 8.10: Each plane in the point cloud has been assigned an individual
color and points that could not be fitted to a plane have been removed. From
*to to bottom: = 0.001, = 0.005, = 0.01.*

8.2 Finding Primitive Shapes 43

Figure 8.11:Each plane in the entire bus stop data set has been assigned an
individual color. Points that could not be assigned to a plane have not been
*colored. From top to bottom: = 0.001, = 0.005, = 0.01.*

44 8 Experiments

Figure 8.12:Each cylinder has been assigned an individual color. From top
*to bottom: = 0.001, = 0.005, = 0.01*

8.2 Finding Primitive Shapes 45

**8.2.3**

**Summary**

During the evaluation of "Efficient RANSAC" [27] for different types of data sets, the method has been successful at identifying shapes, given correct estimation of the parameters. On the synthetic data, the method was able to accurately identify the points belonging to a specific shape, which was measured. However, a signif-icant difference with synthetic data and real-world data is that in the synthetic data, the parameters are known beforehand.

Estimating the correct parameters for real-world data has proven to some-times be a difficult task. Generally, in these kinds of point clouds, the sampling rate varies over the model, depending on how well the reconstruction methods have been able to identify good features in the input images.

Given that the sampling density varies over the input data, the noise will generally also be different. This makes it hard to pick a good threshold for the maximum deviation from a shape.

46 8 Experiments

**8.3**

**Refitting a Shape**

**8.3.1**

**Synthetic Data**

**Projecting points**

In figure 8.13, noise has been added to the location of the points in the point set. Detection has then been performed, where epsilon has been set to correspond to the noise level, for identifying the planes in the data and the points that be-longs to each. Each point has then been projected into the plane that they have been matched against. Finally, the surface has been reconstructed using Screened Poisson Surface Reconstruction [14].

Figure 8.13: Illustration of identifying planes and projecting the points to
their respective planes, where various levels of noise have been applied.
From left to right: point cloud, reconstructed surface, reconstructed surface
where the points have been fitted to the corresponding plane. Noise applied,
*from top left to bottom right: σP* *= 0.1, σP* *= 0.2.*

**8.3.2**

**Real-World Data**

**Projecting points**

8.3 Refitting a Shape 47

Figure 8.14: Illustration of projecting points onto the detected planes, for different thresholds. From top to bottom: = 0.001, = 0.005, = 0.01.

48 8 Experiments

**Removing outliers**

Figure 8.15 gives a qualitative comparison of the effect of removing all points that could not be fitted to any plane.

Figure 8.15: Illustration of removing all points that could not be fitted to a
plane. From top-left to bottom-right: Original point cloud, Mesh from
orig-inal point cloud (point weight is zero), Point cloud segmented into planes,
*Mesh when all outliers have been removed (point weight is zero) = 0.01.*

**8.3.3**

**Summary**

**Projecting points**

Looking at the appearance of the mesh from the noisy point cloud, some defects are clearly visible such as holes and the surface is not very smooth. The appear-ance of the mesh where the points have been fitted to their planes look consider-ably better, while still not perfect. This approach is however problematic for real-world situations, since it is not a simple task to distinguish noise from details that should be preserved.

*This fact is also illustrated in figure 8.14. It is clear that as in the shape*
detection is increased, the surface gets progressively flattened out. This is
espe-cially clear on the roof and the ground. What is also important to note here, is
that fitting the points does not seem to have a big impact on the holes in the wall,
which was the original goal.

8.4 Increasing Confidence of Primitive Shapes 49

**Removing outliers**

Looking at 8.15, it is clear that for certain areas the method has a positive effect. On the roof, there is no longer a hole present on the left side. Additionally, it has a sharper edge on part facing forward.

Looking at the wall, it also looks slightly better. Mostly because it looks quite a bit smoother. Naturally, not all things that should be preserved will be possible to match to a shape, which is certainly an undesirable property.

In conclusion, the experiment indicates that noise can have a significant im-pact on certain details in the reconstruction. Obviously, the big problem with using this method is that in many cases there will be details which cannot be ex-plained by one of the available primitives, causing them to be filtered out. Also, if the primitive detection is configured too strictly, it might even filter out points that are part of the shape that is supposed to be preserved.

Even if this is a method which has some of undesirable properties, the impor-tant result is that if a method can be found for filtering out the noise, or at least lowering the importance of it, this could improve the reconstruction process.

**8.4**

**Increasing Confidence of Primitive Shapes**

**8.4.1**

**Synthetic Data**

To illustrate the effect of increasing confidence of certain parts of the data, the synthetic wall model is used to visualize the impact of different combinations of the amount of outliers and the size of the confidence.

Figure 8.16 illustrates the effect when increasing confidence on the detected shapes. Chart 8.17 visualizes the difference between the surfaces in terms of the RMS metric.

It is interesting to compare the effect of the confidence with the other methods that has been looked at in this thesis. Figure 8.18 illustrates, similar to how the different confidence values were compared, the effect that the methods have on reducing noise and preserving the detected planes.

The experiment in figure 8.18 has been done in the following way:

1. Noise has been added in the form of outliers to the synthetic wall point cloud

2. Detection of planes in the point cloud with added noise has been performed 3. Each method, projecting, removing outliers (idealizing), and increasing the

confidence, is applied individually

4. Surface is reconstructed for each result using Screened Poisson Surface Re-construction [15]

5. RMS is calculated between each reconstructed surface and the reference, which had no noise added

50 8 Experiments

Each measurement is the average of five iterations, since "Efficient RANSAC" [27] is a probabilistic method.

Note that further details of how the noise is generated are described in section 6.4.

Looking at the comparison, it is clear that fitting points identified to belong to a plane does not have a big impact. This is expected because the additional noise added should ideally not be identified to belong to a plane, hence the impact should be small. The result of removing all points which could not be matched to a plane also indicates that the detection of the planes are working well in this scenario, since it is able to filter out the non-interesting data and keep the final result close to the original model. Comparing both of the different methods with the method of adding confidence, the confidence method falls between the two in terms of being able to preserve the original model.

Another interesting fact is that according to the RMS metric, by simply apply-ing confidence to points belongapply-ing to the planes in the data, the surface differs from the reference. Comparing with the evaluation regarding different values of point weight done in [15], the conclusion there is that by increasing the point weight, the final surface fits the original points better. It is likely that the same effect is seen here. That is, by increasing the confidence parameter, the final re-constructed surface aligns closer to the points in the point cloud, at the price of a less smooth surface.

**8.4.2**

**Real-World Data**

Results for increasing confidence on planar regions on the house in the bus stop data set are presented in figure 8.19. Planar regions have been identified and the confidence of those regions have been increased to 10. To see the effect on another situation, a comparison is presented in figure 8.20 when the fence in the H3 dataset 7.2 has been modified to increase the confidence on the detected planes.

Another situation is a small hole that occurs in another fence in the H3 data set 7.2, see figure 8.21.

8.4 Increasing Confidence of Primitive Shapes 51

Figure 8.16: Illustration of a few different configurations for generating
the surface, with increasing levels of noise. Reconstruction
configura-tion from left to right: [point weight=0, confidence=1], [point weight=4,
confidence=1], [point weight=4, confidence=10], [point weight=4,
*confi-dence=100]. Levels of outliers from top to bottom: σo* *= 0%, σo* = 100%,

*σo*= 200%.
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Outliers
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
0.22
0.24
RMS

Point weight = 0, Confidence = 1 Point weight = 4, Confidence = 1 Point weight = 4, Confidence = 10 Point weight = 4, Confidence = 100

Figure 8.17:RMS measurements when comparing the reconstructed surface without noise against the reconstructed surfaces with noise applied.

52 8 Experiments 0 0.5 1 1.5 2 2.5 Outliers 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 RMS Projected Removal of outliers Confidence = 10 Unmodified

Figure 8.18:RMS measurements when comparing the reconstructed surface without noise against when the different methods have been applied. All surfaces have been reconstructed with the default point weight of 4.

8.4 Increasing Confidence of Primitive Shapes 53

Figure 8.19:Illustration of increasing the confidence on planar regions in the bus stop data set. From top to bottom: The original point cloud segmented into identified planes. Mesh from original point cloud. Mesh from point cloud where confidence has been set to 10.

54 8 Experiments

Figure 8.20: Illustration of increasing confidence on the planar regions of the fence in the H3 data set. From top to bottom: The original point cloud segmented into identified planes. Mesh from original point cloud. Mesh from point cloud where confidence has been set to 10.