2014-11-01 42 views
5

我目前正在检测CCTV图像中的头像。我使用的是HOG检测器+ SVM,我使用滑动窗口技术来检测头部。当然,当我缩放图像时,我有多个相同头部的检测/边界框。我知道我必须使用非最大值抑制来选择其中最好的一个,并且我试图遵循以下链接: http://quantombone.blogspot.com/2011/08/blazing-fast-nmsm-from-exemplar-svm.html检测到的窗口非最大抑制MATLAB

但是,我无法理解如何获得每个滑动窗口的分数。有人可以向我解释吗? 换句话说,我有边界框,我知道我必须设置0.5的重叠,但我没有每个边界框的分数。

+1

它是由分类器给出的预测分数,我想。对于SVM,如果使用LibSVM,那么得分可能是它输出的概率估计值。得分是对象(如汽车)包含在该框中的概率。 – 2014-11-01 22:16:31

+0

谁在检测Windows MATLAB,为什么它被压制,和Linux MATLAB或Mac MATLAB有什么不同? (看起来像“MATLAB”这个词在你的标题中很不合适) – 2014-11-02 00:03:04

+0

@ ParagS.Chandakkar是在做了一些很好的研究之后,我同意你的观点,事实上我使用参数'b 1'来输出概率。但是,当在控制台上输出概率时,我注意到对于每个预测,2个概率都被给出而不是1个。我可以将它与您清除吗?非常感谢 – user2541516 2014-11-02 15:36:48

回答

4

实际上,对于非最大抑制,您不需要与每个边界框关联的分数。您可以使用Viola和Jones(简单的特点提振级联)的知名NMS方法:有相互重叠的大于0.5

  • 每个集群

    • 集群中的所有边界框计算平均值边界并输出它(即计算所有右上角和所有右下角之间的平均点)

    而且你有非最大抑制。

    如果您仍想使用其他需要输出分数的例程,则只需为每个边界框分配相同的分数即可。

  • +0

    我会尝试你告诉我的方式,并让你知道结果@dynamic – user2541516 2014-11-02 15:37:32

    +1

    我试图用这个链接中显示的nms:http://quantombone.blogspot.com/2011/08/blazing-fast-nmsm -from-exemplar-svm.html通过给每个边界框赋予相同的得分1,但是与小的相比,所得到的框变得非常大,因此不是捕获头部,而是每个框捕获头部+许多其他事物与它...任何反馈? – user2541516 2014-11-03 16:20:33

    +0

    @dynamic你可以定义什么重叠意味着如何进行聚类? – warmspringwinds 2015-07-07 18:39:29

    2

    您应该能够从SVM中得分。例如,如果您在统计工具箱中使用ClassificationECOC类来训练SVM,则其predict方法可以返回分数。

    然后,您可以使用计算机视觉系统工具箱中的selectStrongestBbox功能来执行非最大值抑制。

    +0

    伟大的@Dima但是我试图从以下链接使用nms:http://quantombone.blogspot.com/2011/08/blazing-fast-nmsm-from-exemplar-svm.html – user2541516 2014-11-03 15:31:46

    +0

    我也使用HOG MATLAB上的libSVM的功能..我试图通过使用上面的注释链接中显示的nms来抑制不想要的bboxes – user2541516 2014-11-03 16:24:23

    +1

    @ user2541516此功能似乎按照您的意愿进行。那么你是否想自己实施NMS,如果是的话,那就继续吧。否则,我认为'selectStrongestBox'就是你想要的。 – 2014-11-03 21:12:23