- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用LBPH算法进行人脸检测。收集数据和训练的部分工作正常,但是在测试部分,有一个错误
这是测试代码
import cv2
import numpy as np
import webbrowser
face_classifier = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
def face_detector(img, size=0.5):
faces = ()
# Convert image to grayscale
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('Printe1r', gray )
if np.count_nonzero(gray) >= 0:
print("in face detector")
faces = face_classifier.detectMultiScale(gray, 1.3, 5)
if faces is ():
return img, []
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,255),2)
roi = img[y:y+h, x:x+w]
roi = cv2.resize(roi, (200, 200))
return img, roi
# Open Webcam
cap = cv2.VideoCapture(0)
print("WebCam opened")
while True:
ret, frame = cap.read()
cv2.imshow('Printe1rwer', frame )
image, face = face_detector(frame)
cv2.imshow('Printe1aas r', image )
print(face)
try:
print("hell1o")
face = cv2.cvtColor(face, cv2.COLOR_BGR2GRAY)
print("hello")
# Pass face to prediction model
# "results" comprises of a tuple containing the label and the confidence value
results = model.predict(face)
print("Helo",results)
if results[1] < 500:
print("in results < 500")
confidence = int( 100 * (1 - (results[1])/400) )
display_string = str(confidence) + '% Confident it is User'
cv2.putText(face, display_string, (100, 120), cv2.FONT_HERSHEY_COMPLEX, 1, (255,120,150), 2)
if confidence > 75:
print("in confidence < 75")
cv2.putText(face, "Hey Vimal", (250, 450), cv2.FONT_HERSHEY_COMPLEX, 1, (0,255,0), 2)
cv2.imshow('Face Recognition', face )
webbrowser.open('')
break
else:
print("in else")
cv2.putText(face, "Locked", (250, 450), cv2.FONT_HERSHEY_COMPLEX, 1, (0,0,255), 2)
cv2.imshow('Face Recognition', face )
except Exception as e:
print(e)
cv2.putText(frame, "No Face Found", (220, 120) , cv2.FONT_HERSHEY_COMPLEX, 1, (0,0,255), 2)
cv2.putText(frame, "Locked", (250, 450), cv2.FONT_HERSHEY_COMPLEX, 1, (0,0,255), 2)
cv2.imshow('Face Recognition', frame )
pass
if cv2.waitKey(1) == 13: #13 is the Enter Key
break
cap.release()
cv2.destroyAllWindows()
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-1-3a076399e5b1> in <module>
34 ret, frame = cap.read()
35 cv2.imshow('Printe1rwer', frame )
---> 36 image, face = face_detector(frame)
37 cv2.imshow('Printe1aas r', image )
38 print(face)
<ipython-input-1-3a076399e5b1> in face_detector(img, size)
14 if np.count_nonzero(gray) >= 0:
15 print("in face detector")
---> 16 faces = face_classifier.detectMultiScale(gray, 1.3, 5)
17
18 if faces is ():
error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689:
error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'`
最佳答案
我已经测试了代码的第一部分。似乎正在工作,打印gray
我得到:
TEMP.py:20: SyntaxWarning: "is" with a literal. Did you mean "=="?
if faces is ():
WebCam opened
[[162 162 162 ... 97 97 97]
[161 161 160 ... 95 95 95]
[159 159 161 ... 95 95 95]
...
[252 252 252 ... 164 164 164]
[236 233 229 ... 165 164 164]
[164 158 153 ... 164 164 164]]
()
纠正
==
之外,我还要检查:
img
非零(只需打印出来,我的就可以了)。 cap = cv2.VideoCapture(0)
中加载正确的输入源(您是否连接了多个网络摄像头?)if frame:
之后插入一个ret, frame = cap.read()
块。 可能只有第一帧为“无”,这给您带来了所有问题。 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
...
ret, frame = cap.read()
从相机连续读取所有输入,但是PC在处理每一帧时可能比您的算法慢。我通常避免使用技巧来创建长缓冲区。解决上述问题后,看看
this。
关于opencv - 我的脸部识别程序出现错误。 (-215:声明失败)函数 'cv::CascadeClassifier::detectMultiScale'中的!empty(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61039140/
我是 OpenCV 的新手。我正在做一个示例人脸检测器应用程序控制台。我正在使用 haarcascade 从网络摄像头检测人脸。 我做了下一个代码: int main(int, char**) { C
我正在尝试学习 opencv 和对象检测。我在 opencv 示例中使用了 objecdetection.cpp,当我运行它时出现此错误 级联加载非常好,而且相机唯一的问题是 detectmultis
对于演示文稿,我想展示 OpenCV 使用少量命令进行人脸识别的能力。在 detectMultiScale 调用中有一个测试 if( isOldFormatCascade() ) { 对于 OpenC
我是 OpenCV 的新手。从官方文档中拿了一个例子。当我尝试运行代码时,会弹出一个错误。当您尝试运行代码时,调用函数 detectMultiScale () 时会弹出错误 Mat image; im
我正在使用以下函数(成功地)在 iOS 中使用 OpenCV 检测人脸,但根据 Instruments,它似乎每秒泄漏 4-5Mb 的内存。 该函数定期从 processFrame() 调用。 通过消
我正在尝试一个非常简单的程序来检测网络摄像头中的人脸。我注意到当我的脸位于画面中央时,可以很好地检测到人脸。每当我向两侧移动一点时,面部检测器要么完全错过我的脸,要么没有检测到。这种偏见是因为我使用函
我尝试使用教程代码 from opencv tutorials来检测人脸。所有级联都已正确加载,但在调用 之后 faceCascade.detectMultiScale( frame_gray, fa
我目前正在使用 Haar 分类器来检测对象。路上没看懂minNeighbors参数是什么,什么是它代表?其实我不明白检测的邻居是什么候选矩形。请问有人可以定义相邻的想法吗? 最佳答案 Haar 级联分
我用 opencv_traincascade 训练了我的电脑一整天,使用 6000 多张类似于以下的正面图像来检测 2 欧元硬币: 现在,我刚刚尝试运行一个简单的 OpenCV 程序来查看结果并检查文
CascadeClassifier::detectMultiScale() 的推荐参数是什么?以及我应该根据哪些因素更改默认参数? void CascadeClassifier::detectMult
我一直在尝试 openCV 中的 objectDetection.. 遵循了几个步骤.. 将其调整为 64x64 分辨率 将其更改为灰度 获取用于对象检测的 XML 绘制矩形边缘图案 然而,我无法实现
我正在使用 OpenCV 进行人脸、性别和年龄检测。我有一堆图像用于训练模型,基本上我目前有以下内容: Ptr model = cv::face::LBPHFaceRecognizer::create
在 CV2 中,我能够从上传的图像生成人脸。 faces = faceCascade.detectMultiScale( read_img, scaleFactor = 1.1,
我正在使用 OpenCV 和 CascadeClassifier::detectMultiScale用于面部检测。我的问题是它似乎导致输出内存损坏 vector . vector 正确地填充了 Rec
我很确定我的一般主题是正确的,但我没有找到任何面孔。我的代码从 c=cv2.VideoCapture(0) 读取,即计算机的摄像机。然后我进行以下设置以产生面孔所在的位置。如您所见,我正在遍历不同的
所以我试图学习如何使用 OpenCV v3.0 进行面部识别。现在在确认相机可以实际运行并且我的 XML 文件加载之后。我开始逐行取消注释代码,直到在第 64 行发现错误。 face_cascade.
如何使用带有掩码的 OpenCV C++ 函数 CascadeClassifier::detectMultiScale(...)? 我知道,对象只能出现在图像的某些非矩形部分,并且想要节省计算。 最佳
我正在测试 OpenCV 来检测人脸,我想知道如何才能有效地只检测到第一张人脸? 下面的代码适用于多个,但如果我在 faces[0] 上执行 for 循环,应用程序会提示: for (x,y,w,h)
我有以下代码来加载图像并与尝试识别匹配面孔的图像列表进行比较。对 DetectMultiScale 的调用返回大小为 0 的 vector 。 void UniCoffeeShop::Purchase
级联分类器报错: cv2.error: /Users/jenkins/miniconda/1/x64/conda-bld/work/opencv-3.1.0/modules/objdetect/s
我是一名优秀的程序员,十分优秀!