使用OpenCV的DNN库加载yolov3时,“未知层类型:功能中的网络”

时间:2019-03-27 13:59:01

标签: opencv yolo darknet

我试图在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);

任何帮助将不胜感激。

0 个答案:

没有答案