Caffeにおける画像データの前処理と変換は、効率的な学習のために非常に重要です。Caffeでは、画像を直接読み込むのではなく、あらかじめLMDBやLevelDBなどの形式に変換しておきます。このプロセスでは、主に以下の2つのコマンドラインツールが使われます:
1. convert_imageset:画像データをLMDB/LevelDB形式に変換する
convert_imageset:画像データをLMDB/LevelDB形式に変換する
概要
convert_imagesetは、画像ファイルとそれに対応するラベル情報を、Caffeが読み込めるデータベース形式(LMDBまたはLevelDB)に変換するためのツールです。
基本構文
引数の説明
-
<root_folder>:画像ファイルのルートディレクトリ(パスは相対的に解釈される) -
<list_file>:画像ファイル名とラベルを記述したテキストファイル(例:dog.jpg 0) -
<output_db>:出力先のデータベースディレクトリ(例:examples/mydataset/train_lmdb)
主なオプション
-
--resize_height=256:高さを256ピクセルにリサイズ -
--resize_width=256:幅を256ピクセルにリサイズ -
--shuffle:画像とラベルの順序をランダムにシャッフル -
--backend=lmdb:使用するデータベースの種類(lmdbまたはleveldb)
実行例
2. compute_image_mean:平均画像の計算
compute_image_mean:平均画像の計算
概要
compute_image_meanは、学習時の正規化に用いるための平均画像を算出するツールです。学習画像全体の平均値を求め、ネットワークの入力データから引くことで、学習の安定性を向上させます。
基本構文
引数の説明
-
<input_db>:convert_imagesetで生成したLMDB/LevelDB -
<output_binaryproto>:平均画像を保存するファイル(binaryproto形式)
実行例
補足
mean.binaryprotoは後でtransform_param内のmean_fileとして指定します。
補足:transform_paramとの連携
transform_paramとの連携train_val.prototxtなどのネットワーク定義ファイルでは、transform_paramにより前処理を指定できます:
これにより、データ読み込み時に以下が自動で行われます:
-
平均画像による正規化
-
左右反転(データ拡張)
-
中央/ランダムクロップ
まとめ
| ツール名 | 目的 | 出力形式 |
|---|---|---|
convert_imageset |
画像とラベルをデータベース化 | LMDB / LevelDB |
compute_image_mean |
平均画像の算出 | binaryproto |
これらのツールを活用することで、Caffeでの画像分類モデルの学習を効率的かつ高精度に行うことができます。必要に応じてデータのリサイズやシャッフルも加え、学習データの品質を高めましょう。
生成日:2025/05/23