Path: blob/master/modules/dnn/src/caffe/caffe_io.hpp
16339 views
/*M///////////////////////////////////////////////////////////////////////////////////////1//2// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.3//4// By downloading, copying, installing or using the software you agree to this license.5// If you do not agree to this license, do not download, install,6// copy or use the software.7//8//9// License Agreement10// For Open Source Computer Vision Library11//12// Copyright (C) 2013, OpenCV Foundation, all rights reserved.13// Third party copyrights are property of their respective owners.14//15// Redistribution and use in source and binary forms, with or without modification,16// are permitted provided that the following conditions are met:17//18// * Redistribution's of source code must retain the above copyright notice,19// this list of conditions and the following disclaimer.20//21// * Redistribution's in binary form must reproduce the above copyright notice,22// this list of conditions and the following disclaimer in the documentation23// and/or other materials provided with the distribution.24//25// * The name of the copyright holders may not be used to endorse or promote products26// derived from this software without specific prior written permission.27//28// This software is provided by the copyright holders and contributors "as is" and29// any express or implied warranties, including, but not limited to, the implied30// warranties of merchantability and fitness for a particular purpose are disclaimed.31// In no event shall the Intel Corporation or contributors be liable for any direct,32// indirect, incidental, special, exemplary, or consequential damages33// (including, but not limited to, procurement of substitute goods or services;34// loss of use, data, or profits; or business interruption) however caused35// and on any theory of liability, whether in contract, strict liability,36// or tort (including negligence or otherwise) arising in any way out of37// the use of this software, even if advised of the possibility of such damage.38//39//M*/4041/*M///////////////////////////////////////////////////////////////////////////////////////42//COPYRIGHT43//44//All contributions by the University of California:45//Copyright (c) 2014, The Regents of the University of California (Regents)46//All rights reserved.47//48//All other contributions:49//Copyright (c) 2014, the respective contributors50//All rights reserved.51//52//Caffe uses a shared copyright model: each contributor holds copyright over53//their contributions to Caffe. The project versioning records all such54//contribution and copyright details. If a contributor wants to further mark55//their specific copyright on a particular contribution, they should indicate56//their copyright solely in the commit message of the change when it is57//committed.58//59//LICENSE60//61//Redistribution and use in source and binary forms, with or without62//modification, are permitted provided that the following conditions are met:63//64//1. Redistributions of source code must retain the above copyright notice, this65// list of conditions and the following disclaimer.66//2. Redistributions in binary form must reproduce the above copyright notice,67// this list of conditions and the following disclaimer in the documentation68// and/or other materials provided with the distribution.69//70//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND71//ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED72//WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE73//DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR74//ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES75//(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;76//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND77//ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT78//(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS79//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.80//81//CONTRIBUTION AGREEMENT82//83//By contributing to the BVLC/caffe repository through pull-request, comment,84//or otherwise, the contributor releases their content to the85//license and copyright terms herein.86//87//M*/8889#ifndef __OPENCV_DNN_CAFFE_IO_HPP__90#define __OPENCV_DNN_CAFFE_IO_HPP__91#ifdef HAVE_PROTOBUF9293#if defined(__GNUC__) && __GNUC__ >= 594#pragma GCC diagnostic push95#pragma GCC diagnostic ignored "-Wsuggest-override"96#endif97#include "opencv-caffe.pb.h"98#if defined(__GNUC__) && __GNUC__ >= 599#pragma GCC diagnostic pop100#endif101102namespace caffe { using namespace opencv_caffe; } // avoid massive renames from caffe proto package103104namespace cv {105namespace dnn {106107// Read parameters from a file into a NetParameter proto message.108void ReadNetParamsFromTextFileOrDie(const char* param_file,109caffe::NetParameter* param);110void ReadNetParamsFromBinaryFileOrDie(const char* param_file,111caffe::NetParameter* param);112113// Read parameters from a memory buffer into a NetParammeter proto message.114void ReadNetParamsFromBinaryBufferOrDie(const char* data, size_t len,115caffe::NetParameter* param);116void ReadNetParamsFromTextBufferOrDie(const char* data, size_t len,117caffe::NetParameter* param);118119// Utility functions used internally by Caffe and TensorFlow loaders120bool ReadProtoFromTextFile(const char* filename, ::google::protobuf::Message* proto);121bool ReadProtoFromBinaryFile(const char* filename, ::google::protobuf::Message* proto);122bool ReadProtoFromTextBuffer(const char* data, size_t len, ::google::protobuf::Message* proto);123bool ReadProtoFromBinaryBuffer(const char* data, size_t len, ::google::protobuf::Message* proto);124125}126}127#endif128#endif129130131