0

私はSVMの海洋画像のトレーニングと分類を行いました。私はHoGと訓練された機能を介して機能を抽出しました。 1と0として機能をラベリングした後、私は自分の画像をテストしました。私は結果として常に50%を持っています。多分私のイメージが悪いと思ったので、私はすべてのイメージを個別にテストし、悪いイメージを取り除きました。 1つの画像をテストすると、精度は100%になります。次に、別のイメージをテストイメージフォルダ(100%の精度もあります)に追加すると、結果として約54%が得られました。そして、合計で2つのテスト画像に2つの間違ったラベルが付けられています。なぜ私は精度が低いのか分かりませんでした。これは計算に使用している式です。SVMでの精度の発見(Matlab)

acc = numel(find(Predict_label==test_label))/length(test_label); 
disp(['Accuracy ', num2str(acc)]) 

ありがとうございます。

+0

もう少しコードを入力してください。 'Predict_label'と' test_label'の次元は何ですか?例えば。 'size(Predict_label)'の結果は何ですか?表示されたコードの一部が正しく表示されます。私はまたあなたが2つのイメージしか持っていない場合、あなたが54%を得る方法を理解していません。それは0,50、または100です。 –

+0

多くの理由があります。 HOG機能の問題かもしれません - おそらく小さすぎるウィンドウ、角度ビンの精度が十分でない、おそらく正規化が間違っているなどあなたが選んだカーネルかもしれません。あなたが選んだ画像でもあります。あなたの分類で何が起こっているかを伝えるのに十分ではありません。 SVMをどのように訓練しているかについて、もっと教えてください。あなたのモデルを訓練するために実際に何をしているのか、私たちに洞察を与えるコードや何かを教えてください。ところで、 'numel + find'を実行することは非常に悪いことです。ちょうど 'nnz'を使用してください。いくつかの画像も素晴らしいでしょう。 – rayryeng

+0

私は有効な点からHoGの特徴を抽出しています。私は何を訓練しているのか間違って説明した。私は有効なポイントの周りの機能をトレーニングしています。私は地平線に50のランダムな場所とバックグラウンドに50のランダムな場所を持っています。すべての画像に真理値データがあります。寸法は両方とも198x1です。私は別のカーネルを試しました。画像を個別にチェックするときに言ったように、精度は100%です。問題は、2番目のイメージを追加すると開始されます。 nnzとは何ですか?そして、私は自分のコード(トレーニング、テスト)をどの部分に追加すべきですか? – cinemaniac

答えて

0

回答ありがとうございました。問題を解決しました。それはテストの繰り返しによるものでした。私はちょうど私のコードで2番目のテストを消去しました。