3D reconstruction Class 16. 3D photography course schedule Introduction Aug 24, 26(no course) Aug.31,Sep.2(no course) Sep. 7, 9(no course) Sep. 14, 16Projective.

Slides:



Advertisements
Similar presentations
A Robust Super Resolution Method for Images of 3D Scenes Pablo L. Sala Department of Computer Science University of Toronto.
Advertisements

L1 sparse reconstruction of sharp point set surfaces
Fast Algorithms For Hierarchical Range Histogram Constructions
Automatic 3D modeling from range images Daniel Huber Carnegie Mellon University Robotics Institute.
Texture Synthesis on [Arbitrary Manifold] Surfaces Presented by: Sam Z. Glassenberg* * Several slides borrowed from Wei/Levoy presentation.
Robust Global Registration Natasha Gelfand Niloy Mitra Leonidas Guibas Helmut Pottmann.
Computer vision: models, learning and inference
Low Complexity Keypoint Recognition and Pose Estimation Vincent Lepetit.
Automatic Feature Extraction for Multi-view 3D Face Recognition
Instructor: Mircea Nicolescu Lecture 13 CS 485 / 685 Computer Vision.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Semi-automatic Range to Range Registration: A Feature-based Method Chao Chen & Ioannis Stamos Computer Science Department Graduate Center, Hunter College.
Reverse Engineering Niloy J. Mitra.
Registration of two scanned range images using k-d tree accelerated ICP algorithm By Xiaodong Yan Dec
Shape from Contours and Multiple Stereo A Hierarchical, Mesh-Based Approach Hendrik Kück, Wolfgang Heidrich, Christian Vogelgsang.
Silhouettes in Multiview Stereo Ian Simon. Multiview Stereo Problem Input: – a collection of images of a rigid object (or scene) – camera parameters for.
Final Class: Range Data registration CISC4/689 Credits: Tel-Aviv University.
Iterative closest point algorithms
Speed and Robustness in 3D Model Registration Szymon Rusinkiewicz Princeton University.
A Study of Approaches for Object Recognition
Scan Matching Pieter Abbeel UC Berkeley EECS
Efficient Variants of the ICP Algorithm
Segmentation Divide the image into segments. Each segment:
Structure from motion. Multiple-view geometry questions Scene geometry (structure): Given 2D point matches in two or more images, where are the corresponding.
A Laser Range Scanner Designed for Minimum Calibration Complexity James Davis, Xing Chen Stanford Computer Graphics Laboratory 3D Digital Imaging and Modeling.
CS CS 175 – Week 2 Processing Point Clouds Registration.
Surface Reconstruction Some figures by Turk, Curless, Amenta, et al.
Lecture 11: Structure from motion CS6670: Computer Vision Noah Snavely.
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.
Self-calibration Class 13 Read Chapter 6. Assignment 3 Collect potential matches from all algorithms for all pairs Matlab ASCII format, exchange data.
Recovering Articulated Object Models from 3D Range Data Dragomir Anguelov Daphne Koller Hoi-Cheung Pang Praveen Srinivasan Sebastian Thrun Computer Science.
Fitting a Model to Data Reading: 15.1,
Appearance modeling: textures and IBR Class 17. 3D photography course schedule Introduction Aug 24, 26(no course) Aug.31,Sep.2(no course) Sep. 7, 9(no.
Computer Vision Range data Marc Pollefeys COMP 256 Some slides and illustrations from J. Ponce, …
Structure from motion Class 12 Read Chapter 5. Assignment 2 ChrisMS regions Nathan… BrianM&S LoG features LiSIFT features ChadMS regions Seon JooSIFT.
3D full object reconstruction from kinect Yoni Choukroun Elie Semmel Advisor: Yonathan Afflalo.
Surface Reconstruction Using Volumetric Implicit Functions Some figures by Curless et al.
3D object capture Capture N “views” (parts of the object) –get points on surface of object –create mesh (infer connectivity) Hugues Hoppe –filter data.
Accurate, Dense and Robust Multi-View Stereopsis Yasutaka Furukawa and Jean Ponce Presented by Rahul Garg and Ryan Kaminsky.
כמה מהתעשייה? מבנה הקורס השתנה Computer vision.
3D Global Registration. The Problem Given: n scans around an objectGiven: n scans around an object Goal: align them allGoal: align them all First attempt:
Image Stitching Ali Farhadi CSE 455
Dual/Primal Mesh Optimization for Polygonized Implicit Surfaces
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Quadric Error Metrics.
Automatic Registration of Color Images to 3D Geometry Computer Graphics International 2009 Yunzhen Li and Kok-Lim Low School of Computing National University.
KinectFusion : Real-Time Dense Surface Mapping and Tracking IEEE International Symposium on Mixed and Augmented Reality 2011 Science and Technology Proceedings.
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
MESA LAB Multi-view image stitching Guimei Zhang MESA LAB MESA (Mechatronics, Embedded Systems and Automation) LAB School of Engineering, University of.
ALIGNMENT OF 3D ARTICULATE SHAPES. Articulated registration Input: Two or more 3d point clouds (possibly with connectivity information) of an articulated.
A Method for Registration of 3D Surfaces ICP Algorithm
Ground Truth Free Evaluation of Segment Based Maps Rolf Lakaemper Temple University, Philadelphia,PA,USA.
CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem.
Computer Vision Lecture #10 Hossam Abdelmunim 1 & Aly A. Farag 2 1 Computer & Systems Engineering Department, Ain Shams University, Cairo, Egypt 2 Electerical.
Reconstruction of Solid Models from Oriented Point Sets Misha Kazhdan Johns Hopkins University.
EFFICIENT VARIANTS OF THE ICP ALGORITHM
A New Voronoi-based Reconstruction Algorithm
Using simplified meshes for crude registration of two partially overlapping range images Mercedes R.G.Márquez Wu Shin-Ting State University of Matogrosso.
CSE 185 Introduction to Computer Vision Feature Matching.
Skuller: A volumetric shape registration algorithm for modeling skull deformities Yusuf Sahillioğlu 1 and Ladislav Kavan 2 Medical Image Analysis 2015.
High Resolution Surface Reconstruction from Overlapping Multiple-Views
Mesh Resampling Wolfgang Knoll, Reinhard Russ, Cornelia Hasil 1 Institute of Computer Graphics and Algorithms Vienna University of Technology.
776 Computer Vision Jan-Michael Frahm Spring 2012.
May 2003 SUT Color image segmentation – an innovative approach Amin Fazel May 2003 Sharif University of Technology Course Presentation base on a paper.
11/25/03 3D Model Acquisition by Tracking 2D Wireframes Presenter: Jing Han Shiau M. Brown, T. Drummond and R. Cipolla Department of Engineering University.
Faculty of Sciences and Technology from University of Coimbra Generating 3D Meshes from Range Data [1] Graphic Computation and Three-dimensional Modeling.
CSE 554 Lecture 8: Alignment
Iterative Closest Point
3D Scan Alignment Using ICP
A Volumetric Method for Building Complex Models from Range Images
Presentation transcript:

3D reconstruction Class 16

3D photography course schedule Introduction Aug 24, 26(no course) Aug.31,Sep.2(no course) Sep. 7, 9(no course) Sep. 14, 16Projective GeometryCamera Model and Calibration (assignment 1) Feb. 21, 23Camera Calib. and SVMFeature matching (assignment 2) Feb. 28, 30Feature trackingEpipolar geometry (assignment 3) Oct. 5, 7Computing FTriangulation and MVG Oct. 12, 14(university day)(fall break) Oct. 19, 21StereoActive ranging Oct. 26, 28Structure from motionSfM and Self-calibration Nov. 2, 4Shape-from-silhouettesSpace carving Nov. 9, 113D modelingAppearance Modeling Nov.12 papers (2-3pm SN115) Nov. 16, 18(VMV’04) Nov. 23, 25papers & discussion(Thanksgiving) Nov.30,Dec.2papers & discussionpapers and discussion Dec.3 papers (2-3pm SN115) Dec. 7?Project presentations

Papers Li Exact Voxel Occupancy with Graph Cuts Sudipta Stereo without epipolar lines Chris A graph cut based adaptive structured light approach for real-time range acquisition Nathan Space-time faces Brian Depth-from-focus … Chad Interactive Modeling from Dense Color and Sparse Depth Seon Joo Outdoor calibration of active cameras Jason spectral partitioning Sriram Christine

Ideas for a project? ChrisWide-area display reconstruction Nathan? BrianDepth-from-focus/defocus LiVisual-hulls with occlusions ChadLaser scanner for 3D environments Seon JooCollaborative 3D tracking JasonSfM for long sequences Sudipta Combining exact silhouettes and photoconsistency SriramPanoramic cameras self-calibration Christine desktop lamp scanner

3D modeling Aligning range images Pairwise Globally Surface reconstruction Single range image Merged (some slides from S. Rusinkiewicz, J. Ponce,…)

Aligning 3D Data If correct correspondences are known, it is possible to find correct relative rotation/translation

q = a +  q is a quaternion, R a 2 R is its real part, and R  2 R 3 is its imaginary part. Sum of quaternions: Multiplication by a scalar: Quaternion product: Conjugate: ) Operations on quaternions: Norm: Note: Intermezzo: quaternions

Let R denote the rotation of angle  about the unit vector u. Define Then for any vector , Reciprocally, if q = a + ( b, c, d ) T is a unit quaternion, the corresponding rotation matrix is: Intermezzo: quaternions and rotations

Problem: Find the rotation matrix R and the vector t that minimize i=1 E =  | x i ’ – R x i – t | 2. n At a minimum: 0 =  E/  t = –2  ( x i ’ – R x i – t ). n i=1 Or.. t = x’ – R x. If y i = x i –x and y i ’ = x i ’ –x’, the error is (at a minimum): i=1 E =  | y i ’ – R y i | 2 n i=1 =  | y i ’ q – q y i | 2 n i=1 =  | y i ’ – q y i q| 2 |q| 2 n Or E = Linear least squares !! Estimate rigid transformation

Aligning 3D Data How to find corresponding points? Previous systems based on user input, feature matching, surface signatures, etc.

Aligning 3D Data Alternative: assume closest points correspond to each other, compute the best transform…

Aligning 3D Data … and iterate to find alignment Iterated Closest Points (ICP) [Besl & McKay 92] Converges if starting position “close enough“

ICP Variants Classic ICP algorithm not real-time To improve speed: examine stages of ICP and evaluate proposed variants [Rusinkiewicz & Levoy, 3DIM 2001] 1.Selecting source points (from one or both meshes) 2.Matching to points in the other mesh 3.Weighting the correspondences 4.Rejecting certain (outlier) point pairs 5.Assigning an error metric to the current transform 6.Minimizing the error metric

ICP Variant – Point-to-Plane Error Metric Using point-to-plane distance instead of point-to- point lets flat regions slide along each other more easily [Chen & Medioni 91]

Finding Corresponding Points Finding closest point is most expensive stage of ICP Brute force search – O(n) Spatial data structure (e.g., k-d tree) – O(log n) Voxel grid – O(1), but large constant, slow preprocessing

Finding Corresponding Points For range images, simply project point [Blais 95] Constant-time, fast Does not require precomputing a spatial data structure

High-Speed ICP Algorithm ICP algorithm with projection-based correspondences, point-to-plane matching can align meshes in a few tens of ms. (cf. over 1 sec. with closest-point) [Rusinkiewicz & Levoy, 3DIM 2001]

3D Global Registration

3D Global registration The problem: Given: n scans around an object Goal: align them all First attempt: ICP each scan to one other

Want method for distributing accumulated error among all scans 3D Global registration

Approach #1: Avoid the Problem In some cases have 1 scan that covers large part of surface (e.g., cylindrical scan) Align all other scans to this “anchor” Disadvantage: not always practical to obtain anchor scan

Approach #2: The Greedy Solution Align each new scan to all previous scans Disadvantages: Order dependent Doesn’t spread out error

Approach #3: Brute-Force Solution While not converged: For each scan: For each point: – For every other scan » Find closest point Minimize error w.r.t. transforms of all scans Disadvantage: Solve (np)  (np) matrix equation, where n is number of scans and p is number of points per scan

Approach #3a: Slightly Less Brute- Force While not converged: For each scan: For each point: – For every other scan » Find closest point Minimize error w.r.t. transform of this scan Faster than previous method (matrices are p  p)

Graph Methods Many globalreg algorithms create a graph of pairwise alignments between scans Scan 1 Scan 5 Scan 4 Scan 3 Scan 2 Scan 6

Pulli’s Algorithm Perform pairwise ICPs, record sample (e.g. 200) of corresponding points For each scan, starting w. most connected Align scan to existing set While (change in error) > threshold Align each scan to others All alignments during globalreg phase use precomputed corresponding points

Sharp et al. Algorithm Perform pairwise ICPs, record only optimal rotation/translation for each Decompose alignment graph into cycles While (change in error) > tolerance For each cycle: Spread out error equally among all scans in the cycle For each scan belonging to more than 1 cycle: Assign average transform to scan

Lu and Milios Algorithm Perform pairwise ICPs, record optimal rotation/translation and covariance for each Least squares simultaneous minimization of all errors (covariance-weighted) Requires linearization of rotations Worse than the ICP case, since don’t converge to (incremental rotation) = 0

Open Questions in Global Registration Best way to do correctly-weighted globalreg without linearizing rotations? How to prevent bias (if many scans in one area, few scans in another)? Robust outlier detection For graph methods, pairwise ICP often automated One bad ICP can throw off the entire model

Bad ICP in Globalreg One bad ICP can throw off the entire model Correct Globalreg Globalreg Including Bad ICP

Huber’s Automatic Modeling System Start with unaligned cans Generate candidate pairwise alignments using spin images Incrementally add scans, checking consistency ICP error in overlapping regions Free space consistency Occupied space consistency

Spin Images Johnson and Hebert “Signature” that captures local shape Similar shapes  similar spin images

Computing Spin Images Start with a point on a 3D model Find (averaged) surface normal at that point Define coordinate system centered at this point, oriented according to surface normal and two (arbitrary) tangents Express other points (within some distance) in terms of the new coordinates

Computing Spin Images Compute histogram of locations of other points, in new coordinate system, ignoring rotation around normal:

Computing Spin Images

Spin Image Parameters Size of neighborhood Determines whether local or global shape is captured Big neighborhood: more discriminatory power Small neighborhood: resistance to clutter Size of bins in histogram: Big bins: less sensitive to noise Small bins: captures more detail, less storage

Using Spin Images for Alignment Not robust

Verification – Overlap Distance Views 1 and 2: 48%, 2.1 mm Views 1 and 9: 15%, 3.1 mm

Verification – Visibility Consistency consistent surfaces S1S1S1S1 S2S2S2S2 C1C1C1C1 C2C2C2C2 surfaces are close free space violation S1S1S1S1 S2S2S2S2 C1C1C1C1 C2C2C2C2 S 2 blocks S 1 occupied space violation S1S1S1S1 S2S2S2S2 C1C1C1C1 C2C2C2C2 S 1 is not observed

Automatically Modeling the Angel top view connectivity after local verification horizontal slice initial model (bad matches in red)

Inferring New Pose Relations % overlap 1% overlap

horizontal slice The Final Angel Model top view

Problems With Reconstruction from Point Clouds

Surface Reconstruction from Range Images Often an easier problem than reconstruction from arbitrary point clouds Implicit information about adjacency, connectivity Roughly uniform spacing

Surface Reconstruction From Range Images First, construct surface from each range image Then, merge resulting surfaces Obtain average surface in overlapping regions Control point density

Range Image Tesselation Given a range image, connect up the neighbors

3D surface model Depth image Triangle mesh Texture image Textured 3D Wireframe model

Range Image Tesselation Caveat #1: can’t be too aggressive Introduce distance threshold for tesselation

Caveat #2: Which way to triangulate? Possible heuristics: Shorter diagonal Dihedral angle closer to 180  Maximize smallest angle in both triangles Always the same way (best triangle strips) Range Image Tesselation

Scan Merging Using Zippering Turk & Levoy, 1994 Erode geometry in overlapping areas Stitch scans together along seam Re-introduce all data Weighted average

Zippering

Point Weighting Higher weights to points facing the camera Favor higher sampling rates

Point Weighting Lower weights (tapering to 0) near boundaries Smooth blends between views

Volumetric Reconstruction Implicit function defined volumetrically Usually stored sampled on a 3D grid Can be compressed (e.g., using RLE) Another possibility: hierarchical data structures Can extract isosurface (i.e., subset of space where implicit function = some constant)

Volumetric Reconstruction Overview Generate signed distance function (or something close to it) for each scan Compute average (possibly weighted) Extract isosurface

Volumetric integration (Curless and Levoy, Siggraph´96) sensor range surfaces volume distance depth weight (~accuracy) signed distance to surface surface1 surface2 combined estimate use voxel space new surface as zero-crossing (find using marching cubes) least-squares estimate (zero derivative=minimum)

Volumetric Reconstruction Benefits Always generates a manifold surface Can control sampling density Averaging of signed distance functions corresponds to averaging the surfaces

Volumetric Reconstruction Drawbacks Represent a 3D entity rather than 2D Running time Storage Resampling step – bandlimits the function Generates consistent topology, but not always the topology you wanted Problems with very thin surfaces

From volume to mesh: Marching Cubes First 2D, Marching Squares “Marching Cubes: A High Resolution 3D Surface Construction Algorithm”, William E. Lorensen and Harvey E. Cline, Computer Graphics (Proceedings of SIGGRAPH '87), Vol. 21, No. 4, pp

From volume to mesh: Marching Cubes “Marching Cubes: A High Resolution 3D Surface Construction Algorithm”, William E. Lorensen and Harvey E. Cline, Computer Graphics (Proceedings of SIGGRAPH '87), Vol. 21, No. 4, pp

From volume to mesh: Marching Cubes Improvement “Marching Cubes: A High Resolution 3D Surface Construction Algorithm”, William E. Lorensen and Harvey E. Cline, Computer Graphics (Proceedings of SIGGRAPH '87), Vol. 21, No. 4, pp

Multiple depth imagesVolumetric integration Volumetric 3D integration

Next class: appearance modeling