Homography拓展(含与平面法向量相关的情况)

2022-10-10 更新

个人感想

homography 适用的第一种情况,H 矩阵的组成有R,t,K等信息,很有感觉。
但是适用的第三种情况,H 矩阵直接就用矩阵的 9 个元素来表示,没什么感觉。
更新前的原文推导的公式是第一种情况的公式

homography 的相关说明

Projective Transformations aka Homographies aka Planar Perspective Maps

就是 这三个词同义词

在这里插入图片描述

图10-10-1. projectivity 定义。图片来自Multiple View Geometry in Computer Vision P33

  
在这里插入图片描述

图10-10-2. projective transformation 定义。图片来自Multiple View Geometry in Computer Vision P33

  

注意,可以通过一个 homography 变换将一个二维平面变换到另外一个二维平面,就是两个平面局部坐标系的坐标存在一个变换。

  
在这里插入图片描述

图10-10-3. homography作用于两图像间的例子,来自网课计算机视觉,谭平老师

  
在这里插入图片描述

图10-10-4. 。图片来自Multiple View Geometry in Computer Vision P33

  
在这里插入图片描述

图10-10-5. 。homography 的一个应用,图片来自Multiple View Geometry in Computer Vision P35
# 原文

在下面3种情况中,两个相机的像素点之间可以用一个 homography 矩阵进行转换:

  1. 两个相机看到的 3d 点在一个平面上
  2. 两个相机没有平移只有旋转
  3. 作者感觉就是 central projection 的例子,如2022-10-10更新的图10-10-4所示。
    在这里插入图片描述
图0. homography 变换的三种适用情况。图片来自Multiple View Geometry in Computer Vision P36

  
注意,homography矩阵刻画的是一种坐标之间的对应关系。
  
本文推导关于两个 像素坐标系下的 以及 在两个 相机坐标系下的 归一化 成像平面的对应点之间的 homography 矩阵。

在这里插入图片描述

图1. 两个相机视角 C C C, C ′ C^{'} C 同时看 3d 空间中 共面 3d点。来自 Visual Odometry on Mobile
Devices for Virtual Walkthroughs page25

首先在,3d场景下,有一个在 平面上的 3d 点 Q Q Q, 它在相机坐标系 C C C, C ′ C^{'} C 下的 3d 坐标分别是 Q 1 Q_1 Q1, Q 2 Q_{2} Q2。已知,两个相机坐标系的关系如下:

Q 2 = R Q 1 + t (1) Q_{2}= RQ_{1}+t \tag{1} Q2=RQ1+t(1)

其中 R R R, t t t 分别为 从相机坐标系 C C C 转换到 C ′ C' C 3 × 3 3\times3 3×3 3 × 1 3\times1 3×1旋转矩阵平移向量
又由 图1 所示, 3 × 1 3\times1 3×1 向量 n n n 是平面的一个单位法向量,而且它指向相机 C 光心的那侧(因为一个平面的法向量有两个方向,本文故指定其方向)。故
d = − n T Q 1 (2) d=-n^{T}Q_{1}\tag{2} d=nTQ1(2)
其中 d d d 是三维场景中相机 C 的光心到平面 的距离。
Q 1 Q_{1} Q1 代表由相机 C 的光心指向 三维点 Q 1 Q_{1} Q1的向量。
对式(2)等式两边同除以 d d d,得
1 = − n T Q 1 d (3) 1 = -\frac{n^{T}Q_{1}}{d} \tag{3} 1=dnTQ1(3)
根据 式(1)、(2),得
Q 2 = R Q 1 − t n T Q 1 d Q_{2} = RQ_{1}-t\frac{n^{T}Q_{1}}{d} Q2=RQ1tdnTQ1
可化为
Q 2 = ( R − t n T d ) Q 1 (4) Q_{2} = (R-t\frac{n^{T}}{d})Q_{1}\tag{4} Q2=(RtdnT)Q1(4)
注意,提取公共矩阵 Q Q Q 在原来项中都处于右侧,故提出去后必须放在括号右边,矩阵乘法无交换律。
另一方面,根据相机坐标系的点投影到像素平面,有
s 1 q 1 = K 1 Q 1 (5) s_{1}q_{1}=K_{1}Q_{1} \tag{5} s1q1=K1Q1(5) s 2 q 2 = K 2 Q 2 (6) s_{2}q_{2}=K_{2}Q_{2} \tag{6} s2q2=K2Q2(6)
其中, q 1 q_{1} q1, q 2 q_{2} q2 分别是 Q 1 Q_{1} Q1, Q 2 Q_{2} Q2 在各自像素平面上的像素点, K 1 K_{1} K1, K 2 K_{2} K2 分别为各自的 3 × 3 3\times3 3×3 相机内参矩阵
进而,将式(4)带入(6),得
s 2 q 2 = K 2 ( R − t n T d ) Q 1 (7) s_{2}q_{2}=K_{2}(R-t\frac{n^{T}}{d})Q_{1} \tag{7} s2q2=K2(RtdnT)Q1(7)
根据 式(5)(7),得
s 2 q 2 = s 1 K 2 ( R − t n T d ) K 1 − 1 q 1 s_{2}q_{2}= s_{1}K_{2}(R-t\frac{n^{T}}{d})K_{1}^{-1}q_{1} s2q2=s1K2(RtdnT)K11q1
可化为
q 2 = s K 2 ( R − t n T d ) K 1 − 1 q 1 (8) q_{2}= sK_{2}(R-t\frac{n^{T}}{d})K_{1}^{-1}q_{1} \tag{8} q2=sK2(RtdnT)K11q1(8)
其中
s = s 1 s 2 s = \frac{s_{1}}{s_{2}} s=s2s1

故从一个像素平面到另一个像素平面的 homography 矩阵
H = K 2 ( R − t n T d ) K 1 − 1 (9) H = K_{2}(R-t\frac{n^{T}}{d})K_{1}^{-1} \tag{9} H=K2(RtdnT)K11(9)

Q 1 ˉ = K 1 − 1 q 1 (10) \bar{Q_{1}} = K_{1}^{-1}q_{1} \tag{10} Q1ˉ=K11q1(10) Q ˉ 2 = K 2 − 1 q 2 (11) \bar{Q}_{2} = K_{2}^{-1}q_{2}\tag{11} Qˉ2=K21q2(11)

其中 Q 1 ˉ \bar{Q_{1}} Q1ˉ, Q ˉ 2 \bar{Q}_{2} Qˉ2 分别为各自相机坐标系下 normalized相机平面上的 3d 点。
故由式(8)(10)(11),得 各自相机坐标系下 归一化平面上的 homography 矩阵
H ˉ = R − t n T d \bar{H} = R-t\frac{n^{T}}{d} Hˉ=RtdnT

应用

  1. 得到一张图像在另外的视角下面的图像。比如想得到道路的俯视图,但是没有俯视图,可以从其他视角的图像通过homography矩阵得到。
  2. 求得 H,K,解算R,t。

参考资料

Pinhole Camera: Homography
Visual Odometry on Mobile Devices for Virtual Walkthroughs
wiki:homography

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值