3

サッカー場のヤード数を分類しようとしています。それらを(別の方法で)うまく検出できます。十の位の数字「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 のパフォーマンスが悪い理由がわかりません。ここで何が欠けていますか?

4

1 に答える 1

4

アプリオリに実験を行わないと、適切なパラメーターを提供することは非常に困難ですが、いくつかのアイデアを提供できます。

まず、マルチクラス分類器をモデル化したいと考えていますが、回帰アルゴリズムを使用しています。それができないわけではありませんが、最初に C-SVM から始めると通常は簡単です。

次に、多項式カーネルの代わりに RBF を使用することをお勧めします。Poly を正しく使用するのは非常に難しく、通常は RBF の方がすぐに使用できます。

第 3 に、C の値をいくつか試してみます。恥ずかしがらずに、より大きな C (100 など) を試して、アルゴリズムがより多くの SV を選択するように強制します。オーバーフィッティングにつながる可能性がありますが、トレーニング セットを学習するアルゴリズムを作成することさえできない場合、それは差し迫った問題ではありません。

第 4 に、最初は画像の次元を減らしてから、必要に応じて、より安定したモデルができたら、その次元でもう一度試すことができます。

http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdfに従うのが非常に簡単なLibSVMガイドを読むことを本当にお勧めします

それが役に立てば幸い!

編集:

SVMのパラメーターを選択する良い方法は、相互検証を実行することであることに言及するのを忘れていました: http://en.wikipedia.org/wiki/Cross-validation_(statistics)

http://www.autonlab.org/tutorials/overfit10.pdf

http://www.youtube.com/watch?v=hihuMBCuSlU

http://www.youtube.com/watch?v=m5StqDv-YlM

EDIT2:

質問のタイトルにあるのでばかげていることは知っていますが、コメントで指摘するまで、HOG記述子を使用していることに気づきませんでした。

于 2013-03-20T19:32:51.390 に答える