gpt4 book ai didi

matlab - 按关键点方向删除错误匹配

转载 作者:太空宇宙 更新时间:2023-11-03 22:03:47 24 4
gpt4 key购买 nike

给定一个校准的立体声对,以下是已知的:

  • 相机本征
  • 基本矩阵
  • 相对变换
  • 一组关键点匹配(匹配满足对极约束)

我想通过将一个关键点的方向“投影”到另一幅图像并将其与匹配关键点的方向进行比较来过滤掉错误的匹配。

我的解决思路如下:

给定方向 (o1,o2) 的匹配项 (p1,p2),我通过三角测量计算 p1 的深度 z。我知道在 p1 附近创建第二个点,将几个像素移向方向向量 p1' = p1 + o1。之后,您使用 z 计算 p1' 的 3D 点并将其投影回图像 2,在 p2' 中产生。投影方向现在是 o2 = p2'-p2。

这个算法行得通吗?有没有更好的方法(例如使用基本矩阵)?

最佳答案

虽然您的想法一开始听起来很有趣,但我认为它行不通,因为您计算 p' 深度的方式将不可避免地导致第二张图像中错误的关键点方向。考虑我想出的这个例子:

enter image description here

假设 p1 被重新投影到 Q。现在,你说因为你不知道 p'_1 的深度,所以你将它设置为 z,从而反向投影 p'_1Q'。然而,想象一下对应于 p'1 的真实深度是显示为绿色的点,Q_t。在这种情况下,第二张图片中的正确方向是 c-b,而根据您的解决方案,我们计算出 a-b,这是错误的方向。

在我看来,一个更好的解决方案是固定两个相机之一的姿势,三角测量您拥有的所有匹配项,然后进行小束调整(最好使用稳健的内核)以优化所有点但仅限非固定相机。这应该处理很多异常值。虽然它会改变您对 Essential 的估计,但我认为它很可能会改进它。

编辑:

上面的例子使用了很大的可见距离,并从 a,bc 不一定共线的事实中抽象出来。但是,假设 p'1p1 足够接近,因此 Q'Q 接近。我认为我们可以同意,大多数通过测试的匹配项都将采用类似于以下的配置:

enter image description here

在这种情况下,ca 都位于 Q' 和相机中心 的投影给出的对极线上1 in camera 2。但是,b不在那条线上(它在对应于Q的对极线上)。因此,向量 a-bc-b 将以某种角度不同。

但是该方法还有另外两个与这个问题相关的问题:如何确定向量 o1 的大小?我认为将它定义为 some_small_coef*(1/z) 是个好主意,因为 o1 对于远处的物体需要更小。所以,另外两个问题是

  • 如果您在城市环境中,例如建筑物有点远,z 会变大,o1 的大小需要小于一个像素的宽度。
  • 假设您克服了这个问题,那么 some_small_coef 的值将需要针对不同的图像对分别确定(如果您从室内到室外怎么办?)。

关于matlab - 按关键点方向删除错误匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279389/

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