如何解决预测后的人脸重组尝试面对预测值的索引,然后使索引3超出尺寸2的轴0的范围
在以下代码中,我得到了错误
索引3超出了尺寸2的轴0的范围
对于语句pred[0][3]
。我在做什么错了?
# Face Recognition
# Importing the libraries from PIL
import Image from keras.applications.vgg16
import preprocess_ input import base64 from
io import BytesIO import json import random import cv2 from
keras.models import load_model import numpy as np
from keras.preprocessing import image model =
load_model('facefeatures_new_model_final.h5')
# Loading the cascades face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
def face_extractor(img):
# Function detects faces and returns the cropped face
# If no face detected,it returns the input image
#gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(img,1.3,5)
if faces is ():
return None
# Crop all faces found
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,255),2)
cropped_face = img[y:y+h,x:x+w]
return cropped_face
# Doing some Face Recognition with the webcam video_capture = cv2.VideoCapture(0) while True:
_,frame = video_capture.read()
#canvas = detect(gray,frame)
#image,face =face_detector(frame)
face=face_extractor(frame)
if type(face) is np.ndarray:
face = cv2.resize(face,(224,224))
im = Image.fromarray(face,'RGB')
#Resizing into 128x128 because we trained the model with this image size.
img_array = np.array(im)
#Our keras model used a 4D tensor,(images x height x width x channel)
#So changing dimension 128x128x3 into 1x128x128x3
img_array = np.expand_dims(img_array,axis=0)
pred = model.predict(img_array)
print(pred)
name="None matching"
if(pred[0][3]>0.5):
name='Krish'
cv2.putText(frame,name,(50,50),cv2.FONT_HERSHEY_COMPLEX,1,0),2)
else:
cv2.putText(frame,"No face found",2)
cv2.imshow('Video',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break video_capture.release() cv2.destroyAllWindows()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。