我试图在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);
任何帮助将不胜感激。