Different fundamental matrix from the same projection matrices

给你一囗甜甜゛ 提交于 2019-12-10 14:29:58

问题


I use two projection matrices P1 and P2 (for example I'm using dinosaur dataset) and I need to compute the fundamental matrix F. So I use two Matlab functions:

  • Peter Kovesi's function: www.csse.uwa.edu.au/~pk/Research/MatlabFns/Projective/fundfromcameras.m
  • Zisserman: www.robots.ox.ac.uk/~vgg/hzbook/code/vgg_multiview/vgg_F_from_P.m

These functions should do the same thing, but I have a different F value! How it's possible? Which is the right functions?

If two points X1 and X2 are "the same" in two different images, X2^T*F*X1 = 0 ... So I found two corresponded points from two rotated images (5 degrees) by using SURF, but X2^T*F*X1 is never equal to zero with this two funtcions. Any ideas?

Instead if I use this function that computes F from matches points:

  • ransac fit fundamental matrix by Peter Kovesi: ransacfitfundmatrix.m

I have that X2^T*F*X1 = 0 .... Obviously F is different from the two F I had with the other two functions...


回答1:


Well for one thing, it's overwhelmingly likely that the points aren't perfectly rotated version of each other. SURF uses a lot of approximations, bi-linear interpolation and a whole slew of things that break true rotational invariance. So there might not exist such a fundamental matrix (if there's no linear relationship between the two sets of points.) Yes, this is true even after you do point matching.

That said, your X2^T*F*X1 should probably be small if the matching is really good, but I'd be surprise if it's ever exactly zero for any real image.




回答2:


The fundamental matrix is unique only up to a scale.

So, even if you have different fundamental matrices, both can be correct for your images.



来源:https://stackoverflow.com/questions/10161940/different-fundamental-matrix-from-the-same-projection-matrices

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!