【问题标题】:Is it possible to compute projective transformation from correspondences?是否可以从对应关系计算投影变换?
【发布时间】:2017-06-26 17:45:53
【问题描述】:

我正在尝试计算以下对象中每个平面的投影变换。

目标是将此参考对象映射到目标平面。

因此,每个平面可以生成9个对应关系。我成功生成了最小二乘 SVD 解决方案,但此映射不适合几何。

我想知道是否可以从这些信息中计算出射影变换?

【问题讨论】:

    标签: computer-vision linear-algebra


    【解决方案1】:

    是的,是的。实际上只需要 4 点对应关系。我不完全确定,因为您没有提供代码,但是您是否有可能假设只是仿射变换(3x3 矩阵, [0, 0, 1] 作为最后一行)。那还不够。

    查看here,为您的问题提供良好的分步解决方案。

    【讨论】:

    • 谢谢。事实上,结果在代数上是正确的。我没有修复最后一行。只是 SVD 解决方案在几何上没有意义。我花了一段时间才弄清楚这个问题不能用线性系统解决,因为强制解决方案的范数 |h|为 1 并且最小化 Ah 不是真正几何映射的目标函数。需要使用非线性优化(可能基于重投影误差)来校正初始解。稍后有时间我会更新我的解决方案。
    • 首先,为什么要自己计算呢?那里有许多复杂的解决方案(参见上面的链接)。我不确定我是否正确,但这可以使用线性系统解决。例如看here
    • 我明白了。我只是好奇这实际上是如何完成的。您提供的链接是在课堂上教授的常见实现,但这不起作用。通过强制执行 |x| = 1 而最小化 dot(Ax, Ax) 不是最小化重投影误差的目标函数。您可以比较 OpenCV 中 findHomography 生成的结果和使用 SVD 生成的结果。
    猜你喜欢
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2019-01-12
    • 2015-02-26
    相关资源
    最近更新 更多