3

当谈到运动结构这个话题时,我是个新手。我一直在尝试遵循 MathWorks 网页中的 SFM 教程:LINK

但是,运行代码后,我收到以下错误消息:

Warning: Maximum number of trials reached. Consider increasing the maximum
distance or decreasing the desired confidence. 
> In vision.internal.ransac.msac (line 136)
  In estimateEssentialMatrix (line 161)
  In helperEstimateRelativePose (line 43)
  In PERFORM_SFM (line 70) 
Error using helperEstimateRelativePose (line 70)
Unable to compute the Essential matrix

Error in PERFORM_SFM (line 70)
    [relativeOrient, relativeLoc, inlierIdx] = helperEstimateRelativePose(...

有人可以帮我理解为什么会这样吗?有人可以为我提供不同的方法吗?

4

2 回答 2

0

我刚刚设法解决了同样的错误。就我而言,似乎我使用了太多图像,因此得到的方程系统是超定的,因此无法计算矩阵。我刚刚测试了许多与示例类似的图像(在我的情况下为 6 个)以及从帧到帧的足够的相机移动,并且它的工作方式应该如此。

希望这可以帮助。

于 2017-10-20T14:51:14.960 回答
0

正如@Ander Biguri 所说,考虑增加最大距离或降低所需的置信度。您可以通过修改 Matlab 内置函数helperEstimateRelativePose.m来做到这一点:第 43 行。然后,您可以根据需要添加任意数量的图像。修改后应该是这样的:

 [E, inlierIdx] = estimateEssentialMatrix(matchedPoints1, matchedPoints2,...
    cameraParams, 'Confidence', 50, 'MaxDistance', 5);

但要小心编辑内置函数。就我而言,我修改了函数并以另一个名称保存到另一个文件夹中,并将该文件夹添加到路径中。我希望这会对某人有所帮助。

于 2018-09-20T02:45:58.487 回答