caffe convnet を使用して表情を検出するにはどうすればよいですか?
画像データセット Cohn Kanade があり、このデータセットを使用して caffe convnet をトレーニングしたいと考えています。Caffeにはドキュメンテーション サイトがありますが、自分のデータをトレーニングする方法が説明されていません。事前にトレーニングされたデータのみ。
誰かが私にそれを行う方法を教えてもらえますか?
caffe convnet を使用して表情を検出するにはどうすればよいですか?
画像データセット Cohn Kanade があり、このデータセットを使用して caffe convnet をトレーニングしたいと考えています。Caffeにはドキュメンテーション サイトがありますが、自分のデータをトレーニングする方法が説明されていません。事前にトレーニングされたデータのみ。
誰かが私にそれを行う方法を教えてもらえますか?
Caffe は、入力データの複数の形式 (HDF5/lmdb/leveldb) をサポートしています。最も快適に感じるものを選択するだけです。以下にいくつかのオプションを示します。
convert_imageset
は、caffe をビルドすることで得られるコマンド ライン ツールの 1 つです。
使用方法は次のとおりです。
各行が画像のファイル名で始まり、その後にスカラー ラベル (例: 0、1、2、...) が続くテキスト ファイルを作成する必要があります。
Datum
Caffe のクラスを使用して、Python で lmdb を構築します。これには、caffe の python インターフェイスを構築する必要があります。ここでは、次のような Python コードを記述します。
numpy
画像を配列にロードします。Datum
カフェオブジェクトを構築しますDatum
オブジェクトに割り当てます。Datum
メンバーがありlabel
、ネットワークで分類したい場合は、CK データセットから AU クラスに設定できます。Datum
オブジェクトをデータベースに書き込み、次の画像に移動します。Gustav Larsson によるブログ投稿から、画像を lmdb に変換するコード スニペットを次に示します。彼の例では、画像分類用の画像とラベルのペアの lmdb を構築しています。
lmdb をネットワークにロードする:
これは、LeNet の例とまったく同じように行われます。LeNet モデルを記述するネットワーク prototxt の先頭にあるこのデータ層。
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.00390625
}
data_param {
source: "examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
}
}
source フィールドは、作成したばかりの lmdb の場所を caffe に指定する場所です。
これを機能させるために重要ではなく、パフォーマンスに関連するものは、入力機能を正規化する方法を指定することです。これは、transform_param
フィールドを通じて行われます。CK+ は固定サイズの画像なので、サイズ変更の必要はありません。ただし、グレースケール値を正規化する必要があります。これは、平均減算によって行うことができます。transform_param:scale
これを行う簡単な方法は、 の値を CK+ データセットのグレー スケール強度の平均値に置き換えることです。