diff --git a/modules/dnn/test/test_backends.cpp b/modules/dnn/test/test_backends.cpp index ad7eb0917e..49e1a2a983 100644 --- a/modules/dnn/test/test_backends.cpp +++ b/modules/dnn/test/test_backends.cpp @@ -278,19 +278,19 @@ TEST_P(DNNTestNetwork, FastNeuralStyle_eccv16) processNet("dnn/fast_neural_style_eccv16_starry_night.t7", "", inp, "", "", l1, lInf); } -const tuple testCases[] = { +const tuple testCases[] = { #ifdef HAVE_HALIDE - tuple(DNN_BACKEND_HALIDE, DNN_TARGET_CPU), - tuple(DNN_BACKEND_HALIDE, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_HALIDE, DNN_TARGET_CPU), + tuple(DNN_BACKEND_HALIDE, DNN_TARGET_OPENCL), #endif #ifdef HAVE_INF_ENGINE - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD), #endif - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL), - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16) + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16) }; INSTANTIATE_TEST_CASE_P(/*nothing*/, DNNTestNetwork, testing::ValuesIn(testCases)); diff --git a/modules/dnn/test/test_caffe_importer.cpp b/modules/dnn/test/test_caffe_importer.cpp index c99e4e63f7..5365b2a435 100644 --- a/modules/dnn/test/test_caffe_importer.cpp +++ b/modules/dnn/test/test_caffe_importer.cpp @@ -82,7 +82,7 @@ TEST(Test_Caffe, read_googlenet) ASSERT_FALSE(net.empty()); } -typedef testing::TestWithParam > Reproducibility_AlexNet; +typedef testing::TestWithParam > Reproducibility_AlexNet; TEST_P(Reproducibility_AlexNet, Accuracy) { bool readFromMemory = get<0>(GetParam()); @@ -179,7 +179,7 @@ TEST(Reproducibility_SSD, Accuracy) normAssertDetections(ref, out); } -typedef testing::TestWithParam Reproducibility_MobileNet_SSD; +typedef testing::TestWithParam Reproducibility_MobileNet_SSD; TEST_P(Reproducibility_MobileNet_SSD, Accuracy) { const string proto = findDataFile("dnn/MobileNetSSD_deploy.prototxt", false); @@ -234,7 +234,7 @@ TEST_P(Reproducibility_MobileNet_SSD, Accuracy) INSTANTIATE_TEST_CASE_P(/**/, Reproducibility_MobileNet_SSD, Values(DNN_TARGET_CPU, DNN_TARGET_OPENCL, DNN_TARGET_OPENCL_FP16)); -typedef testing::TestWithParam Reproducibility_ResNet50; +typedef testing::TestWithParam Reproducibility_ResNet50; TEST_P(Reproducibility_ResNet50, Accuracy) { Net net = readNetFromCaffe(findDataFile("dnn/ResNet-50-deploy.prototxt", false), @@ -270,7 +270,7 @@ TEST_P(Reproducibility_ResNet50, Accuracy) INSTANTIATE_TEST_CASE_P(/**/, Reproducibility_ResNet50, Values(DNN_TARGET_CPU, DNN_TARGET_OPENCL, DNN_TARGET_OPENCL_FP16)); -typedef testing::TestWithParam Reproducibility_SqueezeNet_v1_1; +typedef testing::TestWithParam Reproducibility_SqueezeNet_v1_1; TEST_P(Reproducibility_SqueezeNet_v1_1, Accuracy) { Net net = readNetFromCaffe(findDataFile("dnn/squeezenet_v1.1.prototxt", false), @@ -413,7 +413,7 @@ TEST(Test_Caffe, multiple_inputs) normAssert(out, first_image + second_image); } -typedef testing::TestWithParam > opencv_face_detector; +typedef testing::TestWithParam > opencv_face_detector; TEST_P(opencv_face_detector, Accuracy) { std::string proto = findDataFile("dnn/opencv_face_detector.prototxt", false); diff --git a/modules/dnn/test/test_googlenet.cpp b/modules/dnn/test/test_googlenet.cpp index a2ea731acc..37064c35c4 100644 --- a/modules/dnn/test/test_googlenet.cpp +++ b/modules/dnn/test/test_googlenet.cpp @@ -52,7 +52,7 @@ static std::string _tf(TString filename) return (getOpenCVExtraDir() + "/dnn/") + filename; } -typedef testing::TestWithParam Reproducibility_GoogLeNet; +typedef testing::TestWithParam Reproducibility_GoogLeNet; TEST_P(Reproducibility_GoogLeNet, Batching) { Net net = readNetFromCaffe(findDataFile("dnn/bvlc_googlenet.prototxt", false), diff --git a/modules/dnn/test/test_halide_layers.cpp b/modules/dnn/test/test_halide_layers.cpp index b21ae85800..c61f7e378a 100644 --- a/modules/dnn/test/test_halide_layers.cpp +++ b/modules/dnn/test/test_halide_layers.cpp @@ -41,21 +41,21 @@ static void test(LayerParams& params, Mat& input, int backendId, int targetId) test(input, net, backendId, targetId); } -static testing::internal::ParamGenerator > dnnBackendsAndTargetsWithHalide() +static testing::internal::ParamGenerator > dnnBackendsAndTargetsWithHalide() { - static const tuple testCases[] = { + static const tuple testCases[] = { #ifdef HAVE_HALIDE - tuple(DNN_BACKEND_HALIDE, DNN_TARGET_CPU), - tuple(DNN_BACKEND_HALIDE, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_HALIDE, DNN_TARGET_CPU), + tuple(DNN_BACKEND_HALIDE, DNN_TARGET_OPENCL), #endif #ifdef HAVE_INF_ENGINE - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD), #endif - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL), - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16) + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16) }; return testing::ValuesIn(testCases); } @@ -89,7 +89,7 @@ TEST_P(Test_Halide_layers, Padding) //////////////////////////////////////////////////////////////////////////////// // Convolution //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > Convolution; +typedef TestWithParam > > Convolution; TEST_P(Convolution, Accuracy) { int inChannels = get<0>(GetParam())[0]; @@ -154,7 +154,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, Convolution, Combine( //////////////////////////////////////////////////////////////////////////////// // Deconvolution //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > Deconvolution; +typedef TestWithParam > > Deconvolution; TEST_P(Deconvolution, Accuracy) { int inChannels = get<0>(GetParam())[0]; @@ -220,7 +220,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, Deconvolution, Combine( //////////////////////////////////////////////////////////////////////////////// // LRN //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > LRN; +typedef TestWithParam > > LRN; TEST_P(LRN, Accuracy) { int inChannels = get<0>(GetParam())[0]; @@ -265,7 +265,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, LRN, Combine( //////////////////////////////////////////////////////////////////////////////// // Average pooling //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > AvePooling; +typedef TestWithParam > > AvePooling; TEST_P(AvePooling, Accuracy) { int inChannels = get<0>(GetParam()); @@ -305,7 +305,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, AvePooling, Combine( //////////////////////////////////////////////////////////////////////////////// // Maximum pooling //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > MaxPooling; +typedef TestWithParam > > MaxPooling; TEST_P(MaxPooling, Accuracy) { int inChannels = get<0>(GetParam()); @@ -344,7 +344,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, MaxPooling, Combine( //////////////////////////////////////////////////////////////////////////////// // Fully-connected //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > FullyConnected; +typedef TestWithParam > > FullyConnected; TEST_P(FullyConnected, Accuracy) { int inChannels = get<0>(GetParam()); @@ -387,7 +387,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, FullyConnected, Combine( //////////////////////////////////////////////////////////////////////////////// // SoftMax //////////////////////////////////////////////////////////////////////////////// -typedef TestWithParam > > SoftMax; +typedef TestWithParam > > SoftMax; TEST_P(SoftMax, Accuracy) { int inChannels = get<0>(GetParam()); @@ -476,7 +476,7 @@ void testInPlaceActivation(LayerParams& lp, int backendId, int targetId) test(input, net, backendId, targetId); } -typedef TestWithParam > > BatchNorm; +typedef TestWithParam > > BatchNorm; TEST_P(BatchNorm, Accuracy) { bool hasWeights = get<0>(GetParam()); @@ -511,7 +511,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, BatchNorm, Combine( dnnBackendsAndTargetsWithHalide() )); -typedef TestWithParam > > ReLU; +typedef TestWithParam > > ReLU; TEST_P(ReLU, Accuracy) { float negativeSlope = get<0>(GetParam()); @@ -530,7 +530,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, ReLU, Combine( dnnBackendsAndTargetsWithHalide() )); -typedef TestWithParam > > NoParamActivation; +typedef TestWithParam > > NoParamActivation; TEST_P(NoParamActivation, Accuracy) { int backendId = get<0>(get<1>(GetParam())); @@ -546,7 +546,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, NoParamActivation, Combine( dnnBackendsAndTargetsWithHalide() )); -typedef TestWithParam > > Power; +typedef TestWithParam > > Power; TEST_P(Power, Accuracy) { float power = get<0>(GetParam())[0]; @@ -582,7 +582,7 @@ TEST_P(Test_Halide_layers, ChannelsPReLU) testInPlaceActivation(lp, backend, target); } -typedef TestWithParam > > Scale; +typedef TestWithParam > > Scale; TEST_P(Scale, Accuracy) { bool hasBias = get<0>(GetParam()); @@ -616,7 +616,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, Scale, Combine( // `--- conv ----^ ^ ^ // `---- ... ------' ' // `-----------------' -typedef TestWithParam > > Concat; +typedef TestWithParam > > Concat; TEST_P(Concat, Accuracy) { Vec3i inSize = get<0>(GetParam()); @@ -682,7 +682,7 @@ INSTANTIATE_TEST_CASE_P(Layer_Test_Halide, Concat, Combine( // `--- conv ----^ ^ ^ // `---- ... ------' ' // `-----------------' -typedef TestWithParam > > Eltwise; +typedef TestWithParam > > Eltwise; TEST_P(Eltwise, Accuracy) { Vec3i inSize = get<0>(GetParam()); diff --git a/modules/dnn/test/test_precomp.hpp b/modules/dnn/test/test_precomp.hpp index 16f1e5c846..a0a46ab271 100644 --- a/modules/dnn/test/test_precomp.hpp +++ b/modules/dnn/test/test_precomp.hpp @@ -49,15 +49,41 @@ #include "opencv2/dnn.hpp" #include "test_common.hpp" -namespace opencv_test { namespace { -using namespace cv::dnn; +namespace cv { +namespace dnn { +CV__DNN_EXPERIMENTAL_NS_BEGIN + +static inline void PrintTo(const cv::dnn::Backend& v, std::ostream* os) +{ + switch (v) { + case DNN_BACKEND_DEFAULT: *os << "DNN_BACKEND_DEFAULT"; return; + case DNN_BACKEND_HALIDE: *os << "DNN_BACKEND_HALIDE"; return; + case DNN_BACKEND_INFERENCE_ENGINE: *os << "DNN_BACKEND_INFERENCE_ENGINE"; return; + case DNN_BACKEND_OPENCV: *os << "DNN_BACKEND_OPENCV"; return; + } // don't use "default:" to emit compiler warnings + *os << "DNN_BACKEND_UNKNOWN(" << v << ")"; +} + +static inline void PrintTo(const cv::dnn::Target& v, std::ostream* os) +{ + switch (v) { + case DNN_TARGET_CPU: *os << "DNN_TARGET_CPU"; return; + case DNN_TARGET_OPENCL: *os << "DNN_TARGET_OPENCL"; return; + case DNN_TARGET_OPENCL_FP16: *os << "DNN_TARGET_OPENCL_FP16"; return; + case DNN_TARGET_MYRIAD: *os << "DNN_TARGET_MYRIAD"; return; + } // don't use "default:" to emit compiler warnings + *os << "DNN_TARGET_UNKNOWN(" << v << ")"; +} -CV_ENUM(DNNBackend, DNN_BACKEND_DEFAULT, DNN_BACKEND_HALIDE, DNN_BACKEND_INFERENCE_ENGINE, DNN_BACKEND_OPENCV) -CV_ENUM(DNNTarget, DNN_TARGET_CPU, DNN_TARGET_OPENCL, DNN_TARGET_OPENCL_FP16, DNN_TARGET_MYRIAD) +CV__DNN_EXPERIMENTAL_NS_END +}} // namespace -static testing::internal::ParamGenerator availableDnnTargets() +namespace opencv_test { +using namespace cv::dnn; + +static testing::internal::ParamGenerator availableDnnTargets() { - static std::vector targets; + static std::vector targets; if (targets.empty()) { targets.push_back(DNN_TARGET_CPU); @@ -69,23 +95,23 @@ static testing::internal::ParamGenerator availableDnnTargets() return testing::ValuesIn(targets); } -static testing::internal::ParamGenerator > dnnBackendsAndTargets() +static testing::internal::ParamGenerator > dnnBackendsAndTargets() { - static const tuple testCases[] = { + static const tuple testCases[] = { #ifdef HAVE_INF_ENGINE - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16), - tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16), + tuple(DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD), #endif - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_CPU), - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL), - tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16) + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_CPU), + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL), + tuple(DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16) }; return testing::ValuesIn(testCases); } -class DNNTestLayer : public TestWithParam > +class DNNTestLayer : public TestWithParam > { public: dnn::Backend backend; @@ -156,6 +182,5 @@ protected: } }; -}} - +} // namespace #endif diff --git a/modules/dnn/test/test_tf_importer.cpp b/modules/dnn/test/test_tf_importer.cpp index 8f3822cc96..66b9d4f642 100644 --- a/modules/dnn/test/test_tf_importer.cpp +++ b/modules/dnn/test/test_tf_importer.cpp @@ -243,7 +243,7 @@ TEST_P(Test_TensorFlow_layers, l2_normalize_3d) runTensorFlowNet("l2_normalize_3d"); } -typedef testing::TestWithParam Test_TensorFlow_nets; +typedef testing::TestWithParam Test_TensorFlow_nets; TEST_P(Test_TensorFlow_nets, MobileNet_SSD) { diff --git a/modules/dnn/test/test_torch_importer.cpp b/modules/dnn/test/test_torch_importer.cpp index c1abdc930d..37966a1f93 100644 --- a/modules/dnn/test/test_torch_importer.cpp +++ b/modules/dnn/test/test_torch_importer.cpp @@ -100,7 +100,7 @@ static void runTorchNet(String prefix, int targetId = DNN_TARGET_CPU, String out } } -typedef testing::TestWithParam Test_Torch_layers; +typedef testing::TestWithParam Test_Torch_layers; TEST_P(Test_Torch_layers, run_convolution) { @@ -208,7 +208,7 @@ TEST_P(Test_Torch_layers, net_non_spatial) INSTANTIATE_TEST_CASE_P(/**/, Test_Torch_layers, availableDnnTargets()); -typedef testing::TestWithParam Test_Torch_nets; +typedef testing::TestWithParam Test_Torch_nets; TEST_P(Test_Torch_nets, OpenFace_accuracy) {