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

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

相机模型与多视几何

  • 高级认知:空间视觉(几何) + 物体视觉(学习)
  • 三维视觉所需信息
    • 二维图像基本信息
    • 场景的三维结构
    • 六自由度的空间位姿
  • 计算机视觉框架
    • Marr:图像——特征提取——2.5维深度图(摄影者视角深度信息)——三维模型(物体视角深度信息)——理解
    • Poggio:图像——特征提取——子空间学习(不需要完全还原)——理解
    • Hinton:图像——深度学习(生物视觉过程模拟)——理解
  • 三维计算机视觉应用
    • 三维重建
    • 运动捕捉
    • 三维地图构建和重定位
  • 研究内容
    • 场景结构
    • 相机位姿
    • 相机参数
  • Structure from Motion (SfM)
    • 多视角图像
    • 重建场景稀疏结构与相机位姿(off-line)
    • SfM可通过MVS(多视图立体几何)获得稠密场景结构(off-line)
    • SfM可通过PnP(像素的点对应)计算相机实时位姿(on-line)
  • Simultaneous Localization and Mapping (SLAM)
    • 视频序列
    • 重建场景稀疏 / 准稠密 / 稠密结构与相机位姿(on-line)
    • 需要闭环检测 + 图优化(on-line)
  • 相机成像
    • 小孔成像:小孔(光圈)阻挡大部分光线,胶片上获得倒立的像
      • 小光圈:曝光时间长,清晰图像
      • 大光圈:曝光时间段,模糊图像
      • 光圈过小:发生衍射现象
    • 透镜系统:光线汇聚作用,呈现时间很短
      • 景深:
        • 聚焦平面与弥散圈,成像公式1D+1D=1f\frac 1{D^\prime} + \frac 1{D} = \frac 1f
        • 在弥散圈范围内,人眼都可看到清晰图像——景深
        • 景深范围调整:光圈,越小景深越大
    • 在CV中,绝大多数分析都可以将成像系统等效为一个小孔成像模型
  • 欧氏空间与射影空间
    • 点对应:X=[XYZ]\bold X = \left[ \begin{array}{c} X \\ Y \\ Z \end{array} \right]x=[xy]\bold x = \left[ \begin{array}{c} x \\ y \end{array} \right]
      • 原点定义在相机光心,x轴和y轴平行于相机平面,z轴垂直于相机平面
      • 二维平面视为位于焦距距离ff的三维点
      • 投影——相似三角形对应关系:λ[xyf]=[XYZ]\lambda\left[ \begin{array}{c} x \\ y \\ f \end{array} \right]=\left[ \begin{array}{c} X \\ Y \\ Z \end{array} \right]
      • 存在无穷远点,需要设法参与计算——欧氏空间无法满足需求
    • 射影空间
      • 一条直线上只有一个无穷远点
      • 在一个平面上,所有的无穷远点组成一条直线,称为该平面的无穷远直线
      • 三维空间中的无穷远点组成一个平面,称为这个空间的无穷远平面
      • 不区分有限远元素和无穷远元素,记PnP^n
      • 一维:欧氏直线 + 无穷远点
      • 二维:欧氏平面 + 无穷远直线
      • 三维:欧式空间 + 无穷远平面
  • 齐次坐标
    • 射影空间的坐标表达方式
    • (x,y)=[xy1](x, y) = \left[ \begin{array}{c} x \\ y \\ 1 \end{array} \right]
    • (x,y,z)=[xyz1](x, y, z) = \left[ \begin{array}{c} x \\ y \\ z \\ 1 \end{array} \right]
    • [xyw]=(x/w,y/w)\left[ \begin{array}{c} x \\ y \\ w \end{array} \right] = (x / w, y / w)
    • [xyzw]=(x/w,y/w,z/w)\left[ \begin{array}{c} x \\ y \\ z \\ w \end{array} \right] = (x / w, y / w, z / w)
    • 齐次坐标在相差一个尺度时等价:λ[xyz1]=[xyz1]\lambda \left[ \begin{array}{c} x \\ y \\ z \\ 1 \end{array} \right] = \left[ \begin{array}{c} x \\ y \\ z \\ 1 \end{array} \right]
    • 无穷远点齐次坐标:[xyz0]\left[ \begin{array}{c} x \\ y \\ z \\ 0 \end{array} \right]
  • 相机模型:[xyf]=[100001000010][xyz1]\left[ \begin{array}{c} x \\ y \\ f \end{array} \right] = \left[ \begin{array}{c} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array} \right]\left[ \begin{array}{c} x \\ y \\ z \\ 1 \end{array} \right]
    • 该矩阵即为投影矩阵
    • 注意:ff的单位为像素(保持和图像坐标量纲一致)
    • 单位化处理:[xy1]=[f000f0001][100001000010][xyz1]\left[ \begin{array}{c} x \\ y \\ 1 \end{array} \right] = \left[ \begin{array}{c} f & 0 & 0 \\ 0 & f & 0 \\ 0 & 0 & 1 \end{array} \right] \left[ \begin{array}{c} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ 1 \end{array} \right]
    • 坐标系
      • 世界坐标系,不依赖相机运动发生变化
      • 相机坐标系,原点位于相机光心
      • 坐标变换:刚体欧氏变换(相机的旋转RR和平移tt
      • Expected node of type ordgroup, but got node of type font
      • 基于世界坐标系齐次坐标的相机模型Expected node of type ordgroup, but got node of type font
      • K\bold K为内参数矩阵K=[f000f0001]\bold K = \left[ \begin{array}{c} f & 0 & 0 \\ 0 & f & 0 \\ 0 & 0 & 1 \end{array} \right],使用x\bold xX\bold X分别表示物体的相机投影坐标和世界坐标(场景结构),则有模型的简记x=K[Rt]X\bold x = \bold K [\bold R|\bold t]\bold X
      • 进一步简记为投影矩阵x=PX\bold x = \bold P \bold X,其中K\bold K为内参数矩阵(硬件),[Rt][\bold R | \bold t]为外参数矩阵(位姿)
    • 完成的内参数矩阵KaTeX parse error: Unknown column alignment: f at position 31: …[\begin{array} f̲_x & s & p_x \…
      • ss为歪斜系数,感光源是否为严格的正方形(偏斜角度为arctan(1/s)\arctan(1 / s)
      • pp为补点,相机光轴所在的位置(可以使坐标均为整数)
      • 不同的实现规定不同的左手系(MSDX) / 右手系(图像、中心、OpenGL)
      • 镜头畸变
        • 主要是径向畸变,越靠近中心形变程度越小
        • r2=x2r^2 = \|\bold x\|^2
        • x=(1+k1r2+k2r4)x\bold x^\prime = (1 + k_1 r^2 + k_2 r^4) \bold x
        • xx^\prime为畸变结果,需要完成逆变换
  • 多视几何
    • 单幅图像无法重建场景结构
    • 单幅图像的投影方程x=K[Rt]X\bold x = \bold K [\bold R|\bold t]\bold X
    • 多幅图像,由于不同点对应同一实际点,可以联立方程组实现
  • 两试图几何
    • 将世界坐标系直接建立在其中一个相机上
    • 连线光心和点,得到射线,该射线在另外一个相机上得到投影射线——对极线(epipolar line)
    • 类似地,得到两个射线之间的区域即为对极区域
    • 这一区域可以约束几乎所有关键参数
    • UCAS-AI学院-计算机视觉专项课-第5讲-课程笔记
    • 对平面的描述——基本矩阵F3×3\bold F_{3 \times 3},表达了左侧p\bold p在右侧中q\bold q的对极线之间的映射关系Fp\bold F \bold p
    • 对应点在对极线上qFp=0\bold q^\top \bold F \bold p = 0
    • 约束参数
      • 左相机内参数矩阵K1\bold K_1
      • 右相机内参数矩阵K2\bold K_2
      • 左右相机间相对旋转R\bold R
      • 左右相机间的平移t\bold t
    • F=K2TR[t]×K11\bold F = \bold K_2^{-T} \bold R[\bold t]_{\times} \bold K_1^{-1}
      • 反对称矩阵,方便处理叉乘[t]×=[0txtytz0txtytx0][\bold t]_{\times} = \left[\begin{array}{rrr} 0 & -t_x & t_y \\ t_z & 0 & -t_x \\ -t_y & t_x & 0 \end{array} \right],该矩阵秩为2,因此F\bold F的秩为2
      • 求解?8点法
        • xFx=0\bold x^\prime \bold F \bold x = 0,对应一个线性方程
        • FF有9个值——尺度奇异性(f33f_{33}可以假设为1) + F的秩为2——7个自由度——实际不考虑后者——8个自由度——8个点构造8个方程求解Af=0\bold A \bold f = \bold 0
        • 线性解析求解——线性直接变换DLT
        • SVD分解A=UΣV\bold A = \bold U \Sigma \bold V^\topV\bold V的最后一个列向量构造F\bold F(对应特征值不一定为0,可能存在误差)
        • 可能秩为3?对F\bold FSVD分解F=UΣV\bold F = \bold U \Sigma \bold V^\top,将Σ\Sigma中最后一个对角线元素置零,构造满足要求的F=UΣV\bold F^\prime = \bold U \Sigma^\prime \bold V^\top
        • 如果出现退化情况(空间点位于同一平面),无法求解
    • 本质矩阵:假设内参数矩阵已知
      • q~Ep~=0\tilde {\bold q}^\top \bold E \tilde {\bold p} = 0
      • E\bold E由旋转和平移构成——5个自由度——5点法
    • 寻找最小配置解的意义
      • 最少的对应点?
      • 不可避免存在外点——RANSAC鲁棒估计
      • 迭代nn次,最少点rr,正确点比例pp,找到正确模型的概率1(1pr)n1 - (1 - p^r)^n
      • rr怎大,找到错误模型的概率大幅提升