1 | initial version |
No, there is no way to use solvePnP()
for your specific use case.
You can do it yourself. I see two possibilities.
In both cases you would have to reimplement the non-linear minimization process for the pose estimation refinement. You can use as a reference the solvePnPRefineLM()
and modify it for your needs.
The first solution is to truncate the Jacobian matrix that is of size 2N x 6
(with N
the number of points and 6
the number of parameters: angle-axis + translation) to 2N x 3
. Then you update only the rotation part.
The other solution I see is to keep the Jacobian matrix of size 2N x 6
and just update the rotation part. But I am not sure if is valid or not.
See: Gauss-Newton / Levenberg-Marquardt Optimization by Ethan Eade. The application is for pose estimation.
2 | No.2 Revision |
No, there is no way to use solvePnP()
for your specific use case.
You can do it yourself. I see two possibilities.
In both cases you would have to reimplement the non-linear minimization process for the pose estimation refinement. You can use as a reference the solvePnPRefineLM()
and modify it for your needs.
The first solution is to truncate the Jacobian matrix that is of size 2N x 6
(with N
the number of points and 6
the number of parameters: angle-axis + translation) to 2N x 3
. Then you update only the rotation part.
The other solution I see is to keep the Jacobian matrix of size 2N x 6
and just update the rotation part. But I am not sure if is valid or not.
Or maybe use something like a selection matrix to discard the translation part?
See: Gauss-Newton / Levenberg-Marquardt Optimization by Ethan Eade. The application is for pose estimation.