人脸检测+裁剪

信息处理 图像处理 计算机视觉 opencv 人脸检测
2022-02-01 17:26:23

项目:人脸检测

描述:我想检测并裁剪图像中的人脸。图像是通过网络摄像头捕获的,每张图像只有一张脸。我使用了 OpenCV 人脸检测器,但我对裁剪不满意。因此,我开始使用 STASM (http://www.milbo.users.sonic.net/stasm/) 人脸界标检测器来裁剪图像。STASM 使用 OpenCV 人脸检测器在图像中查找人脸,而 STASM 在人脸中定位地标。在光线不好的情况下,来自 STASM 的裁剪图像效果不佳,因为它不能单独准确地检测面部。

1)我想知道任何更好的人脸检测算法。我的主要目标是从图像中裁剪人脸。

2)目前我正在使用 STASM 进行裁剪。在光线不好的情况下或在图像中,如果未捕获整个或整个面部(前额到下巴),则 STASM 裁剪不可靠(输出将仅是眼睛或嘴唇)。在我的应用程序中,如果 stasm 没有正确的输出,或者脸部没有被正确裁剪,那么我应该拒绝这些图像。怎么做?所以我打算通过找到眼睛来验证图像中的人脸。如果我的方法是正确的,如何从裁剪的图像中检测眼睛?

2个回答

仅供参考... STASM 使用 OpenCV 的人脸检测器(尽管为了更好的图像边界检测进行了轻微修改)。如果您真的想要更好的人脸检测器,那么我建议您从FDDB 数据集挑战(很可能是专有的)中寻找检测器,或者创建您自己的自定义检测器以满足您的需求。

如果您仍然计划通过眼睛进行验证,那么 OpenCV 有一个级联,请参阅http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html

除了面部检测之外,您使用眼睛(也可以添加嘴巴)的计划似乎很合理。我看过几篇关于人脸识别的研究论文,其中首先注册数据库中的人脸,以便三角形眼睛+嘴巴在整个数据库中对齐。

根据您的需要,如果至少有一只可见的眼睛,您显然可以验证人脸检测。例如,当眼睛非常靠近人脸边界框时,您还可以添加一些逻辑来拒绝人脸检测。