我对机器学习/Python/Ubuntu比较新手。
我有一组以.jpg格式保存的图片,其中一半包含我想让Caffe学习的特征,另一半则没有。我在尝试找到一种方法将它们转换为所需的lmdb格式时遇到了麻烦。
我已经准备好必要的文本输入文件。
我的问题是,有人能否提供一个逐步指南,说明如何在Ubuntu终端中使用convert_imageset.cpp
?
谢谢
我对机器学习/Python/Ubuntu比较新手。
我有一组以.jpg格式保存的图片,其中一半包含我想让Caffe学习的特征,另一半则没有。我在尝试找到一种方法将它们转换为所需的lmdb格式时遇到了麻烦。
我已经准备好必要的文本输入文件。
我的问题是,有人能否提供一个逐步指南,说明如何在Ubuntu终端中使用convert_imageset.cpp
?
谢谢
convert_imageset
快速指南首先,您必须构建Caffe和Caffe的工具之一(convert_imageset
是其中一个工具)。
在安装Caffe并进行make
后,请确保您也运行了make tools
。
确认二进制文件convert_imageset
已创建在$CAFFE_ROOT/build/tools
中。
图像:将所有图像放在一个文件夹中(我这里称为/path/to/jpegs/
)。
标签: 创建一个文本文件(例如,/path/to/labels/train.txt
),每个输入图像一行。例如:
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
标志在调用convert_imageset
之前设置为1,表示日志机制将日志消息重定向到stderr。--resize_height
和--resize_width
将所有输入图像调整为相同大小200x200
。--shuffle
随机更改图像的顺序,不保留/path/to/labels/train.txt
文件中的顺序。convert_imageset
之前,输出名称不应存在,否则将收到一个令人生畏的错误消息。其他可能有用的标志:
--backend
- 允许您在lmdb
数据集和levelDB
之间进行选择。--gray
- 将所有图像转换为灰度。--encoded
和--encoded_type
- 在数据库中以编码(jpg/png)压缩形式保存图像数据。--help
- 显示一些帮助信息,请参阅来自tools/convert_imageset.cpp的所有相关标志。您可以查看$CAFFE_ROOT/examples/imagenet/convert_imagenet.sh
,了解如何使用convert_imageset
的示例。
/path/to/labels/train.txt
和/path/to/labels/test.txt
。这些文件中的图像名称应该是不同的,但是它们可以指向同一个文件夹中或不同文件夹中的图像 - 如何组织它们取决于你。 - Shai