2017-02-20 5 views
0

トレーニングセットには5つのクラスがあり、各クラスには100のトレーニング画像があります。私はテストフォルダに5つのクラスを作成しました。ここで、各テスト画像は、トレーニングクラスと比較され、トレーニングクラスの1つに近いことに基づいて、対応するテストクラスのためにラベル付けされる。 SVM分類器で正しい手順を実行しているかどうかを知りたいですか?SVMクラシファイアとテスト画像

+0

より正確です。私はその質問を理解していない。おそらく、あなたはSVMでマルチクラス学習をする方法を尋ねていますが、多分そうではないかもしれません。その場合は、マルチクラス学習で用語OneVsRestとOneVsOneをチェックしてください。 – sascha

+0

opencvのSVMの例で始まり、あなたのデータをあなたのものに置き換えてください。どのような結果が得られているのかを確認してください(http://docs.opencv.org/2.4/doc/tutorials/ml/non_linear_svms/non_linear_svms.html) –

答えて

1

だから基本的には、以下の構造を有する:

電車

|-- class1 
| |-- 1.pgm 
| |-- ... 
| |-- 100.pgm 
|-- class2 
| |-- 1.pgm 
| |-- ... 
| |-- 100.pgm 
... 
|-- class5 
| |-- 1.pgm 
| |-- ... 
| |-- 100.pgm 

テスト

|-- class1 
| |-- 1.pgm 
| |-- ... 
| |-- n.pgm 

|-- class5 
| |-- 1.pgm 
| |-- ... 
| |-- n.pgm 

は、次のステップでは、列車の画像から記述子を抽出することです。抽出されたフィーチャを使用して、分類モデルを生成(トレーニング)します。最後に、同じエンコード方法を使用してテスト画像からフィーチャを抽出し、訓練されたモデルを使用して予測を行います。

+0

Liviu Stefanに感謝します。だから私は最初にトレーニングデータセットのように手動ですべてのテストデータを手動で別のクラスに分類する必要がありますか?そして、各テストクラスは同じ数のイメージを持ち、その数はトレーニングクラスのイメージの数と異なることがありますか?次にSVM分類器の役割は何ですか? – wannabegeek

+0

いいえ、異なるクラスに手動ですべてのテストデータを手動で分類する必要はありません。また、テストクラスは任意の数のイメージを持つことができます。 SVMを使用して、テスト画像の予測に使用するトレイン画像の分類モデルベースを訓練します。 –

+0

私がしていることを要約しています。コメントしてください。私は "チャット"、 "自転車"、 "夜"、 "食べる"、 "オフィス"のラベルを持つ5つのクラスを持っています。各クラスには100の画像があります。 100個のランダムな画像を持つ "test_data"というフォルダが1つあります。私はvocab.mat、train_features(train_bag_of_sift.mat)とtest_features(test_bag_of_sift.mat)を持っています。トレーニングデータはsvmtrain関数によって訓練されます。 "スコア= [スコア;(W '* test_image_feats' + B)]"はスコアを与え、対応するインデックスカテゴリ(index(max_score))は予測カテゴリです。精度を求めるために、これは地面の真理値と比較されます。 – wannabegeek

関連する問題