From: Alexander Alekhin Date: Sun, 6 Feb 2022 16:10:43 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/3.4' into merge-3.4 X-Git-Tag: accepted/tizen/unified/20230127.161057~1^2~385 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=57d3002ee1a9d9a97684ca020430c28dcdb8ed33;p=platform%2Fupstream%2Fopencv.git Merge remote-tracking branch 'upstream/3.4' into merge-3.4 --- 57d3002ee1a9d9a97684ca020430c28dcdb8ed33 diff --cc CMakeLists.txt index bdb8245,36d89d6..209e653 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@@ -240,11 -241,11 +240,11 @@@ OCV_OPTION(WITH_1394 "Include IEEE1394 OCV_OPTION(WITH_AVFOUNDATION "Use AVFoundation for Video I/O (iOS/Mac)" ON VISIBLE_IF APPLE VERIFY HAVE_AVFOUNDATION) -OCV_OPTION(WITH_CARBON "Use Carbon for UI instead of Cocoa (OBSOLETE)" OFF - VISIBLE_IF (APPLE OR HAVE_COCOA) - VERIFY HAVE_CARBON) +OCV_OPTION(WITH_CAP_IOS "Enable iOS video capture" ON + VISIBLE_IF IOS + VERIFY HAVE_CAP_IOS) - OCV_OPTION(WITH_CAROTENE "Use NVidia carotene acceleration library for ARM platform" ON + OCV_OPTION(WITH_CAROTENE "Use NVidia carotene acceleration library for ARM platform" (NOT CV_DISABLE_OPTIMIZATION) - VISIBLE_IF (ARM OR AARCH64) AND NOT IOS AND NOT (CMAKE_VERSION VERSION_LESS "2.8.11")) + VISIBLE_IF (ARM OR AARCH64) AND NOT IOS) OCV_OPTION(WITH_CPUFEATURES "Use cpufeatures Android library" ON VISIBLE_IF ANDROID VERIFY HAVE_CPUFEATURES) diff --cc cmake/OpenCVDetectInferenceEngine.cmake index f9b0dd6,58a16f6..d82200c --- a/cmake/OpenCVDetectInferenceEngine.cmake +++ b/cmake/OpenCVDetectInferenceEngine.cmake @@@ -3,14 -3,21 +3,27 @@@ # Result: # - target ocv.3rdparty.openvino -if(NOT HAVE_CXX11) - message(WARNING "DL Inference engine requires C++11. You can turn it on via ENABLE_CXX11=ON CMake flag.") +if(WITH_OPENVINO) + find_package(OpenVINO QUIET) + if(OpenVINO_FOUND) + message(STATUS "OpenVINO FOUND: ${OpenVINO_VERSION}") + math(EXPR ver "${OpenVINO_VERSION_MAJOR} * 1000000 + ${OpenVINO_VERSION_MINOR} * 10000 + ${OpenVINO_VERSION_PATCH} * 100") + ocv_add_external_target(openvino "" "openvino::runtime" "INF_ENGINE_RELEASE=${ver};HAVE_NGRAPH;HAVE_DNN_NGRAPH;HAVE_INF_ENGINE") + set(HAVE_OPENVINO 1) return() ++ endif() + endif() + -# ======================= ++# ====================== + + if(WITH_OPENVINO) + find_package(OpenVINO QUIET) + if(OpenVINO_FOUND) + message(STATUS "OpenVINO FOUND: ${OpenVINO_VERSION}") + math(EXPR ver "${OpenVINO_VERSION_MAJOR} * 1000000 + ${OpenVINO_VERSION_MINOR} * 10000 + ${OpenVINO_VERSION_PATCH} * 100") + ocv_add_external_target(openvino "" "openvino::runtime" "INF_ENGINE_RELEASE=${ver};HAVE_NGRAPH;HAVE_DNN_NGRAPH;HAVE_INF_ENGINE") + set(HAVE_OPENVINO 1) + return() endif() endif() diff --cc modules/dnn/src/dnn.cpp index 4f7887e,2e21120..e431296 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@@ -2993,11 -2462,13 +3030,18 @@@ struct Net::Impl : public detail::NetIm LayerPin lpNext(ld.consumers[0].lid, 0); while (nextData) { + #ifdef HAVE_INF_ENGINE + if (preferableBackend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && pinsToKeep.count(lpNext) != 0) + { + CV_LOG_DEBUG(NULL, "DNN/IE: skip fusing with 'output' node: " << nextData->name << "@" << nextData->type); + break; + } + #endif + /* we use `tryFuse` member of convolution layer to fuse eltwise later + * it's not intended to be fused here; hence, we stop when we encounter eltwise + */ + if (preferableBackend == DNN_BACKEND_CUDA && ld.type == "Convolution" && nextData->type == "Eltwise") + break; Ptr nextLayer = nextData->layerInstance; if (currLayer->tryFuse(nextLayer)) {