diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index ecd4c150d6..ccd603ece2 100644 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@ -103,7 +103,7 @@ public: #ifdef HAVE_INF_ENGINE static inline bool checkIETarget(Target target) { -#if INF_ENGINE_VER_MAJOR_GT(INF_ENGINE_RELEASE_2019R3) +#if INF_ENGINE_VER_MAJOR_GE(INF_ENGINE_RELEASE_2019R3) // Lightweight detection const std::vector devices = getCore().GetAvailableDevices(); for (std::vector::const_iterator i = devices.begin(); i != devices.end(); ++i) diff --git a/modules/dnn/src/op_inf_engine.cpp b/modules/dnn/src/op_inf_engine.cpp index 7d8232d887..c4e3f0830f 100644 --- a/modules/dnn/src/op_inf_engine.cpp +++ b/modules/dnn/src/op_inf_engine.cpp @@ -573,7 +573,7 @@ InferenceEngine::Core& getCore() #if !defined(OPENCV_DNN_IE_VPU_TYPE_DEFAULT) static bool detectMyriadX_() { -#if INF_ENGINE_VER_MAJOR_GT(INF_ENGINE_RELEASE_2019R3) +#if INF_ENGINE_VER_MAJOR_GE(INF_ENGINE_RELEASE_2019R3) // Lightweight detection InferenceEngine::Core& ie = getCore(); const std::vector devices = ie.GetAvailableDevices(); @@ -1074,8 +1074,14 @@ void resetMyriadDevice() #if INF_ENGINE_VER_MAJOR_LE(INF_ENGINE_RELEASE_2019R1) getSharedPlugins().erase("MYRIAD"); #else - // To unregister both "MYRIAD" and "HETERO:MYRIAD,CPU" plugins - getCore() = InferenceEngine::Core(); + // Unregister both "MYRIAD" and "HETERO:MYRIAD,CPU" plugins + InferenceEngine::Core& ie = getCore(); + try + { + ie.UnregisterPlugin("MYRIAD"); + ie.UnregisterPlugin("HETERO"); + } + catch (...) {} #endif #endif // HAVE_INF_ENGINE }