我目前正在使用OpenCV进行人脸检测。我通过将正负图像与级联训练器GUI配合使用来完成训练。但是,当我运行代码以测试人脸检测时,只有第一个图像有效(仅当.detectMultiScale设置为grey,1.01,7时),而其他图像则不起作用。
import cv2
import numpy as np
face_cascade = cv2.CascadeClassifier('classifier/cascade.xml')
img = cv2.imread('p/pic2.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.01,7)
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我所有的正面图像都是灰度的,其大小为(600,600)。我的负片尺寸较大,但不是灰度级。有80张正像和160张负像。我确定这是否会影响结果。
最佳答案
灰度。
图像以获得正 vector 。
很难获得良好的结果。(建议最少为900 neg和1800 pos)
我的建议是通过跟随tutorial来跟随这个the documentation。我之前使用了本教程并训练了许多对象,因此可以很好地遵循
关于python - HAAR人脸检测无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59951691/