OpenCV 查找图像的紧密匹配

Posted

技术标签:

【中文标题】OpenCV 查找图像的紧密匹配【英文标题】:OpenCV to find close match for images 【发布时间】:2016-04-28 05:05:01 【问题描述】:

我想找到最接近的匹配图像。例如有汽车和自行车的图像。如果给定的图像是自行车。那么它应该将给定的图像与存储的汽车和自行车进行比较,并根据基于形状的封闭给出结果。

我想知道是否可以找到轮廓并与最接近的轮廓匹配

我尝试在 open cv 中使用 haar cascade。通过训练汽车图像和自行车。 但结果不正确可能是因为训练数据较少。(我不想用这个)

【问题讨论】:

我怀疑你会想要更好地调查机器学习是如何工作的。它的背景有助于为诸如 haar 级联之类的事物创建参数。给你的建议:报名参加 Andrew NG(斯坦福)的 Coursera 机器学习课程,其中有一堂课专门针对如何改进学习算法,重点是我需要更多的学习样本等......跨度> 感谢 zipzit 的回复。问题是我没有时间。有很多代码可用于面部检测等等,您不需要通过课程直接使用该功能。 没错。祝你好运。 有这么多面部识别代码的原因是人们投入了大量时间。由于整个无人驾驶汽车的事情,自行车识别也有其公平的份额,尝试搜索一下......但实际上,如果你不了解大部分代码,你将直接从网上获得便便结果调整参数(像 zipzit 这样的课程建议您开始学习) 【参考方案1】:

为此,您将面临使用标准技术(例如轮廓)的艰难斗争。

编辑 >> 所以,以你的自行车为例,这里会发生什么:

?

神经网络和其他机器学习算法是您最好的选择:

特别是“Multiclass Classification”品种。通过培训(时间),他们更有可能将您的猫从您的自行车中分拣出来。

代码示例请看here。不是基于图像的示例,但您需要从某个地方开始 :)

DLIB library:

只有 8 个停车标志的训练图像,它的内部结构形成了这样的表示:

非常漂亮。

没有理由不能将轮廓结果用作 ML 分类器的输入,只要它们以某种方式提高信噪比...(即它们在某种程度上比不更“笨拙”)

【讨论】:

嗨,Lamar Latrell 给出了鸡和猫的例子不匹配,但根据我的要求,两个图像相同是可以的,因为它们具有相同的形状,如果你能提供一些代码示例将会很有帮助 Lamer - 输入文件将由我提供,包括自行车或汽车 @usernanny,所以要比较的图像集,以及与之比较的图像是事先完全知道的? 是的。我确信用于比较的图像是自行车或汽车。 正如你所说,轮廓不会给出正确的输出,我同意你的观点。为此,我将不得不使用 ML。但对于我的应用程序,我不需要该功能。【参考方案2】:

我认为可以应用和测试以下方法->

    GF-HOG 可变形零件模型 神经网络

组合将是一个很棒的想法,但 GFHOG 会增加开销。

研究一下它非常酷的技术,我认为这将回答您的问题。 http://personal.ee.surrey.ac.uk/Personal/R.Hu/ICIP.html

【讨论】:

我会检查一下 Anubhav

以上是关于OpenCV 查找图像的紧密匹配的主要内容,如果未能解决你的问题,请参考以下文章

在 openCV 中查找 SURF 的精确匹配

OpenCV中的特征匹配+单应性以查找对象

Opencv实现图像无缝拼接,Sift查找特征点,Flann进行匹配

Opencv createsamples 实用程序:紧密边界框会用未裁剪的图像代替正样本吗?

求C++中利用opencv计算轮廓图像傅里叶描述子的代码

OpenCV图像处理:模版匹配和霍夫变换