4

我知道最常见的对象检测涉及 Haar 级联,并且有许多用于特征检测的技术,例如 SIFT、SURF、STAR、ORB 等……但是如果我的最终目标是识别对象,那么两种方式最终都会放弃我的结果一样吗?我了解在简单的形状和图案上使用特征技术,但对于复杂的对象,这些特征算法似乎也可以工作。

我不需要知道它们如何运作的区别,但是否拥有其中一个就足以排除另一个。如果我使用 Haar 级联,我需要使用 SIFT 吗?何苦?

谢谢

编辑:出于我的目的,我想在广泛的事物上实现对象识别。这意味着任何与杯子形状相似的杯子都将作为班级杯子的一部分被拾取。但我也想指定实例,这意味着将选取一个 NYC 杯作为实例 NYC 杯。

4

3 回答 3

5

目标检测通常包括两个步骤:特征检测和分类。

在特征检测步骤中,收集待检测对象的相关特征。

这些特征被输入到第二步,分类。(据我所知,甚至 Haar 级联也可用于特征检测。)分类涉及神经网络、K-最近邻等算法。分类的目的是找出检测到的特征是否对应于待检测对象将具有的特征。分类一般属于机器学习领域。

例如,人脸检测是对象检测的一个示例。

编辑(2018 年 7 月 9 日):

随着深度学习的出现,具有多个隐藏层的神经网络得到了广泛的应用,这使得特征检测和目标检测之间的区别变得相对容易。深度学习神经网络由两个或多个隐藏层组成,每个隐藏层专门用于手头任务的特定部分。对于从图像中检测对象的神经网络,较早的层将低级特征排列到多维空间(特征检测)中,而后面的层根据这些特征在该多维空间中的位置(对象检测)。在 Wolfram 博客文章“启动 Wolfram 神经网络存储库”中可以找到对此类神经网络的一个很好的介绍。

于 2011-09-29T22:19:18.547 回答
1

通常,对象是特征的集合。特性往往是非常低级的原始事物。一个对象意味着将对场景的理解提升到一个新的水平。

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

于 2011-09-29T21:39:05.010 回答
0

不变性、速度、存储;几个原因,我能想到的。另一种方法是保留完整的图像,然后检查给定的图像是否与数据库中的玻璃图像相似。但是如果你有一个玻璃的压缩表示,它需要更少的计算(因此更快),需要更少的存储,并且这些特征告诉你图像之间的不变性。

您提到的两种方法基本相同,略有不同。在 Haar 的情况下,您检测 Haar 特征,然后增强它们以增加置信度。Boosting 只不过是一个元分类器,它巧妙地选择要包含在最终元分类中的所有 Harr 特征,以便它可以给出更好的估计。另一种方法,也或多或少这样做,除了你有更“复杂”的功能。主要区别在于,您不直接使用提升。您倾向于使用某种分类或聚类,例如 MoG(高斯混合)或 K-Mean 或其他一些启发式方法来聚类您的数据。您的集群很大程度上取决于您的功能和应用程序。

什么对你有用:这是一个棘手的问题。如果我是你,我会和 Haar 一起玩,如果它不起作用,我会尝试其他方法(obs :>)。请注意,您可能想要分割图像并在其周围设置某种边界以检测眼镜。

于 2011-10-28T08:04:52.360 回答