Machine learning 人脸检测与裁剪

Machine learning 人脸检测与裁剪,machine-learning,artificial-intelligence,computer-vision,face-detection,face-recognition,Machine Learning,Artificial Intelligence,Computer Vision,Face Detection,Face Recognition,项目:人脸检测 说明:我想在图像中检测并裁剪人脸。这张图片是通过网络摄像头拍摄的,每张图片只有一张脸。我使用了OpenCV人脸检测器,但我对裁剪不满意。所以,我开始使用STASM(http://www.milbo.users.sonic.net/stasm/)人脸地标检测器裁剪图像。STASM使用OpenCV人脸检测器在图像中查找人脸,STASM在人脸中定位地标。在光线不好的情况下,STASM的裁剪图像不好,因为它不能单独准确地检测人脸 1) 我想知道任何更好的人脸检测算法。我的主要目标是从图像

项目:人脸检测

说明:我想在图像中检测并裁剪人脸。这张图片是通过网络摄像头拍摄的,每张图片只有一张脸。我使用了OpenCV人脸检测器,但我对裁剪不满意。所以,我开始使用STASM(http://www.milbo.users.sonic.net/stasm/)人脸地标检测器裁剪图像。STASM使用OpenCV人脸检测器在图像中查找人脸,STASM在人脸中定位地标。在光线不好的情况下,STASM的裁剪图像不好,因为它不能单独准确地检测人脸

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

2) 目前我正在使用STASM进行裁剪。在恶劣的光照条件下或在 一张图像,如果没有捕获整个或完整的面部(前额到下巴),则STASM裁剪不可靠(输出将仅为眼睛或嘴唇)。在我的应用程序中,如果stasm没有正确的输出,或者脸没有被适当地裁剪,那么我应该拒绝这些图像。怎么做?因此,我计划通过找到眼睛来验证图像中的人脸。如果我的方法是正确的,如何从裁剪后的图像中检测眼睛


尝试使用OpenCV中的眼睛检测器。并根据眼睛位置调整面部框

在我的一个项目中,通过使用嵌套级联分类器检测人脸中的眼睛,我得到了非常好的结果,正如在交付的示例中所示。但接下来我使用了另一个技巧:我将nestedCascade.detectMultiScale()的minNeighbors参数调低到0

这意味着你会得到很多结果。一只眼睛可以被认出来。然后我检查结果在面部左右两侧的聚集位置。聚集点是实际的眼睛位置

然后旋转初始图像。旋转中心是我发现的面部中心,旋转角度是检测到的眼睛之间的角度。然后,我对旋转后的图像进行另一次人脸检测,并确保在nestedCascade.detectMultiScale()的参数中使用非常低的比例因子


在大多数情况下,结果是一个完全正常化的面部图像。当然,成功与否仍然取决于你的闪电状态到底有多糟糕。

裁剪人脸后你的目标是什么?创建一个训练集?还是进行人脸识别?裁剪后,我用它来创建一个好的人脸识别训练集。谢谢你的回复。。。