跟我一起学Multiple View Geometry多视图几何(4)
来源:互联网 发布:房屋免费设计软件 编辑:程序博客网 时间:2024/05/20 11:22
前言:今天我们主要学习从一些特殊相机运动中求解Fundamental matrices
9.3 Fundamental matrices arising from special motions特殊运动中求解Fundamental matrices
我们在从特殊化平移方向 t 和旋转轴方向 a 的关系中可以得到几种特殊的相机运动形式,我们将会讨论这其中的两种情况:没有旋转的纯平移和纯平面运动,在第二种运动模型中t与a是垂直的。这里的纯指的是相机内参不发生变化。
9.3.1.1 纯平移
在这种运动中我们可以看成相机不动世界坐标系的三维点在以向量-t平移,他们平移的直线平行于t,且在图像上看这些直线会相交于消失点v,很明显v是两个视图的epipole,投影到图像平面的直线即是epipole line,话不多说,上图:
例9.6:我们假定相机纯平移运动,两个相机矩阵分别是P=K[I | 0]and P’=K[I | t],(这里读者要去看下书上244页,取R=I,K=K’),于是有,如果相机平移方向与x轴平行,那么,所以
对于展开来就是
也就是。
这种情形具体会在11.12节图像矫正中讲到。(得到上面结果后书上有一句话我没看懂:i.e. the epipolar lines are corresponding rasters.希望大神指引)。
如果一个图像点坐标被归一化写成,从我们就可以得到空间点坐标,其中Z是点X的深度值(从左相机主轴方向测量的空间点X到相机中心的距离),由于x’=P’X,所以有:
这个式子说明图像点从x点出发,沿着x与消失点同时也算epipole的e点连线运动,运动的范围决定于t的尺度(它不是齐次向量)和深度Z,所以说靠近相机的点看起来运动速度要比远处的点速度快,就像从火车里往外看一个道理。
9.3.1.2 一般运动
给定任意两个相机,我们先旋转第一个相机使得与第二个相机对齐,可以通过对左图施加一个投影变换得到,然后再对左图进行矫正以弥补两个相机标定的差异,这两步可以对左图施加一个投影变换H实现,然后这两幅图像就是上面讲的纯平移运动了。因此对于施加了H变换的左图和右图之间的Fundamental matrix就有了如下形式:,他满足,其中是左图矫正后的点坐标,所以就有:,所以左图原始坐标点x与右图对应点之间的Fundamental matrix就可以写成,上图:
例9.7 假设两个相机矩阵分别为P=K[I | 0]and P’=K’[R| t],和上面的推导一样,我们可以得到
可以看出从x到x’可以分为两步:第一步之取决于像素位置x,与Z无关,包含了相机旋转和相机内参的变化;第二步决定于点的深度Z,包含了相机的平移,如果取R=I,K’=K,那么这个式子就退化成了上面的。
9.3.2 纯平面运动
这种运动中旋转转轴与平移方向正交,这个正交条件对运动施加了一个约束,这将会在本章的末尾练习处展示:如果K’=K,那么F的对称部分Fs秩为2,而对于一般相机运动这个值应该是满秩,因此,条件det(Fs)=0是F上的另外一个约束条件,而且会把F的自由度从一般运动情况的7降为6。
- 跟我一起学Multiple View Geometry多视图几何(4)
- 跟我一起学Multiple View Geometry多视图几何(1)
- 跟我一起学Multiple View Geometry多视图几何(2)
- 跟我一起学Multiple View Geometry多视图几何(3)
- 跟我一起学Multiple View Geometry多视图几何(5)编程实践课
- 跟我一起学Multiple View Geometry多视图几何(6)
- 多视图几何学(Multiple View Geometry)读书笔记目录
- 跟我一起学Simulink(一)
- 跟我一起学Makefile(转)
- 跟我一起学java
- 跟我一起学摄影
- 跟我一起学makefile
- 跟我一起学Makefile
- 跟我一起学Makefile
- 《跟我一起学C++》
- 跟我一起学makefile
- 跟我一起学CMake
- 跟我一起学Makefile
- androd 集成alipay
- App应用之间跳转
- 保留分页符 删除WORD空白页
- Java 集合系列18之 Iterator和Enumeration比较
- BTrace系列之五:实现原理
- 跟我一起学Multiple View Geometry多视图几何(4)
- HTML、CSS、JavaScript判断 IE
- django 多数据库
- java-接口回调
- js的原型模式
- poj3187
- 关于Java中静态代码块以及构造函数的执行先后顺序
- Html & CSS 思维导图整理[JK原创]
- c#跟踪