2014-03-12 29 views
6

的最好方式,我需要知道什么是相匹配的图像在一定形状(模板)的最佳方式。什么是复杂的形状相匹配

我知道有几种方法,但其中有些方法不会产生很好的结果,另一方面需要大量的处理时间,所以任何人都会尝试一种快速,快速的方法来以较短的处理时间进行匹配。

例如,这是模板...

enter image description here

而且我有一个样品,我想用这个样本与模板进行比较,并返回true,如果样品是类似模板否则返回假。

注:我试过轮廓匹配,梯级分类,和冲浪,但他们都不太好或处理时间也不是那么好。

+0

您能提供一些您认为与此模板匹配的图像示例吗?例如,您是否试图从相同角度或从不同角度识别相同类型花朵的图片?我不认为你会很好地回答这个问题,除非你可以尽可能清楚地解释**你究竟想要达到什么目的。 –

+0

我使用特征点云比较+直方图比较+ DCT比较。但是如果你想要一个非常健壮的形状匹配,那么只有矢量化才是最好的方式。 (大多数现在的分类器都是基于神经网络的,这意味着你需要学习你的应用,看看哪个不是确切的......它只能在依赖于学习集的形状子集上安全工作) – Spektre

回答

11

海誓山盟匹配的东西可以是一个相当艰巨的任务,主要是由于这样的事实,不同的技术有非常不同的特性,可以在对他人的一些类别和非常坏的结果产生几乎完美的效果。

这就是说,我认为你永远不会得到你的问题的答案,至少没有一个说“使用[引用论文]的xyx方法,这将解决你所有的问题”。我会尽力为你指出一些例子,希望它能帮上忙。

模板匹配操作:比较图像上滑动窗口的模板,可以达到很好的效果,如果你的模板是非常相似,你的形象,在寻找对象无论多么复杂的IT是。可以非常快,它不是不变的任何事情,所以如果你打算拥有旋转,照明或别的东西显著的变化,这可能不会为你工作。 here你可以找出一些代码。如果使用的权利当心您使用的是不同的颜色空间可以达到非常不同的结果,它的色彩空间(例如,用于面上的分析HSV能更好的是RGB在某些情况下)

关键点匹配像SIFT或SURF:我用这有很多很好的结果。你需要决定使用何种描述什么匹配。 OpenCV有一些很好的例子,你可以找到here。由于这些描述符可能需要一些时间才能提取,所以不会成为匹配对象的最快方法,但如果您不太了解您将要处理的条件,那就太好了:它通常对于缩放,旋转和只要能够在模板和图像上正确找到关键点,闪电就会发生变化。

形状相匹配:我感到相当吃惊时,在图像分类比赛我参加,我已经能够用简单的HOG描述符,以获取有关我的图片非常鉴别信息。方向梯度直方图是描述物体的形状,而强大的工具,它采用边缘方向和幅度来形容你的形象。它们可以快速计算(OpenCV有我认为的GPU实现),可配置(您可以决定网格的厚度和多少单元格,从而产生非常不同的信息)。 HOGs是而不是旋转不变,从不同角度看物体可能会产生不同的直方图,但由于不使用颜色,它们对照明变化非常稳健。HOG只是一个例子,有很多形状和轮廓描述符,但基本上他们提供了几乎相同的我认为。

直方图匹配:不是我的第一选择,它可以是有用的,如果你知道对象和图像的其余部分的东西。例如,如果你知道你正在丛林图像中寻找你的粉红色花朵,那里只有粉红色的东西,那么简单的颜色直方图匹配就会很好。拿起一个滑动窗口,在图像上运行,比较你的直方图,你就完成了。非常快速,非常简单,它根本不使用形状,所以无论您的物体有多复杂,您都可以找到它。不使用形状使其对旋转具有鲁棒性,但请注意光线变化。这种方法的一个很大的局限性是,如果丛林中还有其他粉红色的东西,你将无法区分。

混合方法:这里是您可以从上面引用的技术中获得最佳效果的地方。正如你所看到的,它们中的大多数在一定的环境中工作良好,而在其他环境中则相当糟糕。你可以使用你知道的技术的组合,并获得比部件总和更好的东西。我在HOG和头部姿态估计方面做了很多工作,当我们开始不是以密集的方式,而是围绕某些关键点提取HOG时,真正的突破就来了。你需要知道你的问题,找出你需要什么,并适应一堆方法。一般来说,混合方法可以更好,更慢地工作。

希望这可以帮助你一点,我不认为,鉴于你给我们的信息,我可以给你一个更好的答案..(可能是其他人可以,这就是为什么我还是一个学生: ))