【配置教程】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

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
注意:慢或者timeout就用清華鏡像!(百度找,命令後面指定清華鏡像地址即可)
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:

成功!
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

根據discROC.p 更改,
將plot後面的txt改成自己生成的ROC.txt或者要對比的ROC曲線。
輸出圖片在set output 後面寫 xxx.png

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