Ask Your Question
2

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

asked Nov 8 '13

Davinci gravatar image

updated Nov 8 '13

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?

Preview: (hide)

1 answer

Sort by » oldest newest most voted
2

answered Feb 10 '14

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.

Preview: (hide)

Question Tools

Stats

Asked: Nov 8 '13

Seen: 8,422 times

Last updated: Feb 10 '14