【问题标题】:face detection , not face detected人脸检测,不是人脸检测
【发布时间】:2019-11-18 05:31:07
【问题描述】:

我正在尝试进行人脸检测,但它没有检测到任何人脸。

这是我为人脸检测创建的​​函数

def faceDetection(test_img):
     gray_img=cv2.cvtColor(test_img,cv2.COLOR_BGR2GRAY)
     face_haar_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
     # haar classifier
     faces=face_haar_cascade.detectMultiScale(gray_img,scaleFactor=1.32,minNeighbors=5)

     return faces,gray_img

这用于

test_img=cv2.imread('pic.png')
faces_detected,gray_img=fr.faceDetection(test_img)
print("faces_detected:",faces_detected)


for (x,y,w,h) in faces_detected:
    cv2.rectangle(test_img,(x,y),(x+w,y+h),(255,0,0),thickness=5)

resized_img=cv2.resize(test_img,(500,500))
cv2.imshow("face",resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows

但是当我运行这个脚本时,它没有显示检测到任何人脸 简单地输出这个

faces_detected: ()

图像周围没有框

【问题讨论】:

标签: python python-3.x opencv face-recognition


【解决方案1】:

尝试使用不同的 haar 级联。默认是haarcascade_frontalface_alt.xml

face_haar_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')

更改用于级联的比例因子。如果这不起作用,您还可以将邻居的数量也减少到 2 个。

faces = face_haar_cascade.detectMultiScale(gray_img, scaleFactor=1.1, minNeighbors=5);

检查您找​​到的面孔数量

print('Faces found: ', len(faces))

【讨论】:

    猜你喜欢
    • 2013-09-24
    • 1970-01-01
    • 2019-02-27
    • 2012-04-17
    • 1970-01-01
    • 2013-07-16
    • 2014-08-09
    • 2022-01-13
    • 2021-09-09
    相关资源
    最近更新 更多