我正在尝试使用这段代码来使用youtube视频检测年龄和性别,但无法读取.protxt和.caffemodel文件。
import pafy
import cv2
import numpy as np
url = 'https://www.youtube.com/watch?v=cQ54GDm1eL0'
vPafy = pafy.new(url)
play = vPafy.getbest(preftype="mp4")
cap = cv2.VideoCapture(play.url)
cap.set(3, 480) #set width of the frame
cap.set(4, 640) #set height of the frame
MODEL_MEAN_VALUES = (78.4263377603, 87.7689143744, 114.895847746)
age_list = ['(0, 2)', '(4, 6)', '(8, 12)', '(15, 20)', '(25, 32)', '(38, 43)', '(48, 53)', '(60, 100)']
gender_list = ['Male', 'Female']
def load_caffe_models():
age_net = cv2.dnn.readNetFromCaffe('/content/drive/My Drive/Colab/deploy_age.prototxt', '/content/drive/My Drive/Colab/age_net.caffemodel')
gender_net = cv2.dnn.readNetFromCaffe('/content/drive/My Drive/Colab/deploy_gender.prototxt', '/content/drive/My Drive/Colab/gender_net.caffemodel')
return(age_net, gender_net)
def video_detector(age_net, gender_net):
font = cv2.FONT_HERSHEY_SIMPLEX
if __name__ == "__main__":
age_net, gender_net = load_caffe_models()
video_detector(age_net, gender_net)
cap.read()
我遇到以下错误:
错误:OpenCV(4.1.2)/io/opencv/modules/dnn/src/caffe/caffe_io.cpp:1121:错误:(-2:未指定的错误)失败:fs.is_open()。无法在函数“ ReadProtoFromTextFile”中打开“ / content / drive /我的驱动器/Colab/deploy_age.prototxt”
问题在于,目录'/content/drive/My Drive/Colab/deploy_age.prototxt'
中没有这样的文件。
请确保它在该目录中可用。
谢谢!