使用地平面单位和高度的相机方向(用于体积雕刻)

时间:2016-01-06 12:48:18

标签: graphics computer-vision homography 3d-reconstruction

我正在尝试实现this paper中使用的3D重建技术 即卷雕

我正在使用露台数据集,该数据集包含来自四个不同视图的视频。我从这些视频中提取了前景。现在使用体积雕刻我需要知道相机的相对位置。我很难找到这个。在callibiration文件中,我得到了3 * 3地平面单应矩阵和每个摄像机的高度。

摄像头0

地平面单应性

-1.6688907435 -6.9502305710 940.69592392565

1.1984806153 -10.7495778320 868.29873467315

0.0004069210 -0.0209324057 0.42949125235

摄像机视图中的头部平面高度 10.590278

相机1

地平面单应性

0.6174778372 -0.4836875683 147.00510919005

0.5798503075 3.8204849039 -386.096405131

0.0000000001 0.0077222239 -0.01593391935

摄像机视图中的头部平面高度 9.722222

相机2

地平面单应性

-0.2717592338 1.0286363982 -17.6643219215

-0.1373600672 -0.3326731339 161.0109069274

0.0000600052 0.0030858398 -0.04195162855

摄像机视图中的头部平面高度 6.423611

相机3

地平面单应性

-0.3286861858 0.1142963200 130.25528281945

0.1809954834 -0.2059386455 125.0260427323

0.0000693641 0.0040168154 -0.08284534995

摄像机视图中的头部平面高度 6.423611

2 个答案:

答案 0 :(得分:0)

获取相机位置和方向的方法是:

  1. 使用相机校准矩阵

  2. 对3 * 3 Homography矩阵进行反规范化
  3. 将得到的单应性矩阵分解为3 * 4投影矩阵

  4. 投影矩阵包含旋转和平移矩阵,翻译将归一化位置信息。

  5. 将位置矢量与高度相乘,它给出了相对于3 * 3同位素矩阵的相对于地面坐标系的位置。

  6. 使用内置函数DecomposeHomography的opencv可以完成1-3个步骤  休息是直截了当的

答案 1 :(得分:0)

我不认为你真的需要相关的相机姿势(虽然你可以轻松地计算它们)。你只需要每个相机的绝对姿势w.r.t.参考平面,因为飞机定义了"世界"您将卷放置到其上的坐标系。你可以通过RQ分解单调来获得绝对姿势。

H = s * R * Q

s是标量,R是右三角矩阵(相机矩阵),Q是标准正交姿势矩阵。我假设"头部平面高度"是给你绝对的比例。

参见关于空间雕刻的非常古老的Szelisky和Kutulakos / Seitz论文:

http://research-srv.microsoft.com/pubs/75650/Szeliski-CVGIPIU93.pdf http://www.cs.toronto.edu/~kyros/pubs/00.ijcv.carve.pdf