我正在构建一个带有人脸检测和地标点检测的项目。我正在用它做几个测试,到目前为止,我能够建立一个 "自定义 "的dlib shape_predictor,现在我试图选择我应该使用哪个人脸检测API。我读了很多书,人们通常说Haar的可靠性较低,但对CPU的负担比HOG小,然而我刚刚尝试使用Haar级联,但它使用了我70%的CPU(i7-7700HQ),而HOG对CPU也有30%的负担。我是不是做错了什么?
我在Anaconda (windows 10)中使用Dlib 19.7和OpenCV 4.2.0.32。
这是Haar cascade人脸检测的代码。
detectorFace = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
vs = VideoStream(src=0).start()
while True:
frame = vs.read()
frame = imutils.resize(frame, width=600)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
retangs = detectorFace.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30),flags=cv2.CASCADE_SCALE_IMAGE)
for (x, y, w, h) in retangs:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
...