HAAR人脸检测无法按预期工作

2024-03-28 19:54:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用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')
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张负片。我确信这是不是影响结果的原因


Tags: 图像importimgguicv2opencvcascade灰度
2条回答

如果您使用此代码(没有任何更改),则只处理一个图像(pic2.png)。对于多个图像,您需要在特定文件夹的图像路径中循环

  • 首先,你的负面和正面形象都应该是正确的 灰度
  • 第二,你没有说你是如何给自己的积极态度贴上标签的 获取正向量的图像
  • 第三,你的图片数量(正反)不够,而且 难以获得好的结果。(建议至少900负和1800位)
  • 最后,我假设您使用的是opencv_traincascade,那么您是在xml的哪个阶段完成培训的

我的建议是在这个{a2}之后再接着{a3}。我以前使用过本教程并训练过许多对象,因此很好地遵循

相关问题 更多 >