Commit b3488cbffd687ccc4533e7502d87e3f223b6583a
1 parent
6080449e
handle QPoint(-1,-1) the same way we handle NaN
Showing
1 changed file
with
10 additions
and
2 deletions
openbr/core/eval.cpp
| @@ -863,12 +863,20 @@ float EvalLandmarking(const QString &predictedGallery, const QString &truthGalle | @@ -863,12 +863,20 @@ float EvalLandmarking(const QString &predictedGallery, const QString &truthGalle | ||
| 863 | if (truthIndex == -1) qFatal("Could not identify ground truth for file: %s", qPrintable(predictedName)); | 863 | if (truthIndex == -1) qFatal("Could not identify ground truth for file: %s", qPrintable(predictedName)); |
| 864 | 864 | ||
| 865 | const QList<QPointF> predictedPoints = predicted[i].file.points(); | 865 | const QList<QPointF> predictedPoints = predicted[i].file.points(); |
| 866 | - const QList<QPointF> truthPoints = truth[truthIndex].file.points(); | 866 | + QList<QPointF> truthPoints = truth[truthIndex].file.points(); |
| 867 | + | ||
| 868 | + // Standardize how we represent unlabeled points here | ||
| 869 | + const QPointF find(-1,-1); | ||
| 870 | + const QPointF replace(std::numeric_limits<float>::quiet_NaN(), std::numeric_limits<float>::quiet_NaN()); | ||
| 871 | + for (int j=0; j<truthPoints.size(); j++) | ||
| 872 | + if (truthPoints[j] == find) | ||
| 873 | + truthPoints[j] = replace; | ||
| 874 | + | ||
| 867 | if (normalizationIndexA >= truthPoints.size()) qFatal("Normalization index A is out of range."); | 875 | if (normalizationIndexA >= truthPoints.size()) qFatal("Normalization index A is out of range."); |
| 868 | if (normalizationIndexB >= truthPoints.size()) qFatal("Normalization index B is out of range."); | 876 | if (normalizationIndexB >= truthPoints.size()) qFatal("Normalization index B is out of range."); |
| 869 | const float normalizedLength = QtUtils::euclideanLength(truthPoints[normalizationIndexB] - truthPoints[normalizationIndexA]); | 877 | const float normalizedLength = QtUtils::euclideanLength(truthPoints[normalizationIndexB] - truthPoints[normalizationIndexA]); |
| 870 | 878 | ||
| 871 | - if (predictedPoints.size() != truthPoints.size() || truthPoints.contains(QPointF(-1,-1)) || qIsNaN(normalizedLength)) { | 879 | + if (predictedPoints.size() != truthPoints.size() || qIsNaN(normalizedLength)) { |
| 872 | predicted.removeAt(i); | 880 | predicted.removeAt(i); |
| 873 | predictedNames.removeAt(i); | 881 | predictedNames.removeAt(i); |
| 874 | truth.removeAt(i); | 882 | truth.removeAt(i); |