运动恢复结构(SFM)

    技术2022-07-13  75

    运动恢复结构

    运动恢复结构问题转化为数学问题三种典型的运动恢复结构任务欧式结构恢复两视图欧式结构恢复 仿射结构恢复仿射结构恢复 透视结构恢复透视结构恢复

    运动恢复结构问题

    运动恢复结构(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(14+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个点才能求解。

    透视结构恢复

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

    透视结构恢复

    Processed: 0.021, SQL: 9