运行Python口罩检测代码报错:无法打开deploy.prototxt文件
口罩检测路径报错解决方法
你遇到的报错是OpenCV无法读取指定路径下的Caffe模型配置文件,属于路径不匹配问题,可按以下步骤排查解决:
- 首先确认文件放置结构:你代码中使用的是相对路径,要求Python运行脚本的当前工作目录下必须存在如下结构的文件:
你的项目根目录(C:\Users\mfahm\anaconda3\Test) ├─ 你当前运行的py脚本/ipynb笔记本 ├─ face_detector 文件夹 │ ├─ deploy.prototxt │ └─ res10_300x300_ssd_iter_140000.caffemodel └─ mask_detector.model - 验证当前工作目录是否正确:在代码最开头加入以下代码,打印当前Python的工作目录,确认输出是否为
C:\Users\mfahm\anaconda3\Test:
如果输出路径和你的项目路径不一致,相对路径就会失效,导致找不到文件。import os print(os.getcwd()) - 两种修复方案可选:
- 直接替换为绝对路径,彻底避免工作目录差异导致的问题:
prototxtPath = r"C:\Users\mfahm\anaconda3\Test\face_detector\deploy.prototxt" weightsPath = r"C:\Users\mfahm\anaconda3\Test\face_detector\res10_300x300_ssd_iter_140000.caffemodel" faceNet = cv2.dnn.readNet(prototxtPath, weightsPath) maskNet = load_model(r"C:\Users\mfahm\anaconda3\Test\mask_detector.model")- 手动切换工作目录到项目根目录,在代码最开头加入以下代码即可:
import os os.chdir(r"C:\Users\mfahm\anaconda3\Test") - 额外检查:确认
face_detector文件夹下的两个文件名拼写完全正确,没有拼写错误、多余空格、后缀名错误的情况。
内容的提问来源于stack exchange,提问作者mfahmifadh
相关产品推荐
相关产品推荐

