Opencv 如果初始比例已知,是否可以计算后续立体重建的比例因子?
我正在尝试使用openCV在立体设置中进行相对姿势估计,其中我使用基本矩阵计算姿势,然后尝试使用cv::triangulatePoints重建场景。由于这使我可以重建到任意比例,因此我认为如果初始基线(~scale)已知(并且相机完全转换为X),我可以计算后续的比例因子。但是,即使相机不移动,场景也不改变,如果我拍摄多对图像,每个重建都会产生不同的比例:我通过拍摄两个点并比较它们之间的距离就知道了这一点。整个场景要么放大要么缩小,重建本身并没有错 为了解决这个问题,我尝试了一些简单的方法:我得到了pair1和pair2之间的比例变化,并尝试了以下方法:Opencv 如果初始比例已知,是否可以计算后续立体重建的比例因子?,opencv,computer-vision,triangulation,3d-reconstruction,Opencv,Computer Vision,Triangulation,3d Reconstruction,我正在尝试使用openCV在立体设置中进行相对姿势估计,其中我使用基本矩阵计算姿势,然后尝试使用cv::triangulatePoints重建场景。由于这使我可以重建到任意比例,因此我认为如果初始基线(~scale)已知(并且相机完全转换为X),我可以计算后续的比例因子。但是,即使相机不移动,场景也不改变,如果我拍摄多对图像,每个重建都会产生不同的比例:我通过拍摄两个点并比较它们之间的距离就知道了这一点。整个场景要么放大要么缩小,重建本身并没有错 为了解决这个问题,我尝试了一些简单的方法:我得到
1. Say distance between 3d points A and B in pair 2 = s*distance between same points in pair 1,
2. Rescale whole scene obtained from pair2 by s.
3. Use perspective n point algorithm (solvePnP in opencv) with these rescaled 3d points and 2d correspondences from pair 2.
但我得到的答案是s*t1,其中t1是第一种情况下的翻译。这让我非常困惑。因为场景没有发生太大的变化,所以1和2之间的2d点对应关系没有发生太大的变化。那么,即使我确实知道最初的“规模”(我认为这很简单),是否仍然不可能确定重建的规模?为什么重建在每一步都会给我任意的结果,PnP又是如何神奇地知道我已经完成了整个重缩放的
编辑:当相机静止时,这种情况似乎比其中一个相机移动时更常见。当摄像机静止不动时,比例因子会遍布整个区域。但是,例如,当基线加倍时,与初始重建相比,比例因子有时返回接近2的值 最后我不明白。。。你用的是两个摄像头还是一个?如果使用两个摄影机,则不会出现任意比例。比例设置为两个摄像机之间的特定距离。两个摄像机,这就是问题所在:即使摄像机没有移动,比例也在变化。这对我来说毫无意义。如果我用基线b固定相机并拍摄10对图像,当重建时,这10对图像有10个不同的比例,但总是b的倍数。