1 问题描述
已知一个图像库,里面有很多从不同角度不同具体拍摄同一物体的照片,求
- 构建该物体的3D模型
- 找出这些图像的拍照位置
如下图所示:
2 用数学语言描述问题
输入:一批图像,隐含着许多对应点
输出:
- 每一个对应点对应的现实世界的3D坐标 。
- 所有摄像机的参数 ,以及可能的。
下图可以帮助理解 Structure from motion 问题
这里涉及的目标函数(objective function): 最小化重投影误差(reprojection error)。
重投影误差如下图所示。
3 解决问题的过程
3.1 详细过程
- 检测特征
- SIFT描述特征
- 匹配特征,其匹配的详细过程见 图像的景深
- 运用RANSAC算法(详见:图像对齐(image alignment)),求得每一对图像之间的变换矩阵,由于相机的内参和外参未知,这个变换矩阵可以近视等于基本矩阵(fundamental matrix)
- 将成对的匹配连接起来,形成跨多个图像的匹配的连接链
- 重构景物,先从两张图像开始,然后依次链接。
3.2 认识重投影误差(reprojection error)
通过重投影误差函数,待求参数公式为:
其中:
M为相机方位个数
N为特征对应点个数
Kj为相机内参
Rj,Tj 为相机的外参
为第 j 张图像,第 i 个特征对应点的横坐标
为第 j 张图像,第 i 个特征对应点的纵坐标
Pi 为世界坐标系中的景物第 i 个特征的坐标
f(*) 为世界坐标系中的景物对应的像素点的横坐标
g(*) 为世界坐标系中的景物对应的像素点的纵坐标