特征检测和物体检测的区别

4
我知道大多数目标检测涉及到Haar级联,而且还有许多特征检测技术,如SIFT、SURF、STAR、ORB等等......但如果我的最终目标是识别物体,两种方法的结果是否相同呢?我知道在简单的形状和图案上使用特征技术,但对于复杂的物体,这些特征算法似乎也能工作。 我不需要知道它们的功能差异,只需知道是否有其中之一就足以排除另一个。如果我使用Haar级联,是否需要使用SIFT?为什么要麻烦呢?
谢谢
编辑:对于我的目的,我想在广泛的事物类别上实现物体识别。意思是任何形状类似于杯子的杯子都将被识别为杯子类的一部分。但我还想指定实例,意思是纽约杯子将被识别为纽约杯子的一个实例。

你是否熟悉分类算法的工作原理?在我看来,特征检测只是对象检测的一部分。请看我的回答。 - Peter O.
@PeterO. 你知道有哪些涉及到我提到的检测技术的物体检测技术吗?据我所知,Haar 并没有涉及到它们。或者这些更强大的特征检测技术只限于开发人员自己加入机器学习吗? - mugetsu
3个回答

5
物体检测通常包含两个步骤:特征检测和分类。
在特征检测步骤中,收集要检测的物体的相关特征。
这些特征作为输入传递到第二步分类。 (甚至可以使用Haar级联进行特征检测,据我所知)。分类涉及诸如神经网络、K最近邻等算法。分类的目标是找出检测到的特征是否对应于要检测的对象具有的特征。分类通常属于机器学习领域。
例如,人脸检测是物体检测的一个例子。
编辑(2018年7月9日):
随着深度学习的出现,具有多个隐藏层的神经网络已经广泛使用,使我们可以相对容易地看到特征检测和物体检测之间的区别。深度学习神经网络由两个或更多隐藏层组成,每个隐藏层都专门为处理任务的特定部分而设计。对于从图像中检测对象的神经网络,早期层将低级特征排列成多维空间(特征检测),而后期层根据这些特征在该多维空间中的位置对对象进行分类(物体检测)。Wolfram博客文章“启动Wolfram神经网络库”中介绍了这种类型的神经网络。

谢谢您的回答,我一直在寻找这个问题的答案,因为我对于使用bbox分数获取边框是否被认为是要检测的特征感到困惑。或者如果我正在进行字幕工作,那么可以从图像中检测出哪些特征? - user5520049

1

通常对象是特征的集合。一个特征往往是非常低级的原始事物。一个对象意味着将场景的理解提升到更高的层次。

一个特征可能是像角落、边缘等东西,而一个对象可能是像书、盒子、桌子这样的东西。这些对象都由多个特征组成,其中一些特征可能在任何给定的场景中可见。


那么人们使用特征检测是为了什么?是为了指定对象的实例吗? - mugetsu
那么就我的目的而言,您认为对象检测可以用于实例定义,而特征检测可以用于定义类吗?我知道Haar在特定对象方面表现得非常好,但在定义广泛类别方面表现得相当糟糕。使用特征检测,我应该能够找到同一类别中物体的共同特征,从而确定它们属于同一类别,对吗? - mugetsu

0
不变性、速度、存储;这是我能想到的几个原因。另一种方法是保留完整图像,然后检查给定图像是否与数据库中的玻璃图像相似。但如果您有压缩表示形式的玻璃图像,则需要较少的计算(因此更快),需要较少的存储,并且特征告诉您跨图像的不变性。
您提到的两种方法本质上是相同的,只是有些细微的差别。在Haar的情况下,您检测Haar特征,然后增强它们以增加置信度。增强只是一个元分类器,它聪明地选择哪些Harr特征应包含在最终的元分类中,以便可以给出更好的估计。另一种方法也或多或少地做到了这一点,只是您拥有更“复杂”的特征。主要区别在于,您不直接使用增强。您倾向于使用某种分类或聚类,例如MoG(高斯混合)或K-Mean或其他一些启发式方法来对数据进行聚类。您的聚类在很大程度上取决于您的特征和应用程序。

在你的情况下,什么会起作用:这是一个棘手的问题。如果我是你,我会尝试使用Haar进行实验,如果不起作用,就会尝试其他方法(注意:>)。请注意,您可能需要对图像进行分割,并在其周围提供某种边界以便检测眼镜。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接