© 2011 Frank Nielsen
INF555
Fundamentals of 3D
Lecture 3:
Debriefing: Lecture 2
Rigid transformations/Quaternions
Iterative Closest Point (+Kd-trees)
Frank Nielsen
nielsen@lix.polytechnique.fr
28 Septembre 2011
© 2011 Frank Nielsen
• Depth discontinuity
• Surface orientation
discontinuity
• Reflectance
discontinuity (i.e.,
change in surface
material properties)
• Illumination
discontinuity (e.g.,
shadow)
Harris-Stephens' combined corner/edge detector
© 2011 Frank Nielsen
© 2011 Frank Nielsen
Harris-Stephens edge detector
Aim at finding good feature
© 2011 Frank Nielsen
Harris-Stephens edge detector
Measure the corner response as
Algorithm:
– Find points with large corner response function R
(R > threshold)
– Take the points of local maxima of R
© 2011 Frank Nielsen
© 2011 Frank Nielsen
Edge thresholding hysterisis
● If a pixel value is above the high threshold, it is an edge.
● If a pixel value is below the low threshold, it is not an edge.
● If a pixel value is between the low and high thresholds,
it is an edge if it is connected to another edge pixel,
otherwise it is interpreted as noise.
Two thresholds: low and high
Single threshold value for edges -> Streaking
© 2011 Frank Nielsen
Edge hysteresis
© 2011 Frank Nielsen
Homogeneous coordinates and duality point/line
homogenization
Homogeneous vectorInhomogeneous vector
dehomogenization (also known as
Perspective division)
© 2011 Frank Nielsen
Projective plane
Equivalence class:
is equivalent to
Line coefficients stored in an inhomogeneous vector
Equation of the line:
Point and line have same homogeneous representation:
A point can be interpreted as the coefficients of the line
Point and line have same homogeneous representation:
A point can be interpreted as the coefficients of the line
© 2011 Frank Nielsen
Intersection of lines
Cross-product of two vectors:
Intersection point of two lines is obtained from their cross-product:
Line passing through two « points » l1* and l2*:
l=p*=l1* x l2*
p= l1 x l2
Duality
© 2011 Frank Nielsen
Application:
Detection of line segment intersection
l1=CrossProduct(p,q);
l2=CrossProduct(r,s);
// intersection point is the cross-product
//of the line coefficients (duality)
intersection=CrossProduct(l1,l2);
intersection.Normalize(); // to get back Euclidean point
© 2011 Frank Nielsen
Overview of duality in projective geometry
The determinant of three points represent the volume of their parallepiped.
© 2011 Frank Nielsen
2D Transformations using homogeneous coordinates
© 2011 Frank Nielsen
2D Transformations using homogeneous coordinates
© 2011 Frank Nielsen
Cartesian coordinate systems in 3D
© 2011 Frank Nielsen
3D Transformations using homogeneous coordinates
Be careful: Gimbal lock
© 2011 Frank Nielsen
Euler rotation
© 2011 Frank Nielsen
Cross-product/outer product
Consider the cross-product as a matrix multiplication:
Outer-product
© 2011 Frank Nielsen
Arbitrary matrix rotation:
Rodrigues' formula
Equivalent to:
© 2011 Frank Nielsen
© 2011 Frank Nielsen
© 2011 Frank Nielsen
Rigid transformations
Concatenation (non-commutative!)
© 2011 Frank Nielsen
Quaternions for rotations
● Easy to invert scalars
● For 2D vectors, invert using complex numbers...
● For 3D vectors??? (-> 4D quaternions)
● For dD vectors??? (-> 8D octonions)
● Easy to invert scalars
● For 2D vectors, invert using complex numbers...
● For 3D vectors??? (-> 4D quaternions)
● For dD vectors??? (-> 8D octonions)
Provide rotation operator that is invertible
Sir William Rowan Hamilton
Lectures on Quaternions
http://digital.library.cornell.edu/
© 2011 Frank Nielsen
Quaternions: 1D real+3D imaginary
Real part (1D) Imaginary part (3D, i j k vectors)
Multiplication:
Norm (l2)
© 2011 Frank Nielsen
Unit quaternions
For a given 3D point p, we compute its rotation Rp as
Rotation theta around an axis u: Quaternion representation:
conjugate
© 2011 Frank Nielsen
Unit quaternions
for rotations
© 2011 Frank Nielsen
Conversion rotation matrix to quaternion
© 2011 Frank Nielsen
Spherical linear interpolation (SLERP)
LERP is non-sense for rotation matrices:
SLERP is using quaternion algebra:
© 2011 Frank Nielsen
Spherical linear interpolation (SLERP)
Useful for computer graphics animation
(bone, skinning at articulation)
© 2011 Frank Nielsen
Bilateral filtering
Edge-preserving smoothing
Videos/demo
© 2011 Frank Nielsen
Gaussian filtering: Blur everything
Traditional spatial gaussian filtering
© 2011 Frank Nielsen
Bilateral filtering
New! gaussian on the intensity difference filtering
Bilateral Filtering for Gray and Color Images, Tomasi and Manduchi 1998
.... SUSAN feature extractor...
© 2011 Frank Nielsen
Domain
filtering
Range filtering
© 2011 Frank Nielsen
Iterative Closest Point (ICP)
Align point sets. For example, terrains (DEMs)
Robotics
© 2011 Frank Nielsen
Align point sets obtained from range scanners
http://www-graphics.stanford.edu/projects/mich/
© 2011 Frank Nielsen
Solve stone jigsaws...
ICP for solving jigsaws
© 2011 Frank Nielsen
ICP: Algorithm at a glance
● Start from a not too far transformation
● Match the point of the target to the source
● Compute the best transformation from point correspondence
● Reiterate until the mismatch error goes below a threshold
In practice, this is a very fast registration method...
A Method for Registration of 3-D Shapes. by: Paul J Besl, Neil D Mckay.
IEEE Trans. Pattern Anal. Mach. Intell., Vol. 14, No. 2. (February 1992
© 2011 Frank Nielsen
ICP: Finding the best rigid transformation
Given point correspondences, find the best rigid transformation.
Source/ModelObservation/Target
Find (R,t) that minimizes the squared euclidean error:
© 2011 Frank Nielsen
Align the center of mass of sets:
© 2011 Frank Nielsen
Finding the rotation matrix:
Compute the singular value decomposition
Optimal transformation:
© 2011 Frank Nielsen
Registration of many point sets to a common atlas
Scoliotic Spine (Atlas of 307 patients)
Many variants of ICP method (truncated, robust, etc.)Many variants of ICP method (truncated, robust, etc.)
© 2011 Frank Nielsen
In theory,
ICP may provably run very slowly for well-constructedwell-constructed point sets...
What computational geometers say
David Arthur; Sergei Vassilvitskii
Worst-case and Smoothed Analysis of the ICP Algorithm, with an Application to the
k-means Method
FOCS 2006 => O(n/d)^d iterations (exponential)
... but smooth analysis of ICP is polynomial
© 2011 Frank Nielsen
Computing nearest neighbors in ICP...
● Naive linear-time algorithm
● Tree-like algorithm using kd-trees
● Tree-like algorithm using metric ball trees
●...
Challenging problem in very high-dimensions
(common to work up to dimension > 1000 nowadays)
Nearest neighbor of q
© 2011 Frank Nielsen
Installez Processing.org
→ Rendu des TD1, 2 et 3 pour le Mardi 4 Octobre 17h
(Upload work sur la page du cours)

(slides 3) Visual Computing: Geometry, Graphics, and Vision

  • 1.
    © 2011 FrankNielsen INF555 Fundamentals of 3D Lecture 3: Debriefing: Lecture 2 Rigid transformations/Quaternions Iterative Closest Point (+Kd-trees) Frank Nielsen nielsen@lix.polytechnique.fr 28 Septembre 2011
  • 2.
    © 2011 FrankNielsen • Depth discontinuity • Surface orientation discontinuity • Reflectance discontinuity (i.e., change in surface material properties) • Illumination discontinuity (e.g., shadow) Harris-Stephens' combined corner/edge detector
  • 3.
  • 4.
    © 2011 FrankNielsen Harris-Stephens edge detector Aim at finding good feature
  • 5.
    © 2011 FrankNielsen Harris-Stephens edge detector Measure the corner response as Algorithm: – Find points with large corner response function R (R > threshold) – Take the points of local maxima of R
  • 6.
  • 7.
    © 2011 FrankNielsen Edge thresholding hysterisis ● If a pixel value is above the high threshold, it is an edge. ● If a pixel value is below the low threshold, it is not an edge. ● If a pixel value is between the low and high thresholds, it is an edge if it is connected to another edge pixel, otherwise it is interpreted as noise. Two thresholds: low and high Single threshold value for edges -> Streaking
  • 8.
    © 2011 FrankNielsen Edge hysteresis
  • 9.
    © 2011 FrankNielsen Homogeneous coordinates and duality point/line homogenization Homogeneous vectorInhomogeneous vector dehomogenization (also known as Perspective division)
  • 10.
    © 2011 FrankNielsen Projective plane Equivalence class: is equivalent to Line coefficients stored in an inhomogeneous vector Equation of the line: Point and line have same homogeneous representation: A point can be interpreted as the coefficients of the line Point and line have same homogeneous representation: A point can be interpreted as the coefficients of the line
  • 11.
    © 2011 FrankNielsen Intersection of lines Cross-product of two vectors: Intersection point of two lines is obtained from their cross-product: Line passing through two « points » l1* and l2*: l=p*=l1* x l2* p= l1 x l2 Duality
  • 12.
    © 2011 FrankNielsen Application: Detection of line segment intersection l1=CrossProduct(p,q); l2=CrossProduct(r,s); // intersection point is the cross-product //of the line coefficients (duality) intersection=CrossProduct(l1,l2); intersection.Normalize(); // to get back Euclidean point
  • 13.
    © 2011 FrankNielsen Overview of duality in projective geometry The determinant of three points represent the volume of their parallepiped.
  • 14.
    © 2011 FrankNielsen 2D Transformations using homogeneous coordinates
  • 15.
    © 2011 FrankNielsen 2D Transformations using homogeneous coordinates
  • 16.
    © 2011 FrankNielsen Cartesian coordinate systems in 3D
  • 17.
    © 2011 FrankNielsen 3D Transformations using homogeneous coordinates Be careful: Gimbal lock
  • 18.
    © 2011 FrankNielsen Euler rotation
  • 19.
    © 2011 FrankNielsen Cross-product/outer product Consider the cross-product as a matrix multiplication: Outer-product
  • 20.
    © 2011 FrankNielsen Arbitrary matrix rotation: Rodrigues' formula Equivalent to:
  • 21.
  • 22.
  • 23.
    © 2011 FrankNielsen Rigid transformations Concatenation (non-commutative!)
  • 24.
    © 2011 FrankNielsen Quaternions for rotations ● Easy to invert scalars ● For 2D vectors, invert using complex numbers... ● For 3D vectors??? (-> 4D quaternions) ● For dD vectors??? (-> 8D octonions) ● Easy to invert scalars ● For 2D vectors, invert using complex numbers... ● For 3D vectors??? (-> 4D quaternions) ● For dD vectors??? (-> 8D octonions) Provide rotation operator that is invertible Sir William Rowan Hamilton Lectures on Quaternions http://digital.library.cornell.edu/
  • 25.
    © 2011 FrankNielsen Quaternions: 1D real+3D imaginary Real part (1D) Imaginary part (3D, i j k vectors) Multiplication: Norm (l2)
  • 26.
    © 2011 FrankNielsen Unit quaternions For a given 3D point p, we compute its rotation Rp as Rotation theta around an axis u: Quaternion representation: conjugate
  • 27.
    © 2011 FrankNielsen Unit quaternions for rotations
  • 28.
    © 2011 FrankNielsen Conversion rotation matrix to quaternion
  • 29.
    © 2011 FrankNielsen Spherical linear interpolation (SLERP) LERP is non-sense for rotation matrices: SLERP is using quaternion algebra:
  • 30.
    © 2011 FrankNielsen Spherical linear interpolation (SLERP) Useful for computer graphics animation (bone, skinning at articulation)
  • 31.
    © 2011 FrankNielsen Bilateral filtering Edge-preserving smoothing Videos/demo
  • 32.
    © 2011 FrankNielsen Gaussian filtering: Blur everything Traditional spatial gaussian filtering
  • 33.
    © 2011 FrankNielsen Bilateral filtering New! gaussian on the intensity difference filtering Bilateral Filtering for Gray and Color Images, Tomasi and Manduchi 1998 .... SUSAN feature extractor...
  • 34.
    © 2011 FrankNielsen Domain filtering Range filtering
  • 35.
    © 2011 FrankNielsen Iterative Closest Point (ICP) Align point sets. For example, terrains (DEMs) Robotics
  • 36.
    © 2011 FrankNielsen Align point sets obtained from range scanners http://www-graphics.stanford.edu/projects/mich/
  • 37.
    © 2011 FrankNielsen Solve stone jigsaws... ICP for solving jigsaws
  • 38.
    © 2011 FrankNielsen ICP: Algorithm at a glance ● Start from a not too far transformation ● Match the point of the target to the source ● Compute the best transformation from point correspondence ● Reiterate until the mismatch error goes below a threshold In practice, this is a very fast registration method... A Method for Registration of 3-D Shapes. by: Paul J Besl, Neil D Mckay. IEEE Trans. Pattern Anal. Mach. Intell., Vol. 14, No. 2. (February 1992
  • 39.
    © 2011 FrankNielsen ICP: Finding the best rigid transformation Given point correspondences, find the best rigid transformation. Source/ModelObservation/Target Find (R,t) that minimizes the squared euclidean error:
  • 40.
    © 2011 FrankNielsen Align the center of mass of sets:
  • 41.
    © 2011 FrankNielsen Finding the rotation matrix: Compute the singular value decomposition Optimal transformation:
  • 42.
    © 2011 FrankNielsen Registration of many point sets to a common atlas Scoliotic Spine (Atlas of 307 patients) Many variants of ICP method (truncated, robust, etc.)Many variants of ICP method (truncated, robust, etc.)
  • 43.
    © 2011 FrankNielsen In theory, ICP may provably run very slowly for well-constructedwell-constructed point sets... What computational geometers say David Arthur; Sergei Vassilvitskii Worst-case and Smoothed Analysis of the ICP Algorithm, with an Application to the k-means Method FOCS 2006 => O(n/d)^d iterations (exponential) ... but smooth analysis of ICP is polynomial
  • 44.
    © 2011 FrankNielsen Computing nearest neighbors in ICP... ● Naive linear-time algorithm ● Tree-like algorithm using kd-trees ● Tree-like algorithm using metric ball trees ●... Challenging problem in very high-dimensions (common to work up to dimension > 1000 nowadays) Nearest neighbor of q
  • 45.
    © 2011 FrankNielsen Installez Processing.org → Rendu des TD1, 2 et 3 pour le Mardi 4 Octobre 17h (Upload work sur la page du cours)