【配置教程】FDDB生成ROC曲線

看了好多博客,踩了很多坑,終於把FDDB數據集的ROC曲線繪製出來了。記錄一下。

 

環境:ubuntu18.04 

1.數據集準備

去FDDB官網://vis-www.cs.umass.edu/fddb/

1.1 下載原始的FDDB人臉數據集

 images:下面是存在2002和2003文件夾下的圖片。

annotations:FDDB-folds文件下是含有人臉數據的標註

 FDDB-flod-%d.txt等文件名存放着圖片路徑名,FDDB-fold-%d-ellipseList.txt等文件名存放着標註文件:第一行是文件路徑,第二行是人臉數N,之後是N行數據,左上角的x,左上角的y,寬w,高h,人臉置信度,以空格為分隔。

      

將FDDB-FOLD-%d.txt合成一個文件: cat * > img_list.txt

將所有的標註文件FDDB-fold-%d-ellipseList.txt合成一個文件 cat *ellipse*.txt > annotFile.txt
 
1.2 生成人臉檢測網絡根據img_list.txt生成的txt文件
第一行是文件路徑,第二行是人臉數N,之後是N行數據,左上角的x,左上角的y,寬w,高h,人臉置信度,以空格為分隔。

 

2.下載evaluation源碼,將文件放入ubuntu

 官網下載評估源碼://vis-www.cs.umass.edu/fddb/results.html

 

 放到ubuntu中,解壓。

在evaluation裏面放入準備好的3個文件圖片文件

img_list.txt是合併的路徑名。

annotFile.txt是合併的標註文件

FDDB-det-prelu3.txt是自己檢測網絡生成的。

 

注意:直接將上面生成的txt文件複製到ubuntu下會報錯Incompatible annotation and detection files. See output specifications ,由於windows下文件和ubuntu下不同導致的。只需要在ubuntu下面創建一個txt文件,然後將內容複製進去即可。

 

 

3.在ubuntu18.04中安裝opencv

參考資料:Ubuntu18.04中安裝opencv 。 //blog.csdn.net/yllifesong/article/details/80980274

安裝依賴項:安裝libopencv-dev依賴包,運行命令 sudo apt install libopencv-dev,在出現的選項中輸入y繼續執行就行。

注意:慢或者timeout就用清華鏡像!(百度找,命令後面指定清華鏡像地址即可)

ubuntu如何查看所用opencv的版本和安裝的庫://blog.csdn.net/libai13/article/details/107935935

 

4.生成evaluation可執行文件

注意:如果用的是openCV3.x版本,則需要修改Makefile才能編譯通過。添加以下兩行(和官網不一樣),  並修改evaluate順序

INCS = -I/usr/local/include/opencv

LIBS = -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_imgcodecs

 

如果不需要ppm需要注釋掉,修改evaluation文件夾裏面的common.hpp:

 

執行make命令

成功!

 

5.執行生成ROC.txt文件

 ./evaluate -a annotFile.txt -d FDDB-det-prelu3.txt -f 0 -i pic/ -l img_list.txt -r aaa

 

其中:-a是標準標註文件,-d是自己生成的,-f代表是矩形,-i是圖片放的地址,-l 是路徑文件,-r自己隨意命名

生成了aaaContROC.txt和aaaDiscROC.txt文件。

 

 生成的DiscROC.txt中第一列為TPR(根據TPDisc算出的),第二列為FP,第三列為當前的閾值;而ConROC.txt中第一列為TPR(根據TPCont 算出的),第二列為FP。

他們的區別://blog.csdn.net/xcls2010/article/details/79744507

 
6.執行生成ROC曲線
安裝gunplot。sudo apt-get install gnuplot
 
下載://vis-www.cs.umass.edu/fddb/results.html

 

 根據discROC.p 更改,

將plot後面的txt改成自己生成的ROC.txt或者要對比的ROC曲線。

輸出圖片在set output 後面寫 xxx.png

 

執行命令gnuplot [自己更改的腳本文件]
例如:gnuplot discROC.p
即可生成ROC曲線圖。

這只是個演示的曲線~~~