2

caffe を使用して特徴を抽出し、SVM を使用してそれらの特徴をトレーニングしたいと考えています。このリンクを確認しました: http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html。このリンクは、caffenet を使用して特徴を抽出する方法を提供します。しかし、ここでは Lenet アーキテクチャを使用したいと考えています。Lenet の次のコマンド行を変更できません。

  ./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/_temp/imagenet_val.prototxt fc7 examples/_temp/features 10 leveldb

また、特徴を抽出した後、SVM を使用してこれらの特徴をトレーニングする方法を教えてください。これにはpythonを使用したいと思います。例: このコードから機能を取得した場合:

features = net.blobs['pool2'].data.copy()

では、独自のクラスを定義して、SVM を使用してこれらの機能をトレーニングするにはどうすればよいでしょうか?

4

2 に答える 2

2

ここで 2 つの質問があります。

  1. LeNet を使用した特徴の抽出
  2. SVM のトレーニング

LeNet を使用した特徴の抽出

スクリプトを使用して LeNet から機能を抽出するextract_features.binには、モデル ファイル (.caffemodel) とテスト用のモデル定義 (.prototxt) が必要です。

の署名は次のextract_features.binとおりです。

Usage: extract_features  pretrained_net_param  feature_extraction_proto_file  extract_feature_blob_name1[,name2,...]  save_feature_dataset_name1[,name2,...]  num_mini_batches  db_type  [CPU/GPU] [DEVICE_ID=0]

したがって、これを val prototxt ファイル ( https://github.com/BVLC/caffe/blob/master/models/bvlc_alexnet/train_val.prototxt ) の例として使用すると、それを LeNet アーキテクチャに変更して、あなたのLMDB / LevelDB。それはあなたをそこに連れて行くはずです。それを行って行き詰まったら、質問を再更新するか、ここにコメントを投稿してください。

機能の上で SVM をトレーニングする

scikit-learn機能から SVM をトレーニングするには、Python を使用することを強くお勧めします。Caffe のフォーマットから保存された機能を読み込むなど、始めるのは非常に簡単です。

于 2016-04-21T15:22:08.347 に答える
0

非常に遅れた返信ですが、役立つはずです。100% ではありませんが、VGG-16 ネットを使用して、caffe を使用して顔の特徴を抽出し、LFW データセットの小さなサブセットで精度テストを実行しました。必要なものはまさにコードにあります。このコードは、トレーニングとテスト用のクラスを作成し、それらを分類のために SVM にプッシュします。

https://github.com/wajihullahbaig/VGGFaceMatching

于 2016-09-07T11:59:01.473 に答える