diff --git a/openbr/core/eval.cpp b/openbr/core/eval.cpp index 97ae521..dd3f548 100755 --- a/openbr/core/eval.cpp +++ b/openbr/core/eval.cpp @@ -100,7 +100,7 @@ static cv::Mat constructMatchingMask(const cv::Mat &scores, const FileList &targ float Evaluate(const cv::Mat &scores, const FileList &target, const FileList &query, const QString &csv, int partition) { - return Evaluate(scores, constructMatchingMask(scores, target, query, partition), target, query, csv, 10); + return Evaluate(scores, constructMatchingMask(scores, target, query, partition), QString(), QString(), csv, 0); } float Evaluate(const QString &simmat, const QString &mask, const QString &csv, int matches) @@ -137,10 +137,10 @@ float Evaluate(const QString &simmat, const QString &mask, const QString &csv, i truth = format->read(); } - return Evaluate(scores, truth, TemplateList::fromGallery(target).files(), TemplateList::fromGallery(query).files(), csv, matches); + return Evaluate(scores, truth, target, query, csv, matches); } -float Evaluate(const Mat &simmat, const Mat &mask, const FileList &target, const FileList &query, const QString &csv, int matches) +float Evaluate(const Mat &simmat, const Mat &mask, const QString &target, const QString &query, const QString &csv, int matches) { if (simmat.size() != mask.size()) qFatal("Similarity matrix (%ix%i) differs in size from mask matrix (%ix%i).", @@ -265,14 +265,16 @@ float Evaluate(const Mat &simmat, const Mat &mask, const FileList &target, const QString filePath = Globals->path; if (matches != 0) { + FileList targetFiles = TemplateList::fromGallery(target).files(); + FileList queryFiles = TemplateList::fromGallery(query).files(); for (int i=0; i("Label")+":" - +filePath+"/"+target[topImpostors[i].target].name+":"+query[topImpostors[i].query].get("Label")+":"+filePath+"/"+query[topImpostors[i].query].name); + lines.append("TI,"+QString::number(topImpostors[i].score)+","+targetFiles[topImpostors[i].target].get("Label")+":" + +filePath+"/"+targetFiles[topImpostors[i].target].name+":"+queryFiles[topImpostors[i].query].get("Label")+":"+filePath+"/"+queryFiles[topImpostors[i].query].name); } std::reverse(botGenuines.begin(), botGenuines.end()); for (int i=0; i("Label")+":" - +filePath+"/"+target[botGenuines[i].target].name+":"+query[botGenuines[i].query].get("Label")+":"+filePath+"/"+query[botGenuines[i].query].name); + lines.append("BG,"+QString::number(botGenuines[i].score)+","+targetFiles[botGenuines[i].target].get("Label")+":" + +filePath+"/"+targetFiles[botGenuines[i].target].name+":"+queryFiles[botGenuines[i].query].get("Label")+":"+filePath+"/"+queryFiles[botGenuines[i].query].name); } } diff --git a/openbr/core/eval.h b/openbr/core/eval.h index b3ecce1..169690d 100644 --- a/openbr/core/eval.h +++ b/openbr/core/eval.h @@ -25,7 +25,7 @@ namespace br { float Evaluate(const QString &simmat, const QString &mask = "", const QString &csv = "", int matches = 0); // Returns TAR @ FAR = 0.001 float Evaluate(const cv::Mat &scores, const FileList &target, const FileList &query, const QString &csv = "", int parition = 0); - float Evaluate(const cv::Mat &scores, const cv::Mat &masks, const FileList &target, const FileList &query, const QString &csv = "", int matches = 0); + float Evaluate(const cv::Mat &scores, const cv::Mat &masks, const QString &target = "", const QString &query = "", const QString &csv = "", int matches = 0); float InplaceEval(const QString & simmat, const QString & target, const QString & query, const QString & csv = ""); void EvalClassification(const QString &predictedGallery, const QString &truthGallery, QString predictedProperty = "", QString truthProperty = "");