type
status
date
slug
summary
tags
category
icon
password
- 参考三维重建公开课前两节课
1. 摄像机几何
1.1. 针孔模型&透镜
1.1.1. 针孔相机
- 早期相机: 小孔成像(添加屏障→减少模糊)
- 需要研究的是虚拟像平面
- 虚拟像平面到针孔的距离等于焦距
- 虚拟像平面的成像大小等于像平面的成像大小, 方向与原物体相同, 研究方便
- 缩小光圈可以使成像更清晰, 但是通过的光更少(成像更暗)
- 为了使成像更亮, 可以增加一个透镜



- 小孔成像系统建立数学模型

- 摄像机坐标系下, 三维点到平面的关系
1.1.2. 透镜
- 这里的f是透镜到焦点的距离

- 近轴折射模型
- 根据折射定律:
- 为透镜球面半在, 为透镜折射系数
- 近轴折射模型依旧满足小孔成像的数学模型
- 透镜缺点
- 失焦
- 畸变



1.2. 摄像机几何
1.2.1. 将像平面转换像素平面的过程
- 真实情况下, 成像获得的是离散的像素, 而不是连续的像平面图形
- 偏置: 需要偏移坐标点的位置(像平面中的原点转换到像素图坐标上时位置是)
- 单位转换: 将单位 转换为像素, 转换常数 (方向) 和 (方向) 以相机成像元器件参数为准.
- 单位:
- 非方形像素: :
→ 需要修改小孔成像模型

- 合并一下相机成像元器件的参数
- 存在一个问题: (三维空间坐标系的点坐标)(像素平面坐标系的点坐标)的变换不是线性变换, 因为的改变会使也改变(如果将理解为直线的斜率的话)
1.2.2. 将像平面转换像素平面的过程变为线性变换(齐次坐标系)
- 欧式坐标变为齐次坐标: 将原本是n维的坐标向量用n+1维表示(一一对应)

- 齐次坐标还原欧式坐标: 将最后一维的值除以前面的每一维的值
- 不一一对应, 下面这两个齐次坐标还原后相同

- 欧式转齐次公式


1.2.3. 解决相机偏斜问题
- 相机工艺问题造成偏斜, 角夹角

- 带偏斜补正的转换公式
- K有5个自由度(5个可变参数)

1.2.4. 规范化相机
- 规范化相机在现实世界不存在, 三维点坐标等于齐次坐标的前3维
- 的欧式坐标为
1.2.5. 世界坐标系与投影矩阵
- 世界坐标系用于方便的描述三维物体的空间信息

: 旋转矩阵 (3, 3); : 平移矩阵 (3, 1)
: 转换参数 (4, 4)
最终获得: 世界坐标系坐标 (4, 1)
- 整理公式获得完整的相机模型

: 像素平面, : 摄像机坐标下点的坐标, : 世界坐标系下点的位置.
- 投影矩阵有11个自由度(内参5个, 外参 ( 3个), ( 3个))
- 计算像素平面坐标
- 定理 (Faugeras, 1993)
- 令 为 的矩阵, 表示为矩阵 的行
- M是透视投影矩阵的充分必要条件
- (A是满秩矩阵)
- 秩的概念: 在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。
- 计算秩的例子:
- eg: 求矩阵 的秩.
- 满秩和失秩矩阵的秩最大为: m和n中的较小者, 表示为 . 有尽可能大的秩的矩阵被称为有满秩; 否则矩阵是秩不足(或称为“欠秩”)的.
- M是零倾斜透视投影矩阵的充分必要条件
- ()
- 叉乘的概念: , 则垂直于向量的平面
- 点乘的概念: 如果, 则垂直于
- M是零倾斜且宽高比为1透视投影矩阵的充分必要条件
关于秩
根据这个定理,我们得到利用初等变换求矩阵的秩的方法: 用初等行变换把矩阵变成行阶梯形矩阵, 行阶梯形矩阵中非零行的行数就是该矩阵的秩.

所以
关于矩阵乘法
1.2.6. 投影变换

1.3. 其他摄像机模型
各种相机的作用

1.3.1. 弱透视投影相机
- 的场景点全都认为在同一个平面(用于处理距离较远的点)
- 放大率

- 上: 原本的透视关系; 下: 弱透视投影相机的透视关系
- 透视(世界坐标系下点是齐次坐标, 要转换为非齐次)
- : 1x4矩阵; : 4x1矩阵
- 投影矩阵
- : 3x3; : 3x3; : 3x1→: 3x4
- 弱透视
- 都是(1, 4), 所以使用弱透视投影模型可以少4个参数, 于是可以加快计算
1.3.2. 正交投影相机
- 相机中心到像平面无限远的时候

1.4. 线性方程组的最小二乘解
1.4.1. 线性方程组的最小二乘解
- 线性方程组的解

- 当方程组无解 的时候, 需要找最小二乘解
- 线性方程组的最小二乘解

1.4.2. 齐次线性方程组求最小二乘解
- 齐次线性方程组特点: y=0
- 求解方法:
- 矩阵 进行奇异值分解
- 为 矩阵的最后一列 (最小奇异值对应的右奇异向量)

1.4.3. 非线性方程组求最小二乘解

2. 相机标定
2.1. 透镜相机标定问题
2.1.1. 概念
- 相机标定: 求解相机内外参数矩阵
- 用途: 通过这些参数描述三维世界到二维像素的映射关系
- 公式:

2.1.2. 求解相机内外参矩阵
相机的内外参构成了投影矩阵. 而投影矩阵有11个未知量组成.
- 由1.3.1透视公式推导得出像素点公式
- 由于一个点可以获得两个方程, 所以做内参外参标定的时候有11个未知量, 需要至少6个点.
- 当获取了超过6个点的像素坐标信息之后, 就可以应用超定齐次线性方程组(p>q → 方程组的数量大于线性方程的未知参数的数量)求最小二乘解
- 所有方程组合可得:
- 这里有12列是因为: 的尺寸是1x4.
- 这里有12行是因为: 的尺寸是4x1.
简化得
详细拆分, 由于最终矩阵相乘之后是一个实数, 实数转置等于本身, 所以可以加转置符号.
另外, 中的是三维坐标, 是二维坐标, 都是已知的, 所以 是线性变换.
- 求 的最小二乘解, 最终要获得的11个未知参数都在矩阵 里面
- 表示限制条件
- 求解方法:
- 矩阵 进行奇异值分解
- 为 矩阵的最后一列 (最小奇异值对应的右奇异向量)
- 于是
- 由于 的尺寸: 12x1, 变换成矩阵 (3x4), 就获得了相机的内外参矩阵.
结论: 为 矩阵最小奇异值的右奇异向量, 且
- 另外, 还需要求一个矩阵系数
- 先看矩阵投影公式
- 内参矩阵
- 外参矩阵
- 其中, 是单位向量, 表示旋转角度, 其中两两点乘为0, 两两叉乘得到第三个向量. 因为这3个向量互相垂直.
- 合并获得的公式
- 为一个比例系数, 表示 与真实相机之间的关系.
2.1.3. 获得相机内参
- 可以将先分解
- 是 的前3个元素(旋转矩阵), 是 的最后一列(平移矩阵)
- 去掉
- 看第3行, , 两边都取模. 由于旋转向量模为1. 由于 是系数, 脱离模之后无法知道正负, 所以
- 由于旋转向量的原理, 各旋转向量互相垂直, 所以 ; ; . 由公式 的第1行点乘第3行可得
- 同理
- 由于这里的 都是已知的(因为 已知), 所以由公式 可以获得相机的内参 .
2.1.4. 获得相机内参
- 对于公式 使用叉乘
- 各旋转向量互相垂直, 所以 ; ;
- 两边取模, 旋转向量都模都为1
的模怎么求?
- 由向量模的公式
- 可以获得 的模
- 公式 相互点乘可得
- 公式 相互点乘可得
- 公式 相除可得
这里可以反向推导出一个结论:
也就是 , 表示像素是垂直的, 零倾斜
2.1.5. 获得相机内参
- 由公式 可得
- 由向量性质: 向量模的平方等于向量的平方.
如果 , 那么
可得:
2.1.6. 获得相机外参
- 可以由公式 的第2行相除获得
- 可以由公式 的第3行和 获得
2.1.7. 获得相机外参
- 还是先分解 矩阵
- 这次去掉旋转矩阵
- 两边同乘
- 由于 可以直接从 中获得; 是内参矩阵已知; 也已知. 平移矩阵就算出来了.
2.1.8. 总结

2.2. 径向畸变相机标定
径向畸变: 图像像素点以畸变中心为中心点, 沿着径向产生的位置偏差, 从而导致图像中所成的像发生形变.

2.2.1. 畸变相机模型
- 是畸变模型
- 是畸变因子
- 正号表示桶形畸变; 负号表示枕型畸变.
- 图像放大率随光轴距离的增加而减小

建模径向特性
2.2.2. 求解失真系数
- 获得方程组, 但这不是线性方程组. 因为 包含了 , 随着坐标变化在变化.
- 增加采样点
- 最小二乘解
- 牛顿法与列文伯格-马夸尔特法 (L-M方法)
- 从初始解开始迭代,若初始解与实际相距较远,可能会很慢
- 估计解可能是初始解的函数 (由于局部最小值)
- 牛顿法需要计算一阶导矩阵J (雅可比矩阵) ,二阶导矩阵 H (海塞矩阵)
- L-M算法不用计算H
2.2.3. 求解线性部分
- 由公式 可得
- 简化可得
- 就可以使用多个点通过奇异值分解(SVD)求得
- 之后再计算公式 就少了两个未知参数, 使用牛顿法与列文伯格-马夸尔特法收敛会更快.