计算机器视觉(十四)运动恢复结构

Structure from Motion(sfm)

计算机器视觉(十四)运动恢复结构_第1张图片
恢复三维结构和摄像机参数。如果给了摄像机参数m和m‘,p和p’的对应关系,就可以用最小化的方法求解出来。

运动恢复结构的应用

计算机器视觉(十四)运动恢复结构_第2张图片
三角化:3dmarks可以进行处理的
运动恢复结构可以知道摄像机的位姿,可以定位出机器人在空间内的位置可以进行控制。
可以从互联网的海量图片进行三维场景重建:计算机器视觉(十四)运动恢复结构_第3张图片
slam:同时定位以及建图,能够知道三维场景的地图并定位自己,slam是一个视频序列,图片是连续的,sfm通常比较慢,slam会简化某些步骤,但是精度没有sfm快。

数学描述

计算机器视觉(十四)运动恢复结构_第4张图片
摄像机的外参数是一直在变化的,也就相当于摄像机的位置是一直在运动的,而又把n个三维点的坐标看作是结构,所以称为运动恢复结构问题。上面的已知信息是将三维点映射成二维点的公式。

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

实际上这三种任务对应着不同的摄像机、不同的先验信息。
计算机器视觉(十四)运动恢复结构_第5张图片
欧式:相当于先使用标定版将内参数先标定。
仿射:仿射相机更多的时候假设物体离相机较远,物体的深度变化较小。
透视:更复杂,细微的差距也要考虑,求解出来有精度。
计算机器视觉(十四)运动恢复结构_第6张图片
计算机器视觉(十四)运动恢复结构_第7张图片
假设第一个点在世界坐标系中,另一个找对应的旋转平移矩阵。
计算机器视觉(十四)运动恢复结构_第8张图片
对于每一个点进行SIFT特征提取,建立两个图像之间对应点的对应关系,但是建立对应关系的时候可能有些对应点是错的,使用RANSC估计这个矩阵,只能找到满足数最大的矩阵,然后使用归一化的八点法。(1.SIFT 2. 匹配 3. RANSC)
计算机器视觉(十四)运动恢复结构_第9张图片
真正求出的矩阵没有办法确定符号和尺度。
计算机器视觉(十四)运动恢复结构_第10张图片
忽略正负号的情况下二者相等计算机器视觉(十四)运动恢复结构_第11张图片
上面的表达式中k是一个常数,U是正交矩阵。计算机器视觉(十四)运动恢复结构_第12张图片
计算机器视觉(十四)运动恢复结构_第13张图片
进行奇异值分解分解之后两个特征值是1在这里插入图片描述
奇异值分解和刚才推到的式子进行比较,就可以把R表示出来了,同理因为T等于两种情况还可以得出一个R
计算机器视觉(十四)运动恢复结构_第14张图片
计算机器视觉(十四)运动恢复结构_第15张图片
R是一个旋转矩阵。
计算机器视觉(十四)运动恢复结构_第16张图片
计算机器视觉(十四)运动恢复结构_第17张图片
四种中只有一对是正确的,
计算机器视觉(十四)运动恢复结构_第18张图片
计算机器视觉(十四)运动恢复结构_第19张图片
计算机器视觉(十四)运动恢复结构_第20张图片
恢复的图像在真实场景中的尺度和现实的具有一个差别,所以需要一个先验信息来确定绝对尺度。通过外部信息才能确定真实场景的尺寸。
计算机器视觉(十四)运动恢复结构_第21张图片

仿射恢复

仿射和透视的区别是仿射的最后一行是0001,而透视最后一行是v 1
计算机器视觉(十四)运动恢复结构_第22张图片
A乘以三维点的欧式坐标加上b,结论就是在仿射坐标下等于对应点的欧式坐标加上一个b计算机器视觉(十四)运动恢复结构_第23张图片
图像上的点减去图像上所有点的均值,每一个图像假设对应一个摄像机:
仿射结构恢复问题有两种方法:

  • 代数方法
  • 因式分解法
    1. 数据中心化
    2. 因式分解
      计算机器视觉(十四)运动恢复结构_第24张图片
      计算机器视觉(十四)运动恢复结构_第25张图片

计算机器视觉(十四)运动恢复结构_第26张图片

计算机器视觉(十四)运动恢复结构_第27张图片
计算机器视觉(十四)运动恢复结构_第28张图片
计算机器视觉(十四)运动恢复结构_第29张图片
算出的M矩阵每两行是一个m,最简单的方法是奇异值分解:
计算机器视觉(十四)运动恢复结构_第30张图片
计算机器视觉(十四)运动恢复结构_第31张图片
因为秩为3,就可以转换为后面的用前三个就可以:算完了之后把特征向量从大到小排个序,然后的到结果:
计算机器视觉(十四)运动恢复结构_第32张图片
计算机器视觉(十四)运动恢复结构_第33张图片
计算机器视觉(十四)运动恢复结构_第34张图片
可以这样分解,没有人告诉你非得这样分解,只要满足定义条件就️,别人在论文里使用的方法不一定是唯一的。
计算机器视觉(十四)运动恢复结构_第35张图片
计算机器视觉(十四)运动恢复结构_第36张图片
计算机器视觉(十四)运动恢复结构_第37张图片
不能保留原来场景中的直角关系,而且二者差了一个H矩阵。
计算机器视觉(十四)运动恢复结构_第38张图片
这个时候需要其他的信息来帮助我们确定其他的参数。

计算机器视觉(十四)运动恢复结构_第39张图片
计算机器视觉(十四)运动恢复结构_第40张图片
每一个点Xj是一个三维点,然后将测量矩阵进行分解,M的秩一定不超过三,特征值最多不超过三个解。
计算机器视觉(十四)运动恢复结构_第41张图片
计算机器视觉(十四)运动恢复结构_第42张图片
计算机器视觉(十四)运动恢复结构_第43张图片

透视结构恢复问题

知道恢复的目标和图像,但是其他信息都不具有可知性。
计算机器视觉(十四)运动恢复结构_第44张图片
分层重构,先恢复成仿射结构,然后再恢复成欧式结构。
计算机器视觉(十四)运动恢复结构_第45张图片
计算机器视觉(十四)运动恢复结构_第46张图片
M1和M2对应一个相机,找到一个H-1构造出一个新的没有歧义的相机

计算机器视觉(十四)运动恢复结构_第47张图片
计算机器视觉(十四)运动恢复结构_第48张图片
计算机器视觉(十四)运动恢复结构_第49张图片
上面的X是叉乘,点是点乘不是普通的。
找到F和A b之间的关系
[bx]b=bxb
计算机器视觉(十四)运动恢复结构_第50张图片
b是啥?
b就是一个极点,直接在这个图像上用两条极线把极点算出来即可。
计算机器视觉(十四)运动恢复结构_第51张图片
计算机器视觉(十四)运动恢复结构_第52张图片
两两作对的话算出的值会有累计误差。
计算机器视觉(十四)运动恢复结构_第53张图片
计算机器视觉(十四)运动恢复结构_第54张图片
投影到摄像机上的点要使所有点的累加求和的平方越小越好,投影点和观测点之间的距离越小越好。如果缺少数据的话直接不加进去就可以。
计算机器视觉(十四)运动恢复结构_第55张图片
计算机器视觉(十四)运动恢复结构_第56张图片

你可能感兴趣的:(图像处理,分析与机器视觉)