有没有一种方法可以可视化haar级联文件



假设我有一个haar级联xml文件。有没有一种方法可以将文件渲染成图像来创建"完美样本"?

所以,如果xml用于人脸检测,它会显示一张得分最高的人脸图像吗?

如果不可能,有没有办法对"主要组成部分"进行成像?

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

据我所知,这会很困难。分类方案很复杂,我不认为有一种简单的方法可以"反转"它,得到"完美样本",甚至是像主要成分一样的东西。(下面是关于主要组成部分的更多内容。)让我试着快速解释一下分类是如何进行的,这样就更清楚地说明为什么这些事情很难;那么我会提到其他一些你可以尝试的方法。

级联的工作方式(近似)

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

好的,那么这些分类器中有什么呢?每个分类器都是一组增强的弱分类器。这意味着,对于你传递给分类器的每一张图像,它都会将其传递给N中的每一个非常简单的分类器,每个简单的分类器都会投票"true"或"false"。每个简单(弱)分类器都是加权的,所以加权的投票会给出强分类器的答案。

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

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

因此,正如你可能看到的那样,制作一个"完美样本"是不可能的,因为决策过程中存在许多非线性——对于一个弱分类器来说,一个"理想样本"可能对大多数其他分类器来说都是一个糟糕的样本,这意味着它总体上不会有好的面子。映射重要组件也有同样的问题,但您可以通过在第一阶段(或最后阶段)选择最重要的(即权重最高的)弱分类器,然后绘制这些阶段使用的过滤器来取得进展。

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

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

最新更新