Caffeで使うためのデータセットの作成手順は、主に以下のステップで構成されます。Caffeは画像データを使用することが多く、これを効率よく処理するためにLMDBまたはLevelDBなどの形式に変換します。以下にその一般的な手順を詳述します。
1. 画像データとラベルの準備
-
画像の整理
ディレクトリ構成は任意ですが、一般的には以下のようにクラスごとにフォルダを分けて整理します。 -
ラベルファイルの作成
train.txtやval.txtの形式で、画像パスとラベル(数値)を記述します。
2. 画像前処理(必要に応じて)
Caffeで使う画像は、同一サイズ・色空間(通常はBGR)である必要があります。事前に以下のような処理を施します。
-
リサイズ(例:256×256)
-
カラーモードの変換(RGB → BGR)
-
JPEG形式への統一(推奨)
3. convert_imageset ツールでLMDBまたはLevelDBを作成
convert_imageset ツールでLMDBまたはLevelDBを作成Caffeの付属ツール convert_imageset を用いて、画像とラベルをLMDBまたはLevelDB形式に変換します。
例(LMDB形式):
パラメータの説明:
-
--resize_height/--resize_width: 画像サイズを指定 -
--shuffle: ランダムに順序をシャッフル -
/path/to/images/: 画像のベースパス -
train.txt: ラベルファイル -
train_lmdb: 出力先のLMDBディレクトリ
4. 平均画像の生成(学習時に使用)
Caffeでは、入力画像から平均画像を引いて前処理することが一般的です。以下のコマンドで生成します。
5. train_val.prototxt への組み込み
train_val.prototxt への組み込み作成したLMDBやmeanファイルは、train_val.prototxt の data レイヤーで指定します。
まとめ
| ステップ | 内容 |
|---|---|
| 1. データ整理 | 画像とラベルファイルの準備 |
| 2. 前処理 | リサイズ、BGR変換など |
| 3. LMDB化 | convert_imageset でDB作成 |
| 4. 平均画像 | compute_image_mean による生成 |
| 5. 定義ファイル編集 | train_val.prototxt で参照指定 |
生成日:2025/05/23