概述
〇 、单应矩阵介绍
单应矩阵
(Homography),约束了同一 3D 空间点在两个像素平面的 2D 齐次坐标。
展开:
正比于符号
可以理解为单应矩阵
约束了
和
的方向是同方向,而不约束尺度。可通过
叉乘计算消去齐次的尺度因子,因此上面的约束还可以表达为如下形式:
因为
和
同方向,所以其叉乘结果为
向量。
依据推导可得,单应矩阵 H 由两相机旋转和平移信息
,两相机内参矩阵
,平面参数组成
:
下面给出上述单应矩阵公式的推导和理解过程。
一、基本设定
1. 相机系坐标
3D 空间点在相机系下的坐标
为:
2. 像素系坐标
相机系坐标投影到像素系的齐次坐标:
其中:
-
为像素系齐次坐标;
-
为相机内参矩阵:。
3. 平面参数
3D 空间点
所在的平面在相机系下的平面参数为:
其中:
-
为平面法向量;
-
相机系原点到平面距离。
3D 空间点
位于平面
上由以下方程表达:
二、平面参数:由像素系计算相机系
1. 由像素系坐标计算相机系坐标:
由于存在未知的深度
,因此无法由像素系计算出相机系坐标。
2. 平面参数计算深度
结合(1.4)(2.1)得:
整理得:
可见:通过 3D 点所在平面参数和像素系坐标
可以计算出 3D 点的深度
。
结合(2.1)(2.4)得:
可知,加入平面信息
后,可完全由像素坐标还原出相机系坐标。
三、单应矩阵:由像素系 a 计算像素系 b
1. 由 a 系像素计算 b 系像素
有相机系 a 下的点
和 相机系 b 下的点
:
其中:
-
表示:1. b 系下 a 系的姿态。2. a 系到 b 系的坐标旋转变换;
-
表示:1. b 系下 a 系的位置。2. a 系到 b 系的坐标平移变换。
转到对应像素系,有关系:
可得到,由 a 系像素表达的 b 系像素:
但是存在未知数
,所以无法直接通过 a 系像素得到 b 系像素。
2. 加入平面参数
结合(2.4)(3.4)
上面推导用到的理论:
-
- 齐次坐标与系数无关,因此可省去
可见,加入 3D 点的平面参数后,可由 a 系下像素坐标完全计算出对应的 b 系下像素坐标。
3. 定义单应矩阵
符号简化:
其中
为由像素系 a 到像素系 b 的
单应矩阵:
单应矩阵包含了相机内参矩阵
、旋转
、平移
和平面参数
信息。引入单应矩阵后,可以直接通过 a 系像素得到 b 系像素。
四、求解单应矩阵
(3.7)给出的单应矩阵的定义是通过旋转平移信息计算的,现实中有时不知道旋转平移信息,而知道两张图像中的匹配点,可以由匹配点计算出单应矩阵。
对于图片上的一对匹配点有如下关系:
展开得:
1. 单应矩阵有 8 个未知数
因为转换的是齐次坐标,所以单应矩阵
与尺度无关,也即
与
的作用是相同的,因此自由度为 8,使用
来进行归一化。
故
共 8 个未知数,需要 8 个方程来解。
2. 一对匹配点提供 2 个方程
由于是齐次坐标,所以展开是这种形式:
3. 四对匹配点提供 8 个方程
解此线性方程组,可得 单应矩阵
。
最后
以上就是瘦瘦网络为你收集整理的空间坐标乘旋转矩阵_单应矩阵的推导与理解的全部内容,希望文章能够帮你解决空间坐标乘旋转矩阵_单应矩阵的推导与理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复