Qitao Zhao (qitaoz), Fall 2024
P
from 2D-3D correspondencesSurface Points | Bounding Box |
---|---|
![]() | ![]() |
Input Image | Annotated 2D points | Edges |
---|---|---|
![]() | ![]() | ![]() |
K
from annotationsInput Image | Annotated Parallel Lines | Vanishing points and principal point |
---|---|---|
![]() | ![]() | ![]() |
We first compute vanishing points from annotated lines. Each pair of 2D points forms a line, and two such lines are used to compute a vanishing point — the intersection of the two lines. The vanishing points represent directions in 3D space where parallel lines converge when projected onto the image plane.
For each pair of annotated points ( p_1(x_1, y_1) ) and ( p_2(x_2, y_2) ), the line equation is computed using the form:
The intersection of two such lines gives the vanishing point ( (x, y) ).
In the case of square pixels, the image of the absolute conic is assumed to have the form:
Each pair of vanishing points ( v_i ) and ( v_j ) generates a constraint in the form of the equation:
Using three pairs of vanishing points, these constraints are stacked to form a system of linear equations in the matrix form:
Where ( A ) is a ( 3
The vector ( w ) is obtained as the null vector of ( A ), which is found by solving the system ( A
This determines the matrix (
Once (
To extract ( K ), Cholesky factorization is applied to (
Input Image | Annotated Squares |
---|---|
![]() | ![]() |
Angle between planes(degree) | |
---|---|
Plane 1 & Plane 2 | 67.575126638156 |
Plane 1 & Plane 3 | 87.7527831744175 |
Plane 2 & Plane 3 | 85.21620854556966 |
For each planar square, we compute the homography H that maps the known corner points of the square to their corresponding imaged 2D points. These corner points are:
(0, 0), (0, 1), (1, 0), (1, 1)
Given the observed image points for each square, the homography H is computed, which describes the transformation between the real-world plane of the square and its image.
Once the homography H for each square is obtained, we compute the imaged circular points. The circular points are defined as (1,
Given that ( H = [h_1, h_2, h_3] ) (where ( h_1 ), ( h_2 ), and ( h_3 ) are the column vectors of the homography matrix), the imaged circular points become:
These points lie on the image of the absolute conic (IAC), which allows us to impose constraints on the camera’s intrinsic matrix.
The IAC encodes the intrinsic parameters of the camera. The constraint that the imaged circular points ( h_1 \pm i h_2 ) lie on (
These are linear equations in the elements of ( \omega ), the conic we are solving for. With multiple squares, we generate more than five equations, which is sufficient to solve for ( \omega ) up to a scale factor.
Once the conic ( \omega ) is computed, the final step is to extract the camera’s intrinsic matrix ( K ) (as what we did in (a)).
Input Image | Annotations | Reconstruction View 1 | Reconstruction View 2 |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Compute ( K ) from 3 vanishing points: Estimate the camera intrinsic matrix ( K ) using three vanishing points in the image.
Select a reference point: Choose a reference point in the image to start the unprojection (we choose two points lying on the same vertical line covering all planes and set their depth as 1, so that we do not need to worry about scale).
Unproject the reference point: Convert the reference point from 2D to 3D using the inverse of the intrinsic matrix ( K ) and assign a depth (scale) to the point:
Find the plane normal and scalar ( a ): Compute the plane's normal vector ( n ) and the scalar ( a ) using with the known 3D point:
Unproject other points to 3D: Apply the same unprojection method to the remaining 2D points:
Repeat for all planes: Repeat the process for every plane in the scene to obtain the 3D geometry.