0

问题:我有一张物体的照片(制造零件,如下面的照片),我想使用我的 Andoird 手机相机验证相机预览中的物体是否与模板匹配。(换句话说,它是否与模板相同的部分)

  • 我可以让用户移动相机,以便在相机预览中获得与模板相似的模板视图,但是会有不同的噪音水平和/或照明,可能还有不同的背景。

问题: 你建议我用什么来解决这个问题?我在考虑 Canny 边缘提取,然后将相机帧与模板中的 Canny 边缘提取相匹配?这是一个好主意吗?如果是,请告诉我如何实施?任何资源?样品?(我可以进行 Canny 边缘提取,但找不到匹配的方法)

如果不是一个好主意,那么您有什么建议?

我尝试过的事情:

  1. 特征提取和匹配:我使用了一些来自 OpenCV 的不同提取器和匹配器实现,我的应用程序正在工作并绘制检测到的特征点和匹配等。但是作为图像处理的初学者,我无法理解结果以及如何知道什么是匹配。任何想法,帮助,好的资源?
  2. 模板匹配:我使用了 OpenCV 模板匹配,但是性能很糟糕,我认为这不是解决方案。

样本模板照片

4

2 回答 2

2

我在您的测试图像上尝试使用手机进行对象识别,结果是肯定的。

使用的检测器:ORB(二进制检测器)。

使用的描述符:ORB。

匹配技术:蛮力匹配。

图像尺寸 640x480。

我能够检测到大约 500 个特征点(关键点的数量已经足够了,但是当您有更多具有相似外观对象的图像时,它可能会产生错误匹配。您需要改进匹配以避免错误匹配)。 在此处输入图像描述

两种不同尺度的物体识别结果。 在此处输入图像描述 在此处输入图像描述

关于您在理解物体识别方面遇到困难。你到底有什么不明白的(具体话题)。推荐你看这两本书

  1. 学习 OpenCV,作者:Adrian Kaehler、Gary Bradski
  2. OpenCV 2 计算机视觉应用程序编程食谱,作者:Robert Laganière(第 8 章和第 9 章)。

干杯!

于 2014-08-19T08:53:47.483 回答
0

据我了解,精明的边缘检测可能不是最佳解决方案。据我说,在对测试图像进​​行一些基本预处理后,找到它的筛选特征并将其与模板的筛选特征进行比较。sift 是真正多才多艺的也应该在这里工作。

您也可以尝试 opensurf 功能,它们比 sift 更快,但我没有机会与他们进行大量合作以评论其准确性

于 2014-08-18T21:06:55.670 回答