From f911f34a56f3360658eb369cb74c9740fee44cbc Mon Sep 17 00:00:00 2001 From: Kaipeng Deng Date: Wed, 23 Oct 2019 15:19:17 +0800 Subject: [PATCH] fix detect use io.open (#3728) --- PaddleCV/rcnn/eval_coco_map.py | 9 +++++---- PaddleCV/ssd/data/pascalvoc/download.py | 7 ++++--- PaddleCV/ssd/eval_coco_map.py | 5 +++-- PaddleCV/yolov3/eval.py | 5 +++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/PaddleCV/rcnn/eval_coco_map.py b/PaddleCV/rcnn/eval_coco_map.py index 6baf30f0..019bd877 100644 --- a/PaddleCV/rcnn/eval_coco_map.py +++ b/PaddleCV/rcnn/eval_coco_map.py @@ -16,6 +16,7 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function import os +import io import time import numpy as np from eval_helper import * @@ -116,8 +117,8 @@ def eval(): segms_res) > 0, "The number of valid mask detected is zero.\n \ Please use reasonable model and check input data." - with open("detection_bbox_result.json", 'w') as outfile: - json.dump(dts_res, outfile) + with io.open("detection_bbox_result.json", 'w') as outfile: + outfile.write(unicode(json.dumps(dts_res))) print("start evaluate bbox using coco api") cocoDt = cocoGt.loadRes("detection_bbox_result.json") cocoEval = COCOeval(cocoGt, cocoDt, 'bbox') @@ -126,8 +127,8 @@ def eval(): cocoEval.summarize() if cfg.MASK_ON: - with open("detection_segms_result.json", 'w') as outfile: - json.dump(segms_res, outfile) + with io.open("detection_segms_result.json", 'w') as outfile: + outfile.write(unicode(json.dumps(segms_res))) print("start evaluate mask using coco api") cocoDt = cocoGt.loadRes("detection_segms_result.json") cocoEval = COCOeval(cocoGt, cocoDt, 'segm') diff --git a/PaddleCV/ssd/data/pascalvoc/download.py b/PaddleCV/ssd/data/pascalvoc/download.py index d4f8b7f3..7e652c29 100644 --- a/PaddleCV/ssd/data/pascalvoc/download.py +++ b/PaddleCV/ssd/data/pascalvoc/download.py @@ -15,6 +15,7 @@ import os import os.path as osp import sys +import io import re import random import tarfile @@ -63,7 +64,7 @@ def walk_dir(devkit_dir, year): else: continue fpath = osp.join(filelist_dir, fname) - for line in open(fpath): + for line in io.open(fpath): name_prefix = line.strip().split()[0] if name_prefix in added: continue @@ -85,11 +86,11 @@ def prepare_filelist(devkit_dir, years, output_dir): trainval_list.extend(trainval) test_list.extend(test) random.shuffle(trainval_list) - with open(osp.join(output_dir, 'trainval.txt'), 'w') as ftrainval: + with io.open(osp.join(output_dir, 'trainval.txt'), 'w') as ftrainval: for item in trainval_list: ftrainval.write(item[0] + ' ' + item[1] + '\n') - with open(osp.join(output_dir, 'test.txt'), 'w') as ftest: + with io.open(osp.join(output_dir, 'test.txt'), 'w') as ftest: for item in test_list: ftest.write(item[0] + ' ' + item[1] + '\n') diff --git a/PaddleCV/ssd/eval_coco_map.py b/PaddleCV/ssd/eval_coco_map.py index bccba408..e43391de 100644 --- a/PaddleCV/ssd/eval_coco_map.py +++ b/PaddleCV/ssd/eval_coco_map.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import os +import io import time import numpy as np import argparse @@ -128,8 +129,8 @@ def eval(args, data_args, test_list, batch_size, model_dir=None): print("Batch {0}".format(batch_id)) dts_res += get_dt_res(nmsed_out_v, data) - with open("detection_result.json", 'w') as outfile: - json.dump(dts_res, outfile) + with io.open("detection_result.json", 'w') as outfile: + outfile.write(unicode(json.dumps(dts_res))) print("start evaluate using coco api") cocoGt = COCO(os.path.join(data_args.data_dir, test_list)) cocoDt = cocoGt.loadRes("detection_result.json") diff --git a/PaddleCV/yolov3/eval.py b/PaddleCV/yolov3/eval.py index 1d3e0844..e2b2bc55 100644 --- a/PaddleCV/yolov3/eval.py +++ b/PaddleCV/yolov3/eval.py @@ -16,6 +16,7 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function import os +import io import time import json import numpy as np @@ -113,8 +114,8 @@ def eval(): print("batch id: {}, time: {}".format(batch_id, end_time - start_time)) total_time += end_time - start_time - with open("yolov3_result.json", 'w') as outfile: - json.dump(dts_res, outfile) + with io.open("yolov3_result.json", 'w') as outfile: + outfile.write(unicode(json.dumps(dts_res))) print("start evaluate detection result with coco api") coco = COCO(os.path.join(cfg.data_dir, test_list)) cocoDt = coco.loadRes("yolov3_result.json") -- GitLab