26.07.2013 Views

Efficient Change Detection in 3D Environment for Autonomous ...

Efficient Change Detection in 3D Environment for Autonomous ...

Efficient Change Detection in 3D Environment for Autonomous ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

scalar field over which an isovalue density threshold h can<br />

be used to cluster po<strong>in</strong>ts <strong>in</strong> the implicit volume def<strong>in</strong>ed by<br />

the set S = {p ∈ R 3 ; G (p) ≥ h}.<br />

Given a po<strong>in</strong>t cloud set P with n po<strong>in</strong>ts, we def<strong>in</strong>e, <strong>for</strong><br />

each po<strong>in</strong>t pi ∈ P , a simple local density gi : R 3 → R which<br />

is a kernel function chosen to be a Gaussian:<br />

<br />

gi (p) = exp<br />

.<br />

− pi−p2<br />

2σ 2<br />

The parameter σ smooths the <strong>in</strong>fluence of pi over its<br />

neighborhood. We set σ with the value of the maximum<br />

Euclidean distance from two po<strong>in</strong>ts pi, pj ∈ P to be<br />

considered neighbors. Hence, if pi and pj are neighbors,<br />

which means pi − pj ≤ σ, the density contribution δ<br />

between pi and pj is given by<br />

δ = gi (pj) = e − pi−pj 2<br />

2σ2 1 − ≥ e 2 .<br />

In order to def<strong>in</strong>e the global density function G, we<br />

accumulate the local density functions gi contributed by all<br />

po<strong>in</strong>ts pi, 1 ≤ i ≤ n,<br />

n<br />

G (p) = gi (p).<br />

i=1<br />

S<strong>in</strong>ce the local density function gi (pi) = 1 <strong>for</strong> all pi ∈ P ,<br />

if pi has k neighbors, then G (pi) ≥ 1 + kδ. Our method<br />

clusters only po<strong>in</strong>ts with k or more neighbors by sett<strong>in</strong>g a<br />

threshold value h = 1 + kδ. Fig. 2 and 3 illustrates this<br />

cluster<strong>in</strong>g strategy <strong>for</strong> 1D and 2D po<strong>in</strong>t cloud, respectively.<br />

Fig. 2. Example of the po<strong>in</strong>t cluster<strong>in</strong>g <strong>in</strong> 1D. Local density functions are<br />

accumulated to def<strong>in</strong>e a global density function. Notice that accumulated<br />

density <strong>for</strong> p5 is <strong>in</strong>sufficient to cluster it, given the threshold.<br />

(a) (b) (c)<br />

Fig. 3. Example of the po<strong>in</strong>t cluster<strong>in</strong>g <strong>in</strong> 2D. Increas<strong>in</strong>g values of<br />

smooth<strong>in</strong>g parameter σ, lead to <strong>in</strong>creas<strong>in</strong>g cluster volume and more po<strong>in</strong>ts<br />

are clustered. In (a), two po<strong>in</strong>ts are considered outliers, <strong>in</strong> (b) only one po<strong>in</strong>t<br />

is considered outliers and, <strong>in</strong> (c), no outliers is considered.<br />

In order to speed up computation, we obta<strong>in</strong> a discrete<br />

sampl<strong>in</strong>g <strong>for</strong> the global density function by comput<strong>in</strong>g its<br />

values <strong>for</strong> a <strong>3D</strong> grid def<strong>in</strong>ed <strong>for</strong> the bound<strong>in</strong>g box of the<br />

po<strong>in</strong>t cloud P . For each po<strong>in</strong>t pi ∈ P , its local density<br />

contribution is calculated and summed only <strong>for</strong> a constant<br />

number of grid po<strong>in</strong>ts on its neighborhood accord<strong>in</strong>g to the<br />

kernel mask size s. So, the global density function G is<br />

sampled, <strong>for</strong> all po<strong>in</strong>ts on the grid, <strong>in</strong> time O (n) <strong>for</strong> a po<strong>in</strong>t<br />

cloud with n po<strong>in</strong>ts. The grid values is used as a discrete<br />

approximation <strong>for</strong> G.<br />

B. Cluster<strong>in</strong>g by Implicit Surface<br />

From the theorem of implicit functions, we have that if<br />

f : R 3 → R is smooth and h ∈ R is a regular value, that is,<br />

∇f (p) = 0 <strong>for</strong> all p ∈ f −1 (h), then f −1 (h) is a surface<br />

that partitions the doma<strong>in</strong> R 3 <strong>in</strong>to three sets:<br />

S1 = {p ∈ R 3 ; f(p) < h},<br />

S2 = {p ∈ R 3 ; f(p) = h},<br />

S3 = {p ∈ R 3 ; f(p) > h}.<br />

The global density function G constructed as described<br />

<strong>in</strong> the previous section is a smooth scalar function <strong>in</strong> R 3<br />

and sett<strong>in</strong>g a constant threshold h > 1, we def<strong>in</strong>e a surface<br />

S2 ⊂ R 3 as the boundary of a cont<strong>in</strong>uous volume region<br />

that clusters the po<strong>in</strong>t set P . Sett<strong>in</strong>g h = 1 + kδ we def<strong>in</strong>e<br />

a set to cluster po<strong>in</strong>ts that have at least k neighbors whose<br />

distance is less or equal than σ. This set is implicitly def<strong>in</strong>ed<br />

as S = {p ∈ R 3 ; G (p) > h}.<br />

In order represent and visualize the set S, we extract<br />

a piecewise l<strong>in</strong>ear boundary surface <strong>for</strong> this cluster us<strong>in</strong>g<br />

the algorithm March<strong>in</strong>g Cubes [5]. The method March<strong>in</strong>g<br />

Cubes produces a mesh of triangles approximat<strong>in</strong>g the preimage<br />

G −1 (h) from a grid of cubes where the values of the<br />

function G are known at its vertices. Each cube vertex on the<br />

grid is classified either as positive or as negative, accord<strong>in</strong>g<br />

to its relative position with respect to the set S. The result<strong>in</strong>g<br />

mesh represents a boundary surface that clusters the raw<br />

po<strong>in</strong>t cloud. Different level sets can be extracted <strong>for</strong> the same<br />

po<strong>in</strong>t cloud as long as we use a different isovalue h.<br />

Figure 4-a shows an example of a po<strong>in</strong>t cloud with some<br />

outliers; its level set surface extracted <strong>for</strong> a global density<br />

value h = 1 + 2δ is depicted <strong>in</strong> Figure 4-b, and another<br />

level set surface extracted <strong>for</strong> density level h = 1 + 3δ is<br />

shown <strong>in</strong> Figure 4-c. Notice that multiple components are<br />

well clustered. Notice, also, that <strong>in</strong> Figure 4-c the higher<br />

density level cluster<strong>in</strong>g leads to a disconnected component<br />

(a) (b) (c)<br />

Fig. 4. Example of the po<strong>in</strong>t cloud cluster<strong>in</strong>g <strong>in</strong> <strong>3D</strong>. Raw po<strong>in</strong>t cloud (a),<br />

the cluster<strong>in</strong>g set <strong>for</strong> density level h = 1 + 2δ (b) and the cluster<strong>in</strong>g set <strong>for</strong><br />

density level h = 1 + 3δ (c).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!