44
1 3D Point Cloud Processing Dr. Andreas Nüchter July 23, 2014 Robotics and Telematics The image depicts how our robot Irma3D sees itself in a mirror. The laser looking into itself creates distortions as well as changes in intensity that give the robot a single eye, complete with iris and pupil. Thus, the image is called "Self Portrait with Duckling". 3D Point Cloud Processing Prof. Dr. Andreas Nüchter Planes

Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

  • Upload
    vohuong

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

13D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

The image depicts how our robot Irma3D sees itself in a mirror. The laser looking into itself

creates distortions as well as changes in intensity that give the robot a single eye,

complete with iris and pupil. Thus, the image is called

"Self Portrait with Duckling".

3D Point CloudProcessing

Prof. Dr. Andreas Nüchter

Planes

Page 2: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

23D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

SIFT Example (1)

• Typical 30000 features in animage of 3.6 Megapixel

• Example:

Page 3: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

33D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

SIFT Example (2)

• Typical 30000 features in animage of 3.6 Megapixel

• Example:

Page 4: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

43D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Remember: Feature-Based Registration

Page 5: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

53D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Minimization using Least Squares

• This minimization does not tolerate “outliers”

0 2 4 6 8 10 12-2

0

2

4

6

8

10

12

14

inliers

Outlier

0 2 4 6 8 10 12-2

0

2

4

6

8

10

12

14

Inliers

Outlier

Correct line

Page 6: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

63D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Robust Estimator for Data with Outlier

The M-estimator and Least-Median-of-Squares (LMedS) estimator cannot cope with 50% outliers

• Solution: The RANSAC (RANdom SAmple Consensus) Algorithm

Developed by Fischler and Bolles

One of the most importtant techniques in computer viso

Can cope with 50% or more outlier

Page 7: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

73D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

The RANSAC Algorithm – In General

• Generate M (a predefined number) of Model hypotheses, from which all a calculated by a minimal set of points

• Evaluate all hypotheses

• Calculate the remaining error using all data.

• Points with errors smaller than a threshold are classified as “Inlier”

• The hypothesis with a maximal number of “Inlier” is chosen. Aterwards the hypotheses is re-estimated, using only the inlier.

Page 8: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

83D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

The RANSAC Algorithm – Formal

k := 0

Repeat until P(better solutions exists) < η

(cost function C and step counter k)

k := k + 1

I. Hypothesis estimation

(1) Select random set

(2) Calculate parameter

II. Verification

(3) calculate costs

(4) if C* < Ck then C*:=Ck, p := pk

end

mSUS kk ||,)( kk Sfp

Ux kk xpc ),(

Page 9: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

93D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Example: Line Detection with RANSAC (1)

• Given the following set of points

Page 10: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

103D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Example: Line Detection with RANSAC (2)

• Select points @ random

Page 11: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

113D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Example: Line Detection with RANSAC (3)

• Estimate a line based of the chosen points

Page 12: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

123D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Example: Line Detection with RANSAC (4)

• Calculate the error that is made in this estimation

Page 13: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

133D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Example: Line Detection with RANSAC (5)

• Apply a threshold; estimate a new line based on the red and green points

Page 14: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

143D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Example: Line Detection with RANSAC (7)

• Repeat everything for different random points

Page 15: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

153D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

RANSAC for Plane Detection

Page 16: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

163D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

RANSAC for Plane Detection

Page 17: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

173D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

RANSAC for Plane Detection

Page 18: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

183D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Detecting Shapes with RANSAC

• Improve selection of sample points– Choose points with higher likelihood if in close proximity– Lower number of draws required

• Speed up validation of hypothesis

R. Schnabel, R. Wahl, and R. Klein. Efficient RANSAC for Point-Cloud Shape Detection. Computer Graphics Forum, 2007.

Page 19: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

193D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Detection of Lines (1)

• Example: Accumulator with point pairs

Representation using the Hessian normal form:

We need a discrete accumulator H[ρ][l] : Both ρ and l are represented with finite

Page 20: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

203D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Detection of Lines (2)

Hough Transformation of a line(based on edge point pairs)

• Input: edge points (x1, y1), (x2, y2), . . . , (xn, yn)

• Output: lines that go through these edge points

• One can expect that there will be peaks in the accumulator array H[ρ][l]. All peaks correspond to a line in the image.

• Huge number of edge point pairs: O(n^2)

Set all elements of the accumulator H[ρ][l] to zero;for (all pairs of edge points in k(r, c)) {

calculate the corresponding ρ and l;H[ρ][l] ++; / Consider discretization of ρ and l /∗ ∗

}Detect peaks in H[ρ][l];

Page 21: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

213D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Detection of Lines (3)

• Accumulator with single edge points:Reduction of the work load: Construct the Accumulator H[ρ][l] with “hints” to possible lines based on single edge points. Unfortunately, every edge point (xi, yi) implies not one edge, but a set of edges (ρ, l):

i.e., a sinusoidal curve in the ρl space.

• Solution: All possible parameters (ρ, l), that fulfill the above constraint (I.e. they represent a line with the current edge point (xi, yi)) are considered and the corresponding counter in the array is incremented.

Page 22: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

223D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Detection of Lines (4)

• Input: Edge points (x1, y1), (x2, y2), . . . , (xn, yn)

• Output: Lines, that go though these edge points1. Transform all adge points (xi, yi) according to

l = xi cos ρ + yi sin ρ from the xy-space to the ρl-space.for (ρ = 0; ρ < 2π; ρ+=dρ)for (l = 0; l < lmax; l+=dl)

H[ρ][l] = 0;for (i = 1; i ≤ n; i++)for (ρ = 0; ρ < 2π; ρ+=dρ) {

l = xi cos ρ + yi sin ρ;H[ρ][l] ++; / Regard the discretisation of l /∗ ∗

/ Increment according to edge width s(xi, yi) poss. /∗ ∗

}2. Search for cluster points in ρl-space, i.e. in H[ρ][l]. 3. All cluster points (ρ0, l0) define a line

l0 = x cos ρ0+y sin ρ0 in xy-space.

Page 23: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

233D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Detection of Lines (5)

• Example:

Page 24: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

243D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Iterations (1)

Page 25: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

253D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Iterations (2)

Page 26: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

263D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Results

Page 27: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

273D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transformation: Example

• Detection of Lines:

Page 28: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

283D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

From 2D to 3D – From Lines to Planes

Page 29: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

293D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Polar Coordinates

Page 30: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

303D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transform (HT)

• Hough Space: - Space–

• Cartesian Space: (x,y,z) – Space

– -∞ < x,y,z < ∞• Hough Transform

– Cartesian Space → Hough Space

– For a point (x,y,z) HT yields all planes that go through (x,y,z)

Page 31: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

313D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Transform – Example

Page 32: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

323D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Discretization – Accumulator Array

Page 33: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

333D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Discretization – Related Work

[Censi, 2004] [Zaharia, 2002]

Page 34: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

343D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Accumulator Ball

• discretize with stepwidth

with and

Page 35: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

353D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparing Accumulators (1)

Page 36: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

363D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Variants - SHT

Page 37: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

373D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Hough Variants• Probablistic Hough Transform (PHT)

– Use p% of the input points only

• Progressive Probabilistic Hough Transform (PPHT)– Pick points randomly and perform HT– Quit when one cell has been voted by p% of the points

• Adaptive Probabilistic Hough Transform (APHT) – Pick points randomly and perform HT– Obtain a list of maxima– Quit when list of maxima remains stable

• Randomized Hough Transform (RHT)– Pick three points randomly– Accumulate the cell corresponding to the plane spanned by

these points– Delete points of plane when threshold is reached

Page 38: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

383D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparing Accumulators (2)

Page 39: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

393D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparing Hough Variants (1)

Page 40: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

403D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparing Hough Variants (2)

Page 41: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

413D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparison with Related Work (1)

• Randomized Hough Transform (RHT)

• Region Growing (RG) [Poppinga, 2008]

• Hierarchical Fitting Primitives (HFP)

[Attene, 2006]

Page 42: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

423D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparision with Related Work (2)

RHT

RG

HFP

Page 43: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

433D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparision with Related Work (3)

RHT

RG

HFP

Page 44: Planes 3D Point Cloud Processing - … · 4 3D Point Cloud Processing Dr. Andreas Nüchter ... Representation using the Hessian normal form: ... From 2D to 3D – From Lines to Planes

443D Point Cloud ProcessingDr. Andreas NüchterJuly 23, 2014

Robotics and Telematics

Comparision with Related Work (4)