gpt4 book ai didi

c++ - 最小化单应矩阵中的误差

转载 作者:太空狗 更新时间:2023-10-29 20:35:35 25 4
gpt4 key购买 nike

我有一个单应矩阵

 [h1 h2 h3 
h4 h5 h6
h7 h8 h9]

我变换了一个点p1 到 P1 使用上面的单应矩阵。同样

    p2 to P2
p3 to P3
p4 to P4

我知道两者的区别

P1-P2 = D1
P2-P3 = D2
P3-P4 = D3

由于单应性误差 D1、D2、D3 存在小误差。(我知道实际的差值)设错误为 E1、E2、E3(已知值)。

(E1 = D1 - Actual_Difference_between_P1_andP2)

同样计算E2、E3、E4。

现在我需要修改我的单应矩阵,使我的 E1、E2、E3、E4 最小化。

最佳答案

简介:

可以从 4 对点获得单应性,准确率为 100%(真正的 0 重投影误差)。但是,当点对的数量超过 4 个时,您可能无法获得 0 错误的单应性。这是因为这些点可能不在一个 3D 平面中。

因此,首先你必须处理这样一个事实,即在实际应用中,可能没有 100% 准确的单应性(由于匹配误差),但有一个最优的(最小重投影误差矩阵)。

配方:

关于你的问题,你似乎有两组对点。一个是您用来获取单应性的,另一个是您正在基于它验证您的模型,然后您想使用它来增强您的模型。

如何增强单应性?

首先,使用这两个集合使用一些稳健的估计方法(例如 RANSAC)获得单应性。您可能会找到更多信息 here .

其次,遍历您的集合并按照您的描述计算每个点的重投影误差。然后,消除所有重投影误差超过某个阈值的点。

第三,仅对内点应用微调优化技术,直到根据内点之间的误差总和获得良好的单应性。

第三步怎么做?

您有 8 个参数需要优化:

h11    h12    h13
h21 h22 h23
h31 h32 1

优化函数:

enter image description here

并且您已经使用 RANSAC 计算了单应性。因此,您有一个非常好的估计,它接近全局最优值。这意味着对于这种情况,非线性局部优化 技术就足够了。存在许多算法。选择一个开始(一些建议:Hill ClimbingSimulated Annealing)


编辑在 OP 的评论之后,只有第二组之间的距离是已知的:

优化函数应该是: enter image description here

其中AD_ij是Pi和Pj之间的实际距离。

您可以尝试降低复杂性,例如使用欧几里德距离的sequare作为引用和查询。

关于c++ - 最小化单应矩阵中的误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42152764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com