Inverse linear algebra problem for stereo triangulation

In summary, the conversation discusses the use of a camera calibration toolbox for stereo triangulation and the possibility of predicting 2D image coordinates from 3D world coordinates using backprojection. The conversation also includes relevant Matlab code for performing stereo triangulation and links to resources for implementing backprojection techniques.
  • #1
alvin6688
1
0
Hello everyone,

I have been using the well-known Cal Tech camera calibration toolbox built by Jean-Yves Bouguet for stereo triangulation.

Part of the toolbox's utility is that it's able to give 3D world coordinates from 2D coordinates in stereo image pairs, given a set of camera calibration parameters (intrinsic and extrinsic)

What I would like to do is the inverse. Given the 3D world coordinates of some object, to predict the cooresponding 2D image coordinates.

My question to anyone who has experience with this: Is this an ill-posed problem? The algorithms (image --> world) employ a significant amount of inner product algebra, and I've been unable to decompose these steps when going in the inverse direction (world --> image).

Thank you in advance for your time,

Alvin Chen



Below is the relevant Matlab code for image --> world stereo triangulation:

% --- Known inputs from calibration:
om: 3D rotation matrix (extrinsic parameter)
T: translation matrix (extrinsic parameter)
R: R = rodrigues(om)
xt: normalized left image coordinate
xtt: normalized right image coordinate


% --- Stereo triangulation
u = R * xt;

n_xt2 = dot(xt,xt);
n_xtt2 = dot(xtt,xtt);

T_vect = repmat(T, [1 N]);

DD = n_xt2 .* n_xtt2 - dot(u,xtt).^2;

dot_uT = dot(u,T_vect);
dot_xttT = dot(xtt,T_vect);
dot_xttu = dot(u,xtt);

NN1 = dot_xttu.*dot_xttT - n_xtt2 .* dot_uT;
NN2 = n_xt2.*dot_xttT - dot_uT.*dot_xttu;

Zt = NN1./DD;
Ztt = NN2./DD;

X1 = xt .* repmat(Zt,[3 1]);
X2 = R'*(xtt.*repmat(Ztt,[3,1]) - T_vect);

% --- Left world coordinates:
XL = 1/2 * (X1 + X2);

% --- Right worldcoordinates:
XR = R*XL + T_vect;
 
Physics news on Phys.org

FAQ: Inverse linear algebra problem for stereo triangulation

1. What is stereo triangulation in computer vision?

Stereo triangulation is a technique used in computer vision to estimate the 3D position of an object by using multiple 2D images taken from different angles. It is commonly used in 3D reconstruction and depth mapping applications.

2. What is the inverse linear algebra problem for stereo triangulation?

The inverse linear algebra problem for stereo triangulation is the process of finding the 3D coordinates of an object by using the known 2D coordinates and camera parameters of multiple images. This involves solving a system of linear equations to determine the object's position relative to the cameras.

3. What challenges are associated with solving the inverse linear algebra problem for stereo triangulation?

One of the main challenges is the potential for errors in the 2D coordinates, camera parameters, and matching points between images. Additionally, the presence of occlusions and overlapping objects can make it difficult to accurately determine the object's 3D position.

4. How is the inverse linear algebra problem for stereo triangulation solved?

The inverse linear algebra problem is typically solved using algorithms that use a combination of techniques such as least squares optimization, bundle adjustment, and matrix factorization. These methods aim to minimize the error between the estimated 3D coordinates and the actual 2D coordinates.

5. What are the practical applications of solving the inverse linear algebra problem for stereo triangulation?

The inverse linear algebra problem for stereo triangulation has many practical applications, such as in 3D reconstruction for virtual reality and augmented reality, depth mapping for autonomous vehicles, and motion tracking for sports and entertainment industries. It is also used in robotics for navigation and object recognition tasks.

Similar threads

Replies
1
Views
5K
Back
Top