420 likes | 673 Views
CSCE 641 Computer Graphics: Image-based Modeling (Cont.). Jinxiang Chai. Image-based Modeling and Rendering. Model. Panoroma. Image-based rendering. Image based modeling. Images + Depth. Geometry+ Images. Camera + geometry. Images user input range scans. Images. Geometry+ Materials.
E N D
CSCE 641 Computer Graphics: Image-based Modeling (Cont.) Jinxiang Chai
Image-based Modeling and Rendering Model Panoroma Image-based rendering Image based modeling Images + Depth Geometry+ Images Camera + geometry Imagesuser input range scans Images Geometry+ Materials Light field Kinematics Dynamics Etc.
Stereo reconstruction • Given two or more images of the same scene or object, compute a representation of its shape known camera viewpoints
Stereo reconstruction • Given two or more images of the same scene or object, compute a representation of its shape known camera viewpoints How to estimate camera parameters? - where is the camera? - where is it pointing? - what are internal parameters, e.g. focal length?
Spectrum of IBMR Model Panoroma Image-based rendering Image based modeling Images + Depth Geometry+ Images Camera + geometry Imagesuser input range scans Images Geometry+ Materials Light field Kinematics Dynamics Etc.
Calibration from 2D motion • Structure from motion (SFM) • - track points over a sequence of images • - estimate for 3D positions and camera positions • - calibrate intrinsic camera parameters before hand • Self-calibration: • - solve for both intrinsic and extrinsic camera parameters
SFM = Holy Grail of 3D Reconstruction • Take movie of object • Reconstruct 3D model • Would be • commercially • highly viable
How to Get Feature Correspondences • Feature-based approach • - good for images • - feature detection (corners or sift features) • - feature matching using RANSAC (epipolar line) • Pixel-based approach • - good for video sequences • - patch based registration with lucas-kanade algorithm • - register features across the entire sequence
Structure from Motion • Two Principal Solutions • Bundle adjustment (nonlinear optimization) • Factorization (SVD, through orthographic approximation, affine geometry)
Projection Matrix Perspective projection: 2D coordinates are just a nonlinear function of its 3D coordinates and camera parameters: K R T P
Nonlinear Approach for SFM • What’s the difference between camera calibration and SFM?
Nonlinear Approach for SFM • What’s the difference between camera calibration and SFM? • - camera calibration: known 3D and 2D
Nonlinear Approach for SFM • What’s the difference between camera calibration and SFM? • - camera calibration: known 3D and 2D • - SFM: unknown 3D and known 2D
Nonlinear Approach for SFM • What’s the difference between camera calibration and SFM? • - camera calibration: known 3D and 2D • - SFM: unknown 3D and known 2D • - what’s 3D-to-2D registration problem?
Nonlinear Approach for SFM • What’s the difference between camera calibration and SFM? • - camera calibration: known 3D and 2D • - SFM: unknown 3D and known 2D • - what’s 3D-to-2D registration problem?
SFM: Bundle Adjustment • SFM = Nonlinear Least Squares problem • Minimize through • Gradient Descent • Conjugate Gradient • Gauss-Newton • Levenberg Marquardt common method • Prone to local minima
Count # Constraints vs #Unknowns • M camera poses • N points • 2MN point constraints • 6M+3N unknowns • Suggests: need 2mn 6m + 3n • But: Can we really recover all parameters???
Count # Constraints vs #Unknowns • M camera poses • N points • 2MN point constraints • 6M+3N unknowns (known intrinsic camera parameters) • Suggests: need 2mn 6m + 3n • But: Can we really recover all parameters??? • Can’t recover origin, orientation (6 params) • Can’t recover scale (1 param) • Thus, we need 2mn 6m + 3n -7
Are We Done? • No, bundle adjustment has many local minima.
Image World SFM Using Factorization • Assume an othorgraphic camera
Image World SFM Using Factorization • Assume othorgraphic camera Subtract the mean
SFM Using Factorization Stack all the features from the same frame:
SFM Using Factorization Stack all the features from the same frame: Stack all the features from all the images: W
SFM Using Factorization Stack all the features from the same frame: Stack all the features from all the images: W
SFM Using Factorization Stack all the features from all the images: Factorize the matrix into two matrix using SVD: W
SFM Using Factorization Stack all the features from all the images: Factorize the matrix into two matrix using SVD: Is the solution unique? W
SFM Using Factorization Stack all the features from all the images: Factorize the matrix into two matrix using SVD: Is the solution unique? No!
SFM Using Factorization Stack all the features from all the images: Factorize the matrix into two matrix using SVD: How to compute the matrix ? W
SFM Using Factorization M is the stack of rotation matrix:
SFM Using Factorization M is the stack of rotation matrix: 1 0 Orthogonal constraints from rotation matrix 0 1 1 0 0 1
SFM Using Factorization M is the stack of rotation matrix: 1 0 Orthogonal constraints from rotation matrix 0 1 1 0 0 1
SFM Using Factorization Orthogonal constraints from rotation matrices: 1 0 0 1 1 0 0 1
SFM Using Factorization Orthogonal constraints from rotation matrices: 1 0 0 1 1 0 QQ: symmetric 3 by 3 matrix 0 1
SFM Using Factorization Orthogonal constraints from rotation matrices: 1 0 0 1 1 0 QQ: symmetric 3 by 3 matrix 0 1 How to compute QQT? least square solution - 4F linear constraints, 9 unknowns (6 independent due to symmetric matrix)
SFM Using Factorization Orthogonal constraints from rotation matrices: 1 0 0 1 1 0 QQ: symmetric 3 by 3 matrix 0 1 How to compute QQT? least square solution - 4F linear constraints, 9 unknowns (6 independent due to symmetric matrix) How to compute Q from QQT: SVD again:
SFM Using Factorization M is the stack of rotation matrix: 1 0 Orthogonal constraints from rotation matrix 0 1 1 0 0 1 QQT: symmetric 3 by 3 matrix • Computing QQT is easy: • 3F linear equations • 6 independent unknowns
SFM Using Factorization • Form the measurement matrix • Decompose the matrix into two matrices and using SVD • Compute the matrix Q with least square and SVD • Compute the rotation matrix and shape matrix: • and
Weak-perspective Projection • Factorization also works for weak-perspective projection (scaled orthographic projection): z0 d
Factorization for Full-perspective Cameras [Han and Kanade]
SFM Summary Bundle adjustment (nonlinear optimization) - work with perspective camera model - work with incomplete data - prone to local minima Factorization: - closed-form solution for weak perspective camera - simple and efficient - usually need complete data - becomes complicated for full-perspective camera model Phil Torr’s structure from motion toolkit in matlab (click here) Voodoo camera tracker (click here)
All Together Video Click here - feature detection - feature matching (epipolar geometry) - structure from motion - stereo reconstruction - triangulation - texture mapping
SFM: Recent Development • Large Scale SFM: • Reconstructing the World from Internet Photos • Project website: • source code and data sets are available from http://www.cs.cornell.edu/projects/bigsfm/