• 大小: 7KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签:

资源简介

将此convert_imageset.cpp替换caffe中的原来的convert_imageset.cpp重新编译caffe,就能是caffe支持多标签输出

资源截图

代码片段和文件信息

// This program converts a set of images to a lmdb/leveldb by storing them
// as Datum proto buffers.
// Usage:
//   convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE IM_DB_NAME LABEL_DB_NAME LABEL_COUNT
//
// where ROOTFOLDER is the root folder that holds all the images and LISTFILE
// should be a list of files as well as their labels in the format as
//   subfolder1/file1.JPEG 7
//   ....



//#ifdef MULTILABEL



#include 
#include   // NOLINT(readability/streams)
#include 
#include 
#include 

#include “boost/scoped_ptr.hpp“
#include “gflags/gflags.h“
#include “glog/logging.h“

#include “caffe/proto/caffe.pb.h“
#include “caffe/util/db.hpp“
#include “caffe/util/format.hpp“
#include “caffe/util/io.hpp“
#include “caffe/util/rng.hpp“

using namespace caffe;  // NOLINT(build/namespaces)
using std::pair;
using boost::scoped_ptr;

DEFINE_bool(gray false
    “When this option is on treat images as grayscale ones“);
DEFINE_bool(shuffle false
    “Randomly shuffle the order of images and their labels“);
DEFINE_string(backend “lmdb“
    “The backend {lmdb leveldb} for storing the result“);
DEFINE_int32(resize_width 0 “Width images are resized to“);
DEFINE_int32(resize_height 0 “Height images are resized to“);
DEFINE_bool(check_size false
    “When this option is on check that all the datum have the same size“);
DEFINE_bool(encoded false
    “When this option is on the encoded image will be save in datum“);
DEFINE_string(encode_type ““
    “Optional: What type should we encode the image as (‘png‘‘jpg‘...).“);

int main(int argc char** argv) {
#ifdef USE_OPENCV
    ::google::InitGoogleLogging(argv[0]);
    // Print output to stderr (while still logging)
    FLAGS_alsologtostderr = 1;

#ifndef GFLAGS_GFLAGS_H_
    namespace gflags = google;
#endif

    gflags::SetUsageMessage(“Convert a set of images to the leveldb/lmdb\n“
        “format used as input for Caffe.\n“
        “Usage:\n“
        “    convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME\n“
        “The ImageNet dataset for the training demo is at\n“
        “    http://www.image-net.org/download-images\n“);
    gflags::ParseCommandLineFlags(&argc &argv true);

    if (argc < 6) {
        gflags::ShowUsageWithFlagsRestrict(argv[0] “tools/convert_imageset“);
        return 1;
    }

    const bool is_color = !FLAGS_gray;
    const bool check_size = FLAGS_check_size;
    const bool encoded = FLAGS_encoded;
    const string encode_type = FLAGS_encode_type;

    std::ifstream infile(argv[2]);

    LOG(INFO) << “argv[2] “ << argv[2];
    
    std::vector > > lines;
    std::string filename;

    std::string label_count_string = argv[5] ;
    int label_count = std::atoi(label_count_string.c_str());
    LOG(INFO) << “argv[5] “ << label_count ; 
    std::vector label(label_count);

    while (infile >> filename)
    {
        for (int i = 0; i < label_count;i++)
        {
            i

评论

共有 条评论

相关资源