CENG 789 – Digital Geometry Processing 09- Rigid-Body Alignment

Slides:



Advertisements
Similar presentations
Image Registration  Mapping of Evolution. Registration Goals Assume the correspondences are known Find such f() and g() such that the images are best.
Advertisements

3D Geometry for Computer Graphics
PCA + SVD.
Robust Global Registration Natasha Gelfand Niloy Mitra Leonidas Guibas Helmut Pottmann.
Two-View Geometry CS Sastry and Yang
1cs542g-term High Dimensional Data  So far we’ve considered scalar data values f i (or interpolated/approximated each component of vector values.
Reverse Engineering Niloy J. Mitra.
Principal Component Analysis CMPUT 466/551 Nilanjan Ray.
CENG 789 – Digital Geometry Processing 06- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
Final Class: Range Data registration CISC4/689 Credits: Tel-Aviv University.
Iterative closest point algorithms
1 GEOMETRIE Geometrie in der Technik H. Pottmann TU Wien SS 2007.
Motion Analysis (contd.) Slides are from RPI Registration Class.
Epipolar geometry. (i)Correspondence geometry: Given an image point x in the first view, how does this constrain the position of the corresponding point.
Structure from motion. Multiple-view geometry questions Scene geometry (structure): Given 2D point matches in two or more images, where are the corresponding.
Uncalibrated Geometry & Stratification Sastry and Yang
1 Numerical geometry of non-rigid shapes Spectral Methods Tutorial. Spectral Methods Tutorial 6 © Maks Ovsjanikov tosca.cs.technion.ac.il/book Numerical.
CS CS 175 – Week 2 Processing Point Clouds Registration.
Matching and Recognition in 3D. Moving from 2D to 3D Some things harderSome things harder – Rigid transform has 6 degrees of freedom vs. 3 – No natural.
The Terms that You Have to Know! Basis, Linear independent, Orthogonal Column space, Row space, Rank Linear combination Linear transformation Inner product.
Fitting a Model to Data Reading: 15.1,
3D full object reconstruction from kinect Yoni Choukroun Elie Semmel Advisor: Yonathan Afflalo.
CSci 6971: Image Registration Lecture 5: Feature-Base Regisration January 27, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
CS 485/685 Computer Vision Face Recognition Using Principal Components Analysis (PCA) M. Turk, A. Pentland, "Eigenfaces for Recognition", Journal of Cognitive.
כמה מהתעשייה? מבנה הקורס השתנה Computer vision.
Image Stitching Ali Farhadi CSE 455
Manifold learning: Locally Linear Embedding Jieping Ye Department of Computer Science and Engineering Arizona State University
CSE554AlignmentSlide 1 CSE 554 Lecture 8: Alignment Fall 2014.
CSE554Laplacian DeformationSlide 1 CSE 554 Lecture 8: Laplacian Deformation Fall 2012.
Machine Vision for Robots
Multimodal Interaction Dr. Mike Spann
Shape Matching for Model Alignment 3D Scan Matching and Registration, Part I ICCV 2005 Short Course Michael Kazhdan Johns Hopkins University.
CSE554AlignmentSlide 1 CSE 554 Lecture 5: Alignment Fall 2011.
A Method for Registration of 3D Surfaces ICP Algorithm
CSCE 643 Computer Vision: Structure from Motion
Medical Image Analysis Image Registration Figures come from the textbook: Medical Image Analysis, by Atam P. Dhawan, IEEE Press, 2003.
Parameter estimation. 2D homography Given a set of (x i,x i ’), compute H (x i ’=Hx i ) 3D to 2D camera projection Given a set of (X i,x i ), compute.
CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem.
Computer Vision : CISC 4/689 Going Back a little Cameras.ppt.
CSE554AlignmentSlide 1 CSE 554 Lecture 8: Alignment Fall 2013.
Medical Image Analysis Dr. Mohammad Dawood Department of Computer Science University of Münster Germany.
EFFICIENT VARIANTS OF THE ICP ALGORITHM
L6 – Transformations in the Euclidean Plane NGEN06(TEK230) – Algorithms in Geographical Information Systems by: Irene Rangel, updated by Sadegh Jamali.
Using simplified meshes for crude registration of two partially overlapping range images Mercedes R.G.Márquez Wu Shin-Ting State University of Matogrosso.
CENG 789 – Digital Geometry Processing 04- Distances, Descriptors and Sampling on Meshes Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
Skuller: A volumetric shape registration algorithm for modeling skull deformities Yusuf Sahillioğlu 1 and Ladislav Kavan 2 Medical Image Analysis 2015.
776 Computer Vision Jan-Michael Frahm Spring 2012.
CENG 789 – Digital Geometry Processing 07- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
776 Computer Vision Jan-Michael Frahm Spring 2012.
CSE 554 Lecture 8: Alignment
Lecture 16: Image alignment
CENG 789 – Digital Geometry Processing 08- Rigid-Body Alignment
Assoc. Prof. Yusuf Sahillioğlu
CENG 789 – Digital Geometry Processing 10- Least-Squares Solutions
Lecture: Face Recognition and Feature Reduction
Geometrically Stable Sampling for the ICP Algorithm
Spectral Methods Tutorial 6 1 © Maks Ovsjanikov
Two-view geometry Computer Vision Spring 2018, Lecture 10
Epipolar geometry.
CSE 554 Lecture 9: Laplacian Deformation
Multi-modality image registration using mutual information based on gradient vector flow Yujun Guo May 1,2006.
3D Photography: Epipolar geometry
Estimating 2-view relationships
Principal Component Analysis
Digital Image Processing Lecture 21: Principal Components for Description Prof. Charlene Tsai *Chapter 11.4 of Gonzalez.
CENG 789 – Digital Geometry Processing 11- Least-Squares Solutions
Calibration and homographies
Back to equations of geometric transformations
Image Stitching Linda Shapiro ECE/CSE 576.
Image Stitching Linda Shapiro ECE P 596.
Presentation transcript:

CENG 789 – Digital Geometry Processing 09- Rigid-Body Alignment Assoc. Prof. Yusuf Sahillioğlu Computer Eng. Dept, , Turkey

Rigid vs. Non-rigid Rigid shapes Non-rigid shapes (Differ by rigid vs. (Differ by non-rigid transformatns transformations = rigid + bending) = rotation & translation)

Rigid vs. Non-rigid Rigid shapes Non-rigid shapes (Easier to align/register vs. (Harder to align/register due to low degree- due to high DOF) of-freedom)

Rigid vs. Non-rigid Rigid shapes Non-rigid shapes (Main app: 3D scan registration) vs. (Main apps: shape completion & information transfer via shape correspondence)

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Translation disambiguation handled by moving centers to the origin.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. PCA on covariance matrix C that encodes variances between x,y,z coordinate pairs of all n shape points.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. PCA on covariance matrix C that encodes variances between x,y,z coordinate pairs of all n shape points. Eigenvectors of C provide principal axes/directions (of variations) of the shape (see Week 6), which are then aligned w/ the standard Euclidean axes. Same alignment is applied to the 2nd shape.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. Blue (zAngle) and dark (xAngle) angles?

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. Blue (zAngle) and dark (xAngle) angles?

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. This was cool; but not exactly solving our alignment problem  It rather moves object from one position to another within a single reference frame. In our case we want switching coordinates from one system (principles) to another (Euclidean); like this: Tables, chairs, and other furniture is defined in a local (modeling) coordinate system. They can be placed into a room, defined in another coordinate system, by transforming furniture (modeling) coordinates to room (world) coordinates.

Rigid Alignment We will do rigid-body alignment this lecture. Easier scenario: Alignment of 2 complete shapes. Rotation disambiguation handled by PCA. Align principal axes w/ the standard Euclidean axes; e.g., align w/ y-axis. Switching coordinates from one system (principles) to another (Euclidean). where i lands, j lands, k lands

Rigid Alignment We will do rigid-body alignment this lecture. Harder scenario: Alignment of 2 partial shapes. PCA-based solution is a global approach. Based on variations on coordinates. Two partially overlapped shapes have different variations; so, PCA fails.

Rigid Alignment We will do rigid-body alignment this lecture. Harder scenario: Alignment of 2 partial shapes. PCA-based solution is a global approach. Based on variations on coordinates. Two partially overlapped shapes have different variations; so, PCA fails.

Rigid Alignment We will do rigid-body alignment this lecture. Harder scenario: Alignment of 2 partial shapes. Partial shapes arise frequently in life: 3D scans. Handle them using Direct rotation computation (when map b/w 2 shapes known). Iterative Closest Point algorithm (when map unknown). RANSAC (when map unknown).

Rigid Alignment If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd.

Rigid Alignment If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. If correspondences are perfect, you can find the optimal rotation w/ no error.

Rigid Alignment If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. If correspondences are not perfect, you can find the optimal rotation by minimizing an error.

Rigid Alignment If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Note that if correspondences were perfect, no least-squares minimiztn would be necessary; just solve 2 equations: R*p1 + t = q1 and R*p2 + t = q2 for the variables R & t.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. Volume of the water as we dip the elephant to the tank: monotonically incrsng.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. Derivative is the Rate of Change in water level; how fast the water increasing. It never decreases in this scenario so derivative (dV/dt) is always positive.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. Derivative is the Rate of Change in water level; how fast the water increasing. V is min when t<80 (not dipped, level=0), max when t>900 (fully dipped, level=2.3x105). Special places where derivative is zero.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. Derivative is the Rate of Change in water level; how fast the water increasing. V increases at same rate around here (dV/dt const). This is a high rate: leg + torso dipped.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. Derivative is the Rate of Change in water level; how fast the water increasing. V still increases at but at a slower rate (no leg is dipped, just torso).

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. Derivative is the Rate of Change in water level; how fast the water increasing. V still increases at but at a slower rate. Still higher than trunk dip ‘cos this is for thick torso.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots. Derivative – What was that? Here is the geometric intuition. One can use dV/dt to recognize and reconstruct shape but these are off-topic. See paper: Dip Transform for 3D Shape Reconstruction for details.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. Take the derivative of E(x) w.r.t. x and search for its roots.

Derivative If map/correspondences are known, we can derive rotation and translation that aligns the 1st shape with the 2nd. Do energy functional minimization using matrix algebra. For non-zero derivatives we have ascent directions. Sign of the derivative at a is positive (positive slope), meaning that ascent direction is  (go right to make E(x) increase). Similarly, derivative here is negative, so ascent direction is . Note that, on local maxima/minima, there is no ascent direction (slope 0). Magnitude of the derivative states how eagerly E(x) wants to go up.

Rigid Alignment Translation.

Rigid Alignment Rotation. Recall SVD: https://en.wikipedia.org/wiki/Orthogonal_matrix orthogonal unit vectors.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Assume closest points correspond. Compute the rotation and translation based on this correspondence/map. Update coordinates and re-compute closest-point correspondences. Re-compute rotation and translation based on this map. Repeat.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Original ICP paper (Besl & McKay, A Method for Registration of 3-D Shapes, PAMI, 1992) uses closed-form solution to compute the rotations (unlike our least-squares solution in prev. slides). Converges if starting point is close enough. For efficiency, you can do sampling on point sets. Also, use k-d trees. For accuracy, you can replace your matching criteria (point to plane).

Rigid Alignment ICP variants Different error metrics exist. Point to point: Point to plane:

Rigid Alignment ICP variants Different error metrics exist. Point to plane: Point-to-point vs. point-to-plane: https://youtu.be/LcghboLgTiA

Rigid Alignment ICP variants Different error metrics exist. Point-to-plane metric shown to do a better job empirically (you lose a little bit on the theoretical convergence of the algorithm. Best practice is to use a combination: E = .1Ep2point + .9Ep2plane.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Resulting ICP session; pretty robust:

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Basic ICP algo; again:

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Basic ICP algo; again: Random sampling can be improved by getting diversity of normals. Have equal number of points for each possible normal. If careless, stuff on large surface will overwhelm the small surface. Here shape is sliding along the large surface (horizontal) ‘cos registration error there is 0. Small surface (vertical) does not warn us due to lack of samples.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Basic ICP algo; again: For the rotation R in , one can use the closed formula (original paper): or the SVD-based energy minimization described in slide 25.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. If this is done perfectly, you do not need to iterate (ICP). You just compute rotations and translations in one shot.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar?

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Recall rotation-invariant shape histograms descriptor.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Lots of descriptors defined over the years.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Shape diameter function (mild non-rigid support), spin images, etc.

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Do not match two close points if their normals are too different. x

Rigid Alignment Iterative Closest Point algorithm (when map b/w 2 shapes unknown). Better correspondence estimation via feature points. Goal is to identify when 2 points on different scans represent the same feature. Hint: Are the surroundings similar? Do not match two close points if they are on the boundaries (blacks). Do not match two close points if the closeness is not satisfactory.

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. Brute force. Try all triplets in one shape (C(N,3)) with a base triplet on the other one: O(N3). Repeat this for L different bases: O(LN3).

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts).

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. RANSAC algo. Pick a random pair of 3 points on 2 shapes. Estimate alignment (compute rotation translation) in the least-squares sense. Check for the error of this alignment (e.g. sum of distnces b/w matching pnts). Random picks do not have to be perfect matches.

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. Resulting RANSAC session:

Rigid Alignment RANSAC (when map b/w 2 shapes unknown). ICP only needs 3 point pairs to define a rotation in 3D. Resulting RANSAC session:

Potential Project Topics ICP more resilient to noisy and missing data; paper: Sparse Iterative Closest Point (traditional way: prune or reweight correspondences). Non-rigid ICP to register deforming objects; paper: Robust Articulated-ICP for Real-Time Hand Tracking (Section 4.2 is cool).