Commit fb4c843f79d09c00f4aef99b4ef1dd86bd8b55b1
Committed by
Ben Klein
1 parent
56197f41
Template size table
Showing
2 changed files
with
23 additions
and
2 deletions
openbr/core/eval.cpp
| @@ -310,6 +310,16 @@ float Evaluate(const Mat &simmat, const Mat &mask, const QString &csv, const QSt | @@ -310,6 +310,16 @@ float Evaluate(const Mat &simmat, const Mat &mask, const QString &csv, const QSt | ||
| 310 | lines.append(qPrintable(QString("BC,0.001,%1").arg(QString::number(getTAR(operatingPoints, 0.001), 'f', 3)))); | 310 | lines.append(qPrintable(QString("BC,0.001,%1").arg(QString::number(getTAR(operatingPoints, 0.001), 'f', 3)))); |
| 311 | lines.append(qPrintable(QString("BC,0.01,%1").arg(QString::number(result = getTAR(operatingPoints, 0.01), 'f', 3)))); | 311 | lines.append(qPrintable(QString("BC,0.01,%1").arg(QString::number(result = getTAR(operatingPoints, 0.01), 'f', 3)))); |
| 312 | 312 | ||
| 313 | + // Attempt to read template size from enrolled gallery and write to output CSV | ||
| 314 | + size_t maxSize(0); | ||
| 315 | + if (target.endsWith(".gal")) { | ||
| 316 | + foreach (const Template &t, TemplateList::fromGallery(target)) { | ||
| 317 | + maxSize = max(maxSize, t.bytes()); | ||
| 318 | + } | ||
| 319 | + } | ||
| 320 | + | ||
| 321 | + lines.append(QString("TS,,%1").arg(QString::number(maxSize))); | ||
| 322 | + | ||
| 313 | // Write SD & KDE | 323 | // Write SD & KDE |
| 314 | points = qMin(qMin(Max_Points, genuines.size()), impostors.size()); | 324 | points = qMin(qMin(Max_Points, genuines.size()), impostors.size()); |
| 315 | QList<double> sampledGenuineScores; sampledGenuineScores.reserve(points); | 325 | QList<double> sampledGenuineScores; sampledGenuineScores.reserve(points); |
| @@ -337,6 +347,7 @@ float Evaluate(const Mat &simmat, const Mat &mask, const QString &csv, const QSt | @@ -337,6 +347,7 @@ float Evaluate(const Mat &simmat, const Mat &mask, const QString &csv, const QSt | ||
| 337 | } | 347 | } |
| 338 | 348 | ||
| 339 | QtUtils::writeFile(csv, lines); | 349 | QtUtils::writeFile(csv, lines); |
| 350 | + if (maxSize > 0) qDebug("Template Size: %i bytes", (int)maxSize); | ||
| 340 | qDebug("TAR @ FAR = 0.01: %.3f",getTAR(operatingPoints, 0.01)); | 351 | qDebug("TAR @ FAR = 0.01: %.3f",getTAR(operatingPoints, 0.01)); |
| 341 | qDebug("TAR @ FAR = 0.001: %.3f",getTAR(operatingPoints, 0.001)); | 352 | qDebug("TAR @ FAR = 0.001: %.3f",getTAR(operatingPoints, 0.001)); |
| 342 | qDebug("TAR @ FAR = 0.0001: %.3f",getTAR(operatingPoints, 0.0001)); | 353 | qDebug("TAR @ FAR = 0.0001: %.3f",getTAR(operatingPoints, 0.0001)); |
openbr/core/plot.cpp
| @@ -157,6 +157,7 @@ struct RPlot | @@ -157,6 +157,7 @@ struct RPlot | ||
| 157 | "FT <- data[grep(\"FT\",data$Plot),-c(1)]\n" | 157 | "FT <- data[grep(\"FT\",data$Plot),-c(1)]\n" |
| 158 | "CT <- data[grep(\"CT\",data$Plot),-c(1)]\n" | 158 | "CT <- data[grep(\"CT\",data$Plot),-c(1)]\n" |
| 159 | "BC <- data[grep(\"BC\",data$Plot),-c(1)]\n" | 159 | "BC <- data[grep(\"BC\",data$Plot),-c(1)]\n" |
| 160 | + "TS <- data[grep(\"TS\",data$Plot),-c(1)]\n" | ||
| 160 | "CMC <- data[grep(\"CMC\",data$Plot),-c(1)]\n" | 161 | "CMC <- data[grep(\"CMC\",data$Plot),-c(1)]\n" |
| 161 | "FAR$Error <- \"FAR\"\n" | 162 | "FAR$Error <- \"FAR\"\n" |
| 162 | "FRR$Error <- \"FRR\"\n" | 163 | "FRR$Error <- \"FRR\"\n" |
| @@ -173,6 +174,7 @@ struct RPlot | @@ -173,6 +174,7 @@ struct RPlot | ||
| 173 | "FT$Y <- as.numeric(as.character(FT$Y))\n" | 174 | "FT$Y <- as.numeric(as.character(FT$Y))\n" |
| 174 | "CT$Y <- as.numeric(as.character(CT$Y))\n" | 175 | "CT$Y <- as.numeric(as.character(CT$Y))\n" |
| 175 | "BC$Y <- as.numeric(as.character(BC$Y))\n" | 176 | "BC$Y <- as.numeric(as.character(BC$Y))\n" |
| 177 | + "TS$Y <- as.character(TS$Y)\n" | ||
| 176 | "CMC$Y <- as.numeric(as.character(CMC$Y))\n" | 178 | "CMC$Y <- as.numeric(as.character(CMC$Y))\n" |
| 177 | "\n" | 179 | "\n" |
| 178 | "# Code to format FAR values\n" | 180 | "# Code to format FAR values\n" |
| @@ -191,7 +193,13 @@ struct RPlot | @@ -191,7 +193,13 @@ struct RPlot | ||
| 191 | "mat <- matrix(CT$Y,nrow=6,ncol=length(algs),byrow=FALSE)\n" | 193 | "mat <- matrix(CT$Y,nrow=6,ncol=length(algs),byrow=FALSE)\n" |
| 192 | "colnames(mat) <- algs \n" | 194 | "colnames(mat) <- algs \n" |
| 193 | "rownames(mat) <- c(\" Rank 1\", \"Rank 5\", \"Rank 10\", \"Rank 20\", \"Rank 50\", \"Rank 100\")\n" | 195 | "rownames(mat) <- c(\" Rank 1\", \"Rank 5\", \"Rank 10\", \"Rank 20\", \"Rank 50\", \"Rank 100\")\n" |
| 194 | - "CMCtable <- as.table(mat)\n").arg(major.header))); | 196 | + "CMCtable <- as.table(mat)\n" |
| 197 | + "\n" | ||
| 198 | + "# Code to format Template Size Table\n" | ||
| 199 | + "mat <- matrix(TS$Y,nrow=1,ncol=length(algs),byrow=FALSE)\n" | ||
| 200 | + "colnames(mat) <- algs\n" | ||
| 201 | + "rownames(mat) <- c(\"Template Size (bytes):\")\n" | ||
| 202 | + "TStable <- as.table(mat)\n").arg(major.header))); | ||
| 195 | 203 | ||
| 196 | // Open output device | 204 | // Open output device |
| 197 | file.write(qPrintable(QString("\n" | 205 | file.write(qPrintable(QString("\n" |
| @@ -222,7 +230,9 @@ struct RPlot | @@ -222,7 +230,9 @@ struct RPlot | ||
| 222 | "print(textplot(FTtable))\n" | 230 | "print(textplot(FTtable))\n" |
| 223 | "print(title(\"Table of True Accept Rates at various False Accept Rates\"))\n" | 231 | "print(title(\"Table of True Accept Rates at various False Accept Rates\"))\n" |
| 224 | "print(textplot(CMCtable))\n" | 232 | "print(textplot(CMCtable))\n" |
| 225 | - "print(title(\"Table of retrieval rate at various ranks\"))\n"; | 233 | + "print(title(\"Table of retrieval rate at various ranks\"))\n" |
| 234 | + "print(textplot(TStable, cex=1.15))\n" | ||
| 235 | + "print(title(\"Template Size by Algorithm\"))\n"; | ||
| 226 | file.write(qPrintable(textplot.arg(PRODUCT_NAME, PRODUCT_VERSION))); | 236 | file.write(qPrintable(textplot.arg(PRODUCT_NAME, PRODUCT_VERSION))); |
| 227 | } | 237 | } |
| 228 | 238 |