将像素从一张图片重新投影到另一张图片中

9
我有多个经过校准的相机拍摄平面场景的照片。为简单起见,假设有3个相机。这些相机正在进行一般运动,但主要是平移加上一些轻微旋转。相机示例位置 任务是将它们全部拼接在一起。我不知道3D坐标,只有使用已校准的相机拍摄的一组图像。
我使用OpenCV中的SURF/SIFT实现检测特征,通过对每对图像(1->2, 2->3, 1->3)使用findHomography来获得初始单应性。从这些单应性中,我可以获得每个相机的初始姿态估计(类似于此过程)
然后我尝试使用捆绑调整技术来最小化每个匹配对的重投影误差。优化参数是三个平移值和三个旋转值(从Rodrigues旋转公式获得),尽管我稍后可以添加内部参数(焦距,主点等)。
假设图像#2将成为参考帧(因为它与其他两个图像有最多的匹配),其旋转和平移矩阵分别为单位矩阵和零矩阵。

我计算关键点(在图像#2和图像#1中均可见)从图像#2到图像#1的重新投影如下(伪代码)

[x1_; y1_; z1_] = K1*R1*inv(K2)*[x2; y2; 1] + K1*T1/Z2;
x1 = x1_/z1_;
y1 = y1_/z1_;

或者

x1 = ((f1/f2)*r11*x2 + (f1/f2)*r12*y2 + f1*r13 + f1*tx/Z2) / ((1/f2)*r31*x2 + (1/f2)*r32*y2 + r33 + tx/Z2)
y1 = ((f1/f2)*r21*x2 + (f1/f2)*r22*y2 + f1*r23 + f1*ty/Z2) / ((1/f2)*r31*x2 + (1/f2)*r32*y2 + r33 + ty/Z2)

where r__是R1矩阵的元素,两个内参矩阵都采用以下形式
[f 0 0]
[0 f 0]
[0 0 1]

我假设参考系的Z2坐标为1。

下一步是使用获得的相机矩阵(K1,R1,T1,K3,R3,T3)将图像#1和#3扭曲到图像#2的公共坐标系中。

问题在于我不知道正确重投影到图像#2参考系所需的Z1和Z3,因为从图像#1->#2的反向重投影如下:

x2 = ((f2/f1)*R11*x1 + (f2/f1)*R12*y1 + f2*R13 - f0/Z1*(R11*tx + R12*ty + R13*tz)) / ((1/f1)*R31*x1 + (1/f1)*R32*y1 + R33 - 1/Z1*(R31*tx + R32*ty + R33*tz))
y2 = ((f2/f1)*R21*x1 + (f2/f1)*R22*y1 + f2*R23 - f0/Z1*(R21*tx + R22*ty + R23*tz)) / ((1/f1)*R31*x1 + (1/f1)*R32*y1 + R33 - 1/Z1*(R31*tx + R32*ty + R33*tz))

在这里,R__是inv(R1)矩阵的元素。
有没有更好的方法来计算束调整(2d-> 2d)的重新投影误差,然后将图像变形为公共坐标系?我注意到OpenCV在其拼接模块中具有非常相似的框架,但它基于纯旋转运动的假设,而这里不是这种情况。

你考虑过3D三角测量吗?例如,您可以使用除最后一个相机外的所有相机对一个点进行三角测量,并在最后一个相机中重新投影它。 - cedrou
2个回答

1

我在我的帖子中自动回答了那个问题如何从外参参数中获取立体图像的点数

请注意,我使用的方法(已测试并有效!)仅在3D坐标系中的对象是平面且在Z = 0(您校准摄像机的点)时才有效。在这种情况下,此方法与您的校准一样精确。注意:为了获得最佳校准,请检查OpenCV的圆形校准,它具有0.018像素的重投影误差(由我大学的博士生测试)。


1
你可能已经发现了关于拒绝错误的一个bug。它与这一行有关:
[x1_; y1_; z1_] = K1*R1*inv(K2)*[x2; y2; 1] + K1*T1/Z2;

点[x2; y2; 1]在一个尺度常数C*[x2; y2; 1]的模糊性中,此处将C设置为1,而通常是未知的。可能性的轨迹在第一个视图中表现为极线。可以使用最小二乘三角测量法找到沿着这条线存在3D点的最有可能的点,然后计算重新投影的点如下:

[x1_; y1_; z1_] = K1*(R1*X + T1);

然后,您可以像之前一样继续进行。您点云中每个这样的点X的3D坐标可以使用其对应的归一化坐标(x1,y1),(x2,y2),...以及相应的旋转矩阵和平移向量计算,通过将它们格式化为矩阵问题:

A X = b

然后解决最小二乘问题:
min |A X - b|_2

该内容在第3页和第4页有详细说明,点击此处查看。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接