Commit c7d69e725ae2c62fa309b8da6afff5fcb8195d06

Authored by Josh Klontz
1 parent 6dea1280

evalDetection bug fix

Showing 1 changed file with 7 additions and 4 deletions
openbr/core/eval.cpp
... ... @@ -387,7 +387,7 @@ struct DetectionOperatingPoint
387 387 : Recall(TP/totalPositives), FalsePositives(FP), Precision(TP/(TP+FP)) {}
388 388 };
389 389  
390   -static QStringList computeDetectionResults(const QList<ResolvedDetection> &detections, int totalPositives, bool discrete)
  390 +static QStringList computeDetectionResults(const QList<ResolvedDetection> &detections, int totalTrueDetections, bool discrete)
391 391 {
392 392 QList<DetectionOperatingPoint> points;
393 393 float TP = 0, FP = 0, prevFP = -1;
... ... @@ -403,7 +403,7 @@ static QStringList computeDetectionResults(const QList&lt;ResolvedDetection&gt; &amp;detec
403 403 }
404 404 if ((i == detections.size()-1) || (detection.confidence > detections[i+1].confidence)) {
405 405 if (FP > prevFP || (i == detections.size()-1)) {
406   - points.append(DetectionOperatingPoint(TP, FP, totalPositives));
  406 + points.append(DetectionOperatingPoint(TP, FP, totalTrueDetections));
407 407 prevFP = FP;
408 408 }
409 409 }
... ... @@ -508,7 +508,10 @@ float EvalDetection(const QString &amp;predictedGallery, const QString &amp;truthGallery
508 508 QMap<QString, Detections> allDetections = getDetections(predicted, truth);
509 509  
510 510 QList<ResolvedDetection> resolvedDetections, falseNegativeDetections;
  511 + int totalTrueDetections = 0;
511 512 foreach (Detections detections, allDetections.values()) { // For every file
  513 + totalTrueDetections += detections.truth.size();
  514 +
512 515 // Try to associate ground truth detections with predicted detections
513 516 while (!detections.truth.isEmpty() && !detections.predicted.isEmpty()) {
514 517 const Detection truth = detections.truth.takeFirst(); // Take removes the detection
... ... @@ -539,8 +542,8 @@ float EvalDetection(const QString &amp;predictedGallery, const QString &amp;truthGallery
539 542  
540 543 QStringList lines;
541 544 lines.append("Plot, X, Y");
542   - lines.append(computeDetectionResults(resolvedDetections, truth.size(), true));
543   - lines.append(computeDetectionResults(resolvedDetections, truth.size(), false));
  545 + lines.append(computeDetectionResults(resolvedDetections, totalTrueDetections, true));
  546 + lines.append(computeDetectionResults(resolvedDetections, totalTrueDetections, false));
544 547  
545 548 float averageOverlap;
546 549 { // Overlap Density
... ...