人脸检测FDDB评测的详细步骤,分如下三步:

第一步:使用自己的人脸检测起生成检测结果:

使用你自己的分类器进行检测。在检测过程中,需要生成一个txt文档。官方文档在这里。 
http://vis-www.cs.umass.edu/fddb/README.txt 
其实就是以下格式

这里给出写这个的C++代码。

注意:以下的p[0],p[1],p[2],p[3]分别代表着人脸的左上角点坐标(x,y)宽度和高度w,h。

string Double_String(double x)
{stringstream ss;ss << x;return ss.str();
}string Int_String(int x)
{stringstream ss;ss << x;return ss.str();
}
void detectAndDisplay(Mat gray,string line)
{//以下人脸的数量用face_number代替string face_position_1 = line;string face_position_2 = Int_String(face_number);vector<string> face;for (int i = 0; i < face_number; i++){// <left_x top_y width height detection_score> //we do itstring face_vector = Int_String(p[0]) + " " + Int_String(p[1]) + " " + Int_String(p[2]) + " " + Int_String(p[3]) + " " + Double_String(detect_score);//detect_score,根据官网上的介绍,分类器中应该就包含这个参数。如果你是用opencv,那么在detectMultiScale中可以找到face.push_back(face_vector);}//首先打开txtofstream result("result.txt", ios::app);result << face_position_1 << endl << face_position_2 << endl;result.close();//先关闭一次//把vector写入for (vector<string>::iterator iter = face.begin(); iter != face.end(); ++iter){ofstream result_eachface("result.txt", ios::app);  //每一张脸result_eachface << *iter << endl;result_eachface.close();}face.clear();//清除这个result.clear();
}
int main()
{string file = "Fold_all.txt";string line;ifstream in(file);if (in) // 有该文件  {while (getline(in, line)) // line中不包括每行的换行符  {string pic_road = line + ".jpg";Mat gray = imread(pic_road, CV_LOAD_IMAGE_GRAYSCALE);//it is necessary that must have CV_LOAD_IMAGE_GRAYSCALEdetectAndDisplay(gray, line);}}cout << "Finally we got it";getchar();
}

我们得到了一个这样的txt文档,表示,图片名字,人脸的个数,人脸左顶点的坐标,宽,高,人脸窗口的置信度;矩形人脸信息: 

第二步:下载FDDB的评测的代码,修改c++代码:

官网代码地址:http://vis-www.cs.umass.edu/fddb/evaluation.tgz

解压evaluation.tgz,将其源文件和头文件包含在工程中,添加OpenCV的属性表。 
然后做以下修改:

还要注意  detFormat = DET_RECTANGLE; 如果你的检测输出是椭圆,这里就要改成椭圆。

在evaluate.cpp中的main函数,把第235行改为如下,即在max前面添加括号,否则会冲突。

Results *r = new Results(imName, (std::numeric_limits<double>::max)(), NULL, annot, det);
  • 1
  • 1

再者,在项目的属性栏中做如下改动。 
 
 
在72行,把这里改成自己的

#ifdef _WIN32string baseDir = "F:/soft/c++/Test_FDDB/Test_FDDB/";string listFile = "F:/soft/c++/Test_FDDB/Test_FDDB/Fold_all.txt";string detFile = "F:/soft/c++/Test_FDDB/Test_FDDB/result.txt";string annotFile = "F:/soft/c++/Test_FDDB/Test_FDDB/Elsp.txt";
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

生成,在工程目录下得到了ContROC.txt与DiscROC.txt文件。

第三步:生成ROC曲线图

个人感觉不需要安装perl就可以,只需要下载两个.p的文件ContROC.p与DistROC.p;

安装GUNPLOT,我装的gp501-win32-mingw。

打开刚才生成的两个.p文件,file->output,将可以看见生成的ROC曲线啦。

注意设置:输出文件的路径,建议使用绝对路径:

已经标注的很清楚,根据上述修改即可。  
打开gnuplot4.6: 
 
先把pl文件拖到里面,然后再file->output,即可看到我们的曲线。 

曲线: 

引用博客:  http://blog.csdn.net/mr_curry/article/details/52141730

人脸检测FDDB评测的详细步骤相关推荐

  1. (1)简单易学—— 人脸检测 Tensorflow_MTCNN模型训练详细步骤(纯干货,适用于windows和ubuntu系统)

    (配置项目环境前,电脑环境需要安装好Anaconda3) 1. 下载项目地址: git clone https://github.com/wangbm/MTCNN-Tensorflow.git 先使用 ...

  2. 如何用OpenCV在Python中实现人脸检测

    选自towardsdatascience 作者:Maël Fabien 机器之心编译 参与:高璇.张倩.淑婷 本教程将介绍如何使用 OpenCV 和 Dlib 在 Python 中创建和运行人脸检测算 ...

  3. 使用OpenCV实现人脸检测(Python)

    文章目录 Introduction 使用 OpenCV 的 Haar 级联分类器 导入工具包和模型路径 级联分类器 积分图像 使用 Adaboost 学习分类函数 级联分类器 输入 检测图像中的人脸 ...

  4. Ubuntu 下使用 FDDB 测试人脸检测模型并生成 ROC 曲线,详细步骤

    原 Ubuntu 下使用 FDDB 测试人脸检测模型并生成 ROC 曲线 2018年08月01日 20:18:44 Xing_yb 阅读数:101 标签: FDDB 人脸检测 模型测试 ROC 曲线 ...

  5. FDDB,检测自己的数据集的mobilenet,网络模型的详细步骤,留给新手参考

    1. FDDB评估工具的使用,gunplot安装,修改路径,参考下面博客, 注意,make,如果报错再修改Makefile https://blog.csdn.net/behind_you/artic ...

  6. Ello讲述Haar人脸检测:易懂、很详细、值得 ...

     Ello讲述Haar人脸检测:易懂.很详细.值得 ...                                                                      ...

  7. 人脸检测:RetinaFace(开源简化版)详细解读

    介绍 Insight Face在2019年提出的最新人脸检测模型,原模型使用了deformable convolution和dense regression loss, 在 WiderFace 数据集 ...

  8. 【java】调用百度开发平台ai接口,完成人脸识别(人脸搜索、人脸对比、人脸检测等)功能--------超详细,适合小白

    基本流程理解: 我们要使用百度提供的接口去实现某些功能,大致流程如下: 1.注册百度开放平台帐号: 浏览器打开http://ai.baidu.com/,进入百度ai的页面,点击右上角的控制台按钮进行登 ...

  9. 人脸检测dlib, mtcnnx对比,FDDB测试对比

    前面一直做人脸检测相关内容,然后对比了下dib以及MTCNN的人脸检测效果主要是速度,以及FDDB准确率.最后给出生成FDDB测试文件的C++代码. FDDB 测试结果 注本文的MTCNN效果检测准确 ...

  10. 实战 | 用Python和MediaPipe搭建一个嗜睡检测系统 (详细步骤 + 源码)

    导读 本文将使用Python和MediaPipe搭建一个嗜睡检测系统 (包含详细步骤 + 源码). 背景介绍 疲劳驾驶的危害不堪设想,据了解,21%的交通事故都因此而生,尤其是高速路上,大多数车辆都是 ...

最新文章

  1. centos java yum_CentOS7 使用yum命令安装Java SDK
  2. log4j linux如果日志目录不存在,Java日志库学习笔记
  3. python面试常用问题_Python面试中最常见的25个问题-结束
  4. 并联匹配和串联匹配的原理和选择
  5. flash player for linux 64,64-bit linux下装什么adobe flash player
  6. MyBatis的概述及使用
  7. 验证二叉搜索树的golang实现
  8. spring容器创建bean对象的方式以及如何处理多个spring配置文件
  9. 浅谈WPF中的Calendar日历控件
  10. 实例讲解什么是Meta回归,怎么利用Meta回归发表文章!
  11. WIN10系统不小心点击了显示语言栏怎么恢复
  12. python暑假培训班
  13. 量化基金股票的投资策略有哪些?
  14. 培训班出来,碰到查学历,哎宝宝苦。
  15. 立创EDA学习笔记(3)——PCB绘制
  16. Excel怎么设置密码保护工作表
  17. 针对前端js加密解密方法的兼容问题(兼容ie5以上哦)
  18. Office 2003 出现异常提示遇到问题需要关闭“ 发送错误报告 ”“ 不发送 ”“以安全模式启动”
  19. 美团外卖大数据“杀熟”,程序员成了“接锅侠”,简直不讲武德!
  20. 电芯容量在前期循环中容量增加_新发现!18650电池钢芯提升电池低温循环性能...

热门文章

  1. python 物理引擎_第十六章:物理引擎
  2. android手机运行win10,兼容安卓 Win10手机竟然能直接运行APK
  3. 8.1 段子中“酷毙”了的IT行业——《逆袭大学》连载
  4. 城市智慧停车管理模式方案科普
  5. 软件工程 选课系统的uml类图_软件工程课程设计-基于UML的学生选课系统的软件工程课程设计 精品推荐...
  6. 技术交底书(一)-----一种移动终端无需充电及移动终端
  7. @DependsOn或depends-on配置的使用
  8. html如何让标签居中显示,HTML怎么让标签居中
  9. mysql数据库学习汇总
  10. Java学习从入门到放弃