From d92a883de100d82f52da87c25f6d8680d954fe12 Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Wed, 15 Jan 2020 16:22:00 +0300 Subject: [PATCH] Different way to reset Myriad device --- modules/dnn/src/dnn.cpp | 2 +- modules/dnn/src/op_inf_engine.cpp | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index ecd4c15..ccd603e 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 0139893..8ea378e 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(); @@ -1067,8 +1067,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 } -- 2.7.4