Caffeで使うためのデータセットの作成手順

Caffeで使うためのデータセットの作成手順は、主に以下のステップで構成されます。Caffeは画像データを使用することが多く、これを効率よく処理するためにLMDBまたはLevelDBなどの形式に変換します。以下にその一般的な手順を詳述します。


1. 画像データとラベルの準備

  • 画像の整理
    ディレクトリ構成は任意ですが、一般的には以下のようにクラスごとにフォルダを分けて整理します。

    markdown
    dataset/ ├── class1/ │ ├── image1.jpg │ └── image2.jpg └── class2/ ├── image3.jpg └── image4.jpg
  • ラベルファイルの作成
    train.txtval.txt の形式で、画像パスとラベル(数値)を記述します。

    pgsql
    /path/to/image1.jpg 0 /path/to/image3.jpg 1

2. 画像前処理(必要に応じて)

Caffeで使う画像は、同一サイズ・色空間(通常はBGR)である必要があります。事前に以下のような処理を施します。

  • リサイズ(例:256×256)

  • カラーモードの変換(RGB → BGR)

  • JPEG形式への統一(推奨)


3. convert_imageset ツールでLMDBまたはLevelDBを作成

Caffeの付属ツール convert_imageset を用いて、画像とラベルをLMDBまたはLevelDB形式に変換します。

例(LMDB形式):

bash
GLOG_logtostderr=1 \ build/tools/convert_imageset \ --resize_height=256 \ --resize_width=256 \ --shuffle \ /path/to/images/ \ train.txt \ examples/mydataset/train_lmdb

パラメータの説明:

  • --resize_height / --resize_width: 画像サイズを指定

  • --shuffle: ランダムに順序をシャッフル

  • /path/to/images/: 画像のベースパス

  • train.txt: ラベルファイル

  • train_lmdb: 出力先のLMDBディレクトリ


4. 平均画像の生成(学習時に使用)

Caffeでは、入力画像から平均画像を引いて前処理することが一般的です。以下のコマンドで生成します。

bash
build/tools/compute_image_mean \ --backend=lmdb \ examples/mydataset/train_lmdb \ examples/mydataset/mean.binaryproto

5. train_val.prototxt への組み込み

作成したLMDBやmeanファイルは、train_val.prototxtdata レイヤーで指定します。

prototxt
layer { name: "data" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { mean_file: "examples/mydataset/mean.binaryproto" } data_param { source: "examples/mydataset/train_lmdb" batch_size: 64 backend: LMDB } }

まとめ

ステップ 内容
1. データ整理 画像とラベルファイルの準備
2. 前処理 リサイズ、BGR変換など
3. LMDB化 convert_imageset でDB作成
4. 平均画像 compute_image_mean による生成
5. 定義ファイル編集 train_val.prototxt で参照指定

生成日:2025/05/23