UCAS - AI学院 - 计算机视觉专项课 - 第7讲 - 课程笔记
UCAS - AI学院 - 计算机视觉专项课 - 第7讲 - 课程笔记
立体视觉与三维重建
- 立体视觉重建:多视角图像——相机位姿——三维重建模型
- 图像获取
- 室内环境
- 光照可控
- 相机稳定
- 室外环境
- 自然光线
- 手持拍摄
- 网络图片
- 不可控
- 室内环境
- 相机位姿获取
- 机械臂——小场景
- 人工标志物——小场景
- Global SfM——大场景(有先验)
- Incremental SfM——大场景
- 三维建模基本流程
- 相机位姿——图像一致性——三维模型
- 图像一致性
- 对应图像投影点周围区域的一致性
- SSD(可进一步优化):
- SAD(更加鲁棒):
- NCC(避免光照问题):
- 两视图三维建模——立体视觉
- 极几何
- 人类视觉远近的感知:对应点在左右两幅图像上水平方向的跳变
- 问题:需要找到所有点的匹配点
- 在右图像的匹配点在的极线上——一维搜索
- 极线校正
- 理想情形:左右图像在同一水平面,x轴与基线平行,对应点具有相同y坐标
- 在右图像的极线平行于x轴——水平扫描线(坐标易于确定)
- 很难保证完全平行——极线需要进一步矫正
- 设置一个虚拟摄像机实现矫正——通过图像单应变换完成
- 立体视觉假设都完成了校正
- 单应变换的几种形式
- 经典单应:平面上的点到投影面的单应
- 通过空间平面诱导的单应(空间点在一个平面上):
- 基本矩阵满足所有空间点,单应矩阵只满足同平面点
- 相机纯旋转单应(与空间平面无关):
- 极线校正:纯旋转虚拟相机
- 视差:左右图像匹配点在水平线上的差异
- 视差大小与距离的远近成反比
- 视差图:逐像素视差对应的灰度图
- 越亮越近
- 利用视差图可以得到单视点下的三维模型(稠密点云)
- 视差和深度
-
-
基线:两个相机光心之间的距离
-
相似三角形:和
-
深度:
-
可见,视差和深度成反比
-
- 基线越大、焦距越大、同样分辨率,深度测定精度越高
- 但是公共可见区域就会很小
- 需要折衷选择
- 建模流程
- 极线校正——立体匹配(视差图)——三角化(寻找比例因子,稠密点云)
- 极几何
- 立体匹配
- 最简单:对点,寻找极线上颜色最相似点:
- 可能会有很多颜色类似的点
- 比较容易出现错误
- 平滑性约束
- 真值视差图大多数区域平滑(边缘存在跳变)
- 匹配过程中考虑平滑性约束
- 窗口匹配法
- 对于一个点,在极线上寻找对应点
- 通过一个窗口区域衡量匹配程度
- 提高度量的稳定性和鲁棒性
- 但是结果仍然不够理想,窗口尺寸影响结果
- 弱纹理,窗口内像素值类似,度量函数不显著
- 孔径问题,包含纹理区域太小,区分度不足(纹理沿水平分布)
- 重复纹理,容易产生匹配误差
- 前景放大效应,遮挡问题造成,尽在一个图像中出现的点造成匹配错误,背景错分为前景,造成前景放大(错误匹配点视差增大)
- 窗口选择
- 大窗口,利于解决前三个问题
- 小窗口,利于解决后一个问题
- 自适应窗口匹配法
- 融合大小窗口的优势
- 位于边缘区域的窗口不利于匹配
- 自适应窗口
- 分为9个子窗口
- 每个子窗口分别计算相似度
- 选择5个相似度最高的子窗口作为整个窗口相似度结果
- 可以有效解决边缘区域的视差
- 自适应权值窗口匹配法
- 对每一个像素值独立衡量
- 表示两个像素点视差相同的可能性
- 权值设定
- 颜色,颜色相似,视差相同可能性大
- 距离,距离中心点越近,视差相同可能性大
-
- 颜色:RGB差的绝对值和
- 距离:欧式距离
- 两个人工指定
- PathMatch Stereo
- 放开两图像对应窗口区域相同的强假设(所有空间平面平行于相机)
- 寻找真实的平面朝向
- 空间面片patch的表达:,一个自由度;,两个自由度——单应变换
- 窗口的投影区域(单应变换)上计算相似度
- 三个自由度,在连续三维空间寻找——解决!
- 核心思想
- 随机生成每个像素点的深度和法向
- 左上到右下(随机传播)
- 检测邻域点的深度和法向是否更好(新面片——新单应——新投影——更高的一致性——更好)
- 检测自身随机扰动后的点是否更好
- 右上到左下
- 根据:大数定律
- 最简单:对点,寻找极线上颜色最相似点:
- 标准评测库
- Middlebury
- KITTI
- SOTA:PatchMatch,CRF,CNN
- 多视图三维建模
- 寻找空间中具有图像一致性的点
- 差异:相机不能保证位置
- 分类
- 深度图融合方法 Depth Map
- 体素方法 Voxel
- 点云扩散方法 Feature Point
- 深度图融合MVS
- 为每一幅图像选择邻域图像构成立体图像对
- 计算每一幅图像的深度图
- 深度图融合
- 抽取物体表面
- 体素MVS
- 等价为一个3D空间Voxel的标记问题
- Voxel表达:类似3D的像素表示
- 物体表面:物体内部体素和外部体素的界面
- 离散空间标记:典型MRF优化问题
- 利用两个体素的相似度差异对分类结果进行惩罚:一致性越低,惩罚越高——对应二阶能量越大
- 一阶能量:气球力,推动平面向外扩张
- 能量函数:
- 求解:图割算法
- 只有两个label
- 二阶项满足sub-modular约束
- 问题:计算代价太大
- 处理大场景?自适应多分辨率表格(表面高分辨率,其余低分辨率)
- Pros
- 生成规则点云
- 易于提取Mesh(连续面片)
- Cons
- 精度取决于Voxel粒度
- 难以处理大场景
- 特征点扩散MVS
- 从初始稀疏特征点扩展得到点云
- Patch表达:中心 + 法向
- 步骤
- 生成初始点云
- 点云扩散(向空白区域扩散)
- 点云过滤(去除深度不一致或一致性较低点)
- Pros
- 点云精度高
- 点云分布均匀
- Cons
- 弱纹理区域造成扩散空洞
- 需要一次读入所有图像