From bf2208810f1ed47e0804581771e6160d6e8052ab Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Tue, 30 Jul 2013 16:04:16 -0400 Subject: [PATCH] Rank output works with crossvalidation --- openbr/core/bee.cpp | 9 ++++++++- openbr/core/eval.cpp | 3 +++ openbr/plugins/gallery.cpp | 9 ++++++--- openbr/plugins/landmarks.cpp | 5 ++--- openbr/plugins/output.cpp | 18 +++++++++++------- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/openbr/core/bee.cpp b/openbr/core/bee.cpp index fef62d5..8823038 100644 --- a/openbr/core/bee.cpp +++ b/openbr/core/bee.cpp @@ -102,7 +102,7 @@ void BEE::writeSigset(const QString &sigset, const br::FileList &files, bool ign if ((key == "Index") || (key == "Subject")) continue; metadata.append(key+"=\""+QtUtils::toString(file.value(key))+"\""); } - lines.append("\t("Subject", file.name) +"\">"); + lines.append("\t"); lines.append("\t\t"); lines.append("\t"); } @@ -273,6 +273,11 @@ cv::Mat BEE::makeMask(const br::FileList &targets, const br::FileList &queries, QList targetPartitions = targets.crossValidationPartitions(); QList queryPartitions = queries.crossValidationPartitions(); + qDebug() << "Targets: " << targetLabels << "\n"; + qDebug() << "Targets: " << targetPartitions << "\n"; + qDebug() << "Queries: " << queryLabels << "\n"; + qDebug() << "Queries: " << queryPartitions << "\n"; + Mat mask(queries.size(), targets.size(), CV_8UC1); for (int i=0; i 0) qWarning("Encountered %d NaN scores!", numNaNs); if (genuineCount == 0) qFatal("No genuine scores!"); if (impostorCount == 0) qFatal("No impostor scores!"); diff --git a/openbr/plugins/gallery.cpp b/openbr/plugins/gallery.cpp index 7bb77ef..0102a0f 100644 --- a/openbr/plugins/gallery.cpp +++ b/openbr/plugins/gallery.cpp @@ -165,10 +165,13 @@ class EmptyGallery : public Gallery templates.append(File(fileName, dir.dirName())); if (!regexp.isEmpty()) { - const QRegularExpression re(regexp); - for (int i=templates.size()-1; i>=0; i--) - if (!re.match(templates[i].file.suffix()).hasMatch()) + QRegExp re(regexp); + re.setPatternSyntax(QRegExp::Wildcard); + for (int i=templates.size()-1; i>=0; i--) { + if (!re.exactMatch(templates[i].file.suffix())) { templates.removeAt(i); + } + } } return templates; diff --git a/openbr/plugins/landmarks.cpp b/openbr/plugins/landmarks.cpp index 5114fbb..9f06f7f 100644 --- a/openbr/plugins/landmarks.cpp +++ b/openbr/plugins/landmarks.cpp @@ -231,7 +231,6 @@ class DelaunayTransform : public UntrainableTransform QList mappedPoints; dst.file = src.file; - qDebug() << dst.file.name; for (int i = 0; i < validTriangles.size(); i++) { Eigen::MatrixXf srcMat(validTriangles[i].size(), 2); @@ -289,8 +288,8 @@ class DelaunayTransform : public UntrainableTransform } // Overwrite any rects - //Rect boundingBox = boundingRect(mappedPoints.toVector().toStdVector()); - //dst.file.setRects(QList() << OpenCVUtils::fromRect(boundingBox)); + Rect boundingBox = boundingRect(mappedPoints.toVector().toStdVector()); + dst.file.setRects(QList() << OpenCVUtils::fromRect(boundingBox)); } } diff --git a/openbr/plugins/output.cpp b/openbr/plugins/output.cpp index ae10674..d570088 100644 --- a/openbr/plugins/output.cpp +++ b/openbr/plugins/output.cpp @@ -98,7 +98,7 @@ class heatOutput : public MatrixOutput { Q_OBJECT Q_PROPERTY(int patches READ get_patches WRITE set_patches RESET reset_patches STORED false) - BR_PROPERTY(int, patches, -1); + BR_PROPERTY(int, patches, -1) ~heatOutput() { @@ -426,13 +426,17 @@ class rankOutput : public MatrixOutput typedef QPair Pair; int rank = 1; foreach (const Pair &pair, Common::Sort(OpenCVUtils::matrixToVector(data.row(i)), true)) { - if (targetFiles[pair.second].get("Subject") == queryFiles[i].get("Subject")) { - ranks.append(rank); - positions.append(pair.second); - scores.append(pair.first); - break; + if (Globals->crossValidate > 0 ? (targetFiles[pair.second].get("Partition",-1) == queryFiles[i].get("Partition",-1)) : true) { + if (QString(targetFiles[pair.second]) != QString(queryFiles[i])) { + if (targetFiles[pair.second].get("Subject") == queryFiles[i].get("Subject")) { + ranks.append(rank); + positions.append(pair.second); + scores.append(pair.first); + break; + } + rank++; + } } - rank++; } } -- libgit2 0.21.4