May*_*tro 4 opencv object-detection homography
据我所知,计算机视觉中的单应性(投影变换)可用于检测图像中的对象,但我所见过的所有示例都在平面对象上。单应性仅适用于平面物体吗?或者它可以检测任何类型的物体?我问是因为我试图找到下面的物体(它是一个非平面表面物体)但没有成功:


在此链接中,您可以看到代码。我使用它,因为它只是更新图像的名称,所以我们正在做的是以下内容:
请注意,图像中大圆圈内绘制的绿线是用于表示结果点的线。
根据我上面展示的内容,在我看来,我对 Homography 的理解以及可以应用它的地方有些不清楚,因为这种示例非常简单并且不起作用。我目前正在研究 OpenCV 代码以准确了解他们如何估计它,但它不会很快。所以,有没有人知道 OpenCV 如何计算这种转换?或者任何可以在这种情况下提供帮助的参考资料?
编辑:
这是另一个例子:

我在对象和黄色盒子上应用了单应性,黄色盒子只包含我需要的仪器。结果更糟,因为现在它以某种方式成为一个点,正如您在被红色圆圈包围的绿点中看到的那样。此外,我无法为场景中的物体拍摄图像,因为我有很多视频,所以我所做的是为每个乐器拍摄单独的图像,并尝试在场景视频中找到它们。
严格来说,你是对的,单应性只映射平面物体的观察。您的帖子中不是很清楚,但我的猜测是您显示的匹配项是findHomography. 正如您所说,这种方法适用于平面物体。在非平面但刚性物体的情况下,等效的将是由findFundamentalMat(参见OpenCV 文档和维基百科页面)找到的内部匹配。
尽管如此,在实践中,使用单应性至少应该提供一个近似解。
在我看来,你的问题更多地与糟糕的 SURF 匹配有关,而不是与单应变换的选择有关。在查看您显示的这对图像时,这一点非常清楚:只有几个点与您要检测的对象相匹配,而其中大部分与场景中的各种事物相匹配。
您选择的方法的主要问题之一是您处理的不是刚性物体,而是可变形物体:细丝的手柄可以移动,由于细丝内部的液体,外观会发生非线性变形,等等... 这种变形会使目标图像中提取的 SURF 描述子与参考图像中提取的描述子大不相同,因此无法匹配。看一看 [1],它们提供了关于为什么描述符碰巧匹配或不匹配的很好的见解。
对于您的问题,替代方法可能是局部匹配(例如使用小相关补丁)、颜色匹配、形状匹配、深度学习等。
[1]:冯德里克、卡尔等人。“霍格斯:可视化对象检测功能。” 计算机视觉 (ICCV),2013 年 IEEE 国际会议。IEEE,2013 年。(链接)
| 归档时间: |
|
| 查看次数: |
2465 次 |
| 最近记录: |