1

我正在研究 Motion 的结构。到目前为止,我已经执行了以下步骤。

  1. 特征匹配
  2. 基本矩阵
  3. 基本矩阵
  4. 相机矩阵 P
  5. 通过三角测量,我得到了所有匹配特征的 Point3d 类型值。我将它存储在 pointcloud 变量中。
  6. 捆绑调整,优化姿势和点云。
  7. 添加更多视图以重建。

问题出现在 7 处,例如有 3 张图像,即 1、2、3。而point_1对应point_2。而point_2对应point_3。分别在 image_1、image_2、image_3 中的 point_1、point_2、point_3。

三角剖分后,point_1 和 point_2 得到结果 worldPoint_1 point_2 和 point_3 得到结果 worldPoint_2

wordldPoint_1 和 worldPoint_2 应该相同,因为 Point_1,2,3 是对真实世界点的相同观察。但是,由于存在噪声,worldPoint_1 和 worldPoint_2 不相等。

所以我的问题是如何在添加新图像以重建和进行三角测量后合并点云。

4

1 回答 1

1

分别进行三角剖分然后合并不是一个好主意,因为如果其中一个三角剖分是错误的,你怎么知道?相反,您应该同时从三个点进行三角测量。我假设您已经为每个三角剖分定义了某种最小二乘问题,例如

`argmin_{depth} D(ray_1)+D(ray_2) //for image_1 an image_2`

ray_i的反投影在哪里point_i inverse(calibration_matrix)*point_i,哪里D(.)给你 3d 点到射线的距离。

我觉得你应该试试

argmin_{depth} sum_j D(ray_j) //for all your views image_1, ... , image_N

这样,您可以尝试添加一个M-estimator以过滤掉不良测量值。

于 2018-05-05T12:15:59.617 回答