计算机视觉——三维视觉II

【本学期选修国科大计算机视觉课程,本人方向也是cv,因此想通过博客方式记录课程中比较重要的点,巩固并且进行一些扩展学习】

【从本章节开始由申抒含老师为我们讲述相关知识】

【本章节内容针对相机标定与稀疏重建进行讲解】

接下来我们将主要针对以下内容进行介绍:

• 三角化:已知xKRt,求X
相机标定:已知xX,求KRt
姿态估计:已知xX K ,求Rt
稀疏重建:已知x,求KRtX
重投影误差最小化
通过线性方法求解初始值(代数误差最小化),通过非线 性优化迭代求精(几何误差最小化)
相机标定与稀疏重建实践:Photo Tourism

稀疏点云重建:

输入:多视角图像              输出:相机位姿、稀疏点云

 我们针对不同的条件和环境对其进行一系列划分:

已知 x K R t ,求 X : 三角化( Triangulation
已知 x X K ,求 R t : 姿态估计( Pose Estimation
已知 x X ,求 K R t : 相机标定( Camera Calibration
已知 x ,求 K R t X :稀疏重建( Sparse Reconstruction
Structure from Motion (SfM)
Structure and Motion Estimation
如上章所讲:

一. 三角化

已知xKRt,求X

 

 但是这两个Image所得到的X不一定会相交

若为两视图,则可以通过两条视线公垂线的中点,如下图

                                                      

 若为n视图,上图方法不可实现,采用最小化重投影误差平方和

具体矩阵变化如下,感兴趣的同学可以看看。

 

基本思路:以 代数误差解 (好不好很取决于初值选定) 为初值,迭代求解几何误差解

 二. 相机标定(Camera Calibration

已知xX,求KRt

需要知道一组2D—3D对应,并知道对应点的2D3D坐标

标定物:人工标定的标定物,特征点易于提取
优点
标定精度高
通过一幅图像即可标定
缺点
需要高精度的三维标定块
n 2D-3D 对应点提供关于 P 2 n 个线性方程
n≥6 时, P 可以通过 DLT 线性解出( P 的自由度为 11

 P中分解相机内外参数KRt

 

 P的前三列进行RQ分解:

 K^(-1)乘以P的第四列得到t

平面标定板:

优点
容易制作(打印一张黑白棋盘格、一块足够平的木板)
标定工具箱成熟( Matlab OpenCV
缺点
标定精度不如三维标定物

H 称为单应,有 8个自由度
n 2D-3D 对应点提供关于 H 2 n 个线性方程
n≥4 时, H 可以通过 DLT 线性解出

具体过程如下:(感兴趣的同学可以看一下)
 

标定过程:

标定流程 1 :打印一张模板并贴在一个平面上

 

标定流程 2 :从不同角度拍摄若干张模板图像

 

标定流程 3 :检测图像中的特征点

 

标定流程 4 :求解相机内外参数

 

标定流程 5 :分析重投影误差

 

标定流程 6 :输出标定结果

 利用消影点标定(需要假设K中只有f未知)

 

消影点(vanishing points) :空间平行线在图像投影线的交点, 对应三维空间中的无穷远点。消影点只与三维直线方向有关, 与其位置无关

 

注意:消影点越靠近图像中心, f 计算的越准确
DLT求解相机标定的优缺点:
优点:
线性求解
缺点:
不包含相机畸变参数
无法添加其他约束(如已知相机焦距)
—最小化代数误差(无几何意义)

三.姿态估计(Pose Estimation

已知x XK,求Rt

最简单的方法:用与相机标定相同的 DLT 方法求解
6 2D-3D 对应点提供关于 P 12 个线性方程
DLT 线性求解 P
P 中分解相机内外参数 K R t

 

PnP(Perspective-n-Point)问题:
输入:
n 3D 点(世界坐标系)
n 2D 点(图像坐标系)
2D-3D 点对应关系已知
相机内参数 K 已知
输出:
3D 点在相机坐标系下的坐标
根据坐标变换可以计算 R t
P2P :无穷多解
P3P :最多四个解,需要第 4 个点验证
P4P :最多四个解,当四点共面时有唯一解
P5P :最多两个解
EPnP ≥4 组不共面点时有唯一解
PnP :线性求解( n>5
其他PnP :相机参数未知、相机高度已知、相机重力方向已知等等

四. 稀疏重建(Sparse Reconstruction

八点法求F

 5点法求解本质矩阵E

通过SVD分解从E中分解Rt(假设camera 1R1=I, t1=0):

 选择四组解中三角化得到的X在两个相机前方数量最多的解

 刚才假设摄像机内参数K已知,实践中如何给定K?

Focal length (pixels) = Focal length (mm) x Image width (pixels) / Sensor size (mm)

 

= 6.0 mm x 600 pixels / 5.75 mm = 626.1 pixels
                             

 

在获得 K R t 后,通过三角化计算空间点 X
以给定的 K 、通过 E 分解求得的 R t 、以及三角化后的 X 为初
始值,迭代求解重投影误差最小化问题:
                                         
得到几何误差最小化意义下的 K R t X

 

重投影误差最小化是一个非线性最小二乘问题,求解非线性最小二乘问题的方法:
非线性最小二乘是非线性优化的一类特殊形式;
针对一般非线性优化的 梯度下降法(1阶 )、 牛顿法(2阶)
针对非线性最小二乘的 高斯牛顿法 LM法 Levenberg Marquardt)。
非线性最小二乘问题迭代优化的基本思路
1 )给定初始值;
2 )开始迭代优化
选择最优移动方向使目标函数值下降最快;
以一定步长沿最优方向移动当前值;
如果两次迭代间目标函数值差异小于阈值或迭代次数 超出阈值,则转步骤3 ),否则返回 2 );
3 )迭代结束,输出当前值。

五.实践:Photo Tourism——增量式SfM

 

 

主要难点:
参数数量多

 

具体过程如下:

1. 选择初始图像对
2. 通过两视图 SfM 计算初始模型
3. 如果图像连接关系图还有未选择的图像,则:
     a. 选择一幅能看到目前模型中最多 3D 点的图像;
     b. 根据 3D‐2D 点对应估计相机位姿;
     c. 三角化新的特征点 Tracks
     d. Bundle adjustment
Photo Tourism — 添加新图像
下一步 : 在初始模型中添加新图像,同时三角化新
3D
姿态估计 ( 已知 x X K ,求 R t ) 和三角化 ( 已知 x
K R t ,求 X ) 均可通过 DLT 求解
实际应用中,一次可以添加多幅图像
如果剩余图像中单幅图像与模型的最多匹配点数
量为 N ,则匹配点数量多于 0.75 N 的图像一次添加
Photo Tourism — 外点处理
特征点匹配中的外点是不可避免的
外点处理策略:
1. 每次 Bundle adjustment 后去除外点并重新优化
2. 使用鲁棒目标函数,如 Huber 函数
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值