convert_imageset.cpp 指南

A guide to convert_imageset.cpp

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

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

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

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

谢谢

Caffe 的快速指南 convert_imageset

建造

您必须做的第一件事是构建 caffe 和 caffe 的工具(convert_imageset 是这些工具之一)。
安装 caffe 并 makeing 后确保你也 运行 make tools
验证是否在 $CAFFE_ROOT/build/tools.

中创建了二进制文件 convert_imageset

准备数据

图片:将所有图片放在一个文件夹中(我这里就叫它/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 标志设置为 1 before 调用 convert_imageset 指示将日志消息重定向到 stderr 的日志记录机制。
  • --resize_height--resize_width 所有 输入图像调整为相同大小 200x200
  • --shuffle 运行domly 更改图像的顺序并且不保留 /path/to/labels/train.txt 文件中的顺序。
  • 以下是图像文件夹的路径、标签文本文件和输出名称。请注意,输出名称在调用 convert_imageset 之前不应存在,否则您会收到一条可怕的错误消息。

其他可能有用的标志:

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

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