在OpenCV中重叠面部检测

首先让我提供一些我正在尝试做的事情的信息.

我正在使用配置文件面部处理面部验证问题,我的第一步是面部检测.我正在使用带有’haarcascade_profileface.xml’的OpenCV人脸检测器.问题是,探测器不能始终找到面孔.我的意思是不一致,它在某个区域找到了一张脸,但有时它会发现脸部更大,有时更小,有时两者都有.我希望它能一直找到同一个区域.

我正在添加一些图片来更好地讲述我的问题.你可以找到它们here.

我该怎么做才能克服同一区域的多面检测(重叠面部检测)?

我想到的第一件事是增加minNeighbors参数,但这导致检测率下降,所以我不想这样做.然后我想在面部图像上应用一些图像稳定算法,但我认为它太贵了.如果有人能就克服这个问题给我一些建议,我会很高兴的.

我应该提到我正在使用OpenCV 2.4.5并且我将minNeighbor参数设置为4,scaleFactor是1.75并且没有设置任何大小限制.

提前致谢,

问候,

居内伊

最佳答案 如果您从视频中检测到面部,则可以在边界框上应用滤镜以保持边界框平滑变化.它将减少面部边界框中的“不一致”.

CurrentFrameBoundingBox = a * PrevFrameBoundingBox(1-a)* DetectedBoundingBox

因为a越大,它将给前一帧边界框带来更多权重并减少不一致性.

您可以为边界框中的每个坐标执行此操作.

点赞