Ask Your Question
2

SolvePnP(), flags: which is the best method?

asked 2013-11-08 09:55:25 -0600

Davinci gravatar image

updated 2013-11-08 09:55:41 -0600

The solvePnP() function can use different methods:

  • CV_ITERATIVE
  • CV_P3P
  • CV_EPNP

And there is also solvePnPRansac. I can find some papers describing the methods but not a real comparison of all methods. Is there somewhere a study that compares all these methods and gives the best method per situation? Or has someone some recommendations?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
2

answered 2014-02-10 03:43:17 -0600

Guido gravatar image

In terms of precision and speed, CV_EPNP is supposed to be a good compromise. Take a look at "EPnP: Accurate Non-Iterative O(n) Solution to the PnP Problem" by Vincent Lepetit, Francesc Moreno-Noguer and Pascal Fua for a detailed comparison with other methods.

However, as far as I am concerned, I could never get it to work properly. The only method that gives me coherent results is CV_ITERATIVE (default one). And if you take a look at the "Mastering Opencv" book, they always use the default version of solvePnP.

USe SolvePnPRansac if you have noisy points and possibly wrong matches between 2D and 3D points.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2013-11-08 09:55:25 -0600

Seen: 7,389 times

Last updated: Feb 10 '14