基本矩阵的 3D 对应
在 MATLAB 中,我使用归一化计算了(两个图像的)基本矩阵 八点算法。由此,我需要三角测量 3D 空间中相应的图像点。据我了解,要做到这一点,我需要旋转和平移图像的相机。当然,最简单的方法是先校准相机,然后拍摄图像,但是这对于我的应用程序来说太严格了,因为它需要这个额外的步骤。
这样我就只剩下自动(自我)相机校准。我看到提到了捆绑调整,但是在3D Vision 的邀请 似乎需要初始平移和旋转,这让我认为需要校准相机,或者我的理解不够。
所以我的问题是如何自动提取旋转/平移,以便我可以将图像点重新投影/三角测量到 3D 空间中。任何 MATLAB 代码或伪代码都很棒。
In MATLAB I have calculated the Fundamental matrix (of two images) using the normalized Eight point algorithm. From that I need to triangulate the corresponding image points in 3D space. From what I understand, to do this I would need the rotation and translation of the image's cameras. The easiest way of course would be calibrate the cameras first then take the images, but this is too constricting for my application as it would require this extra step.
So that leaves me with auto (self) camera calibration. I see mention of bundle adjustment, however in An Invitation to 3D Vision it seems it requires an initial translation and rotation, which makes me think that a calibrated camera is needed or my understanding is falling short.
So my question is how can I automatically extract the rotation/translation so I can reprojected/triangulate the image points into 3D space. Any MATLAB code or pseudocode would be fantastic.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用基本矩阵来恢复相机矩阵并从图像中对 3D 点进行三角测量。但是,您必须注意,您将获得的重建将是投影重建,而不是欧几里得重建。如果您的目标是测量原始场景中的投影不变量(例如交叉比、线相交等),那么这非常有用,但不足以测量角度和距离(您必须为此校准相机)。
如果您可以访问Hartley 和 Zisserman 的教科书,您可以查看第 9.5 节.3 在那里你会找到从基本矩阵到一对相机矩阵所需的内容,这将允许你计算投影重建(我相信同样的内容出现在马毅书的第 6.4 节中)。由于本书算法的源代码可在线获取,您可以想要检查函数 vgg_P_from_F、vgg_X_from_xP_lin 和 vgg_X_from_xP_nonlin。
You can use the fundamental matrix to recover the camera matrices and triangulate the 3D points from their images. However, you must be aware that the reconstruction you will obtain will be a projective reconstruction and not a Euclidean one. This is useful if your goal is to measure projective invariants in the original scene such as the cross ratio, line intersections, etc. but it won't be enough to measure angles and distances (you will have to calibrate the cameras for that).
If you have access to Hartley and Zisserman's textbook, you can check section 9.5.3 where you will find what you need to go from the fundamental matrix to a pair of camera matrices that will allow you to compute a projective reconstruction (I believe the same content appears in section 6.4 of Yi Ma's book). Since the source code for the book's algorithms is available online, you may want to check the functions vgg_P_from_F, vgg_X_from_xP_lin, and vgg_X_from_xP_nonlin.
我认为彼得的matlab代码对你很有帮助:
http://www .csse.uwa.edu.au/~pk/research/matlabfns/
Peter 发布了许多基本矩阵解决方案。 zisserman书中提到了原始算法
http://www.amazon.com/exec/obidos/tg/detail/-/0521540518/qid=1126195435/ sr=8-1/ref=pd_bbs_1/103-8055115-0657421?v=glance&s=books&n=507846
另外,当你在看的时候,不要忘记看基本矩阵歌曲:
< a href="http://danielwedge.com/fmatrix/" rel="noreferrer">http://danielwedge.com/fmatrix/
我诚实地认为这是一首很好的作品!
Peter's matlab code would be much helpful to you I think :
http://www.csse.uwa.edu.au/~pk/research/matlabfns/
Peter has posted a number of fundamental matrix solutions. The original algorithms were mentioned in the zisserman book
http://www.amazon.com/exec/obidos/tg/detail/-/0521540518/qid=1126195435/sr=8-1/ref=pd_bbs_1/103-8055115-0657421?v=glance&s=books&n=507846
Also, while you are at it don't forget to see the fundamental matrix song :
http://danielwedge.com/fmatrix/
one fine composition in my honest opinion!
如果你的 3D 空间可以任意选择,你可以将你的第一个相机矩阵设置为
无平移,无旋转。这将为您留下从相机 1 定义的坐标系。然后校准第二个相机应该不会太难。
If your 3D-space can be chosen arbitrarily you could set your first camera matrix as
No translation, no rotation. That would leave you with a coordinate system defined from camera 1. Then it should not be too hard to calibrate the second camera.