convert_imageset.cpp 指南

Posted

技术标签:

【中文标题】convert_imageset.cpp 指南【英文标题】:A guide to convert_imageset.cpp 【发布时间】:2015-10-04 07:09:47 【问题描述】:

我对机器学习/python/ubuntu 比较陌生。

我有一组 .jpg 格式的图像,其中一半包含我希望 caffe 学习的功能,一半不包含。我无法找到将它们转换为所需 lmdb 格式的方法。

我有必要的文本输入文件。

我的问题是任何人都可以提供有关如何在 ubuntu 终端中使用convert_imageset.cpp 的分步指南吗?

谢谢

【问题讨论】:

【参考方案1】:

Caffe 的快速指南convert_imageset

构建

您必须做的第一件事是构建 caffe 和 caffe 的工具(convert_imageset 是这些工具之一)。 安装 caffe 和 makeing 后,确保你也运行了 make tools。 验证在$CAFFE_ROOT/build/tools 中创建了二进制文件convert_imageset

准备数据

Images: 将所有图片放在一个文件夹中(我这里称它为 /path/to/jpegs/)。Labels: 创建一个文本文件(例如,@ 987654329@) 每个输入图像一行。例如:

img_0000.jpeg 1 img_0001.jpeg 0 img_0002.jpeg 0

在此示例中,第一个图像标记为 1,而其他两个标记为 0

转换数据集

在 shell 中运行二进制文件

~$ GLOG_logtostderr=1 $CAFFE_ROOT/build/tools/convert_imageset \
    --resize_height=200 --resize_width=200 --shuffle  \
    /path/to/jpegs/ \
    /path/to/labels/train.txt \
    /path/to/lmdb/train_lmdb

命令行解释:

GLOG_logtostderr 标志设置为 1 之前 调用 convert_imageset 指示日志机制将日志消息重定向到 stderr。 --resize_height--resize_widthall 输入图像大小调整为相同大小 200x200--shuffle 随机更改图像的顺序,并且不保留 /path/to/labels/train.txt 文件中的顺序。 以下是图像文件夹的路径、标签文本文件和输出名称。请注意,在调用 convert_imageset 之前不应存在输出名称,否则您会收到可怕的错误消息。

其他可能有用的标志:

--backend - 允许您在 lmdb 数据集或 levelDB 之间进行选择。 --gray - 将所有图像转换为灰度。 --encoded--encoded_type - 将图像数据以编码 (jpg/png) 压缩形式保存在数据库中。 --help - 显示一些帮助,查看 来自工具/convert_imageset.cpp 的标志下的所有相关标志

您可以查看$CAFFE_ROOT/examples/imagenet/convert_imagenet.sh 例如如何使用convert_imageset

【讨论】:

您好,感谢您的出色指导。我采取了稍微不同的路线并编辑了 create_imagenet 脚本。但是在运行它时,我得到了以下错误;即 " 共 0 张图像" 创建火车 lmdb... I0715 16:54:06.121748 4120 convert_imageset.cpp:79] 洗牌数据 I0715 16:54:06.122463 4120 convert_imageset.cpp:82] A共 0 张图片。 I0715 16:54:06.123065 4120 db.cpp:34] 打开 lmdb /home/pwhc/caffe/GPRLearn/lmdb/GPR_train_lmdb 有什么想法吗? @pwhc 似乎没有找到图像文件。检查图像路径和标签 gile 中的图像名称 @pwhc 您需要为训练/测试构建 不同 lmdb/leveldb。因此,您需要 两个 不同的文件 /path/to/labels/train.txt/path/to/labels/test.txt 这些文件中的图像名称应该不同,但它们可以指向相同或不同文件夹中的图像 - 由您决定组织他们。 @Shai 最好的 caffe 教程!谢谢 @alfa_80 如果路径(目录)不同,则文件相同。由您来组织图像。只要确保你没有对训练集中的图像进行测试——这是作弊

以上是关于convert_imageset.cpp 指南的主要内容,如果未能解决你的问题,请参考以下文章

caffe(10) 命令行解析

Caffe应用篇----文件格式转换

caffe学习笔记图像数据转换为db(leveldb/lmdb)文件

快速搭建ELK日志分析系统

Centos7环境ELK搭建

protobuf语法指南