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

标签 opencv feature-detection object-detection

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

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

谢谢

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

最佳答案

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

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

这些特征是第二步分类的输入。 (甚至可以使用Haar级联 据我所知,用于特征检测。)分类涉及算法 比如神经网络,K近邻等等。分类的目标是找到 out 检测到的特征是否对应于待检测物体的特征 将有。分类一般属于机器学习领域。

例如人脸检测就是物体检测的一个例子。

编辑(2018 年 7 月 9 日):

随着深度学习的出现,具有多个隐藏层的神经网络得到广泛使用,这使得比较容易看出特征检测和对象检测之间的区别。深度学习神经网络由两个或多个隐藏层组成,每个隐藏层专门用于手头任务的特定部分。对于从图像中检测对象的神经网络,较早的层将低级特征排列到多维空间(特征检测),而较晚的层根据这些特征在其中的位置对对象进行分类那个多维空间(对象检测)。在 Wolfram 博客文章“Launching the Wolfram Neural Net Repository”中可以找到对此类神经网络的精彩介绍。

关于opencv - 特征检测和物体检测的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603676/

相关文章:

c - openCV 在 C 中获取子图像

opencv - OpenCV中的相位相关和模板匹配有什么区别?

tensorflow - 如何让 Tensorflow 对象检测 api 使用灰度图像进行训练(输入张量只有 1 个 channel )?

matlab - 如何正确标记图像中检测到的对象?

python - Tensorflow 对象检测 - mAP 稳定,但总丢失率正在下降。继续训练吗?

c++ - 如何检测多柱形态?

image - 突出显示具有不同颜色图像的区域及其周围区域

c++ - 旋转纹理openGL C++

opencv - 质心椭圆 MSER OPENCV

computer-vision - 在特征匹配中, 'second best ratio'测试是否不对称?