Python HAAR人脸检测无法按预期工作
我目前正在使用OpenCV进行人脸检测。我通过cascade trainer GUI使用正面和负面图像完成了培训。但是,当我运行代码测试人脸检测时,只有第一张图像有效(仅当.detectMultiScale设置为灰色,1.01,7时),而其他图像无效Python HAAR人脸检测无法按预期工作,python,opencv,haar-classifier,Python,Opencv,Haar Classifier,我目前正在使用OpenCV进行人脸检测。我通过cascade trainer GUI使用正面和负面图像完成了培训。但是,当我运行代码测试人脸检测时,只有第一张图像有效(仅当.detectMultiScale设置为灰色,1.01,7时),而其他图像无效 import cv2 import numpy as np face_cascade = cv2.CascadeClassifier('classifier/cascade.xml') img = cv2.imread('p/pic2.png'
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()
我所有的正面图像都是灰度的,它们的大小是(600600)。我的负片图像尺寸较大,但不是灰度。有80张正片和160张负片。我确定这是否会影响结果。如果使用此代码(没有任何更改),则只处理一个图像(pic2.png)。对于多个图像,您需要在特定文件夹的图像路径中循环。如果您使用此代码(无任何更改),则只处理一个图像(pic2.png)。对于多个图像,您需要循环浏览特定文件夹中的图像路径。
- 首先,你的负面和正面形象都应该是正确的 灰度李>
- 第二,你没有说你是如何给自己的积极态度贴上标签的 获取正向量的图像
- 第三,你的图片数量(正反)不够,而且 难以获得好的结果。(建议至少900负和1800位)
- 最后,我假设您使用的是xml,您是在哪个阶段完成培训的
我的建议是循序渐进。我以前使用过本教程并训练过许多对象,所以当我为pic1.png运行本教程时,很好地遵循,但对于其他所有对象,它都不起作用。当我为pic1.png运行本教程时,它起作用,但对于其他所有对象,它都不起作用。