gpt4 book ai didi

python - 有谁知道如何解决这个奇怪的 cv2.error : OpenCV(4. 1.0)?

转载 作者:行者123 更新时间:2023-12-02 10:57:43 25 4
gpt4 key购买 nike

行。我从老师那里得到了一份“简单”的家庭作业。作业只是将命令 channel 从 python.exe .\AgeGender.py --input .\sample.jpg 更改为 python.exe .\AgeGender.py --input .\test.jpg

文件库链接:https://drive.google.com/file/d/1gvIhxmFPvEcbDcPoyjnkcjuxNiiXD1FY/view?usp=sharing

从开始。老师说我只需要一个终端来运行它。事实证明,经过 2 个小时的战斗并尝试运行这个 AgeGender.py,我必须学习如何从 cmd 运行脚本。当然,在开始时,没有办法从 windows 命令提示符运行 python.exe,所以我必须找到一种方法将所有文件放入 pycharm 脚本文件夹,只是为了发现脚本写错了,我必须找到一个修复它的方法...

import cv2 as cv
import math
import time
import argparse

def getFaceBox(net, frame, conf_threshold=0.7):
frameOpencvDnn = frame.copy()
frameHeight = frameOpencvDnn.shape[0]
frameWidth = frameOpencvDnn.shape[1]
blob = cv.dnn.blobFromImage(frameOpencvDnn, 1.0, (300, 300), [104,
117, 123], True, False)

net.setInput(blob)
detections = net.forward()
bboxes = []
for i in range(detections.shape[2]):
confidence = detections[0, 0, i, 2]
if confidence > conf_threshold:
x1 = int(detections[0, 0, i, 4] * frameWidth)
y1 = int(detections[0, 0, i, 4] * frameHeight)
x2 = int(detections[0, 0, i, 5] * frameWidth)
y2 = int(detections[0, 0, i, 6] * frameHeight)
bboxes.append([x1, y1, x2, y2])
cv.rectangle(frameOpencvDnn, (x1, y1), (x2, y2), (0, 255, 0),
int(round(frameHeight/150)), 8)
return frameOpencvDnn, bboxes


parser = argparse.ArgumentParser(description='Use this script to run age
and gender recognition using OpenCV.')
parser.add_argument('--input', help='Path to input image or video file.
Skip this argument to capture frames from a camera.')

args = parser.parse_args()

faceProto = "opencv_face_detector.pbtxt"
faceModel = "opencv_face_detector_uint8.pb"

ageProto = "age_deploy.prototxt"
ageModel = "age_net.caffemodel"

genderProto = "gender_deploy.prototxt"
genderModel = "gender_net.caffemodel"

MODEL_MEAN_VALUES = (78.4263377603, 87.7689143744, 114.895847746)
ageList = ['(0-2)', '(4-6)', '(8-12)', '(15-20)', '(25-32)', '(38-43)', '(48-53)', '(60-100)']
genderList = ['Male', 'Female']

ageNet = cv.dnn.readNet(ageModel, ageProto)
genderNet = cv.dnn.readNet(genderModel, genderProto)
faceNet = cv.dnn.readNet(faceModel, faceProto)

cap = cv.VideoCapture(args.input if args.input else 0)
padding = 20
while cv.waitKey(1) < 0:
# Read frame
t = time.time()
hasFrame, frame = cap.read()
if not hasFrame:
cv.waitKey()
break

frameFace, bboxes = getFaceBox(faceNet, frame)
if not bboxes:
print("No face Detected, Checking next frame")
continue

for bbox in bboxes:
# print(bbox)
face = frame[max(0,bbox[1]-
padding):min(bbox[3]+padding,frame.shape[0]-1),max(0,bbox[0]-
padding):min(bbox[2]+padding, frame.shape[1]-1)]

blob = cv.dnn.blobFromImage(face, 1.0, (227, 227), MODEL_MEAN_VALUES,
swapRB=False)
genderNet.setInput(blob)
genderPreds = genderNet.forward()
gender = genderList[genderPreds[0].argmax()]
# print("Gender Output : {}".format(genderPreds))
print("Gender : {}, conf = {:.3f}".format(gender,
genderPreds[0].max()))

ageNet.setInput(blob)

所以,有人可以告诉我如何解决这个问题吗?请
Traceback (most recent call last):
File ".\AgeGender.py", line 47, in <module>
ageNet = cv.dnn.readNet(ageModel, ageProto)
cv2.error: OpenCV(4.1.0) C:\projects\opencv-
python\opencv\modules\dnn\src\caffe\caffe_io.cpp:1132: error:
(-2:Unspecified error) FAILED: fs.is_open(). Can't open
"age_net.caffemodel" in function 'cv::dnn::ReadProtoFromBinaryFile'

我只想编写脚本正常运行而没有任何错误,这样我就可以完成这个噩梦

最佳答案

事实证明,服务器重载,所以下载的文件没有完成。
在我下载“完整”包后,一切都开始工作了。我实际上丢失了 1 MB 的 1 个文件,不幸的是,这对于整个脚本的正常工作至关重要。

感谢您的帮助,如有问题,我们深表歉意。

关于python - 有谁知道如何解决这个奇怪的 cv2.error : OpenCV(4. 1.0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56369332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com