From 96c71dd3d26e2c0d4b5d8b06fffc9631d43e3984 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Wed, 14 Nov 2018 20:25:23 +0000 Subject: [PATCH] dnn: reduce set of ignored warnings --- doc/Doxyfile.in | 1 + modules/core/include/opencv2/core/cvdef.h | 9 ++ modules/core/src/matmul.cpp | 4 +- modules/dnn/CMakeLists.txt | 15 +-- modules/dnn/include/opencv2/dnn/all_layers.hpp | 4 +- modules/dnn/include/opencv2/dnn/dict.hpp | 5 +- modules/dnn/include/opencv2/dnn/dnn.hpp | 9 +- modules/dnn/perf/perf_net.cpp | 13 ++- modules/dnn/src/caffe/caffe_io.cpp | 12 +-- modules/dnn/src/dnn.cpp | 8 +- modules/dnn/src/layers/batch_norm_layer.cpp | 4 +- modules/dnn/src/layers/blank_layer.cpp | 2 +- modules/dnn/src/layers/concat_layer.cpp | 4 +- modules/dnn/src/layers/crop_layer.cpp | 2 +- modules/dnn/src/layers/detection_output_layer.cpp | 2 +- modules/dnn/src/layers/eltwise_layer.cpp | 2 +- modules/dnn/src/layers/flatten_layer.cpp | 2 +- modules/dnn/src/layers/fully_connected_layer.cpp | 4 +- modules/dnn/src/layers/lrn_layer.cpp | 2 +- modules/dnn/src/layers/max_unpooling_layer.cpp | 3 +- modules/dnn/src/layers/padding_layer.cpp | 2 +- modules/dnn/src/layers/permute_layer.cpp | 2 +- modules/dnn/src/layers/pooling_layer.cpp | 8 +- modules/dnn/src/layers/prior_box_layer.cpp | 2 +- modules/dnn/src/layers/proposal_layer.cpp | 2 +- modules/dnn/src/layers/recurrent_layers.cpp | 4 +- modules/dnn/src/layers/reshape_layer.cpp | 2 +- modules/dnn/src/layers/scale_layer.cpp | 4 +- modules/dnn/src/layers/slice_layer.cpp | 2 +- modules/dnn/src/layers/softmax_layer.cpp | 4 +- .../dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp | 2 +- modules/dnn/src/op_inf_engine.cpp | 2 +- modules/dnn/src/tensorflow/tf_importer.cpp | 2 + modules/dnn/src/tensorflow/tf_io.cpp | 2 - modules/dnn/test/test_backends.cpp | 6 +- modules/dnn/test/test_common.hpp | 106 ++++++++++++++++++++- modules/dnn/test/test_layers.cpp | 2 + modules/dnn/test/test_misc.cpp | 6 +- modules/dnn/test/test_onnx_importer.cpp | 6 +- modules/dnn/test/test_precomp.hpp | 96 ------------------- modules/dnn/test/test_tf_importer.cpp | 2 + modules/python/src2/hdr_parser.py | 2 +- 42 files changed, 195 insertions(+), 178 deletions(-) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 50f4926..609a70c 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -252,6 +252,7 @@ PREDEFINED = __cplusplus=1 \ CV_SSE2=1 \ CV__DEBUG_NS_BEGIN= \ CV__DEBUG_NS_END= \ + CV_DEPRECATED_EXTERNAL= \ CV_DEPRECATED= EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h index 05e74dd..f8df11a 100644 --- a/modules/core/include/opencv2/core/cvdef.h +++ b/modules/core/include/opencv2/core/cvdef.h @@ -363,6 +363,15 @@ Cv64suf; # endif #endif +#ifndef CV_DEPRECATED_EXTERNAL +# if defined(__OPENCV_BUILD) +# define CV_DEPRECATED_EXTERNAL /* nothing */ +# else +# define CV_DEPRECATED_EXTERNAL CV_DEPRECATED +# endif +#endif + + #ifndef CV_EXTERN_C # ifdef __cplusplus # define CV_EXTERN_C extern "C" diff --git a/modules/core/src/matmul.cpp b/modules/core/src/matmul.cpp index 9d1a220..19ab907 100644 --- a/modules/core/src/matmul.cpp +++ b/modules/core/src/matmul.cpp @@ -1699,7 +1699,7 @@ transform_( const T* src, T* dst, const WT* m, int len, int scn, int dcn ) } } -#if CV_SIMD128 +#if CV_SIMD128 && !defined(__aarch64__) static inline void load3x3Matrix(const float* m, v_float32x4& m0, v_float32x4& m1, v_float32x4& m2, v_float32x4& m3) { @@ -1708,7 +1708,9 @@ load3x3Matrix(const float* m, v_float32x4& m0, v_float32x4& m1, v_float32x4& m2, m2 = v_float32x4(m[2], m[6], m[10], 0); m3 = v_float32x4(m[3], m[7], m[11], 0); } +#endif +#if CV_SIMD128 static inline v_int16x8 v_matmulvec(const v_int16x8 &v0, const v_int16x8 &m0, const v_int16x8 &m1, const v_int16x8 &m2, const v_int32x4 &m3, const int BITS) { diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt index 720f1a8..00554b2 100644 --- a/modules/dnn/CMakeLists.txt +++ b/modules/dnn/CMakeLists.txt @@ -20,11 +20,6 @@ else() ocv_cmake_hook_append(INIT_MODULE_SOURCES_opencv_dnn "${CMAKE_CURRENT_LIST_DIR}/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake") endif() -ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-shadow -Wno-parentheses -Wmaybe-uninitialized -Wsign-promo - -Wmissing-declarations -Wmissing-prototypes -) -ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4701 /wd4100) - if(MSVC) add_definitions( -D_CRT_SECURE_NO_WARNINGS=1 ) ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 @@ -33,12 +28,14 @@ if(MSVC) ) else() ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated -Wmissing-prototypes -Wmissing-declarations -Wshadow - -Wunused-parameter -Wunused-local-typedefs -Wsign-compare -Wsign-promo - -Wundef -Wtautological-undefined-compare -Wignored-qualifiers -Wextra - -Wunused-function -Wunused-const-variable -Wdeprecated-declarations + -Wunused-parameter -Wsign-compare ) endif() +if(NOT HAVE_CXX11) + ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-undef) # LANG_CXX11 from protobuf files +endif() + if(APPLE_FRAMEWORK) ocv_warnings_disable(CMAKE_CXX_FLAGS -Wshorten-64-to-32) endif() @@ -55,8 +52,6 @@ add_definitions(-DHAVE_PROTOBUF=1) #suppress warnings in autogenerated caffe.pb.* files ocv_warnings_disable(CMAKE_CXX_FLAGS - -Wunused-parameter -Wundef -Wignored-qualifiers -Wno-enum-compare - -Wdeprecated-declarations /wd4125 /wd4267 /wd4127 /wd4244 /wd4512 /wd4702 /wd4456 /wd4510 /wd4610 /wd4800 /wd4701 /wd4703 # potentially uninitialized local/pointer variable 'value' used diff --git a/modules/dnn/include/opencv2/dnn/all_layers.hpp b/modules/dnn/include/opencv2/dnn/all_layers.hpp index cc2e2e3..5642423 100644 --- a/modules/dnn/include/opencv2/dnn/all_layers.hpp +++ b/modules/dnn/include/opencv2/dnn/all_layers.hpp @@ -236,7 +236,7 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN int type; Size kernel, stride; int pad_l, pad_t, pad_r, pad_b; - CV_DEPRECATED Size pad; + CV_DEPRECATED_EXTERNAL Size pad; bool globalPooling; bool computeMaxIdx; String padMode; @@ -578,7 +578,7 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN { public: float pnorm, epsilon; - CV_DEPRECATED bool acrossSpatial; + CV_DEPRECATED_EXTERNAL bool acrossSpatial; static Ptr create(const LayerParams& params); }; diff --git a/modules/dnn/include/opencv2/dnn/dict.hpp b/modules/dnn/include/opencv2/dnn/dict.hpp index 850e17f..60c2aa5 100644 --- a/modules/dnn/include/opencv2/dnn/dict.hpp +++ b/modules/dnn/include/opencv2/dnn/dict.hpp @@ -60,12 +60,13 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN struct CV_EXPORTS_W DictValue { DictValue(const DictValue &r); + DictValue(bool i) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i ? 1 : 0; } //!< Constructs integer scalar DictValue(int64 i = 0) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i; } //!< Constructs integer scalar - CV_WRAP DictValue(int i) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i; } //!< Constructs integer scalar + CV_WRAP DictValue(int i) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i; } //!< Constructs integer scalar DictValue(unsigned p) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = p; } //!< Constructs integer scalar CV_WRAP DictValue(double p) : type(Param::REAL), pd(new AutoBuffer) { (*pd)[0] = p; } //!< Constructs floating point scalar CV_WRAP DictValue(const String &s) : type(Param::STRING), ps(new AutoBuffer) { (*ps)[0] = s; } //!< Constructs string scalar - DictValue(const char *s) : type(Param::STRING), ps(new AutoBuffer) { (*ps)[0] = s; } //!< @overload + DictValue(const char *s) : type(Param::STRING), ps(new AutoBuffer) { (*ps)[0] = s; } //!< @overload template static DictValue arrayInt(TypeIter begin, int size); //!< Constructs integer array diff --git a/modules/dnn/include/opencv2/dnn/dnn.hpp b/modules/dnn/include/opencv2/dnn/dnn.hpp index d11b3a5..4383481 100644 --- a/modules/dnn/include/opencv2/dnn/dnn.hpp +++ b/modules/dnn/include/opencv2/dnn/dnn.hpp @@ -186,7 +186,8 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN * If this method is called after network has allocated all memory for input and output blobs * and before inferencing. */ - CV_DEPRECATED virtual void finalize(const std::vector &input, std::vector &output); + CV_DEPRECATED_EXTERNAL + virtual void finalize(const std::vector &input, std::vector &output); /** @brief Computes and sets internal parameters according to inputs, outputs and blobs. * @param[in] inputs vector of already allocated input blobs @@ -203,7 +204,8 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN * @param[out] output allocated output blobs, which will store results of the computation. * @param[out] internals allocated internal blobs */ - CV_DEPRECATED virtual void forward(std::vector &input, std::vector &output, std::vector &internals); + CV_DEPRECATED_EXTERNAL + virtual void forward(std::vector &input, std::vector &output, std::vector &internals); /** @brief Given the @p input blobs, computes the output @p blobs. * @param[in] inputs the input blobs. @@ -223,7 +225,8 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN * @overload * @deprecated Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead */ - CV_DEPRECATED void finalize(const std::vector &inputs, CV_OUT std::vector &outputs); + CV_DEPRECATED_EXTERNAL + void finalize(const std::vector &inputs, CV_OUT std::vector &outputs); /** @brief * @overload diff --git a/modules/dnn/perf/perf_net.cpp b/modules/dnn/perf/perf_net.cpp index 192604b..1647db3 100644 --- a/modules/dnn/perf/perf_net.cpp +++ b/modules/dnn/perf/perf_net.cpp @@ -175,8 +175,7 @@ PERF_TEST_P_(DNNTestNetwork, MobileNet_SSD_v2_TensorFlow) PERF_TEST_P_(DNNTestNetwork, DenseNet_121) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && (target == DNN_TARGET_OPENCL_FP16 || - target == DNN_TARGET_MYRIAD)) + (backend == DNN_BACKEND_INFERENCE_ENGINE && (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD))) throw SkipTestException(""); processNet("dnn/DenseNet_121.caffemodel", "dnn/DenseNet_121.prototxt", "", Mat(cv::Size(224, 224), CV_32FC3)); @@ -185,7 +184,7 @@ PERF_TEST_P_(DNNTestNetwork, DenseNet_121) PERF_TEST_P_(DNNTestNetwork, OpenPose_pose_coco) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/openpose_pose_coco.caffemodel", "dnn/openpose_pose_coco.prototxt", "", Mat(cv::Size(368, 368), CV_32FC3)); @@ -194,7 +193,7 @@ PERF_TEST_P_(DNNTestNetwork, OpenPose_pose_coco) PERF_TEST_P_(DNNTestNetwork, OpenPose_pose_mpi) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/openpose_pose_mpi.caffemodel", "dnn/openpose_pose_mpi.prototxt", "", Mat(cv::Size(368, 368), CV_32FC3)); @@ -203,7 +202,7 @@ PERF_TEST_P_(DNNTestNetwork, OpenPose_pose_mpi) PERF_TEST_P_(DNNTestNetwork, OpenPose_pose_mpi_faster_4_stages) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); // The same .caffemodel but modified .prototxt // See https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/src/openpose/pose/poseParameters.cpp @@ -230,7 +229,7 @@ PERF_TEST_P_(DNNTestNetwork, Inception_v2_SSD_TensorFlow) PERF_TEST_P_(DNNTestNetwork, YOLOv3) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); Mat sample = imread(findDataFile("dnn/dog416.png", false)); Mat inp; @@ -241,7 +240,7 @@ PERF_TEST_P_(DNNTestNetwork, YOLOv3) PERF_TEST_P_(DNNTestNetwork, EAST_text_detection) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/frozen_east_text_detection.pb", "", "", Mat(cv::Size(320, 320), CV_32FC3)); } diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp index 9f4e31c..501e49e 100644 --- a/modules/dnn/src/caffe/caffe_io.cpp +++ b/modules/dnn/src/caffe/caffe_io.cpp @@ -404,7 +404,7 @@ bool UpgradeV0LayerParameter(V1LayerParameter* v0_layer_connection_, PoolingParameter_PoolMethod_STOCHASTIC); break; default: - LOG(ERROR) << "Unknown pool method " << pool; + LOG(ERROR) << "Unknown pool method " << (int)pool; is_fully_compatible = false; } } else { @@ -863,7 +863,7 @@ bool UpgradeV1LayerParameter(V1LayerParameter* v1_layer_param_, while (layer_param->param_size() <= i) { layer_param->add_param(); } layer_param->mutable_param(i)->set_name(v1_layer_param.param(i)); } - ParamSpec_DimCheckMode mode; + ParamSpec_DimCheckMode mode = ParamSpec_DimCheckMode_STRICT; for (int i = 0; i < v1_layer_param.blob_share_mode_size(); ++i) { while (layer_param->param_size() <= i) { layer_param->add_param(); } switch (v1_layer_param.blob_share_mode(i)) { @@ -875,8 +875,8 @@ bool UpgradeV1LayerParameter(V1LayerParameter* v1_layer_param_, break; default: LOG(FATAL) << "Unknown blob_share_mode: " - << v1_layer_param.blob_share_mode(i); - break; + << (int)v1_layer_param.blob_share_mode(i); + CV_Error_(Error::StsError, ("Unknown blob_share_mode: %d", (int)v1_layer_param.blob_share_mode(i))); } layer_param->mutable_param(i)->set_share_mode(mode); } @@ -1102,12 +1102,12 @@ const char* UpgradeV1LayerType(const V1LayerParameter_LayerType type) { case V1LayerParameter_LayerType_THRESHOLD: return "Threshold"; default: - LOG(FATAL) << "Unknown V1LayerParameter layer type: " << type; + LOG(FATAL) << "Unknown V1LayerParameter layer type: " << (int)type; return ""; } } -const int kProtoReadBytesLimit = INT_MAX; // Max size of 2 GB minus 1 byte. +static const int kProtoReadBytesLimit = INT_MAX; // Max size of 2 GB minus 1 byte. bool ReadProtoFromBinary(ZeroCopyInputStream* input, Message *proto) { CodedInputStream coded_input(input); diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index ed5451f..4820c90 100644 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@ -352,7 +352,7 @@ struct LayerPin bool operator<(const LayerPin &r) const { - return lid < r.lid || lid == r.lid && oid < r.oid; + return lid < r.lid || (lid == r.lid && oid < r.oid); } bool operator ==(const LayerPin &r) const @@ -427,7 +427,7 @@ struct DataLayer : public Layer virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && inputsData.size() == 1; + (backendId == DNN_BACKEND_INFERENCE_ENGINE && inputsData.size() == 1); } void forward(InputArrayOfArrays inputs_arr, OutputArrayOfArrays outputs_arr, OutputArrayOfArrays internals_arr) CV_OVERRIDE @@ -1690,8 +1690,8 @@ struct Net::Impl void fuseLayers(const std::vector& blobsToKeep_) { - if( !fusion || preferableBackend != DNN_BACKEND_OPENCV && - preferableBackend != DNN_BACKEND_INFERENCE_ENGINE) + if( !fusion || (preferableBackend != DNN_BACKEND_OPENCV && + preferableBackend != DNN_BACKEND_INFERENCE_ENGINE)) return; CV_TRACE_FUNCTION(); diff --git a/modules/dnn/src/layers/batch_norm_layer.cpp b/modules/dnn/src/layers/batch_norm_layer.cpp index 01ea493..9a1707a 100644 --- a/modules/dnn/src/layers/batch_norm_layer.cpp +++ b/modules/dnn/src/layers/batch_norm_layer.cpp @@ -151,8 +151,8 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_HALIDE && haveHalide()) || + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } #ifdef HAVE_OPENCL diff --git a/modules/dnn/src/layers/blank_layer.cpp b/modules/dnn/src/layers/blank_layer.cpp index b85621f..c09cb9b 100644 --- a/modules/dnn/src/layers/blank_layer.cpp +++ b/modules/dnn/src/layers/blank_layer.cpp @@ -57,7 +57,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/concat_layer.cpp b/modules/dnn/src/layers/concat_layer.cpp index 76468b1..6bad580 100644 --- a/modules/dnn/src/layers/concat_layer.cpp +++ b/modules/dnn/src/layers/concat_layer.cpp @@ -104,8 +104,8 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() && axis == 1 && !padding || // By channels - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() && !padding; + (backendId == DNN_BACKEND_HALIDE && haveHalide() && axis == 1 && !padding) || // By channels + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() && !padding); } class ChannelConcatInvoker : public ParallelLoopBody diff --git a/modules/dnn/src/layers/crop_layer.cpp b/modules/dnn/src/layers/crop_layer.cpp index fb878bb..5d3597b 100644 --- a/modules/dnn/src/layers/crop_layer.cpp +++ b/modules/dnn/src/layers/crop_layer.cpp @@ -68,7 +68,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && crop_ranges.size() == 4; + (backendId == DNN_BACKEND_INFERENCE_ENGINE && crop_ranges.size() == 4); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp index 8b3b944..4c341d7 100644 --- a/modules/dnn/src/layers/detection_output_layer.cpp +++ b/modules/dnn/src/layers/detection_output_layer.cpp @@ -198,7 +198,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && !_locPredTransposed && _bboxesNormalized && !_clip; + (backendId == DNN_BACKEND_INFERENCE_ENGINE && !_locPredTransposed && _bboxesNormalized && !_clip); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/eltwise_layer.cpp b/modules/dnn/src/layers/eltwise_layer.cpp index 341aea2..03aaf8b 100644 --- a/modules/dnn/src/layers/eltwise_layer.cpp +++ b/modules/dnn/src/layers/eltwise_layer.cpp @@ -98,7 +98,7 @@ public: { return backendId == DNN_BACKEND_OPENCV || backendId == DNN_BACKEND_HALIDE || - backendId == DNN_BACKEND_INFERENCE_ENGINE && (op != SUM || coeffs.empty()); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && (op != SUM || coeffs.empty())); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/flatten_layer.cpp b/modules/dnn/src/layers/flatten_layer.cpp index 632cb7a..e3382f2 100644 --- a/modules/dnn/src/layers/flatten_layer.cpp +++ b/modules/dnn/src/layers/flatten_layer.cpp @@ -65,7 +65,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/fully_connected_layer.cpp b/modules/dnn/src/layers/fully_connected_layer.cpp index f36813f..f0ce231 100644 --- a/modules/dnn/src/layers/fully_connected_layer.cpp +++ b/modules/dnn/src/layers/fully_connected_layer.cpp @@ -123,8 +123,8 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() && axis == 1 || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() && axis == 1; + (backendId == DNN_BACKEND_HALIDE && haveHalide() && axis == 1) || + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() && axis == 1); } virtual bool setActivation(const Ptr& layer) CV_OVERRIDE diff --git a/modules/dnn/src/layers/lrn_layer.cpp b/modules/dnn/src/layers/lrn_layer.cpp index cc2955b..edaa212 100644 --- a/modules/dnn/src/layers/lrn_layer.cpp +++ b/modules/dnn/src/layers/lrn_layer.cpp @@ -92,7 +92,7 @@ public: { return backendId == DNN_BACKEND_OPENCV || backendId == DNN_BACKEND_HALIDE || - backendId == DNN_BACKEND_INFERENCE_ENGINE && (preferableTarget != DNN_TARGET_MYRIAD || type == CHANNEL_NRM); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && (preferableTarget != DNN_TARGET_MYRIAD || type == CHANNEL_NRM)); } #ifdef HAVE_OPENCL diff --git a/modules/dnn/src/layers/max_unpooling_layer.cpp b/modules/dnn/src/layers/max_unpooling_layer.cpp index 0d9d62c..b9c1f2d 100644 --- a/modules/dnn/src/layers/max_unpooling_layer.cpp +++ b/modules/dnn/src/layers/max_unpooling_layer.cpp @@ -35,8 +35,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() && - !poolPad.width && !poolPad.height; + (backendId == DNN_BACKEND_HALIDE && haveHalide() && !poolPad.width && !poolPad.height); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/padding_layer.cpp b/modules/dnn/src/layers/padding_layer.cpp index b837d4c..30f04e0 100644 --- a/modules/dnn/src/layers/padding_layer.cpp +++ b/modules/dnn/src/layers/padding_layer.cpp @@ -91,7 +91,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() && dstRanges.size() == 4; + (backendId == DNN_BACKEND_HALIDE && haveHalide() && dstRanges.size() == 4); } void forward(InputArrayOfArrays inputs_arr, OutputArrayOfArrays outputs_arr, OutputArrayOfArrays internals_arr) CV_OVERRIDE diff --git a/modules/dnn/src/layers/permute_layer.cpp b/modules/dnn/src/layers/permute_layer.cpp index 8d14d9c..00796d5 100644 --- a/modules/dnn/src/layers/permute_layer.cpp +++ b/modules/dnn/src/layers/permute_layer.cpp @@ -105,7 +105,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/pooling_layer.cpp b/modules/dnn/src/layers/pooling_layer.cpp index 94c4c75..16d2d48 100644 --- a/modules/dnn/src/layers/pooling_layer.cpp +++ b/modules/dnn/src/layers/pooling_layer.cpp @@ -154,8 +154,8 @@ public: } else return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() && - (type == MAX || type == AVE && !pad_t && !pad_l && !pad_b && !pad_r); + (backendId == DNN_BACKEND_HALIDE && haveHalide() && + (type == MAX || (type == AVE && !pad_t && !pad_l && !pad_b && !pad_r))); } #ifdef HAVE_OPENCL @@ -341,8 +341,8 @@ public: src.isContinuous(), dst.isContinuous(), src.type() == CV_32F, src.type() == dst.type(), src.dims == 4, dst.dims == 4, - ((poolingType == ROI || poolingType == PSROI) && dst.size[0] ==rois.size[0] || src.size[0] == dst.size[0]), - poolingType == PSROI || src.size[1] == dst.size[1], + (((poolingType == ROI || poolingType == PSROI) && dst.size[0] == rois.size[0]) || src.size[0] == dst.size[0]), + poolingType == PSROI || src.size[1] == dst.size[1], (mask.empty() || (mask.type() == src.type() && mask.size == dst.size))); PoolingInvoker p; diff --git a/modules/dnn/src/layers/prior_box_layer.cpp b/modules/dnn/src/layers/prior_box_layer.cpp index fbe631f..44f18ec 100644 --- a/modules/dnn/src/layers/prior_box_layer.cpp +++ b/modules/dnn/src/layers/prior_box_layer.cpp @@ -271,7 +271,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/proposal_layer.cpp b/modules/dnn/src/layers/proposal_layer.cpp index ad9ea9a..f559ee4 100644 --- a/modules/dnn/src/layers/proposal_layer.cpp +++ b/modules/dnn/src/layers/proposal_layer.cpp @@ -87,7 +87,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && preferableTarget != DNN_TARGET_MYRIAD; + (backendId == DNN_BACKEND_INFERENCE_ENGINE && preferableTarget != DNN_TARGET_MYRIAD); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/recurrent_layers.cpp b/modules/dnn/src/layers/recurrent_layers.cpp index c4d5ba8..114487b 100644 --- a/modules/dnn/src/layers/recurrent_layers.cpp +++ b/modules/dnn/src/layers/recurrent_layers.cpp @@ -175,7 +175,7 @@ public: std::vector &outputs, std::vector &internals) const CV_OVERRIDE { - CV_Assert(!usePeephole && blobs.size() == 3 || usePeephole && blobs.size() == 6); + CV_Assert((!usePeephole && blobs.size() == 3) || (usePeephole && blobs.size() == 6)); CV_Assert(inputs.size() == 1); const MatShape& inp0 = inputs[0]; @@ -221,7 +221,7 @@ public: std::vector input; inputs_arr.getMatVector(input); - CV_Assert(!usePeephole && blobs.size() == 3 || usePeephole && blobs.size() == 6); + CV_Assert((!usePeephole && blobs.size() == 3) || (usePeephole && blobs.size() == 6)); CV_Assert(input.size() == 1); const Mat& inp0 = input[0]; diff --git a/modules/dnn/src/layers/reshape_layer.cpp b/modules/dnn/src/layers/reshape_layer.cpp index ec1f8cf..4109802 100644 --- a/modules/dnn/src/layers/reshape_layer.cpp +++ b/modules/dnn/src/layers/reshape_layer.cpp @@ -178,7 +178,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/scale_layer.cpp b/modules/dnn/src/layers/scale_layer.cpp index b554c22..b217632 100644 --- a/modules/dnn/src/layers/scale_layer.cpp +++ b/modules/dnn/src/layers/scale_layer.cpp @@ -45,13 +45,13 @@ public: std::vector inputs; inputs_arr.getMatVector(inputs); hasWeights = blobs.size() == 2 || (blobs.size() == 1 && !hasBias); - CV_Assert(inputs.size() == 2 && blobs.empty() || blobs.size() == (int)hasWeights + (int)hasBias); + CV_Assert((inputs.size() == 2 && blobs.empty()) || blobs.size() == (int)hasWeights + (int)hasBias); } virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || backendId == DNN_BACKEND_HALIDE || - backendId == DNN_BACKEND_INFERENCE_ENGINE && axis == 1; + (backendId == DNN_BACKEND_INFERENCE_ENGINE && axis == 1); } void forward(InputArrayOfArrays inputs_arr, OutputArrayOfArrays outputs_arr, OutputArrayOfArrays internals_arr) CV_OVERRIDE diff --git a/modules/dnn/src/layers/slice_layer.cpp b/modules/dnn/src/layers/slice_layer.cpp index 4818d9d..66f9aea 100644 --- a/modules/dnn/src/layers/slice_layer.cpp +++ b/modules/dnn/src/layers/slice_layer.cpp @@ -111,7 +111,7 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_INFERENCE_ENGINE && sliceRanges.size() == 1 && sliceRanges[0].size() == 4; + (backendId == DNN_BACKEND_INFERENCE_ENGINE && sliceRanges.size() == 1 && sliceRanges[0].size() == 4); } bool getMemoryShapes(const std::vector &inputs, diff --git a/modules/dnn/src/layers/softmax_layer.cpp b/modules/dnn/src/layers/softmax_layer.cpp index f1872a0..5d440c0 100644 --- a/modules/dnn/src/layers/softmax_layer.cpp +++ b/modules/dnn/src/layers/softmax_layer.cpp @@ -89,8 +89,8 @@ public: virtual bool supportBackend(int backendId) CV_OVERRIDE { return backendId == DNN_BACKEND_OPENCV || - backendId == DNN_BACKEND_HALIDE && haveHalide() && axisRaw == 1 || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() && !logSoftMax; + (backendId == DNN_BACKEND_HALIDE && haveHalide() && axisRaw == 1) || + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() && !logSoftMax); } #ifdef HAVE_OPENCL diff --git a/modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp b/modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp index 2ec0f78..edac295 100644 --- a/modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp +++ b/modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp @@ -638,7 +638,7 @@ void OCL4DNNConvSpatial::generateKey() << "p" << pad_w_ << "x" << pad_h_ << "_" << "num" << num_ << "_" << "M" << M_ << "_" - << "activ" << fused_activ_ << "_" + << "activ" << (int)fused_activ_ << "_" << "eltwise" << fused_eltwise_ << "_" << precision; diff --git a/modules/dnn/src/op_inf_engine.cpp b/modules/dnn/src/op_inf_engine.cpp index ae837a7..4a72ba1 100644 --- a/modules/dnn/src/op_inf_engine.cpp +++ b/modules/dnn/src/op_inf_engine.cpp @@ -559,7 +559,7 @@ bool InfEngineBackendLayer::getMemoryShapes(const std::vector &inputs, bool InfEngineBackendLayer::supportBackend(int backendId) { return backendId == DNN_BACKEND_DEFAULT || - backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine(); + (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine()); } void InfEngineBackendLayer::forward(InputArrayOfArrays inputs, OutputArrayOfArrays outputs, diff --git a/modules/dnn/src/tensorflow/tf_importer.cpp b/modules/dnn/src/tensorflow/tf_importer.cpp index 6af22ea..4f38c02 100644 --- a/modules/dnn/src/tensorflow/tf_importer.cpp +++ b/modules/dnn/src/tensorflow/tf_importer.cpp @@ -156,6 +156,7 @@ void blobFromTensor(const tensorflow::TensorProto &tensor, Mat &dstBlob) } } +#if 0 void printList(const tensorflow::AttrValue::ListValue &val) { std::cout << "("; @@ -235,6 +236,7 @@ void printLayerAttr(const tensorflow::NodeDef &layer) std::cout << std::endl; } } +#endif bool hasLayerAttr(const tensorflow::NodeDef &layer, const std::string &name) { diff --git a/modules/dnn/src/tensorflow/tf_io.cpp b/modules/dnn/src/tensorflow/tf_io.cpp index 41fb1a6..de6852f 100644 --- a/modules/dnn/src/tensorflow/tf_io.cpp +++ b/modules/dnn/src/tensorflow/tf_io.cpp @@ -37,8 +37,6 @@ using namespace tensorflow; using namespace ::google::protobuf; using namespace ::google::protobuf::io; -const int kProtoReadBytesLimit = INT_MAX; // Max size of 2 GB minus 1 byte. - void ReadTFNetParamsFromBinaryFileOrDie(const char* param_file, tensorflow::GraphDef* param) { CHECK(ReadProtoFromBinaryFile(param_file, param)) diff --git a/modules/dnn/test/test_backends.cpp b/modules/dnn/test/test_backends.cpp index a42cc4c..2b14861 100644 --- a/modules/dnn/test/test_backends.cpp +++ b/modules/dnn/test/test_backends.cpp @@ -194,7 +194,7 @@ TEST_P(DNNTestNetwork, SSD_VGG16) TEST_P(DNNTestNetwork, OpenPose_pose_coco) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/openpose_pose_coco.caffemodel", "dnn/openpose_pose_coco.prototxt", Size(368, 368)); @@ -203,7 +203,7 @@ TEST_P(DNNTestNetwork, OpenPose_pose_coco) TEST_P(DNNTestNetwork, OpenPose_pose_mpi) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/openpose_pose_mpi.caffemodel", "dnn/openpose_pose_mpi.prototxt", Size(368, 368)); @@ -212,7 +212,7 @@ TEST_P(DNNTestNetwork, OpenPose_pose_mpi) TEST_P(DNNTestNetwork, OpenPose_pose_mpi_faster_4_stages) { if (backend == DNN_BACKEND_HALIDE || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); // The same .caffemodel but modified .prototxt // See https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/src/openpose/pose/poseParameters.cpp diff --git a/modules/dnn/test/test_common.hpp b/modules/dnn/test/test_common.hpp index 2f9d450..bee1f22 100644 --- a/modules/dnn/test/test_common.hpp +++ b/modules/dnn/test/test_common.hpp @@ -56,7 +56,7 @@ static inline void PrintTo(const cv::dnn::Backend& v, std::ostream* os) case DNN_BACKEND_INFERENCE_ENGINE: *os << "DLIE"; return; case DNN_BACKEND_OPENCV: *os << "OCV"; return; } // don't use "default:" to emit compiler warnings - *os << "DNN_BACKEND_UNKNOWN(" << v << ")"; + *os << "DNN_BACKEND_UNKNOWN(" << (int)v << ")"; } static inline void PrintTo(const cv::dnn::Target& v, std::ostream* os) @@ -67,7 +67,7 @@ static inline void PrintTo(const cv::dnn::Target& v, std::ostream* os) case DNN_TARGET_OPENCL_FP16: *os << "OCL_FP16"; return; case DNN_TARGET_MYRIAD: *os << "MYRIAD"; return; } // don't use "default:" to emit compiler warnings - *os << "DNN_TARGET_UNKNOWN(" << v << ")"; + *os << "DNN_TARGET_UNKNOWN(" << (int)v << ")"; } using opencv_test::tuple; @@ -235,7 +235,8 @@ namespace opencv_test { using namespace cv::dnn; -static testing::internal::ParamGenerator > dnnBackendsAndTargets( +static inline +testing::internal::ParamGenerator > dnnBackendsAndTargets( bool withInferenceEngine = true, bool withHalide = false, bool withCpuOCV = true @@ -283,4 +284,103 @@ static testing::internal::ParamGenerator > dnnBackendsAnd } // namespace + +namespace opencv_test { +using namespace cv::dnn; + +static inline +testing::internal::ParamGenerator availableDnnTargets() +{ + static std::vector targets; + if (targets.empty()) + { + targets.push_back(DNN_TARGET_CPU); +#ifdef HAVE_OPENCL + if (cv::ocl::useOpenCL()) + targets.push_back(DNN_TARGET_OPENCL); +#endif + } + return testing::ValuesIn(targets); +} + +class DNNTestLayer : public TestWithParam > +{ +public: + dnn::Backend backend; + dnn::Target target; + double default_l1, default_lInf; + + DNNTestLayer() + { + backend = (dnn::Backend)(int)get<0>(GetParam()); + target = (dnn::Target)(int)get<1>(GetParam()); + getDefaultThresholds(backend, target, &default_l1, &default_lInf); + } + + static void getDefaultThresholds(int backend, int target, double* l1, double* lInf) + { + if (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) + { + *l1 = 4e-3; + *lInf = 2e-2; + } + else + { + *l1 = 1e-5; + *lInf = 1e-4; + } + } + + static void checkBackend(int backend, int target, Mat* inp = 0, Mat* ref = 0) + { + if (backend == DNN_BACKEND_OPENCV && (target == DNN_TARGET_OPENCL || target == DNN_TARGET_OPENCL_FP16)) + { +#ifdef HAVE_OPENCL + if (!cv::ocl::useOpenCL()) +#endif + { + throw SkipTestException("OpenCL is not available/disabled in OpenCV"); + } + } + if (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + { + if (!checkMyriadTarget()) + { + throw SkipTestException("Myriad is not available/disabled in OpenCV"); + } +#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_RELEASE < 2018030000 + if (inp && ref && inp->size[0] != 1) + { + // Myriad plugin supports only batch size 1. Slice a single sample. + if (inp->size[0] == ref->size[0]) + { + std::vector range(inp->dims, Range::all()); + range[0] = Range(0, 1); + *inp = inp->operator()(range); + + range = std::vector(ref->dims, Range::all()); + range[0] = Range(0, 1); + *ref = ref->operator()(range); + } + else + throw SkipTestException("Myriad plugin supports only batch size 1"); + } +#else + if (inp && ref && inp->dims == 4 && ref->dims == 4 && + inp->size[0] != 1 && inp->size[0] != ref->size[0]) + throw SkipTestException("Inconsistent batch size of input and output blobs for Myriad plugin"); + +#endif + } + } + +protected: + void checkBackend(Mat* inp = 0, Mat* ref = 0) + { + checkBackend(backend, target, inp, ref); + } +}; + +} // namespace + #endif diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp index be0e37e..b46e9eb 100644 --- a/modules/dnn/test/test_layers.cpp +++ b/modules/dnn/test/test_layers.cpp @@ -558,7 +558,9 @@ TEST_P(Test_Caffe_layers, FasterRCNN_Proposal) normAssert(outs[i].rowRange(0, numDets), ref); if (numDets < outs[i].size[0]) + { EXPECT_EQ(countNonZero(outs[i].rowRange(numDets, outs[i].size[0])), 0); + } } } diff --git a/modules/dnn/test/test_misc.cpp b/modules/dnn/test/test_misc.cpp index acf8dae..73163f7 100644 --- a/modules/dnn/test/test_misc.cpp +++ b/modules/dnn/test/test_misc.cpp @@ -140,9 +140,9 @@ TEST(LayerFactory, custom_layers) net.setPreferableBackend(DNN_BACKEND_OPENCV); Mat output = net.forward(); - if (i == 0) EXPECT_EQ(output.at(0), 1); - else if (i == 1) EXPECT_EQ(output.at(0), 2); - else if (i == 2) EXPECT_EQ(output.at(0), 1); + if (i == 0) { EXPECT_EQ(output.at(0), 1); } + else if (i == 1) { EXPECT_EQ(output.at(0), 2); } + else if (i == 2) { EXPECT_EQ(output.at(0), 1); } } LayerFactory::unregisterLayer("CustomType"); } diff --git a/modules/dnn/test/test_onnx_importer.cpp b/modules/dnn/test/test_onnx_importer.cpp index c7a48fe..d603dd9 100644 --- a/modules/dnn/test/test_onnx_importer.cpp +++ b/modules/dnn/test/test_onnx_importer.cpp @@ -118,8 +118,8 @@ TEST_P(Test_ONNX_layers, Transpose) TEST_P(Test_ONNX_layers, Multiplication) { - if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16 || - backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) + if ((backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16) || + (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); testONNXModels("mul"); } @@ -296,7 +296,7 @@ TEST_P(Test_ONNX_nets, ResNet101_DUC_HDC) TEST_P(Test_ONNX_nets, TinyYolov2) { if (cvtest::skipUnstableTests || - backend == DNN_BACKEND_INFERENCE_ENGINE && (target == DNN_TARGET_OPENCL || target == DNN_TARGET_OPENCL_FP16)) { + (backend == DNN_BACKEND_INFERENCE_ENGINE && (target == DNN_TARGET_OPENCL || target == DNN_TARGET_OPENCL_FP16))) { throw SkipTestException(""); } // output range: [-11; 8] diff --git a/modules/dnn/test/test_precomp.hpp b/modules/dnn/test/test_precomp.hpp index 4629990..cc1ea63 100644 --- a/modules/dnn/test/test_precomp.hpp +++ b/modules/dnn/test/test_precomp.hpp @@ -49,100 +49,4 @@ #include "opencv2/dnn.hpp" #include "test_common.hpp" -namespace opencv_test { -using namespace cv::dnn; - -static testing::internal::ParamGenerator availableDnnTargets() -{ - static std::vector targets; - if (targets.empty()) - { - targets.push_back(DNN_TARGET_CPU); -#ifdef HAVE_OPENCL - if (cv::ocl::useOpenCL()) - targets.push_back(DNN_TARGET_OPENCL); -#endif - } - return testing::ValuesIn(targets); -} - -class DNNTestLayer : public TestWithParam > -{ -public: - dnn::Backend backend; - dnn::Target target; - double default_l1, default_lInf; - - DNNTestLayer() - { - backend = (dnn::Backend)(int)get<0>(GetParam()); - target = (dnn::Target)(int)get<1>(GetParam()); - getDefaultThresholds(backend, target, &default_l1, &default_lInf); - } - - static void getDefaultThresholds(int backend, int target, double* l1, double* lInf) - { - if (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) - { - *l1 = 4e-3; - *lInf = 2e-2; - } - else - { - *l1 = 1e-5; - *lInf = 1e-4; - } - } - - static void checkBackend(int backend, int target, Mat* inp = 0, Mat* ref = 0) - { - if (backend == DNN_BACKEND_OPENCV && (target == DNN_TARGET_OPENCL || target == DNN_TARGET_OPENCL_FP16)) - { -#ifdef HAVE_OPENCL - if (!cv::ocl::useOpenCL()) -#endif - { - throw SkipTestException("OpenCL is not available/disabled in OpenCV"); - } - } - if (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD) - { - if (!checkMyriadTarget()) - { - throw SkipTestException("Myriad is not available/disabled in OpenCV"); - } -#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_RELEASE < 2018030000 - if (inp && ref && inp->size[0] != 1) - { - // Myriad plugin supports only batch size 1. Slice a single sample. - if (inp->size[0] == ref->size[0]) - { - std::vector range(inp->dims, Range::all()); - range[0] = Range(0, 1); - *inp = inp->operator()(range); - - range = std::vector(ref->dims, Range::all()); - range[0] = Range(0, 1); - *ref = ref->operator()(range); - } - else - throw SkipTestException("Myriad plugin supports only batch size 1"); - } -#else - if (inp && ref && inp->dims == 4 && ref->dims == 4 && - inp->size[0] != 1 && inp->size[0] != ref->size[0]) - throw SkipTestException("Inconsistent batch size of input and output blobs for Myriad plugin"); - -#endif - } - } - -protected: - void checkBackend(Mat* inp = 0, Mat* ref = 0) - { - checkBackend(backend, target, inp, ref); - } -}; - -} // namespace #endif diff --git a/modules/dnn/test/test_tf_importer.cpp b/modules/dnn/test/test_tf_importer.cpp index f98d78c..0a3804c 100644 --- a/modules/dnn/test/test_tf_importer.cpp +++ b/modules/dnn/test/test_tf_importer.cpp @@ -101,7 +101,9 @@ public: string dataConfig; if (hasText) + { ASSERT_TRUE(readFileInMemory(netConfig, dataConfig)); + } net = readNetFromTensorflow(dataModel.c_str(), dataModel.size(), dataConfig.c_str(), dataConfig.size()); diff --git a/modules/python/src2/hdr_parser.py b/modules/python/src2/hdr_parser.py index c49036a..21faf1b 100755 --- a/modules/python/src2/hdr_parser.py +++ b/modules/python/src2/hdr_parser.py @@ -423,7 +423,7 @@ class CppHeaderParser(object): # it means class methods, not instance methods decl_str = self.batch_replace(decl_str, [("static inline", ""), ("inline", ""),\ ("CV_EXPORTS_W", ""), ("CV_EXPORTS", ""), ("CV_CDECL", ""), ("CV_WRAP ", " "), ("CV_INLINE", ""), - ("CV_DEPRECATED", "")]).strip() + ("CV_DEPRECATED", ""), ("CV_DEPRECATED_EXTERNAL", "")]).strip() if decl_str.strip().startswith('virtual'): -- 2.7.4