1

私は現在、Caffeを使用して基本カスタムConvNetをトレーニング、検証、テストするためのイメージのデータセットを作成しています。カスタムCaffeデータセットの画像平均減算?

具体的には、私は自分のJPGイメージ(RGB)を収集して、自分のネットワークのイメージを前処理する方法を決定しています。私は、イメージを「センタリング」するイメージ平均を減算するなど、イメージに基本的な正規化を適用することを検討しています。

$CAFFE_HOME/build/tools

compute_image_mean実行にLMDBを通過させることによって、データセットの平均.binaryprotoファイルを生成する方法を説明し、この操作を言及http://caffe.berkeleyvision.org/gathered/examples/imagenet.html ImageNetチュートリアル。

これを実行して、トレーニングLMDB用に.binaryprotoファイルを作成しました。私の理解では、このファイルには、渡されたLMDB内のすべてのイメージの平均ピクセル値の表現が含まれています。したがって、私はそれが3つのチャネルのピクセル値を含む配列のいくつかの形式を格納していると思います。


質問:私は平均減算を実行するために、この.binaryprotoファイルを使用するにはどうすればよい

私のLMDB(train、validate、test)ごとに別々の.binaryprotoファイルを作成する必要がありますか?または、データセット内のすべてのイメージを最初に含む1つのLMDBを作成し、そこから平均を生成し、すべてのサブセットに減算を適用する必要がありますか?

アドバイスをいただければ幸いです。

答えて

2

トレーニングセットのみを使用して.binaryprotoファイルを取得し、トレーニング、検証、テストの際に使用する必要があります。

これは、すべての画像の平均をとると、訓練中に検証やテスト画像の性質についてネットワークに間接的に情報を提供しているため、他の方法よりも優れたパフォーマンスを得ることができます。

ご存知のとおり、prototxtファイルのデータレイヤーにtransform_paramの下に追加する必要があります。 stats.stackexchange.com

layer { 
    name: "data" #the name 
    # other attributes 
    transform_param { 
     mean_file: "path/to/training/binaryproto" 
    } 
} 

This questionもまたthis useful resourceにリンクし、同じクエリを指します。