用 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'

猜你喜欢

转载自blog.csdn.net/weixin_39153202/article/details/82977094