web-dev-qa-db-ja.com

convert_imageset.cppのガイド

私は機械学習/ python/ubuntuが比較的新しいです。

.jpg形式の画像のセットがあり、その半分にはcaffeに学習させたい機能が含まれ、もう半分には含まれません。それらを必要なlmdb形式に変換する方法を見つけるのに苦労しています。

必要なテキスト入力ファイルがあります。

私の質問は、誰でもconvert_imageset.cpp Ubuntuターミナルで?

ありがとう

33
pwhc

Caffeのconvert_imagesetのクイックガイド

構築する

最初に行う必要があるのは、caffeとcaffeのツールをビルドすることです(convert_imagesetはこれらのツールの1つです)。
caffeをインストールしてmakeingした後、make toolsも実行したことを確認してください。
バイナリファイルconvert_imageset$CAFFE_ROOT/build/toolsに作成されていることを確認します。

データを準備する

Images:すべての画像をフォルダーに入れます(ここでは/path/to/jpegs/と呼びます)。
Labels:入力画像ごとに1行のテキストファイル(たとえば、/path/to/labels/train.txt)を作成します。例えば:

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

この例では、最初の画像のラベルは1で、他の2つの画像のラベルは0です。

データセットを変換する

シェルでバイナリを実行します

~$ 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サイズ変更all入力画像を同じサイズ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 を確認してください。

62
Shai