cv2.error:OpenCV(4.2.0)C:\ projects \ opencv-python \ opencv \ modules \ dnn \ src \ darknet \ darknet_io.cpp:677:错误:(-212:分析错误)未知图层类型:在函数'cv :: dnn :: darknet :: ReadDarknetFromCfgStream
中代码:
import cv2
import numpy as np
# Load Yolo
path =r"D:\yolov3-coco"
weight = path+r"\yolov3.weights"
cfg = path+r"\yolov3.cfg"
net = cv2.dnn.readNetFromDarknet(weight ,cfg )
classes = []
with open(path+"\coco.txt", "r") as f:
classes = [line.strip() for line in f.readlines()]
print(cfg)
print(weight)
print(classes)
cv2.destroyAllWindows()
我已经使用了命令net= cv2.dnn.readNet(weights,cfg)
,但是它没有用,我还去了https://pjreddie.com/media/files/yolov3.weights,下载了权重和配置文件,并将它们放在名为yolov3-coco的文件夹中。 >
答案 0 :(得分:0)
也许yolo3-coco cfg和重量不匹配,所以未知图层类型错误。
答案 1 :(得分:0)
您似乎先通过*.weights
,然后再经过*.cfg
。如果首先使用*.cfg
,则使用深色网weights
文件。 readNetFromDarknet
的参考,
https://docs.opencv.org/master/d6/d0f/group__dnn.html#gafde362956af949cce087f3f25c6aff0d
此问题类似于
答案 2 :(得分:0)
yolov3.weights,yolov3.cfg 的路径不正确,所以你可以直接在它们存储的地方传递路径
net = cv.dnn.readNetFromDarknet("yolov3-coco/yolov3.cfg", "yolov3-coco/yolov3.weights")
答案 3 :(得分:0)
对我来说这是错误的文件。我在 google colab 中尝试使用 tensorflow 2.5.0 版。以下文件有效:
!wget "https://pjreddie.com/media/files/yolov3.weights"
!wget "https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfg"
!wget "https://raw.githubusercontent.com/pjreddie/darknet/master/data/coco.names"