サッカー場のヤード数を分類しようとしています。それらを(別の方法で)うまく検出できます。十の位の数字「1,2,3,4,5」の周りに最小限の境界ボックスを描画しました。私の目標はそれらを分類することです。
トレーニングセットから抽出した豚の特徴でSVM分類器をトレーニングしようとしています。私のトレーニング数字の小さなサブセットはここにあります: http://ssadanand.imgur.com/all/
トレーニング中に豚の記述子を視覚化すると、それらは正しく見えます。OPencv の HOGDescriptor が使用する 64X128 トレーニング ウィンドウとその他のデフォルト パラメータを使用します。
画像をトレーニングすると (クラスごとに 50 サンプル、5 クラス)、250X3780 のトレーニング ベクトルと、CvSVM オブジェクトにフィードするクラス ラベル値を保持する 1X250 のラベル ベクトルが得られます。ここに問題があります。
CvSVM を使用しながら、デフォルトの CvSVMParams() を使用してみました。トレーニングセット自体でテストしたときのひどいパフォーマンス!
私はこれを行う CvSVMPARAMS をカスタマイズしようとしました:
CvSVMParams params = CvSVMParams();
params.svm_type = CvSVM::EPS_SVR;
params.kernel_type = CvSVM::POLY;
params.C = 1; params.p = 0.5; params.degree = 1;
これらのパラメーターのさまざまなバリエーションと、トレーニングセットでテストした場合でも、私の SVM 分類子はひどいものです!
この 5 クラス分類器の SVM のパラメーター化を手伝ってくれる人はいますか? この問題に使用する必要があるカーネルと svm タイプがわかりません。また、svm の c、p、次数の値を調べるにはどうすればよいのでしょうか?
これは非常に簡単な分類問題であると思います。なぜなら、すべてのオブジェクトがボックス内で適切に境界付けられており、解像度がかなり高く、クラスが 1、2、3、4、5 という数字の外観がかなりユニークだからです。SVM のパフォーマンスが悪い理由がわかりません。ここで何が欠けていますか?