mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 05:29:54 +08:00
dnn: added "hidden" experimental namespace
Main purpose of this namespace is to avoid using of incompatible binaries that will cause applications crashes. This additional namespace will not impact "Source code API". This change allows to maintain ABI checks (with easy filtering out).
This commit is contained in:
parent
20f603a217
commit
da0960321b
@ -43,10 +43,9 @@
|
||||
#define OPENCV_DNN_DNN_ALL_LAYERS_HPP
|
||||
#include <opencv2/dnn.hpp>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
//! @addtogroup dnn
|
||||
//! @{
|
||||
|
||||
@ -459,7 +458,7 @@ namespace dnn
|
||||
|
||||
//! @}
|
||||
//! @}
|
||||
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -46,10 +46,9 @@
|
||||
#include <map>
|
||||
#include <ostream>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
//! @addtogroup dnn
|
||||
//! @{
|
||||
|
||||
@ -140,6 +139,7 @@ public:
|
||||
};
|
||||
|
||||
//! @}
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,12 +44,23 @@
|
||||
|
||||
#include <vector>
|
||||
#include <opencv2/core.hpp>
|
||||
|
||||
#if !defined CV_DOXYGEN && !defined CV_DNN_DONT_ADD_EXPERIMENTAL_NS
|
||||
#define CV__DNN_EXPERIMENTAL_NS_USE using namespace experimental_dnn_v1;
|
||||
#define CV__DNN_EXPERIMENTAL_NS_BEGIN namespace experimental_dnn_v1 {
|
||||
#define CV__DNN_EXPERIMENTAL_NS_END }
|
||||
#else
|
||||
#define CV__DNN_EXPERIMENTAL_NS_USE
|
||||
#define CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
#define CV__DNN_EXPERIMENTAL_NS_END
|
||||
#endif
|
||||
|
||||
#include <opencv2/dnn/dict.hpp>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn //! This namespace is used for dnn module functionlaity.
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_USE
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
//! @addtogroup dnn
|
||||
//! @{
|
||||
|
||||
@ -658,6 +669,7 @@ namespace dnn //! This namespace is used for dnn module functionlaity.
|
||||
Size size = Size(), const Scalar& mean = Scalar(), bool swapRB=true);
|
||||
|
||||
//! @}
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,10 +44,9 @@
|
||||
|
||||
#include <opencv2/dnn.hpp>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
template<typename TypeIter>
|
||||
DictValue DictValue::arrayInt(TypeIter begin, int size)
|
||||
@ -351,6 +350,7 @@ inline std::ostream &operator<<(std::ostream &stream, const Dict &dict)
|
||||
return stream;
|
||||
}
|
||||
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,10 +7,9 @@
|
||||
|
||||
#include <opencv2/dnn/layer.hpp>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
/** @brief Registers layer constructor in runtime.
|
||||
* @param type string, containing type name of the layer.
|
||||
@ -72,6 +71,8 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
}}} //namespace
|
||||
} // namespace
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
||||
#endif
|
||||
|
@ -43,10 +43,9 @@
|
||||
#define OPENCV_DNN_LAYER_HPP
|
||||
#include <opencv2/dnn.hpp>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
//! @addtogroup dnn
|
||||
//! @{
|
||||
//!
|
||||
@ -80,7 +79,7 @@ private:
|
||||
|
||||
//! @}
|
||||
//! @}
|
||||
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -48,6 +48,7 @@
|
||||
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
//Useful shortcut
|
||||
inline std::ostream &operator<< (std::ostream &s, cv::Range &r)
|
||||
@ -190,6 +191,7 @@ inline int clamp(int ax, const MatShape& shape)
|
||||
return clamp(ax, (int)shape.size());
|
||||
}
|
||||
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -40,8 +40,6 @@
|
||||
//M*/
|
||||
|
||||
#include "../precomp.hpp"
|
||||
using namespace cv;
|
||||
using namespace cv::dnn;
|
||||
|
||||
#if HAVE_PROTOBUF
|
||||
#include "caffe.pb.h"
|
||||
@ -54,7 +52,13 @@ using namespace cv::dnn;
|
||||
#include <google/protobuf/text_format.h>
|
||||
#include <google/protobuf/io/zero_copy_stream_impl.h>
|
||||
#include "caffe_io.hpp"
|
||||
#endif
|
||||
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
#ifdef HAVE_PROTOBUF
|
||||
using ::google::protobuf::RepeatedField;
|
||||
using ::google::protobuf::RepeatedPtrField;
|
||||
using ::google::protobuf::Message;
|
||||
@ -357,14 +361,14 @@ public:
|
||||
|
||||
}
|
||||
|
||||
Ptr<Importer> cv::dnn::createCaffeImporter(const String &prototxt, const String &caffeModel)
|
||||
Ptr<Importer> createCaffeImporter(const String &prototxt, const String &caffeModel)
|
||||
{
|
||||
return Ptr<Importer>(new CaffeImporter(prototxt.c_str(), caffeModel.c_str()));
|
||||
}
|
||||
|
||||
#else //HAVE_PROTOBUF
|
||||
|
||||
Ptr<Importer> cv::dnn::createCaffeImporter(const String&, const String&)
|
||||
Ptr<Importer> createCaffeImporter(const String&, const String&)
|
||||
{
|
||||
CV_Error(cv::Error::StsNotImplemented, "libprotobuf required to import data from Caffe models");
|
||||
return Ptr<Importer>();
|
||||
@ -372,7 +376,7 @@ Ptr<Importer> cv::dnn::createCaffeImporter(const String&, const String&)
|
||||
|
||||
#endif //HAVE_PROTOBUF
|
||||
|
||||
Net cv::dnn::readNetFromCaffe(const String &prototxt, const String &caffeModel /*= String()*/)
|
||||
Net readNetFromCaffe(const String &prototxt, const String &caffeModel /*= String()*/)
|
||||
{
|
||||
Ptr<Importer> caffeImporter = createCaffeImporter(prototxt, caffeModel);
|
||||
Net net;
|
||||
@ -380,3 +384,6 @@ Net cv::dnn::readNetFromCaffe(const String &prototxt, const String &caffeModel /
|
||||
caffeImporter->populateNet(net);
|
||||
return net;
|
||||
}
|
||||
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
@ -50,8 +50,9 @@
|
||||
#include <opencv2/dnn/shape_utils.hpp>
|
||||
#include <opencv2/imgproc.hpp>
|
||||
|
||||
using namespace cv;
|
||||
using namespace cv::dnn;
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
using std::vector;
|
||||
using std::map;
|
||||
@ -74,11 +75,6 @@ namespace
|
||||
};
|
||||
}
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
|
||||
template<typename T>
|
||||
static String toString(const T &v)
|
||||
{
|
||||
@ -2030,5 +2026,5 @@ BackendWrapper::BackendWrapper(const Ptr<BackendWrapper>& base, const MatShape&
|
||||
|
||||
BackendWrapper::~BackendWrapper() {}
|
||||
|
||||
}
|
||||
}
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
@ -42,10 +42,9 @@
|
||||
#include "precomp.hpp"
|
||||
#include <opencv2/dnn/layer.details.hpp>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
static Mutex* __initialization_mutex = NULL;
|
||||
Mutex& getInitializationMutex()
|
||||
@ -98,4 +97,5 @@ void initializeLayerFactory()
|
||||
CV_DNN_REGISTER_LAYER_CLASS(Scale, ScaleLayer);
|
||||
}
|
||||
|
||||
}} //namespace
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
@ -45,6 +45,8 @@
|
||||
#include <opencv2/dnn/all_layers.hpp>
|
||||
|
||||
namespace cv { namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
Mutex& getInitializationMutex();
|
||||
void initializeLayerFactory();
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
@ -10,8 +10,6 @@ Implementation of Tensorflow models parser
|
||||
*/
|
||||
|
||||
#include "../precomp.hpp"
|
||||
using namespace cv;
|
||||
using namespace cv::dnn;
|
||||
|
||||
#if HAVE_PROTOBUF
|
||||
#include "graph.pb.h"
|
||||
@ -24,6 +22,13 @@ using namespace cv::dnn;
|
||||
#include <google/protobuf/text_format.h>
|
||||
#include <google/protobuf/io/zero_copy_stream_impl.h>
|
||||
#include "tf_io.hpp"
|
||||
#endif
|
||||
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
#if HAVE_PROTOBUF
|
||||
|
||||
using ::google::protobuf::RepeatedField;
|
||||
using ::google::protobuf::RepeatedPtrField;
|
||||
@ -734,14 +739,14 @@ void TFImporter::populateNet(Net dstNet)
|
||||
|
||||
} // namespace
|
||||
|
||||
Ptr<Importer> cv::dnn::createTensorflowImporter(const String &model)
|
||||
Ptr<Importer> createTensorflowImporter(const String &model)
|
||||
{
|
||||
return Ptr<Importer>(new TFImporter(model.c_str()));
|
||||
}
|
||||
|
||||
#else //HAVE_PROTOBUF
|
||||
|
||||
Ptr<Importer> cv::dnn::createTensorflowImporter(const String&)
|
||||
Ptr<Importer> createTensorflowImporter(const String&)
|
||||
{
|
||||
CV_Error(cv::Error::StsNotImplemented, "libprotobuf required to import data from TensorFlow models");
|
||||
return Ptr<Importer>();
|
||||
@ -749,7 +754,7 @@ Ptr<Importer> cv::dnn::createTensorflowImporter(const String&)
|
||||
|
||||
#endif //HAVE_PROTOBUF
|
||||
|
||||
Net cv::dnn::readNetFromTensorflow(const String &model)
|
||||
Net readNetFromTensorflow(const String &model)
|
||||
{
|
||||
Ptr<Importer> importer = createTensorflowImporter(model);
|
||||
Net net;
|
||||
@ -757,3 +762,6 @@ Net cv::dnn::readNetFromTensorflow(const String &model)
|
||||
importer->populateNet(net);
|
||||
return net;
|
||||
}
|
||||
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
@ -49,6 +49,8 @@
|
||||
|
||||
namespace cv {
|
||||
namespace dnn {
|
||||
CV__DNN_EXPERIMENTAL_NS_BEGIN
|
||||
|
||||
#if defined(ENABLE_TORCH_IMPORTER) && ENABLE_TORCH_IMPORTER
|
||||
#include "THDiskFile.h"
|
||||
|
||||
@ -1021,5 +1023,5 @@ Net readNetFromTorch(const String &model, bool isBinary)
|
||||
return net;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
CV__DNN_EXPERIMENTAL_NS_END
|
||||
}} // namespace
|
||||
|
Loading…
Reference in New Issue
Block a user