Skip to content

Commit b2ebd37

Browse files
committed
Merge pull request opencv#17856 from alalek:dnn_openvino_2020.4.0
2 parents 09f24a8 + 1c371d0 commit b2ebd37

File tree

10 files changed

+89
-16
lines changed

10 files changed

+89
-16
lines changed

cmake/OpenCVDetectInferenceEngine.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ endif()
135135

136136
if(INF_ENGINE_TARGET)
137137
if(NOT INF_ENGINE_RELEASE)
138-
message(WARNING "InferenceEngine version has not been set, 2020.3 will be used by default. Set INF_ENGINE_RELEASE variable if you experience build errors.")
138+
message(WARNING "InferenceEngine version has not been set, 2020.4 will be used by default. Set INF_ENGINE_RELEASE variable if you experience build errors.")
139139
endif()
140-
set(INF_ENGINE_RELEASE "2020030000" CACHE STRING "Force IE version, should be in form YYYYAABBCC (e.g. 2020.1.0.2 -> 2020010002)")
140+
set(INF_ENGINE_RELEASE "2020040000" CACHE STRING "Force IE version, should be in form YYYYAABBCC (e.g. 2020.1.0.2 -> 2020010002)")
141141
set_target_properties(${INF_ENGINE_TARGET} PROPERTIES
142142
INTERFACE_COMPILE_DEFINITIONS "HAVE_INF_ENGINE=1;INF_ENGINE_RELEASE=${INF_ENGINE_RELEASE}"
143143
)

modules/dnn/perf/perf_net.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,13 @@ PERF_TEST_P_(DNNTestNetwork, YOLOv3)
196196
{
197197
if (backend == DNN_BACKEND_HALIDE)
198198
throw SkipTestException("");
199+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
200+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
201+
throw SkipTestException("Test is disabled in OpenVINO 2020.4");
202+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
203+
throw SkipTestException("Test is disabled in OpenVINO 2020.4");
204+
#endif
205+
199206
Mat sample = imread(findDataFile("dnn/dog416.png"));
200207
cvtColor(sample, sample, COLOR_BGR2RGB);
201208
Mat inp;
@@ -209,6 +216,12 @@ PERF_TEST_P_(DNNTestNetwork, YOLOv4)
209216
throw SkipTestException("");
210217
if (target == DNN_TARGET_MYRIAD)
211218
throw SkipTestException("");
219+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
220+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
221+
throw SkipTestException("Test is disabled in OpenVINO 2020.4");
222+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
223+
throw SkipTestException("Test is disabled in OpenVINO 2020.4");
224+
#endif
212225
Mat sample = imread(findDataFile("dnn/dog416.png"));
213226
cvtColor(sample, sample, COLOR_BGR2RGB);
214227
Mat inp;
@@ -220,8 +233,6 @@ PERF_TEST_P_(DNNTestNetwork, YOLOv4_tiny)
220233
{
221234
if (backend == DNN_BACKEND_HALIDE)
222235
throw SkipTestException("");
223-
if (target == DNN_TARGET_MYRIAD)
224-
throw SkipTestException("");
225236
Mat sample = imread(findDataFile("dnn/dog416.png"));
226237
cvtColor(sample, sample, COLOR_BGR2RGB);
227238
Mat inp;

modules/dnn/src/op_inf_engine.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
#define INF_ENGINE_RELEASE_2020_4 2020040000
3030

3131
#ifndef INF_ENGINE_RELEASE
32-
#warning("IE version have not been provided via command-line. Using 2020.3 by default")
33-
#define INF_ENGINE_RELEASE INF_ENGINE_RELEASE_2020_3
32+
#warning("IE version have not been provided via command-line. Using 2020.4 by default")
33+
#define INF_ENGINE_RELEASE INF_ENGINE_RELEASE_2020_4
3434
#endif
3535

3636
#define INF_ENGINE_VER_MAJOR_GT(ver) (((INF_ENGINE_RELEASE) / 10000) > ((ver) / 10000))
@@ -44,7 +44,7 @@
4444
#pragma GCC diagnostic ignored "-Wsuggest-override"
4545
#endif
4646

47-
#ifdef HAVE_DNN_IE_NN_BUILDER_2019
47+
#if defined(HAVE_DNN_IE_NN_BUILDER_2019) || INF_ENGINE_VER_MAJOR_EQ(INF_ENGINE_RELEASE_2020_4)
4848
//#define INFERENCE_ENGINE_DEPRECATED // turn off deprecation warnings from IE
4949
//there is no way to suppress warnings from IE only at this moment, so we are forced to suppress warnings globally
5050
#if defined(__GNUC__)
@@ -53,7 +53,7 @@
5353
#ifdef _MSC_VER
5454
#pragma warning(disable: 4996) // was declared deprecated
5555
#endif
56-
#endif // HAVE_DNN_IE_NN_BUILDER_2019
56+
#endif
5757

5858
#if defined(__GNUC__) && INF_ENGINE_VER_MAJOR_LT(INF_ENGINE_RELEASE_2020_1)
5959
#pragma GCC visibility push(default)

modules/dnn/test/test_backends.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,8 @@ TEST_P(DNNTestNetwork, DenseNet_121)
390390
if (target == DNN_TARGET_OPENCL_FP16)
391391
{
392392
l1 = 2e-2; lInf = 9e-2;
393+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH)
394+
lInf = 0.1f;
393395
}
394396
else if (target == DNN_TARGET_MYRIAD)
395397
{

modules/dnn/test/test_caffe_importer.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,11 @@ TEST_P(Test_Caffe_nets, Colorization)
489489
{
490490
l1 = 0.5; lInf = 11;
491491
}
492+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
493+
{
494+
l1 = 0.26; lInf = 6.5;
495+
}
496+
492497
normAssert(out, ref, "", l1, lInf);
493498
expectNoFallbacksFromIE(net);
494499
}
@@ -515,8 +520,8 @@ TEST_P(Test_Caffe_nets, DenseNet_121)
515520
float l1 = default_l1, lInf = default_lInf;
516521
if (target == DNN_TARGET_OPENCL_FP16)
517522
{
518-
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2019020000)
519-
l1 = 0.04; lInf = 0.21;
523+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_GE(2019020000)
524+
l1 = 0.045; lInf = 0.21;
520525
#else
521526
l1 = 0.017; lInf = 0.0795;
522527
#endif

modules/dnn/test/test_darknet_importer.cpp

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,12 @@ TEST_P(Test_Darknet_nets, YoloVoc)
323323
CV_TEST_TAG_LONG
324324
);
325325

326+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
327+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
328+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
329+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
330+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
331+
#endif
326332
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_GE(2019010000)
327333
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && target == DNN_TARGET_OPENCL_FP16)
328334
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16);
@@ -363,6 +369,12 @@ TEST_P(Test_Darknet_nets, TinyYoloVoc)
363369
{
364370
applyTestTag(CV_TEST_TAG_MEMORY_512MB);
365371

372+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
373+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
374+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
375+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
376+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
377+
#endif
366378
#if defined(INF_ENGINE_RELEASE)
367379
if ((backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 || backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) &&
368380
target == DNN_TARGET_MYRIAD && getInferenceEngineVPUType() == CV_DNN_INFERENCE_ENGINE_VPU_TYPE_MYRIAD_X)
@@ -466,6 +478,13 @@ TEST_P(Test_Darknet_nets, YOLOv3)
466478
{
467479
applyTestTag(CV_TEST_TAG_LONG, (target == DNN_TARGET_CPU ? CV_TEST_TAG_MEMORY_1GB : CV_TEST_TAG_MEMORY_2GB));
468480

481+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
482+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
483+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
484+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
485+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
486+
#endif
487+
469488
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_MYRIAD)
470489
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH);
471490

@@ -530,6 +549,12 @@ TEST_P(Test_Darknet_nets, YOLOv4)
530549
{
531550
applyTestTag(CV_TEST_TAG_LONG, (target == DNN_TARGET_CPU ? CV_TEST_TAG_MEMORY_1GB : CV_TEST_TAG_MEMORY_2GB));
532551

552+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
553+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
554+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
555+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
556+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
557+
#endif
533558
#if defined(INF_ENGINE_RELEASE)
534559
if (target == DNN_TARGET_MYRIAD) // NC_OUT_OF_MEMORY
535560
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
@@ -626,7 +651,7 @@ TEST_P(Test_Darknet_nets, YOLOv4_tiny)
626651
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && target == DNN_TARGET_OPENCL)
627652
iouDiff = std::numeric_limits<double>::quiet_NaN();
628653
if ((backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 ||
629-
backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) && DNN_TARGET_OPENCL_FP16)
654+
backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) && target == DNN_TARGET_OPENCL_FP16)
630655
iouDiff = std::numeric_limits<double>::quiet_NaN();
631656
#endif
632657

@@ -646,7 +671,7 @@ TEST_P(Test_Darknet_nets, YOLOv4_tiny)
646671
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && target == DNN_TARGET_OPENCL)
647672
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
648673
if ((backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 ||
649-
backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) && DNN_TARGET_OPENCL_FP16)
674+
backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) && target == DNN_TARGET_OPENCL_FP16)
650675
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
651676
#endif
652677
}

modules/dnn/test/test_ie_models.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ struct OpenVINOModelTestCaseInfo
7373
static const std::map<std::string, OpenVINOModelTestCaseInfo>& getOpenVINOTestModels()
7474
{
7575
static std::map<std::string, OpenVINOModelTestCaseInfo> g_models {
76-
#if INF_ENGINE_RELEASE >= 2018050000
76+
#if INF_ENGINE_RELEASE >= 2018050000 && \
77+
INF_ENGINE_RELEASE <= 2020999999 // don't use IRv5 models with 2020.1+
7778
// layout is defined by open_model_zoo/model_downloader
7879
// Downloaded using these parameters for Open Model Zoo downloader (2019R1):
7980
// ./downloader.py -o ${OPENCV_DNN_TEST_DATA_PATH}/omz_intel_models --cache_dir ${OPENCV_DNN_TEST_DATA_PATH}/.omz_cache/ \
@@ -295,6 +296,11 @@ TEST_P(DNNTestOpenVINO, models)
295296
}
296297
#endif
297298

299+
#if INF_ENGINE_VER_MAJOR_EQ(2020040000)
300+
if (targetId == DNN_TARGET_MYRIAD && modelName == "person-detection-retail-0002") // IRv5, OpenVINO 2020.4 regression
301+
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
302+
#endif
303+
298304
if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019)
299305
setInferenceEngineBackendType(CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API);
300306
else if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH)

modules/dnn/test/test_layers.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,16 @@ TEST_P(Test_Caffe_layers, layer_prelu_fc)
364364
// Reference output values are in range [-0.0001, 10.3906]
365365
double l1 = (target == DNN_TARGET_MYRIAD) ? 0.005 : 0.0;
366366
double lInf = (target == DNN_TARGET_MYRIAD) ? 0.021 : 0.0;
367+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000)
368+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
369+
{
370+
l1 = 0.006f; lInf = 0.05f;
371+
}
372+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
373+
{
374+
l1 = 0.01f; lInf = 0.05f;
375+
}
376+
#endif
367377
testLayerUsingCaffeModels("layer_prelu_fc", true, false, l1, lInf);
368378
}
369379

modules/dnn/test/test_onnx_importer.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,13 @@ TEST_P(Test_ONNX_nets, TinyYolov2)
704704
// output range: [-11; 8]
705705
double l1 = (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) ? 0.017 : default_l1;
706706
double lInf = (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) ? 0.14 : default_lInf;
707+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000)
708+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
709+
{
710+
l1 = 0.018f; lInf = 0.16f;
711+
}
712+
#endif
713+
707714
testONNXModels("tiny_yolo2", pb, l1, lInf);
708715
}
709716

@@ -781,6 +788,13 @@ TEST_P(Test_ONNX_nets, Emotion_ferplus)
781788
l1 = 2.4e-4;
782789
lInf = 6e-4;
783790
}
791+
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000)
792+
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
793+
{
794+
l1 = 0.012f; lInf = 0.035f;
795+
}
796+
#endif
797+
784798
testONNXModels("emotion_ferplus", pb, l1, lInf);
785799
}
786800

platforms/winpack_dldt/build_package.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def git_apply_patch(src_dir, patch_file):
150150
patch_file = str(patch_file) # Python 3.5 may not handle Path
151151
assert os.path.exists(patch_file), patch_file
152152
execute(cmd=['git', 'apply', '--3way', '-v', '--ignore-space-change', str(patch_file)], cwd=src_dir)
153-
execute(cmd=['git', 'diff', 'HEAD'], cwd=src_dir)
153+
execute(cmd=['git', '--no-pager', 'diff', 'HEAD'], cwd=src_dir)
154154

155155

156156
#===================================================================================================
@@ -443,8 +443,8 @@ def package_sources(self):
443443
def main():
444444

445445
dldt_src_url = 'https://github.com/openvinotoolkit/openvino'
446-
dldt_src_commit = '2020.3.0'
447-
dldt_release = '2020030000'
446+
dldt_src_commit = '2020.4'
447+
dldt_release = '2020040000'
448448

449449
build_cache_dir_default = os.environ.get('BUILD_CACHE_DIR', '.build_cache')
450450
build_subst_drive = os.environ.get('BUILD_SUBST_DRIVE', None)

0 commit comments

Comments
 (0)