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 和 make
ing 后,确保你也运行了 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_width
将 all 输入图像大小调整为相同大小 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 指南的主要内容,如果未能解决你的问题,请参考以下文章