我正在尝试从图像中提取特征,但是无法获取要提取的点,因此我的图像无法与模板匹配。

我是否有任何检查点在对图像应用SIFT之前要经历什么,才能获得良好的效果?例如,模板图像是;

目标图像;


评论

取决于图像的种类以及要使用这些功能的功能。请获取更多信息。

#1 楼

使用sift将模板与图像匹配时应该做的是对模板运行sift,然后在场景中查找该排列中的那些筛选功能。即可。

Sift(图像)中包含的Sift(模板)

您无法调整Sift来提取“所需的功能”。Sift *使用不变性度量来查找可以它认为是最突出的。 (* Chris A)

如果您希望它从模板中找到特定功能,请为这些功能创建较小的模板并进行搜索。

只是一个建议。我不知道您要尝试哪种类型的模板以适合哪种类型的场景或图像。

评论


$ \ begingroup $
+1,我同意。除了一件事。 SIFT找不到最不变的特征。它使用不变的度量来找到它认为最突出的特征。
$ \ endgroup $
–克里斯·A。
2012年5月21日下午16:26

#2 楼

我不确定您是否只想匹配两个图像(例如找到公共点),还是要尝试类似CBIR(基于内容的图像检索-用模板图像搜索数据库以查找包含对象)。

我目前正在进行CBIR研究,所以我对当前的方法非常了解。这里和这里是我对stackoverflow中类似问题的解答的链接,您应该看一下。当Lowe首次引入if时,术语SIFT既适用于特征检测过程,也适用于根据那些检测到的兴趣点计算出的特征描述符。到目前为止,事实证明,SIFT描述符真是太棒了。描述符具有@Totero已经提到的一些很酷的属性。

另一方面,如今越来越被称为DoG(高斯差分)的SIFT检测方法已不再是最新技术。它仍然被广泛使用,但是在特征检测过程中,如今有更多的方法,其中一些方法更好或很好地补充了DoG过程提取的不变关键点的类型。

最新论文(在链接的stackoverflow问题中的链接处)有另一种不错的做法:它们结合了多种检测特征的方法,然后使用SIFT描述符(仍在晃动作为描述符)来计算不变矢量表示。我目前正在结合使用DoG(它们专注于图像的角状部分)和MSER区域(它们专注于通过多个尺度的斑点状可分辨点)的组合。如果在特定的图像数据库上发现这种组合不令人满意,则可能要尝试并在其中扔出更多类型的特征检测器。

另外,如果您有兴趣,这里有一篇论文可以评估不同检测和描述符组合的性能。由于DoG&MSER + SIFT对我来说效果很好,所以我没有看过它,但是我已经略读了一下,论文也很不错。我链接到了。

评论


$ \ begingroup $
只是一小段澄清:DoG代表高斯差(两个高斯滤波器响应之间的差)
$ \ endgroup $
– Libor
2012年5月26日20:44

#3 楼

基于先前的响应:

(1)您可以将SIFT(或此本地补丁描述符的另一个改进版本)与密集采样一起使用,而不是内置检测器。您可以选择局部补丁的大小和采样密度,以满足您对性能和计算成本的要求。

(2)SIFT是仿射不变描述符,用于宽基线立体声匹配。这意味着,当您拍摄图像并对其进行仿射变换时,SIFT效果很好,其中尽管进行了变换,但目标图像中仍必须存在“模板”。

建议:
(b)如果选择对任务采用CBIR方法,则可以使用BoW模型作为基线。

(c)将模板图像仅裁剪到相关部分,并使用高度密集的SIFT。
http://www.vlfeat.org/overview/dsift.html

(4)稍后,您可能需要尝试使用诸如PHOG(梯度金字塔直方图)之类的多尺度描述符,这可能会改善结果。
http://www.vlfeat.org/overview /dsift.html#tut.dsift.phow