我正在使用Python语言中的Open CV2人脸检测。它工作得很好,但经常会找到一些人脸,尽管它们确实是人脸,但它们太模糊了,以至于没有用。它成功地找到了不能被识别为男性或女性、成人或儿童的面孔,但仍然清楚地看到了人脸。
检测无法识别的人脸并不是一个有用的结果,但我不知道如何以编程方式阻止这些结果,或者确定它们应该被忽略。
我目前唯一的方法是忽略任何小于某个阈值的人脸,但我仍然会得到一些大的模糊人脸。
有什么建议吗?我正在使用haarcascade_frontalface_alt_tree.xml进行检测。
发布于 2020-09-06 17:28:59
基于深度学习的面部检测器,如ssd或mtcnn,也会返回置信度分数。
deepface包装了这些最先进的人脸检测器。
#!pip install deepface
from deepface import DeepFace
backends = ['ssd', 'mtcnn']
detected_face = DeepFace.detectFace("img.jpg", detector_backend = backends[0])在这里,ssd扩展了90%的置信度分数。这会解决你的问题。
发布于 2020-09-06 17:17:17
如果你的问题是检测男性、女性或儿童的脸,你需要输入性别的图像并训练你的程序。它涉及到大量的编程,但可以很容易地通过opencv解决。你需要用数千张图片来训练你的模型(项目)以保证准确性。
如果你只想检测某些人脸,你需要做同样的事情,但是用你想要检测的人脸图像来训练你的模型。
https://stackoverflow.com/questions/63761605
复制相似问题