3D reconstruction Slides | 3 D Computer Graphics | Matrix (Mathematics)

3D Reconstruction Tutorial

By (Waqar S. Qureshi) Vision and Graphics Lab, Asian Institute of Technology, Thailand

Today.org/wiki/3D_reconstruction . This requires to calculate the depth estimates of the 2D-points of an image of a 3D scene or object. we will discuss how to get 3D-points estimates using monocular camera ● ● [1] http://en.wikipedia. 3D reconstruction is a method to find the shape of an object or the appearance of a scene in an image[1].What is 3D-Reconstruction? ● “In computer vision.

3D-Reconstruction from image sequence ● What do we need – Appearance of a 3D-scene. shape of the object of interest 3D-points or depth estimates of a scene or object Sequence of Images from a monocular camera Use Multi-view geometry and linear algebra – ● What do we have – ● How to solve it? – .


3D-Reconstruction Types: – Spacial 3D-reconstruction ● ● 2-D feature correspondences in spacial domain are extracted and then 3D depths are estimated Dense 2-D feature correspondences in spacial domain are extracted and then 3D depths are estimated .

Sc thesis presentation AIT .3D-Reconstruction Overview of the method taken from Atima M.

Find the Matching Key-points correspondence from image-2 to image-1 using K-nearest neighbor. Remove all the non-symmetric correspondences in both the images. Find the Key-point and descriptor in the second image. Find the Matching Key-points correspondence from image-1 to image-2 using K-nearest neighbor.Find SURF correspondences between two images as follows: ● Find the Key-point and descriptor in the first image. ● ● ● ● ● ● . Find the fundamental matrix with only the left-over matches. Remove all the correspondences which are not consistent with the epipolar geometry (Fundamental Matrix).SURF Correspondences [1].

SURF Correspondences .

Find the pair of frame having the best GRIC ratio and use them to initialize reconstruction. We call it a Initialization/Recover Motion ● Get correspondence between the frames Get Camera P1 and P2 using essential matrix method by Hertley (2004).(only 10-15 outliers) Add the pair of recovered cameras to the vector of cameras.3D-Reconstruction [1] . [2] . ● ● ● ● . P = x Check if enough points lie in front of the cameras.Recover the motion for the pair of frames. Use only SURF correspondences to find the fundamental matrix and the homography matrix for calculating the GRIC. Use triangulation to find the 3D-points using the equation X .

Estimate the 3D points using cameras recovered in step 2. Add the 3D-points to the vector of 3D points. ● ● ● ● ● ● ● ● . Find the re-projection error for the 3D points recovered in previous step and remove outliers Check if the points lie in-front of the cameras. For new 2D-points correspondences find the 3D points (triangulate). This is known as Triangulation ● Find the dense correspondence between the frames to be triangulated Check if initialization=True if initialization=True then find all the new 2D-point correspondences in the set of correspondences which are not already recovered.Triangulation [3] . Get camera matrices P1 and P2 from camera matrices set for frames.

Resection the next i-th frame ● ● Check if Initialization=True if not return For the number of times we need to merge frames do.. .3D-Reconstruction [4] . [5] ..Set the initialization = TRUE.

Re-sectioning ● Get the point-correspondences between the i-th frame to be re-sectioned and the j-th frame recovered. If the 2Dto3D correspondences are not greater then threshold do not do re-sectioning for this frame. Find the new 2Dto3D correspondences by matching the point correspondences from step ii to 2D-projections of the i-th frame in the 3Dpoints vectors. ● ● ● ● ● ● ● . [6] . Get all the 2Dto3D pairs and find Camera matrix P using Ransack. Remove the outliers and find the camera matrix P with all the inlier using DLT. Add camera to the vector of cameras.Save all the 3D-Point cloud with their corresponding 2D projections and frame Ids for visualization.

Sign up to vote on this title
UsefulNot useful