我正在尝试在 C++ 的 MacO 上使用 OpenCV 的 (4.0.1) DNN 库来使用 Yolov3。我正在尝试使用cv::dnn::readNetFromDarknet
加载 yolov3.cfg 文件,但出现此错误:
"(-212:Parsing error) Unknown layer type: net in function
'ReadDarknetFromCfgStream'"
我已经确保我的项目中的 yolov3.cfg 与它在网络上的https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg匹配。如果我将“ [net]
”更改为其他内容,例如“ [layer]
”,则错误将更改为:
"(-212:Parsing error) Unknown layer type: layer in function
'ReadDarknetFromCfgStream'"
几乎就像 cfg 文件错误或 opencv 没有正确读取它一样。
配置文件的开头如下所示:
[net]
# Testing
# batch=1
# subdivisions=1
# Training
batch=64
subdivisions=16
width=608
height=608
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
learning_rate=0.001
burn_in=1000
max_batches = 500200
policy=steps
steps=400000,450000
scales=.1,.1
这就是我认为问题所在。
我加载网络的代码是:
const char * pathStart = gGetRootAppPath();
pathEnd = "/yolo/yolov3.cfg";
std::string modelConfiguration = pathStart + pathEnd;
pathEnd = "/yolo/yolov3.weights";
std::string modelWeights = pathStart + pathEnd;
//set up the neural network
cv::dnn::readNetFromDarknet(modelConfiguration,modelWeights);
任何帮助将非常感激。