HW3: 3D Reconstruction

Submitted by: Kallol Saha

Q1: 8-point and 7-point algorithm

(A1) F matrix using 8-point algorithm

  1. Points and corresponding epipolar lines:
Scene View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)
Bench
Remote
  1. Brief explanation:

(A2) E matrix using 8-point algorithm

Computed E matrix for Bench:

[[ -0.41524274  -8.81748894  -2.15055808]
 [ -1.3803559    0.79067134  69.08265036]
 [ -3.58890876 -68.47438701   1.        ]]

Computed E matrix for Remote:

[[  2.5298064   -0.67056178   7.33094837]
 [ -6.62032749  -3.02768466 -28.29861665]
 [-14.50071092  26.41824781   1.        ]]
  1. Brief explanation:

(B) 7-point algorithm

  1. Points and corresponding epipolar lines:
Scene View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)
Hydrant
Ball < >
  1. Brief description:

Scene View 1 (Points) View 2 (Epipolar Lines)
Root 1
Root 2
Root 3

Q2: RANSAC with 7-point and 8-point algorithm

Bench:

Points and corresponding epipolar lines for the best sample from RANSAC:

View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)

Fundamental Matrix:

 [[-6.93865685e-07 -1.13181769e-05  2.31499123e-03]
 [ 7.11051241e-06 -3.33135143e-06  3.42320606e-02]
 [-2.90978450e-03 -2.95357848e-02  1.00000000e+00]]

Graph:

Remote:

Points and corresponding epipolar lines for the best sample from RANSAC:

View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)

Fundamental Matrix:

 [[ 6.45991378e-07  2.16590736e-06  2.28533038e-03]
 [-5.59589506e-06 -2.29454687e-06 -1.06715464e-02]
 [-3.75526569e-03  1.31886547e-02  1.00000000e+00]]

Graph:

Hydrant:

Points and corresponding epipolar lines for the best sample from RANSAC:

View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)

Fundamental Matrix:

 [[ 1.51808689e-07 -6.53853767e-07 -1.82831778e-03]
 [ 2.11379160e-06  6.24757418e-07 -1.60952451e-02]
 [ 1.74527652e-03  1.53647505e-02  1.00000000e+00]]

Graph:

Ball:

Points and corresponding epipolar lines for the best sample from RANSAC:

View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)

Fundamental Matrix:

 [[-9.48253498e-08 -2.95858025e-06 -7.61582875e-03]
 [ 3.41222748e-06 -9.59757471e-07 -1.71308787e-02]
 [ 1.07071320e-02  1.71883691e-02  1.00000000e+00]]

Graph:

  1. Method:

Q3: Triangulation

Note: I am using Open3D for just visualizing the 3D RGB points. This is because the matplotlib scatter plot window throws a "not responding" error when plotting a high number of points. Compared to this, Open3D has a much smoother visualizer for debugging and recording results.

Colored Point Cloud:

Visualization in Open3D

Method:

Q4: Reconstruct your own scene!

Scene of painted pumpkins:

Note: pycolmap visualizer does not run on my Ubuntu 22.04 system, so I am extraxting the xyz point coordinates and the rgb values from the pycolmap reconstruction object. Then, I am using the rgb and xyz values to visualize in Open3D

Multi-view Input:

Output from pycolmap::

Scene of Logitech controller:

Multi-view Input:

Output from pycolmap::

Q5: Bonus 1 - Fundamental matrix estimation on your own images.

Book:

View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)

Controller:

View 1 (Points) View 2 (Epipolar Lines) View 2 (Points) View 1 (Epipolar Lines)

Method: