YOLOv3使用筆記 計算mAP recall

2021-08-20 09:39:33 字數 1240 閱讀 4470

1.批處理測試圖輸出檢測結果文字

./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg results/yolov3-voc_final.weights -out detect_result.txt
使用detector valid引數,具體函式是detector.c下的validate_detector函式。將訓練集的檢測結果儲存到detect_result.txt。

其中thresh在validate_detector中預設為0.005,按需修改。

修改txt檔名為檢測的類別名,我的標籤是person,即person.txt

2.使用py-faster-rcnn下的voc_eval.py計算map

將py-faster-rcnn/lib/datasets/voc_eval.py拷貝到darknet根目錄

新建compute_map.py

from voc_eval import voc_eval

print voc_eval('/***/darknet/results/{}.txt', '/***/darknet/scripts/vocdevkit/voc2007/annotations/{}.xml', '/***/darknet/scripts/vocdevkit/voc2007/imagesets/main/test.txt', 'person', '.')

重複執行需要刪除 ./darknet/annots.pkl

執行python compute_map.py,voc_eval.py中返回的最後乙個值即ap,檢測單類就是map

3.計算recall

修改detector.c下的validate_detector_recall函式

替換list *plist = get_paths("data/coco_val_5k.list");為list *plist=get_paths("scripts/train.txt");自己的訓練集文字

./darknet detector recall cfg/voc.data cfg/yolov3-voc.cfg results/yolov3-voc_final.weights
最後一列為recall值。

計算iou為nan的問題,替換for(k = 0; k < l.w*l.h*l.n; ++k)為for(k = 0; k < nboxes; ++k),重編譯執行。

參考

YOLOv3使用筆記 修改backbone網路

對於部分場景簡單,目標較大的影象可能並不需要darknet53這種深度的backbone網路也能檢測出來,出於這樣的目的,試驗將darknet53替換為darknet19 resnet等,既減少了模型計算量,又加快了推理時間。backbone網路對比 有各個網路的cfg以及在imagenet上的預訓...

深度學習理論 yolov3計算map

1.生成檢測檔案 darknet detector valid cfg voc.data cfg yolov3 voc.cfg backup yolov3 voc final.weights out 其中,類名要寫自己的類名,會生成乙個txt檔案在result裡。2.然後在python2的環境下執行...

yolo v3使用測試

yolov3 測試影象新增置信度與訓練bmp影象格式 2.yolo cfg檔案中各個引數的含義 3 批量測試並新增到自己的資料夾 參考部落格 其中第乙個存在的問題是,儲存的資料夾中影象沒有標記 問題是沒有新增畫框函式 void test detector char datacfg,char cfgf...