如何根据两个连续帧的投影变换矩阵估计相机姿态?

时间:2017-04-20 07:52:34

标签: graphics camera computer-vision projective-geometry

我正在研究kitti视觉测距数据集。我使用投影变换来注册两个2D连续帧(see projective transformation example here )。我想知道这个3 * 3投影变换矩阵是如何与kitti数据集提供的基本事实构成相关的。

该数据集给出了序列的基本真实姿势(轨迹),如下所述:

文件夹'姿势':

文件夹'姿势'包含了地面真相的姿势(轨迹) 前11个序列。此信息可用于培训/调整您的信息 方法。每个文件xx.txt包含一个N x 12表,其中N是数字 这个序列的帧。第i行代表左相机的第i个姿势 经由3×4变换的坐标系(即,z指向前方) 矩阵。矩阵以行对齐的顺序存储(第一个条目 对应于第一行),并在第i个坐标中取一个点 系统并将其投影到第一个(= 0)坐标系中。因此, 平移部分(第4列的3x1向量)对应于姿势 相对于第一帧,在第i帧中左相机坐标系 (= 0)帧。您的提交结果必须使用相同的数据提供 格式。

给定的实际情况的一些样本构成:

1.000000e + 00 9.043680e-12 2.326809e-11 5.551115e-17 9.043683e-12 1.000000e + 00 2.392370e-10 3.330669e-16 2.326810e-11 2.392370e-10 9.999999e-01 -4.440892e -16

9.999978e-01 5.272628e-04 -2.066935e-03 -4.690294e-02 -5.296506e-04 9.999992e-01 -1.154865e-03 -2.839928e-02 2.066324e-03 1.155958e-03 9.999971e -01 8.586941e-01

9.999910e-01 1.048972e-03 -4.131348e-03 -9.374345e-02 -1.058514e-03 9.999968e-01 -2.308104e-03 -5.676064e-02 4.128913e-03 2.312456e-03 9.999887e -01 1.716275e + 00

9.999796e-01 1.566466e-03 -6.198571e-03 -1.406429e-01 -1.587952e-03 9.999927e-01 -3.462706e-03 -8.515762e-02 6.193102e-03 3.472479e-03 9.999747e -01 2.574964e + 00

9.999637e-01 2.078471e-03 -8.263498e-03 -1.874858e-01 -2.116664e-03 9.999871e-01 -4.615826e-03 -1.135202e-01 8.253797e-03 4.633149e-03 9.999551e -01 3.432648e + 00

9.999433e-01 2.586172e-03 -1.033094e-02 -2.343818e-01 -2.645881e-03 9.999798e-01 -5.770163e-03 -1.419150e-01 1.031581e-02 5.797170e-03 9.999299e -01 4.291335e + 00

9.999184e-01 3.088363e-03 -1.239599e-02 -2.812195e-01 -3.174350e-03 9.999710e-01 -6.922975e-03 -1.702743e-01 1.237425e-02 6.961759e-03 9.998991e -01 5.148987e + 00

9.998890e-01 3.586305e-03 -1.446384e-02 -3.281178e-01 -3.703403e-03 9.999605e-01 -8.077186e-03 -1.986703e-01 1.443430e-02 8.129853e-03 9.998627e -01 6.007777e + 00

9.998551e-01 4.078705e-03 -1.652913e-02 -3.749547e-01 -4.231669e-03 9.999484e-01 -9.229794e-03 -2.270290e-01 1.649063e-02 9.298401e-03 9.998207e -01 6.865477e + 00

9.998167e-01 4.566671e-03 -1.859652e-02 -4.218367e-01 -4.760342e-03 9.999347e-01 -1.038342e-02 -2.554151e-01 1.854788e-02 1.047004e-02 9.997731e -01 7.724036e + 00

9.997738e-01 5.049868e-03 -2.066463e-02 -4.687329e-01 -5.289072e-03 9.999194e-01 -1.153730e-02 -2.838096e-01 2.060470e-02 1.164399e-02 9.997198e -01 8.582886e + 00

9.997264e-01 5.527315e-03 -2.272922e-02 -5.155474e-01 -5.816781e-03 9.999025e-01 -1.268908e-02 -3.121547e-01 2.265686e-02 1.281782e-02 9.996611e -01 9.440275e + 00

9.996745e-01 6.000540e-03 -2.479692e-02 -5.624310e-01 -6.345160e-03 9.998840e-01 -1.384246e-02 -3.405416e-01 2.471098e-02 1.399530e-02 9.995966e -01 1.029896e + 01

9.996182e-01 6.468772e-03 -2.686440e-02 -6.093087e-01 -6.873365e-03 9.998639e-01 -1.499561e-02 -3.689250e-01 2.676374e-02 1.517453e-02 9.995266e -01 1.115757e + 01

9.995562e-01 7.058450e-03 -2.894213e-02 -6.562052e-01 -7.530449e-03 9.998399e-01 -1.623192e-02 -3.973964e-01 2.882292e-02 1.644266e-02 9.994492e -01 1.201541e + 01

9.995095e-01 5.595311e-03 -3.081450e-02 -7.018788e-01 -6.093682e-03 9.998517e-01 -1.610315e-02 -4.239119e-01 3.071983e-02 1.628303e-02 9.993953e -01 1.286965e + 01

1 个答案:

答案 0 :(得分:1)

你的"投射转换的通用名称"是单应性。在校准设置中(即,如果您知道您的相机的视野或等效地,其焦距),单应性可以被分解为3D旋转和平移,后者仅按比例缩放。分解算法另外产生引导单应性的3D平面的法线。该算法最多有4个解决方案,当您应用其他约束时,其中只有一个是可行的,例如匹配的图像点在摄像机前面进行三角测量,并且平移的大致方向与已知的先验相匹配。

有关该方法的更多信息在众所周知的paper by Malis and Vargas中。 OpenCV中有一个名为decomposeHomographyMat的实现。