diff --git a/modules/dnn/src/layers/layers_common.cpp b/modules/dnn/src/layers/layers_common.cpp index cd34748398..e9eb9fa649 100644 --- a/modules/dnn/src/layers/layers_common.cpp +++ b/modules/dnn/src/layers/layers_common.cpp @@ -155,12 +155,7 @@ void getPoolingKernelParams(const LayerParams ¶ms, std::vector& kern globalPooling[2] = params.get("global_pooling_w", is_global); is_global = globalPooling[0] || globalPooling[1] || globalPooling[2]; - if (!is_global) - { - util::getKernelSize(params, kernel); - util::getStrideAndPadding(params, pads_begin, pads_end, strides, padMode, kernel.size()); - } - else + if (is_global) { util::getStrideAndPadding(params, pads_begin, pads_end, strides, padMode); if ((globalPooling[0] && params.has("kernel_d")) || @@ -184,6 +179,11 @@ void getPoolingKernelParams(const LayerParams ¶ms, std::vector& kern CV_Error(cv::Error::StsBadArg, "In global_pooling mode, strides must be = 1"); } } + else + { + util::getKernelSize(params, kernel); + util::getStrideAndPadding(params, pads_begin, pads_end, strides, padMode, kernel.size()); + } } void getConvolutionKernelParams(const LayerParams ¶ms, std::vector& kernel, std::vector& pads_begin,