私の目的は、SVMをトレーニングし、オブジェクト検出のためにopencvのHOGdescriptorにプラグインできるサポートベクターを得ることです。cvSVMトレーニングでHOGDescriptorの結果が悪くなる
私は4000個の陽性と15000個の陰性を集めました。私はopencvが提供するSVMを使って訓練しました。結果は私にあまりにも多くの偽陽性を与える(画像あたり20個まで)私は偽陽性を取り除き、それらをネガティブプールに加えて再訓練する。私は時々、より多くの偽陽性に終わるだろう!私は大幅に改善することなく、私のhogdescriptorのL2HysThresholdを300以上に調整しようとしました。私の正と負のプールは十分に大きいのですか?
SVMトレーニングも予想よりもはるかに高速です。私は2916と12996の特徴ベクトルサイズで、グレースケール画像とカラー画像を別々の試行で使用してみました。 SVMトレーニングは20分以上もかかりません。私はauto_trainを使用します。私は機械学習の新人ですが、私のような大きさのデータセットでトレーニングを受けるのは、少なくとも1日はかかりません。
私はcvSVMが多くの学習をしていないと信じており、http://opencv-users.1802565.n2.nabble.com/training-a-HOG-descriptor-td6363437.htmlによれば、この目的には適していません。 cvSVMの経験がある方はこれ以上の情報がありますか?
私はSVMLight http://svmlight.joachims.org/を使用することを検討していますが、SVM超平面を視覚化する方法がないようです。私の選択肢は何ですか?
私はopencv2.4.3を使用して、私は「OpenCVのから訓練時にSVMモデルを学習するなSVMLightを使用して成功した結果を得ていますが、cvSVM
を使用していない、そうすることができますhogdescriptor
hog.winSize = cv::Size(100,100);
hog.cellSize = cv::Size(5,5);
hog.blockSize = cv::Size(10,10);
hog.blockStride = cv::Size(5,5); //12996 feature vector
hog.winSize = cv::Size(100,100);
hog.cellSize = cv::Size(10,10);
hog.blockSize = cv::Size(20,20);
hog.blockStride = cv::Size(10,10); //2916 feature vector
約3000または10,000のディメンションの記述子を使用している場合は、さらに多くのトレーニングデータを使用しないでください。 経験則によれば、トレーニングデータのサイズは問題の次元の約10倍でなければならないと言われています。それは正しいのではないですか? – GilLevi