私は機械学習/ python/ubuntuが比較的新しいです。
.jpg形式の画像のセットがあり、その半分にはcaffeに学習させたい機能が含まれ、もう半分には含まれません。それらを必要なlmdb形式に変換する方法を見つけるのに苦労しています。
必要なテキスト入力ファイルがあります。
私の質問は、誰でもconvert_imageset.cpp
Ubuntuターミナルで?
ありがとう
convert_imageset
のクイックガイド最初に行う必要があるのは、caffeとcaffeのツールをビルドすることです(convert_imageset
はこれらのツールの1つです)。
caffeをインストールしてmake
ingした後、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
を確認してください。