python3d图像处理_Python3 OpenCV3图像处理-

多视图重建

下面让我们来看,如何使用上面的理论从多幅图像中计算出真实的三维重建。由于照相机的运动给我们提供了三维结构,所以这样计算三维重建的方法通常称为 SfM (Structure from Motion,从运动中恢复结构)。

假设照相机已经标定,计算重建可以分为下面 4 个步骤:

(1) 检测特征点,然后在两幅图像间匹配;

(2) 由匹配计算基础矩阵;

(3) 由基础矩阵计算照相机矩阵;

(4) 三角剖分这些三维点。

我们已经具备了完成上面 4 个步骤所需的所有工具。但是当图像间的点对应包含不 正确的匹配时,我们需要一个稳健的方法来计算基础矩阵。

1 稳健估计基础矩阵

类似于稳健计算单应性矩阵,当存在噪声和不正确的匹配时,我们需要估 计基础矩阵。和前面的方法一样,我们使用 RANSAC 方法,只不过这次结合了八 点算法

2 多视图的扩展示例

1. 多视图 当我们有同一场景的多个视图时,三维重建会变得更准确,包括更多的细节信息。 因为基础矩阵只和一对视图相关,所以该过程带有很多图像,和之前的处理有些 不同。

对于视频序列,我们可以使用时序关系,在连续的帧对中匹配特征。相对方位需要 从每个帧对增量地加入下一个帧对。该方法非常有效,同时可以使用跟踪有效地找到对应点。一个问题是误差会在加入的视图中积累。该问题可以由最 后的优化步骤来解决,参见下文。

对于静止的图像,一个办法是找到一个中央参考视图,然后计算与之有关的所有其 他照相机矩阵。另一个办法是计算一个图像对的照相机矩阵和三维重建,然后增量 地加入新的图像和三维点,另外,还有一些方法可以同时由三 个视图计算三维重建和照相机位置;但除此之外,我们还需 要使用增量的方法。

2. 光束法平差 从图 5-8 简单三维重建的例子,我们可以清楚地看出,恢复出的点的位置和由估计 的基础矩阵计算出的照相机矩阵都存在误差。在多个视图的计算中,这些误差会进 一步累积。因此,多视图重建的最后一步,通常是通过优化三维点的位置和照相机 参数来减少二次投影误差。该过程称为光束法平差。

3. 自标定 在未标定照相机的情形中,有时可以从图像特征来计算标定矩阵。该过程称为自标 定。根据在照相机标定矩阵参数上做出的假设,以及可用的图像数据的类型(特征 匹配、平行线、平面等),我们有很多不同的自标定算法。

作为标定的附注,值得一提的是一个叫做 extract_focal.pl 的有用脚本,它是 SfM 系 统(http://phototour.cs.washington.edu/bundler/)的一部分。对于常见的照相机,该 脚本基于图像 EXIF 数据,使用一个查找表来估计焦距。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值