From 10aee918c0bd22f8529cafb8b3719b819c06b87d Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Wed, 24 May 2017 14:05:36 +0300 Subject: [PATCH 1/2] Fix DNN module build without torch --- modules/dnn/src/torch/torch_importer.cpp | 31 ++++++++++++------------ 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/modules/dnn/src/torch/torch_importer.cpp b/modules/dnn/src/torch/torch_importer.cpp index 803c80bd0..023ddc076 100644 --- a/modules/dnn/src/torch/torch_importer.cpp +++ b/modules/dnn/src/torch/torch_importer.cpp @@ -971,6 +971,22 @@ Mat readTorchBlob(const String &filename, bool isBinary) return importer->tensors.begin()->second; } +#else + +Ptr createTorchImporter(const String&, bool) +{ + CV_Error(Error::StsNotImplemented, "Torch importer is disabled in current build"); + return Ptr(); +} + +Mat readTorchBlob(const String&, bool) +{ + CV_Error(Error::StsNotImplemented, "Torch importer is disabled in current build"); + return Mat(); +} + +#endif //defined(ENABLE_TORCH_IMPORTER) && ENABLE_TORCH_IMPORTER + Net readNetFromTorch(const String &model, bool isBinary) { Ptr importer; @@ -988,20 +1004,5 @@ Net readNetFromTorch(const String &model, bool isBinary) return net; } -#else - -Ptr createTorchImporter(const String&, bool) -{ - CV_Error(Error::StsNotImplemented, "Torch importer is disabled in current build"); - return Ptr(); -} - -Mat readTorchBlob(const String&, bool) -{ - CV_Error(Error::StsNotImplemented, "Torch importer is disabled in current build"); - return Mat(); -} - -#endif //defined(ENABLE_TORCH_IMPORTER) && ENABLE_TORCH_IMPORTER } } From 50a52424fa1d6afedcb15a14aa162c469e8cb131 Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Wed, 24 May 2017 14:19:40 +0300 Subject: [PATCH 2/2] dnn: fix possible build problem with tensor flow, get rid of catch(...) --- modules/dnn/src/caffe/caffe_importer.cpp | 10 +-------- modules/dnn/src/tensorflow/tf_importer.cpp | 26 ++++++++-------------- modules/dnn/src/torch/torch_importer.cpp | 10 +-------- 3 files changed, 11 insertions(+), 35 deletions(-) diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp index a7085a197..3c648804b 100644 --- a/modules/dnn/src/caffe/caffe_importer.cpp +++ b/modules/dnn/src/caffe/caffe_importer.cpp @@ -374,15 +374,7 @@ Ptr cv::dnn::createCaffeImporter(const String&, const String&) Net cv::dnn::readNetFromCaffe(const String &prototxt, const String &caffeModel /*= String()*/) { - Ptr caffeImporter; - try - { - caffeImporter = createCaffeImporter(prototxt, caffeModel); - } - catch(...) - { - } - + Ptr caffeImporter = createCaffeImporter(prototxt, caffeModel); Net net; if (caffeImporter) caffeImporter->populateNet(net); diff --git a/modules/dnn/src/tensorflow/tf_importer.cpp b/modules/dnn/src/tensorflow/tf_importer.cpp index 973856b7c..36e16fd1b 100644 --- a/modules/dnn/src/tensorflow/tf_importer.cpp +++ b/modules/dnn/src/tensorflow/tf_importer.cpp @@ -736,23 +736,6 @@ void TFImporter::populateNet(Net dstNet) } // namespace -Net cv::dnn::readNetFromTensorflow(const String &model) -{ - Ptr importer; - try - { - importer = createTensorflowImporter(model); - } - catch(...) - { - } - - Net net; - if (importer) - importer->populateNet(net); - return net; -} - Ptr cv::dnn::createTensorflowImporter(const String &model) { return Ptr(new TFImporter(model.c_str())); @@ -767,3 +750,12 @@ Ptr cv::dnn::createTensorflowImporter(const String&) } #endif //HAVE_PROTOBUF + +Net cv::dnn::readNetFromTensorflow(const String &model) +{ + Ptr importer = createTensorflowImporter(model); + Net net; + if (importer) + importer->populateNet(net); + return net; +} diff --git a/modules/dnn/src/torch/torch_importer.cpp b/modules/dnn/src/torch/torch_importer.cpp index 023ddc076..d1112de32 100644 --- a/modules/dnn/src/torch/torch_importer.cpp +++ b/modules/dnn/src/torch/torch_importer.cpp @@ -989,15 +989,7 @@ Mat readTorchBlob(const String&, bool) Net readNetFromTorch(const String &model, bool isBinary) { - Ptr importer; - try - { - importer = createTorchImporter(model, isBinary); - } - catch(...) - { - } - + Ptr importer = createTorchImporter(model, isBinary); Net net; if (importer) importer->populateNet(net);