如何解决cv2.dnn.readNetFromDarknet运行报错问题?
解决Yolov3+OpenCV运行报错的两个问题
问题1:OpenCV解析模型文件报错(Failed to open NetPara)
针对cv2.error: (-212:Parsing error) Failed to open NetPara错误,按以下步骤排查:
- 核对文件路径
确认yolov3.cfg和yolov3.weights确实存在于指定路径,文件夹、文件名无拼写错误。同时调整路径写法为Windows兼容格式,推荐两种方式:# 方式1:使用原始字符串(前缀r) model = cv2.dnn.readNetFromDarknet(r"C:\Users\deniz\Desktop\yolofiles\yolov3-coco_directory\yolov3.cfg", r"C:\Users\deniz\Desktop\yolofiles\yolov3-coco_directory\yolov3.weights") # 方式2:使用单斜杠 model = cv2.dnn.readNetFromDarknet("C:/Users/deniz/Desktop/yolofiles/yolov3-coco_directory/yolov3.cfg", "C:/Users/deniz/Desktop/yolofiles/yolov3-coco_directory/yolov3.weights") - 验证模型文件完整性
重新下载官方Yolov3权重文件(大小约240MB,注意不要下成tiny版本),确认文件未损坏;同时确保cfg文件是官方原版,未被修改导致格式错误。 - 升级OpenCV版本
旧版OpenCV对Darknet模型的解析可能存在兼容问题,执行命令升级:pip install --upgrade opencv-python opencv-contrib-python
问题2:终端直接输入代码报错(术语未被识别)
cv2.dnn.readNetFromDarknet : 该术语未被识别是因为这是Python代码,不能直接在CMD/PowerShell中执行,正确做法是:
- 进入Python交互环境运行
打开终端输入python(或python3)进入Python交互模式,先导入cv2再执行代码:import cv2 model = cv2.dnn.readNetFromDarknet("C:/Users/deniz/Desktop/yolofiles/yolov3-coco_directory/yolov3.cfg", "C:/Users/deniz/Desktop/yolofiles/yolov3-coco_directory/yolov3.weights") - 保存为脚本文件运行
将代码写入.py文件(比如yolo_test.py),然后在终端执行:python yolo_test.py
内容的提问来源于stack exchange,提问作者bulletproofspirit
相关产品推荐
相关产品推荐

