• No results found

4.3 Indoor Scene Understanding Feature Comparison

5.1.1 Point Types

Both normal and curvature of a point on a surface can be estimated by considering a local neighbourhood of points. For this purpose, a k-NN query (§2.5.1) is used to determine thekmax nearest points for eachp∈P. A maximum distance value,

r, is used to bound the query to the local surface neighbourhood, just in case the point sample density within a particular area is very low. In addition to kmax,

a value kmin is also set, which determines the minimum number of neighbours

required to proceed with the computation. For a given point p, if the number of neighbours at a distance less than r is between kmin and kmax, PCA (§2.5.2)

is used to determine whether p is most likely to be located on a surface or an edge by computing the maximum curvature of p. In a similar fashion to Hoppe

S0

~90

º S1

~90

º S0 S0 S0 S0

~90

º

~90

º

~90

º

~0

º

~0

º

2D Stairs

Geometry

2D Chair

Geometry

Figure 5.4: The point cloud above, representing 2D scenes of stairs and chairs, can be transformed into a graph describing connectivity between line segments. The two graphs, describing connectivity patterns for stairs and chairs can be used to map the line segments to object instances. The states of the graphs represent line segments, whereas the relation describes the approximate angle between line segments.

The ratio of the eigenvalues of this orthogonal basis is used to determine the type of each point. The number of eigenvalues returned by PCA depends on the dimensionality of the input data, which in this case is three and each represents the variance along the three eigenvectors describing the orthonormal basis of the computed OBB. The first eigenvalue e1 represents the largest variance, whereas the seconde2, and third e3 represent the second and third smallest. Eigenvalues are further discussed in §2.5.3 and in more depth by Pauly et al. (2002). If the third eigenvalue is much smaller than the second eigenvalue, i.e. there is minimal variance along the third eigenvector, then the point is labelled assurface. The point is otherwise labelled as edge. A parameter, α, is used to determine the extent of the difference between these two eigenvalues. For example, if set to 12, then if the smallest eigenvalue multiplied by 12 is still smaller than the second eigenvalue, the point is tagged as surface. The neighbourhood function

φ(p, r, kmax) takes as parameters the point, radius and the number of neighbours

required and returns a set of points closest to p and within distance r. For the case-studies in this chapter kmax was set to values ranging from 18 to 48 (Table

5.1). The following set comprehensions are used to partition P in three sets:

Pu ={p:P| |Np|< kmin•unspecif ied(p)},

Ps ={p:P| |Np| ≥kmin∧(e3∗α)< e2•surf ace(p)},

Pe ={p:P| |Np| ≥kmin∧(e3∗α)≥e2•edge(p)},

where Np is the set of neighbour points returned by φ(p, r, kmax). Following

this labelling, the input point cloud is thus partitioned in three sub-sets P =

Pu∪Ps∪Pe. The resultant set partition depends on the different parameters used.

Decreasing the value of r, would typically increase the size of Pu as this would

generally decrease the size of Np. The same effect can be had by increasing kmin

which is set to three in all examples. Clearly, r should be set to a value which takes in consideration the coordinate space in which point clouds are defined. Alternatively, point clouds can be scaled such that a fixed r value can be used. These values are currently set manually by the user. Variations in α effect the distribution of points between Ps and Pe. At the extremes, this could lead to

eitherPsorPebeing empty on the assumption thate3 is not 0, i.e. all neighbours

are perfectly sampled from a perfect plane. In general, decreasing α results in more points satisfying the set comprehension for Ps, whereas increasing it

for Pe. The following section describes how this parameter is used to straddle

between over and under-segmentation. Figure 5.5 illustrates an example showing the process of how eigenvalues are used to determine whether a point lies on an edge or not. In order to improve clarity, the computation is carried out on a 2D surface and PCA is carried out on an oriented rectangle bounding p

and its two neighbours, rather than an OBB volume as in the case of 3D. The second and third columns illustrate the effect of reducing sampling density on the computation of the set partition. Figure 5.6 illustrates the same example surface, with different columns representing increasing values of kmax. Whereas

with kmax set to 3, small variations in the shape of the surface are captured, as

kmax increases these small variations are lost, which might be a good thing in the

context of a much larger point cloud.

The distinction between points in Pe and Ps is important. In general, points

inPs are surrounded along the surface of an object by points inPe. For instance,

Figure 5.7 shows edge points extracted from a simple scene where the different box faces are surrounded by points in Pe. Figure 5.8 illustrates the edge points

computed on a more complex example. Figure 5.9 illustrates a number of point clouds, after points are labelled as eitheredge (black),surface (green) orunspeci- fied (grey). In the first row, edge point fall mostly on plant leaves and boundaries of chairs. The second row shows how this type assignment of points contributes towards outlining the contour of the individual stones making up the apse wall of a pre-historic temple. The third row shows how edge points delineate the buildings and agricultural field boundaries in the LiDaR acquired point cloud.

Acceleration structures are used to speed up k-NN queries. Both a sparse grid and a kd-tree data structures have been used for this purpose, with the kd- tree approach generally providing better overall performance both for computing nearest neighbours and rendering purposes. This work uses the FLANN (Fast Library for Approximate Nearest Neighbour) libraries developed by Muja & Lowe (2009b) to carry out k-NN computations.