Okay, let’s break down these two steps in detail. The goal here is to transform the non-linear projection equation into a system of linear equations that we can solve to find the unknown projection matrix .

Step 1: Formulate Linear Equations (for a single point i)

  1. Starting Point: The fundamental relationship between a 3D world point and its 2D image projection is given by the perspective projection equation:

    • : Homogeneous coordinates of the known 3D point.
    • : Homogeneous coordinates of the measured 2D image point. and are the pixel coordinates we observe.
    • : The projection matrix we want to find. Its 12 elements are the unknowns.
    • : An unknown, non-zero scalar representing the projective depth. It varies for each point .
  2. Expand the Matrix Equation: Let’s represent the rows of the unknown matrix as , , and . Each is a row vector (or is a column vector).

    The terms are just dot products. For example, .

  3. Write out Scalar Equations: This matrix equation gives us three separate scalar equations:

    • (1)
    • (2)
    • (3)
  4. Eliminate the Unknown Scale : Our goal is to find the elements of . The scale factor is different for every point and is also unknown. We can eliminate it using substitution. Substitute equation (3) into equations (1) and (2):

    • Substitute into (1):
    • Substitute into (2):
  5. Rearrange into Linear Homogeneous Form: Move all terms to one side to get equations equal to zero. This form () is suitable for solving with methods like SVD.

    • From (1):
    • From (2):

    Crucially, these two equations are linear in the unknown elements of (the values that make up the row vectors ). All the terms involving the known 3D point and the measured 2D point act as known coefficients multiplying the unknown matrix elements.

Step 2: Set up Homogeneous Linear System (for n points)

  1. The Goal: We have two linear equations for each point correspondence. If we have correspondences (where ), we have a total of linear equations. We want to write this entire system in a single matrix equation form:

  2. The Unknown Vector : We need to arrange the 12 unknown elements of into a single column vector . A standard way is to stack the row vectors (transposed):

  3. The Coefficient Matrix : We need to construct the large matrix such that when multiplied by , it reproduces the equations we derived. Let’s look at the two equations for a single point again:

    • Equation 1:
    • Equation 2:

    Now, let’s express the dot products using the vector and the blocks of :

    Substituting back:

    • Equation 1:
    • Equation 2:

    These two equations correspond to two rows in the matrix . The structure provided in the notes matches these equations (possibly with an overall sign flip on one or both, which doesn’t affect the solution of ):

    • Row for Eq 2: . This is a row vector. When multiplied by , it gives Eq 2. This corresponds to row1 in the provided structure.
    • Row for Eq 1: . This is a row vector. When multiplied by , it gives Eq 1 (with a sign flip). This corresponds to row2 in the provided structure.

    (Note: The naming row1/row2 in the notes might seem reversed relative to the equations, but the structure is correct for generating the necessary constraints.)

    The full matrix is constructed by stacking these two rows for each point from to :

    Each block like is , and is also .

  4. The Result: We now have the system . The matrix contains only known quantities (from the 3D points and 2D measurements). The vector contains the 12 unknowns we want to find. This system can be solved using Singular Value Decomposition (SVD) to find the non-trivial solution for (which corresponds to the vector associated with the smallest singular value).