【配置教程】FDDB生成ROC曲線
看了好多部落格,踩了很多坑,終於把FDDB資料集的ROC曲線繪製出來了。記錄一下。
環境:ubuntu18.04
1.資料集準備
去FDDB官網:http://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
官網下載評估原始碼:http://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 。 https://blog.csdn.net/yllifesong/article/details/80980274
安裝依賴項:安裝libopencv-dev依賴包,執行命令 sudo apt install libopencv-dev,在出現的選項中輸入y繼續執行就行。注意:慢或者timeout就用清華映象!(百度找,命令後面指定清華映象地址即可)
ubuntu如何檢視所用opencv的版本和安裝的庫:https://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。
他們的區別:https://blog.csdn.net/xcls2010/article/details/79744507
6.執行生成ROC曲線 安裝gunplot。sudo apt-get install gnuplot 下載:http://vis-www.cs.umass.edu/fddb/results.html
根據discROC.p 更改,
將plot後面的txt改成自己生成的ROC.txt或者要對比的ROC曲線。
輸出圖片在set output 後面寫 xxx.png
執行命令gnuplot [自己更改的指令碼檔案] 例如:gnuplot discROC.p 即可生成ROC曲線圖。
這只是個演示的曲線~~~
&nbs