COS 429 Computer Vision Assignment 4 Cloning Yourself









![Two-view Reconstruction keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation Two-view Reconstruction keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-10.jpg)
![Keypoints Detection keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation Keypoints Detection keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-11.jpg)
![Descriptor for each point SIFT descriptor keypoints match keypoints fundamental matrix essential matrix [R|t] Descriptor for each point SIFT descriptor keypoints match keypoints fundamental matrix essential matrix [R|t]](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-12.jpg)

![Point Match for correspondences keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t] Point Match for correspondences keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t]](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-14.jpg)
![Point Match for correspondences keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t] Point Match for correspondences keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t]](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-15.jpg)









![Two-view Reconstruction keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation Two-view Reconstruction keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-25.jpg)























![Problem 8: Levenberg-Marquardt [vec, resnorm, residuals, exitflag] = lsqnonlin( @(x)reprojection. Residual(graph. Obs. Idx, graph. Problem 8: Levenberg-Marquardt [vec, resnorm, residuals, exitflag] = lsqnonlin( @(x)reprojection. Residual(graph. Obs. Idx, graph.](https://slidetodoc.com/presentation_image_h/1fc750e33d07f573fc4565a4a7dfcb69/image-49.jpg)





- Slides: 54
COS 429 Computer Vision Assignment 4 Cloning Yourself + + =
Steps for 3 D Reconstruction + = Images Points: Points More points: Points Meshes: Meshes Models: Structure from Motion Multiple View Stereo Model Fitting Texture Mapping Images Models: Image-based Modeling
Steps for 3 D Reconstruction + = Images Points: Points More points: Points Meshes: Meshes Models: Structure from Motion Multiple View Stereo Model Fitting Texture Mapping Images Models: Image-based Modeling + + =
Steps + = Images Points: Points More points: Points Meshes: Meshes Models: Structure from Motion Multiple View Stereo Model Fitting Texture Mapping Images Models: Image-based Modeling + + =
Structure From Motion • • Structure = 3 D Point Cloud of the Scene Motion = Camera Location and Orientation SFM = Get the Point Cloud from Moving Cameras Structure and Motion: Joint Problems to Solve + + =
Pipeline Structure from Motion (SFM) Multi-view Stereo (MVS)
Pipeline Structure from Motion (SFM) Multi-view Stereo (MVS)
Two-view Reconstruction
Two-view Reconstruction
Two-view Reconstruction keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation
Keypoints Detection keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation
Descriptor for each point SIFT descriptor keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation
Same for the other images keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t] triangulation
Point Match for correspondences keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t] triangulation
Point Match for correspondences keypoints match keypoints SIFT descriptor fundamental matrix essential matrix [R|t] triangulation
3. Fundamental Matrix Image 1 R 1, t 1 Image 2 R 2, t 2
3. RANSAC to Estimate Fundamental Matrix • For many times – Pick 8 points – Compute a solution for using these 8 points – Count number of inliers that with close to 0 • Pick the one with the largest number of inliers
4. Fundamental Matrix Essential Matrix Image 1 R 1, t 1 Image 2 R 2, t 2
5. Essential Matrix Image 1 R 1, t 1 Image 2 R 2, t 2
5. Essential Matrix Result 9. 19. For a given essential matrix and the first camera matrix , there are four possible choices for the second camera matrix : Page 259 of the bible (Multiple View Geometry, 2 nd Ed)
5. Four Possible Solutions Page 260 of the bible (Multiple View Geometry, 2 nd Ed)
Triangulation Image 1 R 1, t 1 Image 2 R 2, t 2
In front of the camera? • A point • Direction from camera center to point • Angle Between Two Vectors • Angle Between • Just need to test and View Direction
Pick the Solution With maximal number of points in front of both cameras. Page 260 of the bible (Multiple View Geometry, 2 nd Ed)
Two-view Reconstruction keypoints match keypoints fundamental matrix essential matrix [R|t] triangulation
Pipeline Structure from Motion (SFM) Multi-view Stereo (MVS)
Pipeline Taught Next
Merge Two Point Cloud
Merge Two Point Cloud There can be only one
Merge Two Point Cloud • From the 1 st and 2 nd images, we have and • From the 2 nd and 3 rd images, we have and • Exercise: How to transform the coordinate system of the second point cloud to align with the first point cloud so that there is only one ?
Merge Two Point Cloud
Oops See From a Different Angle
Bundle Adjustment
“America's Next Top Model” Image 1 Image 3 R 3, t 3 R 1, t 1 Image 2 R 2, t 2
“America's Next Top Model” Point 1 Image 2 Image 3 Point 2 Point 3
Rethinking the SFM problem • Input: Observed 2 D image position • Output: Unknown Camera Parameters (with some guess) Unknown Point 3 D coordinate (with some guess)
Bundle Adjustment A valid solution must let Re-projection = Observation and
Bundle Adjustment A valid solution and must let the Re-projection close to the Observation, i. e. to minimize the reprojection error
Assignment Problems
Problem 1: Run the SFMedu system • Run SFMedu 2. m – May need to compile the priority_queue_1. 0 package • Install Mesh. Lab to view the point could • Take a snapshot
Problem 2: List the Major Steps • Read the code SFMedu 2. m. • Summarize the major steps for – Sf. M – dense stereo matching – Hint: Compare the lecture notes and code side by side. Pick the part of lecture notes that match the code.
Problem 3: Principal Point • Read the code carefully to see what is the assumption for the principal points in this system • When this assumption is violated ?
Problem 4: Data Structure • See what are the fields of Graph – What is the data in each field? – Why each one is necessary for Sf. M system Camera function graph=pair 2 graph(pair, frames) Point 1 Point 2 graph. f … Image 1 graph. Mot … Image 2 graph. Str … Image 3 graph. Obs. Val … graph. Obs. Idx … Points Point 3
Problem 5: Reconstruct Yourself • • • Tips: good lighting Subject don’t move Enough texture no motion blur common overlapping
Problem 6: Compute the Reprojection Error residuals = reprojection. Residual(Obs. Idx, Obs. Val, px, py, f, Mot, Str) Obs. Idx: index of Kx. N for N points observed by K cameras, sparse matrix Obs. Val: 2 x. M for M observations px, py: principle points in pixels f: focal length in pixels Mot: 3 x 2 x. K for K cameras -> need to use “Rotation. Matrix 2 Angle. Axis” to covert the 3 x 3 matrix to 3 number vector Angle. Axis representation • Str: 3 x. N for N points • • •
Problem 6: Compute the Reprojection Error residuals = reprojection. Residual(Obs. Idx, Obs. Val, px, py, f, Mot, Str) Average Reprojetion error = sqrt(sum(residuals. ^2)/n) n= number of points
Problem 7: Visualize the Reprojection Points • For each camera: • Transform points (Str) from word coordinate to camera coordinate (transform. Pts. By. Rt ) • Project to 2 D • Transform coordinate – xy(1, : ) = -xy(1, : ) + frames. imsize(2)/2; • Plot
Problem 7: Visualize the Reprojection Points red x: each observed keypoint green +: reprojection of its 3 D estimated location blue line −: these two points are connected by a blue line yellow o: porjection of points reconstruction from other vie
Problem 8: Levenberg-Marquardt [vec, resnorm, residuals, exitflag] = lsqnonlin( @(x)reprojection. Residual(graph. Obs. Idx, graph. Obs. Val, px, py, f, x), [Mot(: ); Str(: )] , [], options); Try to minimize the sum of squares of function : reprojection. Resi With function input : x [Mot(: ), Str(: )]: Initialization
Bundle Adjustment A valid solution and must let the Re-projection close to the Observation, i. e. to minimize the reprojection error
Problem 9: Motion Adjustment Only Problem 10: Structure Adjustment Only Hint: reprojection. Residual can also be called by reprojection. Residual(Obs. Idx, Obs. Val, px, py, f, Mot, Str) If we want to adjust motion which variable should be input ?
Problem 9: Motion Adjustment Only Problem 10: Structure Adjustment Only x = lsqnonlin(fun, x 0) starts at the point x 0 and finds a minimum of the sum of squares of the functions described in fun should return a vector of values and not the sum of squares of the values. (The algorithm implicitly computes the sum of squares of the components of fun(x). ) http: //www. mathworks. com/help/optim/ug/lsqnonlin. html
Problem 11: Why to Estimate the Essential Matrix? • Why not just do the bundle adjustment directly? • Is there other way to bypass the estimation of essential matrix? • Provide your answer in the report.






















































