基于图像的三维模型重建——相机模型与对极几何
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者:梦寐mayshine
https://zhuanlan.zhihu.com/p/129681081
本文转载自知乎,作者已授权,未经许可请勿二次转载。
相机模型:针孔相机模型(普通相机)+ 鱼眼相机模型(视角更广,飞行器,无人机等)
针孔相机模型-成像过程
一、针孔相机模型——外参数矩阵
1.点的世界坐标系到相机坐标系(右手坐标系)
世界坐标系:可以定义空间中任意一个位置,原点位置+三个坐标轴方向=坐标系姿态
相机坐标系:定义在相机上,原点是相机中心,z轴沿着相机朝向,需要定义Y轴上下
点的世界坐标:
点相机坐标:
刚体变换:旋转+平移 -> 齐次坐标形式
逆变换:
2. 相机中心在世界坐标系中的位置
:相机中心在相机坐标系中的坐标
:相机中心在世界坐标系中的坐标
3. 相机朝向(z轴)在世界坐标系中的方向
旋转矩阵第三行
相机坐标系中z轴上的一点
二、针孔相机模型——内参数矩阵
1.相机坐标系到归一化像平面坐标系
归一化像平面是虚拟的平面坐标,它与物理像平面平行,且距离相机光心距离为f=1
2.归一化像平面标系到物理像平面坐标系 ——小孔成像过程
物理像平面是实际存在的平面,它是相机CCD阵列所在的平面
3.归一化像平面到像素坐标系
一般以左上角为坐标原点,需要进行坐标系平移
正方形->像素一样,
单位是像素/毫米
三、针孔相机模型——透视矩阵
步骤1:世界坐标系->刚体变化(旋转+平移)=外参数->相机坐标系
步骤2:相机坐标系->投影=内参数->相平面
步骤3:相平面->像素坐标变换=内参数->像素
姿态估计:6个外参数 R,t
相机标定:5个内参数:
(k1,k2为径向畸变系数)
四、针孔相机模型——径向畸变
1.成因:透镜不能完全满足针孔模型假设
近焦容易发生,可能产生更高阶只取两阶,越偏离图像中心畸变效果越明显
2. 径向畸变系数的最小乘估计
3. 径向畸变矫正
两个相机-> 2D-2D:对极几何
一、2D-2D:对极几何——对极约束
x1, x2像素坐标
x1^, x2^ 相机坐标
叉乘:[t]x R 向量构造成反对称矩阵
二、2D-2D:对极几何——基础矩阵F
1.基础矩阵性质
3x3的矩阵,秩为2->不可逆
具有7个自由度,没有尺度少了一个自由度,秩为2少一个自由度
奇异值为:
极线约束:
2. 基础矩阵求解方法
直接线性变换法
8点法
最小二乘法
基于RANSAC的鲁棒方法
3. 直接线性变换法
对于一对匹配点, 根据对极约束,
三、2D-2D:对极几何——RANSAC
1.RANSAC——随机一致性采样
N:样本点个数
K:求解模型需要最少的点的个数
流程:
1)随机采样 K 个点
2)对该 K个点拟合模型
3)计算其它点到拟合模型的距离 小于一定阈值,当作内点,统计内点个数
4)重复 M 次,选择内点数最多的模型
5)利用所有的内点重新估计模型(可选)
2. RANSAC——拟合直线
3. RANSAC——采样次数的计算
N -样本点个数
K -求解模型需要最少的点的个数
p -表示内点的概率
:K个点都是内点概率
:K个至少有一个外点(采样失败)的概率
:M次采样全部失败的概率
:M次采样至少有一次成功的概率
:计算p=0.9,K=8时,想要采样成功率达到z≥0.99所需要采样次数
4. RANSAC——估计基础矩阵
算法流程
1)随机采样8对匹配点
2)8点法求解基础矩阵 Fˆ
3)奇异值约束获取基础矩阵F
4)计算误差,并统计内点个数
5)重复上述过程,选择内点数最多的结果
6)对所有内点执行2,3,重新计算 F
内点判断标准——Sampson Distance
四、2D-2D:对极几何——本征矩阵E
1.本征矩阵性质
3x3的矩阵,秩为2
具有5个自由度——E是反对称矩阵
奇异值为
——两个不为零的奇异值相等
2.相机姿态的恢复
选择正确的相机姿态
相机的世界坐标O1, O2:
,
相机的世界坐标中的朝向d1,d2
利用相机姿态R,t 和匹配点p1, p2进行三角量测得到三维点P
P 需满足同时位于两个相机的前方:
方法1:
方法2:
对两个相机成立
五、2D-2D:对极几何——单应矩阵H
1.空间中特征点位于一平面上
2.直接线性变换法
3.RANSAC-估计单应矩阵
算法流程
1)随机采样4对匹配点
2)8点法求解基础矩阵H
3)计算误差,并统计内点个数
4)重复上述过程,选择内点数最多的结果
5)对所有内点执行3,4,重新计算H
内点判断标准:
推荐阅读:
那些精贵的3D视觉系统学习资源总结(附书籍、网址与****)
机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会(ICRA/IROS/ROBIO/CVPR/ICCV/ECCV等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号