convert_imageset.cpp指南

pwh*_*whc 33 machine-learning image-processing computer-vision deep-learning caffe

我对机器学习/ python/ubuntu比较新.

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

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

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

谢谢

Sha*_*hai 62

Caffe的快速指南 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
Run Code Online (Sandbox Code Playgroud)

命令行解释:

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

其他可能有用的标志:

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

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