UCAS - AI学院 - 计算机视觉专项课 - 第7讲 - 课程笔记

UCAS - AI学院 - 计算机视觉专项课 - 第7讲 - 课程笔记

立体视觉与三维重建

  • 立体视觉重建:多视角图像——相机位姿——三维重建模型
  • 图像获取
    • 室内环境
      • 光照可控
      • 相机稳定
    • 室外环境
      • 自然光线
      • 手持拍摄
    • 网络图片
      • 不可控
  • 相机位姿获取
    • 机械臂——小场景
    • 人工标志物——小场景
    • Global SfM——大场景(有先验)
    • Incremental SfM——大场景
  • 三维建模基本流程
    • 相机位姿——图像一致性——三维模型
    • 图像一致性
      • 对应图像投影点周围区域的一致性
      • SSD(可进一步优化): ρ S S D ( f , g ) = ∥ f − g ∥ 2 \rho_{SSD}(f, g) = \|f - g\|^2 ρSSD(f,g)=fg2
      • SAD(更加鲁棒): ρ S A D ( f , g ) = ∥ f − g ∥ \rho_{SAD}(f, g) = \|f - g\| ρSAD(f,g)=fg
      • NCC(避免光照问题): ρ N C C ( f , g ) = ( f − f ˉ ) ⋅ ( g − g ˉ ) δ f ⋅ δ g \rho_{NCC}(f, g) = \frac {(f - \bar f) \cdot (g - \bar g)}{\delta_f \cdot \delta_g} ρNCC(f,g)=δfδg(ffˉ)(ggˉ)
  • 两视图三维建模——立体视觉
    • 极几何
      • 人类视觉远近的感知:对应点在左右两幅图像上水平方向的跳变
      • 问题:需要找到所有点的匹配点
      • P l P_l Pl在右图像的匹配点在 P l P_l Pl的极线上——一维搜索
    • 极线校正
      • 理想情形:左右图像在同一水平面,x轴与基线平行,对应点具有相同y坐标
      • P l P_l Pl在右图像的极线平行于x轴——水平扫描线(坐标易于确定)
      • 很难保证完全平行——极线需要进一步矫正
      • 设置一个虚拟摄像机实现矫正——通过图像单应变换 H \bold H H完成
        • H = K 2 R 2 R 1 − 1 K 1 − 1 \bold H = \bold K_2 \bold R_2 \bold R_1^{-1} \bold K_1^{-1} H=K2R2R11K11
      • 立体视觉假设都完成了校正
    • 单应变换的几种形式
      • 经典单应:平面上的点到投影面的单应
      • 通过空间平面诱导的单应(空间点在一个平面 ( X , n ) (\bold X, \bold n) (X,n)上): H = K 2 ( R 2 R 1 − 1 + R 2 ( C 1 − C 2 ) n ⊤ n ⊤ X ) K 1 − 1 \bold H = \bold K_2 (\bold R_2 \bold R_1^{-1} + \frac {\bold R_2 (C_1 - C_2) \bold n^\top}{\bold n^\top \bold X}) \bold K_1^{-1} H=K2(R2R11+nXR2(C1C2)n)K11
        • 基本矩阵满足所有空间点,单应矩阵只满足同平面点
      • 相机纯旋转单应(与空间平面 ( X , n ) (\bold X, \bold n) (X,n)无关): H = K 2 R 2 R 1 − 1 K 1 − 1 \bold H = \bold K_2 \bold R_2 \bold R_1^{-1} \bold K_1^{-1} H=K2R2R11K11
        • 极线校正:纯旋转虚拟相机
    • 视差:左右图像匹配点在水平线上的差异
      • 视差大小与距离的远近成反比
    • 视差图:逐像素视差对应的灰度图
      • 越亮越近
      • 利用视差图可以得到单视点下的三维模型(稠密点云)
    • 视差和深度
      • 在这里插入图片描述

      • 基线 B B B:两个相机光心之间的距离

      • 相似三角形: X Z = x l f \frac {X}{Z} = \frac {x_l}{f} ZX=fxl X − B Z = x r f \frac {X-B}{Z} = \frac {x_r}{f} ZXB=fxr

      • 深度: Z = B ⋅ f x l − x r Z = \frac {B \cdot f}{x_l - x_r} Z=xlxrBf

      • 可见,视差和深度成反比

    • 基线越大、焦距越大、同样分辨率,深度测定精度越高
      • 但是公共可见区域就会很小
      • 需要折衷选择
    • 建模流程
      • 极线校正——立体匹配(视差图)——三角化(寻找比例因子,稠密点云)
  • 立体匹配
    • 最简单:对点 p p p,寻找极线上颜色最相似点: d p = arg ⁡ min ⁡ d c ( p , p − d ) d_p = \arg \min_d c(p, p - d) dp=argmindc(p,pd)
      • 可能会有很多颜色类似的点
      • 比较容易出现错误
    • 平滑性约束
      • 真值视差图大多数区域平滑(边缘存在跳变)
      • 匹配过程中考虑平滑性约束
    • 窗口匹配法
      • 对于一个点 p p p,在极线上寻找对应点
      • 通过一个窗口区域衡量匹配程度
      • d p = arg ⁡ min ⁡ d ∑ q ∈ W p c ( p , p − d ) d_p = \arg \min_d \sum_{q \in W_p} c(p, p - d) dp=argmindqWpc(p,pd)
      • 提高度量的稳定性和鲁棒性
      • 但是结果仍然不够理想,窗口尺寸影响结果
        • 弱纹理,窗口内像素值类似,度量函数不显著
        • 孔径问题,包含纹理区域太小,区分度不足(纹理沿水平分布)
        • 重复纹理,容易产生匹配误差
        • 前景放大效应,遮挡问题造成,尽在一个图像中出现的点造成匹配错误,背景错分为前景,造成前景放大(错误匹配点视差增大)
      • 窗口选择
        • 大窗口,利于解决前三个问题
        • 小窗口,利于解决后一个问题
    • 自适应窗口匹配法
      • 融合大小窗口的优势
      • 位于边缘区域的窗口不利于匹配
      • 自适应窗口
        • 分为9个子窗口
        • 每个子窗口分别计算相似度
        • 选择5个相似度最高的子窗口作为整个窗口相似度结果
      • 可以有效解决边缘区域的视差
    • 自适应权值窗口匹配法
      • d p = arg ⁡ min ⁡ d ∑ q ∈ W p w ( p , q ) c ( p , p − d ) d_p = \arg \min_d \sum_{q \in W_p} w(p, q) c(p, p - d) dp=argmindqWpw(p,q)c(p,pd)
      • 对每一个像素值独立衡量
      • w ( p , q ) w(p, q) w(p,q)表示两个像素点视差相同的可能性
      • 权值设定
        • 颜色,颜色相似,视差相同可能性大
        • 距离,距离中心点越近,视差相同可能性大
      • w ( p , q ) = exp ⁡ ( − ( δ c p q γ c + δ g p q γ g ) ) w(p, q) = \exp \left(- \left( \frac{\delta c_{pq}}{\gamma_c} + \frac {\delta g_{pq}}{\gamma_g} \right)\right) w(p,q)=exp((γcδcpq+γgδgpq))
        • 颜色:RGB差的绝对值和
        • 距离:欧式距离
        • 两个 γ \gamma γ人工指定
    • PathMatch Stereo
      • 放开两图像对应窗口区域相同的强假设(所有空间平面平行于相机)
      • 寻找真实的平面朝向
      • 空间面片patch的表达: d d d,一个自由度; n n n,两个自由度——单应变换
      • 窗口的投影区域(单应变换)上计算相似度
      • 三个自由度,在连续三维空间寻找——解决!
      • 核心思想
        • 随机生成每个像素点的深度和法向
        • 左上到右下(随机传播)
          • 检测邻域点的深度和法向是否更好(新面片——新单应——新投影——更高的一致性——更好)
          • 检测自身随机扰动后的点是否更好
        • 右上到左下
      • 根据:大数定律
  • 标准评测库
    • Middlebury
    • KITTI
    • SOTA:PatchMatch,CRF,CNN
  • 多视图三维建模
    • 寻找空间中具有图像一致性的点
    • 差异:相机不能保证位置
    • 分类
      • 深度图融合方法 Depth Map
      • 体素方法 Voxel
      • 点云扩散方法 Feature Point
    • 深度图融合MVS
      • 为每一幅图像选择邻域图像构成立体图像对
      • 计算每一幅图像的深度图
      • 深度图融合
      • 抽取物体表面
    • 体素MVS
      • 等价为一个3D空间Voxel的标记问题
      • Voxel表达:类似3D的像素表示
      • 物体表面:物体内部体素和外部体素的界面
      • 离散空间标记:典型MRF优化问题
      • 利用两个体素的相似度差异对分类结果进行惩罚:一致性越低,惩罚越高——对应二阶能量越大
      • 一阶能量:气球力,推动平面向外扩张
      • 能量函数: E ( k v ) = ∑ v Φ ( k v ) + ∑ ( v , w ) ∈ N Ψ ( k v , k w ) E({k_v}) = \sum_v \Phi (k_v) + \sum_{(v, w) \in N} \Psi (k_v, k_w) E(kv)=vΦ(kv)+(v,w)NΨ(kv,kw)
      • 求解:图割算法
        • 只有两个label
        • 二阶项满足sub-modular约束
      • 问题:计算代价太大
      • 处理大场景?自适应多分辨率表格(表面高分辨率,其余低分辨率)
      • Pros
        • 生成规则点云
        • 易于提取Mesh(连续面片)
      • Cons
        • 精度取决于Voxel粒度
        • 难以处理大场景
    • 特征点扩散MVS
      • 从初始稀疏特征点扩展得到点云
      • Patch表达:中心 + 法向
      • 步骤
        • 生成初始点云
        • 点云扩散(向空白区域扩散)
        • 点云过滤(去除深度不一致或一致性较低点)
      • Pros
        • 点云精度高
        • 点云分布均匀
      • Cons
        • 弱纹理区域造成扩散空洞
        • 需要一次读入所有图像
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值