Projective Transformation between two matched 3D point sets

Clash Royale CLAN TAG#URR8PPP
up vote
1
down vote
favorite
I have two point sets of about 800 3D-points that are matched. That means, I know the corresponding points in the two point clouds.
Now I want to minimize the distance between the corresponding points using a projective transformation because I know that the transformation can't be completly described by an affine transformation. So after using an affine transformation I still have an error that is a little too high.
Now my question is how I can compute a viable projective transformation that maps the points of one set to the points of the other set? I know how to calculate least square estimates of a rigid transformation and of an affine transformation but I can't find any sources how to handle two large point sets and compute something like a least squares solution of a projective transform. Is that possible?
At the moment my idea is the following:
1. Compute an affine transformation, using the least squares solution of:
$
beginpmatrix
x' \
y' \
z' \
1
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
0 & 0 & 0 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
This matrix is used as an start vector for a minimization procedure using levenberg-marquardt on the following matrix:
$
T =
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
$
The idea is to minimize the cost function of the reprojection error:
$
sum | Tcdot x_i - x_i' |
$
The problem in my eyes is that I don't use a parametrization of the matrix that preserves non singularity in the optimization process which could be a problem because projective transformation matrices have to be non singular and in addition I thought that I don't need a non-linear optimization routine (because the projective transformation is still linear)!
Do you think this approach is viable or is there any better and easier way to determine a projective transformation between two 3D-point sets?
Actually I know that I only have to solve the following equation system:
$
beginpmatrix
wx' \
wy' \
wz' \
w
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
So the difference to the affine transformations are the homogeneous coordinates. But how is this possible in a sense of regarding 800 points in a least squares way?
Best regards!
linear-transformations 3d nonlinear-optimization projective-geometry affine-geometry
add a comment |Â
up vote
1
down vote
favorite
I have two point sets of about 800 3D-points that are matched. That means, I know the corresponding points in the two point clouds.
Now I want to minimize the distance between the corresponding points using a projective transformation because I know that the transformation can't be completly described by an affine transformation. So after using an affine transformation I still have an error that is a little too high.
Now my question is how I can compute a viable projective transformation that maps the points of one set to the points of the other set? I know how to calculate least square estimates of a rigid transformation and of an affine transformation but I can't find any sources how to handle two large point sets and compute something like a least squares solution of a projective transform. Is that possible?
At the moment my idea is the following:
1. Compute an affine transformation, using the least squares solution of:
$
beginpmatrix
x' \
y' \
z' \
1
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
0 & 0 & 0 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
This matrix is used as an start vector for a minimization procedure using levenberg-marquardt on the following matrix:
$
T =
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
$
The idea is to minimize the cost function of the reprojection error:
$
sum | Tcdot x_i - x_i' |
$
The problem in my eyes is that I don't use a parametrization of the matrix that preserves non singularity in the optimization process which could be a problem because projective transformation matrices have to be non singular and in addition I thought that I don't need a non-linear optimization routine (because the projective transformation is still linear)!
Do you think this approach is viable or is there any better and easier way to determine a projective transformation between two 3D-point sets?
Actually I know that I only have to solve the following equation system:
$
beginpmatrix
wx' \
wy' \
wz' \
w
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
So the difference to the affine transformations are the homogeneous coordinates. But how is this possible in a sense of regarding 800 points in a least squares way?
Best regards!
linear-transformations 3d nonlinear-optimization projective-geometry affine-geometry
You might find some leads in the answers to question math.stackexchange.com/q/2789094/1257
â brainjam
Aug 16 at 3:16
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have two point sets of about 800 3D-points that are matched. That means, I know the corresponding points in the two point clouds.
Now I want to minimize the distance between the corresponding points using a projective transformation because I know that the transformation can't be completly described by an affine transformation. So after using an affine transformation I still have an error that is a little too high.
Now my question is how I can compute a viable projective transformation that maps the points of one set to the points of the other set? I know how to calculate least square estimates of a rigid transformation and of an affine transformation but I can't find any sources how to handle two large point sets and compute something like a least squares solution of a projective transform. Is that possible?
At the moment my idea is the following:
1. Compute an affine transformation, using the least squares solution of:
$
beginpmatrix
x' \
y' \
z' \
1
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
0 & 0 & 0 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
This matrix is used as an start vector for a minimization procedure using levenberg-marquardt on the following matrix:
$
T =
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
$
The idea is to minimize the cost function of the reprojection error:
$
sum | Tcdot x_i - x_i' |
$
The problem in my eyes is that I don't use a parametrization of the matrix that preserves non singularity in the optimization process which could be a problem because projective transformation matrices have to be non singular and in addition I thought that I don't need a non-linear optimization routine (because the projective transformation is still linear)!
Do you think this approach is viable or is there any better and easier way to determine a projective transformation between two 3D-point sets?
Actually I know that I only have to solve the following equation system:
$
beginpmatrix
wx' \
wy' \
wz' \
w
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
So the difference to the affine transformations are the homogeneous coordinates. But how is this possible in a sense of regarding 800 points in a least squares way?
Best regards!
linear-transformations 3d nonlinear-optimization projective-geometry affine-geometry
I have two point sets of about 800 3D-points that are matched. That means, I know the corresponding points in the two point clouds.
Now I want to minimize the distance between the corresponding points using a projective transformation because I know that the transformation can't be completly described by an affine transformation. So after using an affine transformation I still have an error that is a little too high.
Now my question is how I can compute a viable projective transformation that maps the points of one set to the points of the other set? I know how to calculate least square estimates of a rigid transformation and of an affine transformation but I can't find any sources how to handle two large point sets and compute something like a least squares solution of a projective transform. Is that possible?
At the moment my idea is the following:
1. Compute an affine transformation, using the least squares solution of:
$
beginpmatrix
x' \
y' \
z' \
1
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
0 & 0 & 0 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
This matrix is used as an start vector for a minimization procedure using levenberg-marquardt on the following matrix:
$
T =
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
$
The idea is to minimize the cost function of the reprojection error:
$
sum | Tcdot x_i - x_i' |
$
The problem in my eyes is that I don't use a parametrization of the matrix that preserves non singularity in the optimization process which could be a problem because projective transformation matrices have to be non singular and in addition I thought that I don't need a non-linear optimization routine (because the projective transformation is still linear)!
Do you think this approach is viable or is there any better and easier way to determine a projective transformation between two 3D-point sets?
Actually I know that I only have to solve the following equation system:
$
beginpmatrix
wx' \
wy' \
wz' \
w
endpmatrix
=
beginpmatrix
a_1 & a_2 & a_3 & a_4 \
b_1 & b_2 & b_3 & b_4 \
c_1 & c_2 & c_3 & c_4 \
d_1 & d_2 & d_3 & 1
endpmatrix
cdot
beginpmatrix
x \
y \
z \
1
endpmatrix
$
So the difference to the affine transformations are the homogeneous coordinates. But how is this possible in a sense of regarding 800 points in a least squares way?
Best regards!
linear-transformations 3d nonlinear-optimization projective-geometry affine-geometry
asked Aug 8 at 16:34
Karido
314
314
You might find some leads in the answers to question math.stackexchange.com/q/2789094/1257
â brainjam
Aug 16 at 3:16
add a comment |Â
You might find some leads in the answers to question math.stackexchange.com/q/2789094/1257
â brainjam
Aug 16 at 3:16
You might find some leads in the answers to question math.stackexchange.com/q/2789094/1257
â brainjam
Aug 16 at 3:16
You might find some leads in the answers to question math.stackexchange.com/q/2789094/1257
â brainjam
Aug 16 at 3:16
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2876299%2fprojective-transformation-between-two-matched-3d-point-sets%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
You might find some leads in the answers to question math.stackexchange.com/q/2789094/1257
â brainjam
Aug 16 at 3:16