Viola-Jones 人脸检测:像素之间的高对比度

Posted

技术标签:

【中文标题】Viola-Jones 人脸检测:像素之间的高对比度【英文标题】:Viola-Jones face detection: high contrast among pixels 【发布时间】:2016-04-26 20:53:10 【问题描述】:

我们正在使用 Viola-Jones 进行人脸检测。该算法运行良好,几乎没有误报。但是,我们有误报。我们检测到一种非常明显的误报模式,即人脸像素的灰度值与背景像素之间的对比度非常高。

对于假阴性,如果图像被转换为​​单个灰度矩阵,我们会看到这样的结果 - 255 表示白色像素,即背景,而低得多的值是面部(即较暗)像素)

255 255 255 255 255 255 80
255 255 255 255 255 110 100
255 255 255 255 90  100 110
255 255 255 90 100  105 100

在这些情况下,算法无法检测到人脸。我尝试了我们自己的代码和一个网络可用的 api,结果相似(在相关图片上都没有检测到人脸。

对于真正的肯定,对比度不是那么高,你可能会看到这样的东西:

215 203 193 180
205 196 182 175
199 195 186 183
202 201 197 193
209 204 196 187
214 202 185 172
198 182 171 159
192 174 164 156

较高的值是背景像素(有一点但不是完全白色,它们有一些灰色),较低的值对应于面部(较暗)。

有人遇到过这个问题和/或有什么建议吗?

【问题讨论】:

现在有比 Viola-Jones 人脸检测更好的算法,请谷歌“dlib,创建自己的对象检测器”。如果您需要最好的回忆,请谷歌“使用深度学习轻松创建高质量对象检测器”。 嘿 StereoMatching,非常感谢,这是一篇很棒的文章。 【参考方案1】:

如果问题是对比度,有许多对比度归一化算法。尝试将它们作为预处理步骤,看看是否有帮助。

【讨论】:

感谢 Ralf,我尝试了 open cv 的直方图均衡化,但结果好坏参半。我得到的假阴性和以前一样多,只是不同的。 算法不止一种。搜索几个并尝试它们 - 否则,对比度可能不是您的实际问题?

以上是关于Viola-Jones 人脸检测:像素之间的高对比度的主要内容,如果未能解决你的问题,请参考以下文章

Viola-Jones(人脸检测)

Viola-Jones 人脸检测器如何处理多种尺寸的人脸?

matlab中的人脸检测(viola-jones)

有没有办法在不使用 viola-jones 算法的情况下用 opencv 检测人脸? [关闭]

如果在 Viola-jones 人脸检测方法中,每一轮 boosting 都选择相同的 Haar 特征怎么办?

收集adaboost算法的负样本进行人脸检测