gpt4 book ai didi

opencv - 在非平面表面应用单应性

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:02 25 4
gpt4 key购买 nike

据我所知,计算机视觉中的单应性(投影变换)可用于检测图像中的物体,但我见过的所有示例都是关于平面物体的。 Homography 是否仅适用于 planar surface目的?或者它可以检测任何类型的 objects ?我问是因为我试图找到下面的物体(它是一个非平面物体)但没有成功:

  1. > List item
  2. > List item

在此link ,你可以看到代码。我使用它只是更新图像的名称,所以我们正在做的是:

  1. 使用 SURF 从 2 个图像中获取关键点
  2. 使用 SURF 描述符描述关键点
  3. 尝试匹配两张图片之间的关键点
  4. 使用匹配的关键点列表计算单应矩阵。
  5. 获取对象角点的坐标。
  6. 应用perspectiveTransform得到他们在场景图像中的对应
  7. 在结果点之间画线。

请注意,图中大圆圈内绘制的绿线是代表结果点的线。

根据我上面展示的内容,在我看来,我对 Homography 的理解以及它可以应用的地方似乎有些不清楚,因为这种示例非常简单而且没有用。我目前正在研究 OpenCV 代码以准确了解他们是如何估计它的,但进展并不快。那么,有人知道 OpenCV 如何计算这种转换吗?或者在这种情况下可以提供帮助的任何引用资料?

已编辑:这是另一个例子: enter image description here

我在物体和黄色盒子上应用了单应性,黄色盒子刚好包含我需要的仪器。结果更糟,因为现在它不知何故变成了一个点,正如您在被红色圆圈包围的绿色点中看到的那样。此外,我无法为场景中的对象拍摄图像,因为我有很多视频,所以我正在做的是为每个仪器拍摄单独的图像并尝试在场景视频中找到它们。

最佳答案

严格来说,你是对的,单应性只映射对平面物体的观察。你的帖子不是很清楚,但我猜你显示的匹配是 findHomography 找到的内点匹配。正如您所说,这种方法适用于平面对象。在非平面但刚性物体的情况下,等效项是 findFundamentalMat 找到的内点匹配(参见 OpenCV docWikipedia page)。

不过,在实践中,使用单应性至少应该提供一个近似解

在我看来,您的问题更多地与 SURF 匹配不佳有关,而不是与单应变换的选择有关。查看您显示的这对图像时,这一点非常清楚:只有几个点与您要检测的对象匹配,而其中大部分与场景中的各种事物匹配。

你选择的方法的一个主要问题是你不是在处理刚性物体,而是在处理可变形的物体:seringue 的 handle 可以移动,由于内部液体,外观会发生非线性变形seringue 等... 这种变形会使目标图像中提取的 SURF 描述符与引用图像中提取的 SURF 描述符大不相同,因此无法匹配。看看 [1],它们提供了关于为什么描述符恰好匹配或不匹配的很好的见解。

对于您的问题,替代方法可能是局部匹配(例如使用小的相关补丁)、颜色匹配、形状匹配、深度学习等。

[1]:Vondrick、Carl 等人。 “Hoggles:可视化对象检测功能。”计算机视觉(ICCV),2013年IEEE国际 session 上。 IEEE, 2013. ( link )

关于opencv - 在非平面表面应用单应性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30645934/

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