From 60f9377867e8765b358bbd1288ed8bca2d6ad679 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Fri, 26 Dec 2014 10:49:51 -0500 Subject: [PATCH] Revert "Added additional options to SVM" --- .gitignore | 1 - openbr/plugins/stasm4.cpp | 2 +- openbr/plugins/svm.cpp | 26 ++++++-------------------- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index f38b310..102657e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ data/*/img data/*/vid data/PCSO/* data/lfpw -data/lfw build* scripts/results diff --git a/openbr/plugins/stasm4.cpp b/openbr/plugins/stasm4.cpp index 5e9aeaa..0a350e3 100644 --- a/openbr/plugins/stasm4.cpp +++ b/openbr/plugins/stasm4.cpp @@ -186,7 +186,7 @@ private: for (int j = 0; j < 3; j++, cnt++) affine(i, j) = paramList[cnt]; affine(2, 2) = 1; - //affine = affine.inverse(); + affine = affine.inverse(); Eigen::MatrixXf affineInv = affine.block(0, 0, 2, 3); Eigen::MatrixXf pointsT = points.transpose(); points = affineInv * pointsT; diff --git a/openbr/plugins/svm.cpp b/openbr/plugins/svm.cpp index 6099554..ad4594f 100644 --- a/openbr/plugins/svm.cpp +++ b/openbr/plugins/svm.cpp @@ -40,7 +40,6 @@ static void storeSVM(const SVM &svm, QDataStream &stream) tempFile.open(); QByteArray data = tempFile.readAll(); tempFile.close(); - qDebug() << "Storing" << data.size() << "bytes for SVM"; stream << data; } @@ -60,7 +59,7 @@ static void loadSVM(SVM &svm, QDataStream &stream) svm.load(qPrintable(tempFile.fileName())); } -static void trainSVM(SVM &svm, Mat data, Mat lab, int kernel, int type, float C, float gamma, int folds, bool balanceFolds, int termCriteria) +static void trainSVM(SVM &svm, Mat data, Mat lab, int kernel, int type, float C, float gamma) { if (data.type() != CV_32FC1) qFatal("Expected single channel floating point training data."); @@ -68,18 +67,11 @@ static void trainSVM(SVM &svm, Mat data, Mat lab, int kernel, int type, float C, CvSVMParams params; params.kernel_type = kernel; params.svm_type = type; - params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS, termCriteria, FLT_EPSILON); - + params.p = 0.1; + params.nu = 0.5; if ((C == -1) || ((gamma == -1) && (kernel == CvSVM::RBF))) { try { - svm.train_auto(data, lab, Mat(), Mat(), params, folds, - CvSVM::get_default_grid(CvSVM::C), - CvSVM::get_default_grid(CvSVM::GAMMA), - CvSVM::get_default_grid(CvSVM::P), - CvSVM::get_default_grid(CvSVM::NU), - CvSVM::get_default_grid(CvSVM::COEF), - CvSVM::get_default_grid(CvSVM::DEGREE), - balanceFolds); + svm.train_auto(data, lab, Mat(), Mat(), params, 5); } catch (...) { qWarning("Some classes do not contain sufficient examples or are not discriminative enough for accurate SVM classification."); svm.train(data, lab, Mat(), Mat(), params); @@ -112,9 +104,6 @@ class SVMTransform : public Transform Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false) Q_PROPERTY(QString outputVariable READ get_outputVariable WRITE set_outputVariable RESET reset_outputVariable STORED false) Q_PROPERTY(bool returnDFVal READ get_returnDFVal WRITE set_returnDFVal RESET reset_returnDFVal STORED false) - Q_PROPERTY(int termCriteria READ get_termCriteria WRITE set_termCriteria RESET reset_termCriteria STORED false) - Q_PROPERTY(int folds READ get_folds WRITE set_folds RESET reset_folds STORED false) - Q_PROPERTY(bool balanceFolds READ get_balanceFolds WRITE set_balanceFolds RESET reset_balanceFolds STORED false) public: enum Kernel { Linear = CvSVM::LINEAR, @@ -136,9 +125,7 @@ private: BR_PROPERTY(QString, inputVariable, "Label") BR_PROPERTY(QString, outputVariable, "") BR_PROPERTY(bool, returnDFVal, false) - BR_PROPERTY(int, termCriteria, 1000) - BR_PROPERTY(int, folds, 5) - BR_PROPERTY(bool, balanceFolds, false) + SVM svm; QHash labelMap; @@ -159,8 +146,7 @@ private: QList dataLabels = _data.indexProperty(inputVariable, labelMap, reverseLookup); lab = OpenCVUtils::toMat(dataLabels); } - - trainSVM(svm, data, lab, kernel, type, C, gamma, folds, balanceFolds, termCriteria); + trainSVM(svm, data, lab, kernel, type, C, gamma); } void project(const Template &src, Template &dst) const -- libgit2 0.21.4