模型评估-TensorFlow目标检测API

coco中pycocotools组件的安装

运行评估指令时,出现了如下错误:

ImportError: No module named ‘pycocotools’

解决办法:

安装pycocotools,pycocotools是coco数据集中的对目标检测的评测工具。

  • 1
    git clone https://github.com/pdollar/coco.git
    把文件下载到本地
  • cd到PythonAPI目录中,使用如下命令安装
1
python setup.py build_ext install

安装过程中可能出现ImportError: No module named setuptools错误,则

1
2
sudo apt-get install -y python-setuptools
sudo python setup.py install
  • 如果是安装python3,需要使用
    1
    python3 setup.py build_ext install

    config配置及相关设置

默认情况下,eval脚本将永久运行,它只是在不断地评估图像,中间有睡眠。默认情况下,睡眠时间为300秒。你需要在配置文件中修改max_evals(表示评估的次数)。

默认情况下,在tensorboard中只显示出10张图片的检测结果,如果想看到不同的图像images的检测结果,可以修改num_visualizations

config文件中eval_config的修改

1
2
3
4
5
6
7
8
9
eval_config: {
num_examples: 518 
num_visualizations: 20
# Note: The below line limits the evaluation process to 10 evaluations.
# Remove the below line to evaluate indefinitely.
metrics_set: "coco_detection_metrics"
 #eval_interval_secs: 60
max_evals: 1
}

num_examples为要评估的图片数量;

metrics_set: “coco_detection_metrics”表示采用coco的检测指标进行评估输出(不用coco的评估指标的话去掉这一项即可);

max_evals表示评估的次数,评估1次即可;

一边训练一边评估

上述步骤都是中途暂停,然后评估的,因为GPU内存不够,但可以用CPU评估;
在eval.py中添加如下代码即可:

1
2
import os
os.environ["CUDA_VISIBLE_DEVICES"]=""

若想弄出mAP随训练次数变化的图形,可能需要修改config配置中参数max_evals,以及代码的修改,尚未解决目前

打印eval过程中的结果:

eval.py中添加

1
2
import logging
logging.basicConfig(level=logging.INFO)

可视化检测结果:

object_detection \ protos \ eval.proto中修改此参数

1
optional uint32 num_visualizations = 1 [default=10];