Commit 7dcdbe009e71c4fe1c1c6be4908ec4e8c7ecece6
1 parent
08930f0b
training label edge case bug fix
Showing
2 changed files
with
8 additions
and
9 deletions
sdk/openbr_plugin.cpp
| @@ -112,13 +112,12 @@ float File::label() const | @@ -112,13 +112,12 @@ float File::label() const | ||
| 112 | const QVariant variant = value("Label"); | 112 | const QVariant variant = value("Label"); |
| 113 | if (variant.isNull()) return -1; | 113 | if (variant.isNull()) return -1; |
| 114 | 114 | ||
| 115 | - if (variant.canConvert(QVariant::Double)) { | ||
| 116 | - bool ok; | ||
| 117 | - float val = variant.toFloat(&ok); | ||
| 118 | - if (ok) return val; | ||
| 119 | - } | 115 | + if (Globals->classes.contains(variant.toString())) |
| 116 | + return Globals->classes.value(variant.toString()); | ||
| 120 | 117 | ||
| 121 | - return Globals->classes.value(variant.toString(), -1); | 118 | + bool ok; |
| 119 | + const float val = variant.toFloat(&ok); | ||
| 120 | + return ok ? val : -1; | ||
| 122 | } | 121 | } |
| 123 | 122 | ||
| 124 | void File::remove(const QString &key) | 123 | void File::remove(const QString &key) |
sdk/plugins/eigen3.cpp
| @@ -276,10 +276,10 @@ class LDA : public Transform | @@ -276,10 +276,10 @@ class LDA : public Transform | ||
| 276 | 276 | ||
| 277 | int dimsIn = ldaTrainingSet.first().m().rows * ldaTrainingSet.first().m().cols; | 277 | int dimsIn = ldaTrainingSet.first().m().rows * ldaTrainingSet.first().m().cols; |
| 278 | 278 | ||
| 279 | - // MM ensures that classes values range from 0 to numClasses-1. | ||
| 280 | - QList<float> classes = trainingSet.labels<float>(); // PCA doesn't project metadata | 279 | + // OpenBR ensures that class values range from 0 to numClasses-1. |
| 280 | + QList<int> classes = trainingSet.labels<int>(); | ||
| 281 | QMap<int, int> classCounts = trainingSet.labelCounts(); | 281 | QMap<int, int> classCounts = trainingSet.labelCounts(); |
| 282 | - int numClasses = classCounts.size(); | 282 | + const int numClasses = classCounts.size(); |
| 283 | 283 | ||
| 284 | // Map Eigen into OpenCV | 284 | // Map Eigen into OpenCV |
| 285 | Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances); | 285 | Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances); |