diff --git a/modules/dnn/src/darknet/darknet_io.cpp b/modules/dnn/src/darknet/darknet_io.cpp index f6504b96c7..bc0b413588 100644 --- a/modules/dnn/src/darknet/darknet_io.cpp +++ b/modules/dnn/src/darknet/darknet_io.cpp @@ -221,6 +221,10 @@ namespace cv { { cv::dnn::LayerParams activation_param; if (type == "relu") + { + activation_param.type = "ReLU"; + } + else if (type == "leaky") { activation_param.set("negative_slope", 0.1f); activation_param.type = "ReLU"; @@ -862,24 +866,8 @@ namespace cv { } std::string activation = getParam(layer_params, "activation", "linear"); - if (activation == "leaky") - { - setParams.setActivation("relu"); - } - else if (activation == "swish") - { - setParams.setActivation("swish"); - } - else if (activation == "mish") - { - setParams.setActivation("mish"); - } - else if (activation == "logistic") - { - setParams.setActivation("logistic"); - } - else if (activation != "linear") - CV_Error(cv::Error::StsParseError, "Unsupported activation: " + activation); + if (activation != "linear") + setParams.setActivation(activation); net->out_channels_vec[layers_counter] = tensor_shape[0]; } diff --git a/modules/dnn/test/test_darknet_importer.cpp b/modules/dnn/test/test_darknet_importer.cpp index 552c1fa111..45edf405ac 100644 --- a/modules/dnn/test/test_darknet_importer.cpp +++ b/modules/dnn/test/test_darknet_importer.cpp @@ -753,6 +753,11 @@ TEST_P(Test_Darknet_layers, connected) testDarknetLayer("connected", true); } +TEST_P(Test_Darknet_layers, relu) +{ + testDarknetLayer("relu"); +} + INSTANTIATE_TEST_CASE_P(/**/, Test_Darknet_layers, dnnBackendsAndTargets()); }} // namespace