摄影测量中的计算机视觉之Projective Transformation (2D Homography)

本节的主要目的是用几张水平覆盖度大于30%的电子图片合成全景图.

  1. 图像获取
    条件1 : 用数码相机拍摄水平覆盖度大于30%的几张图片.
    举例: 从左往右拍摄三张图, 第一张和第二张之间的水平覆盖度大于30%, 第二张和第三张之间的水平覆盖度大于30%.
    条件2 : 图像之间没有视差(disparity)存在.
    举例:相机绕着投影中心转动
    要么拍摄一个平面的对象,水平移动.

  2. 对应点分析
    把三幅图导入到电脑中,然后选取两副相邻图像之中至少四组对应点.

  3. 单应性(Homography)计算
    用奇异值分解(SVD singular value decomposition)去计算这个2D homography.得到两个必要的单应性矩阵.
    首先就是要选取四组对应点.要求是任意三点不能共线.并且最好是一些特征点, 不然之后自己可能都找不到对应点在哪里.
    把这些点都看做向量,从euclidian坐标系转到homograph.
    具体转化如下: 如果再euclidian坐标系下, 坐标为(x,y), 那么转到homograph就是(x,y,1)

转化后,第一步要做的就是conditioning, 也就是归一化
为什么一定要做这一步?
1 对于任何尺度的缩放,原点不变,始终是(0,0,0) 清除了坐标变换的影响.
2 可以提高计算精度.
如何做?
1 平移: 先找出图像的中心点, 然后把这个中心点平移到原点, 其他点也做同样的平移变换,得到平移因子tx,ty.
2 缩放: 将这些点到原点的平均距离缩放为1, x方向和y方向分别计算(其他资料有的写的 2 \sqrt{2} 2 ,他们假设坐标方向是各同向性的, Sx, Sy相等)
这里我也不太懂, 区别在哪?
非各向同性归一化和各向同性归一化的区别:
https://mil.ufl.edu/nechyba/www/eel6562/course_materials/t9.3d_vision/hartley1997.pdf(我自己还没看)

第二步就是计算design matrix
什么是设计矩阵呢?
设计矩阵其实就代表的已知观测量(Known observations).
每行表示一个观测对象,每列表示观测向量的一个变量.
我们的最终目的是想得到H, 也就是homography matrix. 这个代表的是未知参数(Unknown parameters).

现在我们已经得到了四对归一化后的点,那么如何通过这四对点来得到他们之间的变换矩阵(homography)呢?
x’ = (u’ v’ w’), x = (u v w), 想要把x转化为x’,就需要一个homography矩阵 H = [a b c; d e f; g h j]. 这里采用Matlab写法, ";"为列分隔符, 每对点的转化都满足如下的关系式(关系式1).

在这里插入图片描述
可以看到, 一共9个参数需要确定,但这九个参数实际上是由另外8个参数确定的.在这里插入图片描述
那么8个未知参数,至少需要八个线性无关的等式才可以解出.
通过关系式1,可以得出两个等式,也就是说,每对点可以解出2个未知参数.那么四对点就足够解出所以未知数.证明如下:

那么现在构造出一个设计矩阵,有n对点就可以构造出n(n>=4)个,再将这些设计矩阵合并为一个,命名为A,A是一个2n行9列的矩阵
通过前面的证明,可以知道Ah = 0
而h是H矩阵的变形.
Ah=0, 要求h其实是求A的零空间.
而零空间是Ah=0的解空间,Ah可以看成是矩阵A的所有的行向量分别和h做内积, 每一个行乘h(列向量)所得到的结果都是数字0(可见前面证明),所以每一个行向量都和h是正交的,所以h所在的空间与行空间是正交的,也就是零空间与行空间正交。当零空间不为空时,也就是Ah=0中的h可以取到不为0的解时,表明A的各个列向量之间线性相关.
通过SVD我们可以解出h.
SVD的证明明天写.

解出h以后,恢复为3*3的 H ~ \tilde{H} H~,因为前面的x, x’都是经过归一化的点,所以得到homography也是归一化后的, 现在要解除归一化.
H= T ′ ⊺ \mathbf{T'}^\intercal T H ~ \tilde{H} H~T.
证明: 传不上来!

假设三幅图,分别算出第一幅到第二副的矩阵和第三幅到第二幅的矩阵.

最后得到全景图.

参考:
https://www.cnblogs.com/lengyue365/p/7471608.html
上课用的PPT.(仅限内部使用)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值