运动恢复结构(SFM)

运动恢复结构问题

运动恢复结构(SFM)是通过一系列的2D图像,来获取图像中场景的3D坐标,从而对3D场景进行重建。
(整体参考鲁鹏老师的课程

转化为数学问题

已知:

  • n个3D点Xj在m张图像中的对应点的像素坐标xij(i=1,…,m,j=1,…n);
  • xij=MiXj,Mi为第i张图片对应的摄像机的投影矩阵;
    求解:
  • 运动)m个摄像机投影矩阵Mi(i=1,…m);
  • 结构)n个三维点的坐标Xj(j=1,…n);

鲁鹏老师的课程

三种典型的运动恢复结构任务

  • 欧式结构恢复:摄像机内参数已知,外参数未知;
  • 仿射结构恢复:摄像机为仿射相机,内外参数都未知;(较为简单)
  • 透视结构恢复:摄像机为透视相机,内外参数都未知;(较复杂,精准)

欧式结构恢复

数学描述:已知n个3D点Xj在m张图像中的对应点的像素坐标xij(i=1,…,m,j=1,…n);m张图像对应的摄像机的内参数矩阵为Ki(i=1,…,m),并且xij=MiXj=Ki[Ri Ti]Xj。求 m个摄像机投影矩阵Ki,Ri,Ti(i=1,…m)和n个三维点的坐标Xj(j=1,…n)。

两视图欧式结构恢复

鲁鹏老师的课程
假设第一个摄像机的坐标系为世界坐标系。
那么第一张图像下的点的像素坐标为x1j=M1Xj=K1[I 0]Xj
第二张图像下的点的像素坐标为
x2j=M2Xj=K2[R2 T2]Xj

求解:

  • 特征提取、匹配
  • 求基础矩阵F:归一化八点法(不只使用8对点)——①对两幅图像实施变换T(平移或缩放),使得坐标原点位于图像上点的重心,且各个像点到坐标原点的均方距离=2;②分别计算左右两张图的T和T’;③坐标归一化:qj=Tpj q‘j=T‘p’j;④通过八点法计算基础矩阵Fq;⑤逆归一化:F=T’TFqT;
  • 利用基础矩阵F和摄像机内参数求解本质矩阵E: F=K2-T [T×]RK1-1 =K2–T EK1-1→ E=K2TFK1
    :此时求出的F不一定是真实的F,因为上式代入kF也算成立的;同时无法确定F的符号;所以也无法确定E的符号和尺度。
  • 分解本质矩阵E:E→R、T;
  • 三角化求三维点Xj坐标:求Xj*,使得其在两个摄像机的像素坐标上的点x1j*=M1Xj*、x2j*=M2Xj*与实际的匹配点x1j、x2j之间的距离最小,即Xj*=argmin(d(x1j*,x1j)+d(x2j*,x2j));

**欧式结构恢复歧义:**恢复出来的欧式结构与真实场景之间相差一个相似变换(旋转、平移、缩放);恢复的场景与真实场景之间仅存在相似变换的重构称为度量结构。

仿射结构恢复

透视和仿射的区别
透视:M有11(23+21+13)个参数;像素欧式坐标更复杂,存在分母;
仿射:M有8(1
4+1*4)个参数;像素欧式坐标更简单,分母计算得1;像素坐标是直接由3维点欧式坐标计算得到,不存在齐次坐标的尺度问题;
鲁鹏老师的课呀
数学描述:已知n个3D点Xj在m张图像中的对应点的像素欧式坐标xij(i=1,…,m,j=1,…n);且xij=AiXj+bi,其中Ai,bi组成了第i张图片对应的仿射摄像机的投影矩阵Mi。求 m个摄像机投影矩阵Ai,bi(i=1,…m)和n个三维点的坐标Xj(j=1,…n)。

仿射结构恢复

  • 代数方法
  • 因式分解法
    - 数据中心化
    - 因式分解

数据中心化:
在这里插入图片描述
因式分解:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
放射结构恢复歧义:解不唯一。我们求出来的解总是和真正的相差一个H矩阵。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2mn>=3n+8m
但实际上我们得不到真正的投影矩阵的解,H(8个未知)无法确定,所以真正求出来的是3n+8m-8个未知量。

:假设我们有2个相机,则有4n个方程,16+3n-8个未知量,4n>=16+3n-8,n>=8,至少要用8个点才能求解。

在这里插入图片描述
在这里插入图片描述

透视结构恢复

透视结构恢复=透视结构→仿射结构→欧式结构

透视结构恢复


版权声明:本文为qbyqby7628原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。