我是靠谱客的博主 瘦瘦网络,最近开发中收集的这篇文章主要介绍空间坐标乘旋转矩阵_单应矩阵的推导与理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

〇 、单应矩阵介绍

单应矩阵

(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)

上面推导用到的理论:

  1. 齐次坐标与系数无关,因此可省去

可见,加入 3D 点的平面参数后,可由 a 系下像素坐标完全计算出对应的 b 系下像素坐标。

3. 定义单应矩阵

符号简化:

其中

为由像素系 a 到像素系 b 的
单应矩阵

单应矩阵包含了相机内参矩阵

、旋转
、平移
和平面参数
信息。引入单应矩阵后,可以直接通过 a 系像素得到 b 系像素。

四、求解单应矩阵

(3.7)给出的单应矩阵的定义是通过旋转平移信息计算的,现实中有时不知道旋转平移信息,而知道两张图像中的匹配点,可以由匹配点计算出单应矩阵。

对于图片上的一对匹配点有如下关系:

展开得:

1. 单应矩阵有 8 个未知数

因为转换的是齐次坐标,所以单应矩阵

与尺度无关,也即
的作用是相同的,因此自由度为 8,使用
来进行归一化。

共 8 个未知数,需要 8 个方程来解。

2. 一对匹配点提供 2 个方程

由于是齐次坐标,所以展开是这种形式:

3. 四对匹配点提供 8 个方程

解此线性方程组,可得 单应矩阵

最后

以上就是瘦瘦网络为你收集整理的空间坐标乘旋转矩阵_单应矩阵的推导与理解的全部内容,希望文章能够帮你解决空间坐标乘旋转矩阵_单应矩阵的推导与理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部