Cómo utilizar la herramienta de verificación FDDB roc

El código oficial proporcionado es
el entorno cpp: vs, opencv

1. Configurar opencv

Primero, cree un nuevo proyecto en VS, descomprima el archivo tgz descargado, luego coloque el archivo hpp en el archivo de encabezado y el archivo cpp en el archivo original, luego ajuste las propiedades del proyecto e introduzca opencv.
Consulte https://blog.csdn.net/gu1857035894/article/details/125473159. Después de configurar opencv,
se informa un error durante la ejecución, lo que indica que no hay cv.h y highgui.h, y que IplImage no está definido
. reemplace el código que introduce cv en el archivo de encabezado, de la siguiente manera
#include<opencv/cv.h>
#include<opencv/highgui.h>
#include "opencv2/imgproc.hpp"
Referencia:
https://blog.csdn. net/y601500359/article/details/ 100974755
https://blog.csdn.net/yourijing/article/details/50721756

2.Ajusta el código

Primero, preste atención a ajustar la dirección y modificar el valor predeterminado de argc en main para que sea 0: el
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
resultado de salida se cambia en results.cpp y
utiliza variables de puntero local "det" y 'l1' que pueden no inicializarse. La nueva versión de cpp necesita inicializar el puntero. Simplemente asígneles NULL.
Actualmente, tengo problemas con la inicialización del puntero y la introducción de la biblioteca. Si encuentran otros problemas, simplemente modifíquelos de acuerdo con las indicaciones de error. Compile y ejecute
, y obtendrás

void Results::saveROC(string outFile, vector<Results *> *rv){
    
    
  string s = outFile + "Cont_or_ROC.txt";
  ofstream osc(s.c_str());

  s = outFile + "Disc_or_ROC.txt";
  ofstream osd(s.c_str());

Referencia:
https://blog.csdn.net/qq_32108823/article/details/89216186

3.perl、gnuplot

Perl es el código que puede ser reconocido por gnuplot. Perl ejecuta el archivo .pl. El autor lo ha escrito en eval__tool. Tenga cuidado de modificar algunas direcciones:

#!/usr/bin/perl -w
use strict;
#### VARIABLES TO EDIT ####
# where gnuplot is gnuplot的exe文件绝对路径
my $GNUPLOT = "D:/gnuplot/gnuplot/bin/wgnuplot"; 
# where the binary is evaluate的exe文件绝对路径
my $evaluateBin = "F:/evaluation/evaluation/evaluate.cpp"; 
# where the images are fddb图片总路径
my $imDir = "F:/FDDB/originalPics/"; 
# where the folds are fddb路径信息、真值框信息文档路径
my $fddbDir = "F:/FDDB/FDDB-folds"; 
# where the detections are 最终生成的ROC图像存放位置
my $detDir = "F:/FDDB/"; 
###########################
 
my $detFormat = 0; # 0: rectangle, 1: ellipse 2: pixels
 
sub makeGNUplotFile
{
    
    
my $rocFile = shift;
my $gnuplotFile = shift;
my $title = shift;
my $pngFile = shift;
 
open(GF, ">$gnuplotFile") or die "Can not open $gnuplotFile for writing\n"; 
#print GF "$GNUPLOT\n";
print GF "set term png\n";
print GF "set size 1,1\n";
print GF "set output \"$pngFile\"\n";
#print GF "set xtics 500\n";
print GF "set ytics 0.1\n";
print GF "set grid\n";
#print GF "set size ratio -1\n";
print GF "set ylabel \"True positive rate\"\n";
print GF "set xlabel \"False positives\"\n";
#print GF "set xr [0:2000]\n";
print GF "set yr [0:1.0]\n";
print GF "set key right bottom\n";
print GF "plot \"$rocFile\" using 2:1 title \"$title\" with lines lw 2 \n";
close(GF);
}
 
my $gpFile = "F:/evaluation/evaluation/ContROC.p"; #存放ContROC图绘图信息的.p文件绝对路径(需要自己先生成)
my $gpFile1 = "F:/evaluation/evaluation/DistROC.p"; #存放DistROC图绘图信息的.p文件绝对路径
my $title = "FaceBoxes";
 
# plot the two ROC curves using GNUplot
makeGNUplotFile("F:/evaluation/evaluation/tempContROC.txt", $gpFile, $title, $detDir."ContROC.png");
makeGNUplotFile("F:/evaluation/evaluation/tempDiscROC.txt", $gpFile1, $title, $detDir."DiscROC.png");

Después de ejecutar el archivo pl, obtendrá el archivo .p. Arrastre el archivo .p a gunplot para obtener la curva roc.

Supongo que te gusta

Origin blog.csdn.net/qq_41950533/article/details/128340335
Recomendado
Clasificación