From 50280922fc42395f6f958d94fa19b6c22876b92d Mon Sep 17 00:00:00 2001 From: Kaipeng Deng Date: Wed, 4 Sep 2019 14:06:13 +0800 Subject: [PATCH] add --map_type to set voc_eval map_type (#3260) --- .../PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml | 1 + PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml | 1 + PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml | 1 + PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml | 1 + .../PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml | 1 + PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml | 1 + .../PaddleDetection/docs/config_example/ssd_vgg16_300.yml | 4 +++- PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py | 7 +++++-- PaddleCV/PaddleDetection/tools/eval.py | 2 +- 9 files changed, 15 insertions(+), 4 deletions(-) diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml index 0bdf7e72..8830de95 100644 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml +++ b/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml @@ -8,6 +8,7 @@ max_iters: 28000 snapshot_iter: 2000 log_smooth_window: 1 metric: VOC +map_type: 11point save_dir: output weights: output/ssd_mobilenet_v1_voc/model_final/ num_classes: 21 diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml index ac3b758c..eb74c1ee 100644 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml +++ b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml @@ -8,6 +8,7 @@ snapshot_iter: 10000 log_smooth_window: 20 log_iter: 20 metric: VOC +map_type: 11point pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar save_dir: output weights: output/ssd_vgg16_300_voc/model_final/ diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml index 235111ed..12de33be 100644 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml +++ b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml @@ -8,6 +8,7 @@ snapshot_iter: 10000 log_smooth_window: 20 log_iter: 20 metric: VOC +map_type: 11point pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar save_dir: output weights: output/ssd_vgg16_512_voc/model_final/ diff --git a/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml b/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml index 08e00a53..1f6c10b7 100644 --- a/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml +++ b/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml @@ -8,6 +8,7 @@ log_smooth_window: 20 save_dir: output snapshot_iter: 2000 metric: VOC +map_type: 11point pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_pretrained.tar weights: output/yolov3_darknet_voc/model_final num_classes: 20 diff --git a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml index 4601f68f..8933773e 100644 --- a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml +++ b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml @@ -8,6 +8,7 @@ log_smooth_window: 20 save_dir: output snapshot_iter: 2000 metric: VOC +map_type: 11point pretrain_weights: http://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV1_pretrained.tar weights: output/yolov3_mobilenet_v1_voc/model_final num_classes: 20 diff --git a/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml b/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml index cb8e370b..5bb6a136 100644 --- a/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml +++ b/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml @@ -8,6 +8,7 @@ log_smooth_window: 20 save_dir: output snapshot_iter: 2000 metric: VOC +map_type: 11point pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar weights: output/yolov3_r34_voc/model_final num_classes: 20 diff --git a/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml b/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml index 9f812f17..5a6dc7c2 100644 --- a/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml +++ b/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml @@ -17,8 +17,10 @@ snapshot_iter: 10000 log_smooth_window: 20 # The log in training is displayed once every period. log_iter: 20 -# Evalution method, COCO and VOC are available. +# Evaluation method, COCO and VOC are available. metric: COCO +# Evaluation mAP calculation method in VOC metric, 11point and integral are available. +map_type: 11point # The path of final model for evaluation and test. pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar # The directory to save models. diff --git a/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py b/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py index 9dd7edc1..afd3dbc7 100644 --- a/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py +++ b/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py @@ -96,7 +96,8 @@ def eval_results(results, num_classes, resolution=None, is_bbox_normalized=False, - output_directory=None): + output_directory=None, + map_type='11point'): """Evaluation for evaluation program results""" box_ap_stats = [] if metric == 'COCO': @@ -129,7 +130,9 @@ def eval_results(results, box_ap_stats.append(res * 100.) elif 'bbox' in results[0]: box_ap = voc_bbox_eval( - results, num_classes, is_bbox_normalized=is_bbox_normalized) + results, num_classes, + is_bbox_normalized=is_bbox_normalized, + map_type=map_type) box_ap_stats.append(box_ap) return box_ap_stats diff --git a/PaddleCV/PaddleDetection/tools/eval.py b/PaddleCV/PaddleDetection/tools/eval.py index 264605db..3df77b21 100644 --- a/PaddleCV/PaddleDetection/tools/eval.py +++ b/PaddleCV/PaddleDetection/tools/eval.py @@ -137,7 +137,7 @@ def main(): if 'mask' in results[0]: resolution = model.mask_head.resolution eval_results(results, eval_feed, cfg.metric, cfg.num_classes, resolution, - is_bbox_normalized, FLAGS.output_eval) + is_bbox_normalized, FLAGS.output_eval, cfg.map_type) if __name__ == '__main__': -- GitLab