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 | 112 | const QVariant variant = value("Label"); |
| 113 | 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 | 123 | void File::remove(const QString &key) | ... | ... |
sdk/plugins/eigen3.cpp
| ... | ... | @@ -276,10 +276,10 @@ class LDA : public Transform |
| 276 | 276 | |
| 277 | 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 | 281 | QMap<int, int> classCounts = trainingSet.labelCounts(); |
| 282 | - int numClasses = classCounts.size(); | |
| 282 | + const int numClasses = classCounts.size(); | |
| 283 | 283 | |
| 284 | 284 | // Map Eigen into OpenCV |
| 285 | 285 | Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances); | ... | ... |