1. 程式人生 > >用 eval.py 跟蹤 object detection 過程中的 mAP 變化

用 eval.py 跟蹤 object detection 過程中的 mAP 變化

       衡量物體檢測的精度,指標之一是mAP(mean Average Pricision)。在tensorflow中有object detection的api,雖然操作起來很酸爽,表現了還在開發階段的api該有的不穩定性和繁雜性(等噴),但確實為物體檢測的進行提供了便利,再次也致謝谷歌(雖然他們看不到)。

       凡是檢測,必有評估,不然檢測就沒有意義。本文討論如何用tensorflow中自帶的api實現檢測的評估,需用到 eval.py 這個檔案。在需要執行的目錄中新建 eval_dir 資料夾。在CMD中找到object detection目錄,執行程式段:

 python eval1.py  --logtostderr  --pipeline_config_path=D:/object_detection/research/object_detection/CELL/CELL.config --checkpoint_dir=D:/object_detection/research/object_detection/CELL/train_dir  --eval_dir=D:/object_detection/research/object_detection/CELL/eval_dir

依據不同的命名,需要對上面的程式進行調整。執行之後,在CMD視窗中可以看到監控進度

在eval_dir中看到生成的記錄檔案,

在檢測型別的目錄下執行tensorboard,可以看到各個分類和總體的mAP變化情況。

最後要補充一點,通常情況,我們的GPU用來進行訓練任務啦,再訓練eval會造成現存崩潰。如果你又多塊GPU,那隻需要指定不同的板子來執行不同的任務,並不衝突;或者你可以偶爾中斷訓練任務,來統計mAP,但這樣依舊繁瑣;如果你像我一樣迫於硬體成本的限制,只有一塊GPU且視訊記憶體不高,那麼可以用CPU來跑監控程式,用GPU來跑訓練程式。指定執行的裝置,在eval.py和train.py中進行設定。

import os 
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'