Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 特征检测与目标检测的区别_Opencv_Feature Detection_Object Detection - Fatal编程技术网

Opencv 特征检测与目标检测的区别

Opencv 特征检测与目标检测的区别,opencv,feature-detection,object-detection,Opencv,Feature Detection,Object Detection,我知道最常见的目标检测涉及Haar级联,并且有很多特征检测技术,如SIFT、SURF、STAR、ORB等。。。但是,如果我的最终目标是识别对象,那么这两种方法不都会给我相同的结果吗?我理解在简单的形状和图案上使用特征技术,但对于复杂的对象,这些特征算法似乎也能工作 我不需要知道它们在功能上的区别,但拥有其中一个是否足以排除另一个。如果我使用Haar级联,我需要用SIFT吗?为什么要麻烦 谢谢 编辑:出于我的目的,我想在一大类事物上实现对象识别。这意味着任何形状与杯子相似的杯子都将作为班级杯子的一

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

我不需要知道它们在功能上的区别,但拥有其中一个是否足以排除另一个。如果我使用Haar级联,我需要用SIFT吗?为什么要麻烦

谢谢


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

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


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

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

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

这些特征被输入到第二步,分类。(甚至可以使用Haar级联 就我所知,对于特征检测,分类涉及算法 如神经网络、K近邻等。分类的目的是找到 确定检测到的特征是否与要检测对象的特征相对应 会的。分类通常属于机器学习领域

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

编辑(2018年7月9日):


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

不变性、速度、存储;没有什么理由,我可以用头脑思考。另一种方法是保留完整的图像,然后检查给定的图像是否与数据库中的玻璃图像相似。但是如果你有一个玻璃的压缩表示,它将需要更少的计算(因此更快),需要更少的存储,并且特征告诉你图像的不变性

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


在你的情况下,什么会起作用:这是一个棘手的问题。如果我是你,我会和Haar一起玩,如果不行,我会尝试另一种方法(obs:>)。请注意,您可能希望分割图像,并为其提供某种边界,以便检测眼镜

那么人们使用特征检测做什么呢?指定对象的实例?那么,为了我的目的,你会说对象检测可以用于实例定义,而特征检测可以用于定义类吗?我知道Haar非常擅长于特定的对象,但在定义广泛的类方面却非常糟糕。通过特征检测,我不应该在同一类中找到对象的共同特征,然后将它们确定为同一类吗?你熟悉分类算法的工作原理吗?在我看来,特征检测只是目标检测的一部分。“看我的答案。”彼得罗。你知道物体检测技术,包括我提到的检测技术吗?据我所知,哈尔与他们无关。或者这些更强大的特征检测是否仅限于开发人员自己使用机器学习?