【问题标题】:Is there a way to visualize a haar cascade file?有没有办法可视化 haar 级联文件?
【发布时间】:2012-11-14 06:06:02
【问题描述】:

假设我有一个 haar 级联 xml 文件。有没有办法将文件渲染成图像以创建“完美标本”?

那么如果 xml 用于人脸检测,它会显示获得最高分的人脸图像?

如果不可能,有没有办法对“主要成分”进行成像?

顺便说一句,我使用的是 Python 版本的 openCV。

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    据我所知,这很困难。分类方案很复杂,我认为没有一种简单的方法可以“反转”它,得到“完美的样本”,甚至是主成分之类的东西。 (下面有更多关于主成分的内容。)让我试着快速解释一下分类是如何完成的,以便更清楚为什么这些事情很难;然后我会提到你可以尝试的其他一些方法。

    级联如何工作(大约)

    级联的想法是通过尽快拒绝尽可能多的非人脸来加快分类速度。 (这一点很重要,因为图像中大多数 的东西都不是人脸。)你可以通过级联的分类器来做到这一点。第一个分类器经过训练,可以拒绝 90% 的非人脸,但至少保留 99.99% 的人脸。这仍然是很差的性能——如果你只使用这个分类器,你会得到大量的误报。但是,您可以很快地执行此分类,因此您可以快速去除大量非人脸。

    好的,那么这些分类器中有什么?好吧,每个分类器都是一组增强的弱分类器。这意味着,对于您传递给分类器的每张图像,它都会将其传递给 N 个非常简单的分类器,每个简单分类器都会投票“真”或“假”。每个简单(弱)分类器都经过加权,因此加权投票给出了强分类器的答案。

    好的——那么什么是弱分类器?我认为在 OpenCV 中,弱分类器是高度为 2 的决策树(参见 OpenCV docs,起始页 ~368)。所以每个弱分类器将输入图像与一个简单的模式进行比较;如果图像与图案足够相似,则将其传递给另一个图案进行比较;如果它足够不同,它将被传递以与第三种模式进行比较。

    为什么这会让事情变得困难,有些事情你可以尝试

    因此,您可能会看到,实际上不可能制作出“完美样本”,因为决策过程中存在许多非线性因素——对于其中一个弱分类器而言,“完美样本”可能对大多数人来说都是一个糟糕的样本在其他人中,这意味着总体而言,它不会成为一张好脸蛋。映射重要组件的问题相同,但是您可以通过在第一(或最后)阶段选择最重要(即权重最高)的弱分类器,然后绘制这些过滤器使用的过滤器来到达某个地方阶段。

    您可以尝试的另一种方法是我在一个艺术项目中看到的,但遗憾的是找不到链接。一位艺术家生成了形状的随机组合,并观察了它们触发面部检测器的效果。他会随机添加更多形状,并保留在触发面部检测方面做得更好的形状配置。通过这种爬山策略,他能够生成算法看起来像人脸的图像。这种方法的一个更细微的版本——在刺激空间中搜索被归类为面孔的事物——可以说有助于找到“完美的样本”。

    希望这会有所帮助……祝你好运!

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多