diff --git a/all_categories.json b/all_categories.json new file mode 100644 index 0000000000000000000000000000000000000000..f5e4ab2052332ac8bb30cad3ffeac0c2b93ab0e3 --- /dev/null +++ b/all_categories.json @@ -0,0 +1,368 @@ +[ + { + "id": 2578, + "name": "water", + "name_readable": "Water", + "supercategory": "food" + }, + { + "id": 2939, + "name": "pizza-margherita-baked", + "name_readable": "Pizza, Margherita, baked", + "supercategory": "food" + }, + { + "id": 1085, + "name": "broccoli", + "name_readable": "Broccoli", + "supercategory": "food" + }, + { + "id": 1040, + "name": "salad-leaf-salad-green", + "name_readable": "Salad, leaf / salad, green", + "supercategory": "food" + }, + { + "id": 1070, + "name": "zucchini", + "name_readable": "Zucchini", + "supercategory": "food" + }, + { + "id": 2022, + "name": "egg", + "name_readable": "Egg", + "supercategory": "food" + }, + { + "id": 2053, + "name": "butter", + "name_readable": "Butter", + "supercategory": "food" + }, + { + "id": 1566, + "name": "bread-white", + "name_readable": "Bread, white", + "supercategory": "food" + }, + { + "id": 1151, + "name": "apple", + "name_readable": "Apple", + "supercategory": "food" + }, + { + "id": 2131, + "name": "dark-chocolate", + "name_readable": "Dark chocolate", + "supercategory": "food" + }, + { + "id": 2521, + "name": "white-coffee-with-caffeine", + "name_readable": "White coffee, with caffeine", + "supercategory": "food" + }, + { + "id": 1068, + "name": "sweet-pepper", + "name_readable": "Sweet pepper", + "supercategory": "food" + }, + { + "id": 1026, + "name": "mixed-salad-chopped-without-sauce", + "name_readable": "Mixed salad (chopped without sauce)", + "supercategory": "food" + }, + { + "id": 2738, + "name": "tomato-sauce", + "name_readable": "Tomato sauce", + "supercategory": "food" + }, + { + "id": 1565, + "name": "bread-wholemeal", + "name_readable": "Bread, wholemeal", + "supercategory": "food" + }, + { + "id": 2512, + "name": "coffee-with-caffeine", + "name_readable": "Coffee, with caffeine", + "supercategory": "food" + }, + { + "id": 1061, + "name": "cucumber", + "name_readable": "Cucumber", + "supercategory": "food" + }, + { + "id": 1311, + "name": "cheese", + "name_readable": "Cheese", + "supercategory": "food" + }, + { + "id": 1505, + "name": "pasta-spaghetti", + "name_readable": "Pasta, spaghetti", + "supercategory": "food" + }, + { + "id": 1468, + "name": "rice", + "name_readable": "Rice", + "supercategory": "food" + }, + { + "id": 1967, + "name": "salmon", + "name_readable": "Salmon", + "supercategory": "food" + }, + { + "id": 1078, + "name": "carrot", + "name_readable": "Carrot", + "supercategory": "food" + }, + { + "id": 1116, + "name": "onion", + "name_readable": "Onion", + "supercategory": "food" + }, + { + "id": 1022, + "name": "mixed-vegetables", + "name_readable": "Mixed vegetables", + "supercategory": "food" + }, + { + "id": 2504, + "name": "espresso-with-caffeine", + "name_readable": "Espresso, with caffeine", + "supercategory": "food" + }, + { + "id": 1154, + "name": "banana", + "name_readable": "Banana", + "supercategory": "food" + }, + { + "id": 1163, + "name": "strawberries", + "name_readable": "Strawberries", + "supercategory": "food" + }, + { + "id": 2750, + "name": "mayonnaise", + "name_readable": "Mayonnaise", + "supercategory": "food" + }, + { + "id": 1210, + "name": "almonds", + "name_readable": "Almonds", + "supercategory": "food" + }, + { + "id": 2620, + "name": "wine-white", + "name_readable": "Wine, white", + "supercategory": "food" + }, + { + "id": 1310, + "name": "hard-cheese", + "name_readable": "Hard cheese", + "supercategory": "food" + }, + { + "id": 1893, + "name": "ham-raw", + "name_readable": "Ham, raw", + "supercategory": "food" + }, + { + "id": 1069, + "name": "tomato", + "name_readable": "Tomato", + "supercategory": "food" + }, + { + "id": 1058, + "name": "french-beans", + "name_readable": "French beans", + "supercategory": "food" + }, + { + "id": 1180, + "name": "mandarine", + "name_readable": "Mandarine", + "supercategory": "food" + }, + { + "id": 2618, + "name": "wine-red", + "name_readable": "Wine, red", + "supercategory": "food" + }, + { + "id": 1010, + "name": "potatoes-steamed", + "name_readable": "Potatoes steamed", + "supercategory": "food" + }, + { + "id": 1588, + "name": "croissant", + "name_readable": "Croissant", + "supercategory": "food" + }, + { + "id": 1879, + "name": "salami", + "name_readable": "Salami", + "supercategory": "food" + }, + { + "id": 3080, + "name": "boisson-au-glucose-50g", + "name_readable": "Boisson au glucose 50g", + "supercategory": "food" + }, + { + "id": 2388, + "name": "biscuits", + "name_readable": "Biscuits", + "supercategory": "food" + }, + { + "id": 1108, + "name": "corn", + "name_readable": "Corn", + "supercategory": "food" + }, + { + "id": 1032, + "name": "leaf-spinach", + "name_readable": "Leaf spinach", + "supercategory": "food" + }, + { + "id": 2099, + "name": "jam", + "name_readable": "Jam", + "supercategory": "food" + }, + { + "id": 2530, + "name": "tea-green", + "name_readable": "Tea, green", + "supercategory": "food" + }, + { + "id": 1013, + "name": "chips-french-fries", + "name_readable": "Chips, french fries", + "supercategory": "food" + }, + { + "id": 1323, + "name": "parmesan", + "name_readable": "Parmesan", + "supercategory": "food" + }, + { + "id": 2634, + "name": "beer", + "name_readable": "Beer", + "supercategory": "food" + }, + { + "id": 1056, + "name": "avocado", + "name_readable": "Avocado", + "supercategory": "food" + }, + { + "id": 1520, + "name": "bread-french-white-flour", + "name_readable": "Bread, French (white flour)", + "supercategory": "food" + }, + { + "id": 1788, + "name": "chicken", + "name_readable": "Chicken", + "supercategory": "food" + }, + { + "id": 1352, + "name": "soft-cheese", + "name_readable": "Soft cheese", + "supercategory": "food" + }, + { + "id": 2498, + "name": "tea", + "name_readable": "Tea", + "supercategory": "food" + }, + { + "id": 2711, + "name": "sauce-savoury", + "name_readable": "Sauce (savoury)", + "supercategory": "food" + }, + { + "id": 2103, + "name": "honey", + "name_readable": "Honey", + "supercategory": "food" + }, + { + "id": 1554, + "name": "bread-whole-wheat", + "name_readable": "Bread, whole wheat", + "supercategory": "food" + }, + { + "id": 1556, + "name": "bread-sourdough", + "name_readable": "Bread, sourdough", + "supercategory": "food" + }, + { + "id": 1307, + "name": "gruyere", + "name_readable": "Gruyère", + "supercategory": "food" + }, + { + "id": 1060, + "name": "pickle", + "name_readable": "Pickle", + "supercategory": "food" + }, + { + "id": 1220, + "name": "mixed-nuts", + "name_readable": "Mixed nuts", + "supercategory": "food" + }, + { + "id": 2580, + "name": "water-mineral", + "name_readable": "Water, mineral", + "supercategory": "food" + } + ] diff --git a/run.sh b/run.sh index bacd560b06054c1558a5bcd604b08b30c3641b97..23dc1f15569fe3cd4ebca6daeb1d0d06c7fdee10 100644 --- a/run.sh +++ b/run.sh @@ -1,3 +1,3 @@ #!/bin/bash -python tools/test.py configs/htc_r50.py epoch_20.pth --json_out $AICROWD_PREDICTIONS_OUTPUT_PATH +python tools/infer.py configs/htc_r50.py epoch_20.pth --json_out $AICROWD_PREDICTIONS_OUTPUT_PATH diff --git a/test.py b/test.py deleted file mode 100644 index fe8480fe39399e5658fbd3501939d83cd6d31f81..0000000000000000000000000000000000000000 --- a/test.py +++ /dev/null @@ -1,612 +0,0 @@ -import argparse -import os -import os.path as osp -import pickle -import shutil -import tempfile - -import mmcv -import torch -import torch.distributed as dist -from mmcv.parallel import MMDataParallel, MMDistributedDataParallel -from mmcv.runner import get_dist_info, init_dist, load_checkpoint - -from mmdet.core import coco_eval, results2json, wrap_fp16_model -from mmdet.datasets import build_dataloader, build_dataset -from mmdet.models import build_detector -import glob -import json - -test_images_path = os.getenv("AICROWD_TEST_IMAGES_PATH", False) -predictions_output_path = os.getenv("AICROWD_PREDICTIONS_OUTPUT_PATH", False) - - - -annotations = {'categories': [], 'info': {}, 'images': []} - - -for item in glob.glob(test_images_path+'/*.jpg'): - image_dict = dict() - - img = mmcv.imread(item) - height,width,__ = img.shape - id = int(os.path.basename(item).split('.')[0]) - image_dict['id'] = id - image_dict['file_name'] = os.path.basename(item) - image_dict['width'] = width - image_dict['height'] = height - annotations['images'].append(image_dict) -annotations['categories'] = [ - { - "id": 2578, - "name": "water", - "name_readable": "Water", - "supercategory": "food" - }, - { - "id": 2939, - "name": "pizza-margherita-baked", - "name_readable": "Pizza, Margherita, baked", - "supercategory": "food" - }, - { - "id": 1085, - "name": "broccoli", - "name_readable": "Broccoli", - "supercategory": "food" - }, - { - "id": 1040, - "name": "salad-leaf-salad-green", - "name_readable": "Salad, leaf / salad, green", - "supercategory": "food" - }, - { - "id": 1070, - "name": "zucchini", - "name_readable": "Zucchini", - "supercategory": "food" - }, - { - "id": 2022, - "name": "egg", - "name_readable": "Egg", - "supercategory": "food" - }, - { - "id": 2053, - "name": "butter", - "name_readable": "Butter", - "supercategory": "food" - }, - { - "id": 1566, - "name": "bread-white", - "name_readable": "Bread, white", - "supercategory": "food" - }, - { - "id": 1151, - "name": "apple", - "name_readable": "Apple", - "supercategory": "food" - }, - { - "id": 2131, - "name": "dark-chocolate", - "name_readable": "Dark chocolate", - "supercategory": "food" - }, - { - "id": 2521, - "name": "white-coffee-with-caffeine", - "name_readable": "White coffee, with caffeine", - "supercategory": "food" - }, - { - "id": 1068, - "name": "sweet-pepper", - "name_readable": "Sweet pepper", - "supercategory": "food" - }, - { - "id": 1026, - "name": "mixed-salad-chopped-without-sauce", - "name_readable": "Mixed salad (chopped without sauce)", - "supercategory": "food" - }, - { - "id": 2738, - "name": "tomato-sauce", - "name_readable": "Tomato sauce", - "supercategory": "food" - }, - { - "id": 1565, - "name": "bread-wholemeal", - "name_readable": "Bread, wholemeal", - "supercategory": "food" - }, - { - "id": 2512, - "name": "coffee-with-caffeine", - "name_readable": "Coffee, with caffeine", - "supercategory": "food" - }, - { - "id": 1061, - "name": "cucumber", - "name_readable": "Cucumber", - "supercategory": "food" - }, - { - "id": 1311, - "name": "cheese", - "name_readable": "Cheese", - "supercategory": "food" - }, - { - "id": 1505, - "name": "pasta-spaghetti", - "name_readable": "Pasta, spaghetti", - "supercategory": "food" - }, - { - "id": 1468, - "name": "rice", - "name_readable": "Rice", - "supercategory": "food" - }, - { - "id": 1967, - "name": "salmon", - "name_readable": "Salmon", - "supercategory": "food" - }, - { - "id": 1078, - "name": "carrot", - "name_readable": "Carrot", - "supercategory": "food" - }, - { - "id": 1116, - "name": "onion", - "name_readable": "Onion", - "supercategory": "food" - }, - { - "id": 1022, - "name": "mixed-vegetables", - "name_readable": "Mixed vegetables", - "supercategory": "food" - }, - { - "id": 2504, - "name": "espresso-with-caffeine", - "name_readable": "Espresso, with caffeine", - "supercategory": "food" - }, - { - "id": 1154, - "name": "banana", - "name_readable": "Banana", - "supercategory": "food" - }, - { - "id": 1163, - "name": "strawberries", - "name_readable": "Strawberries", - "supercategory": "food" - }, - { - "id": 2750, - "name": "mayonnaise", - "name_readable": "Mayonnaise", - "supercategory": "food" - }, - { - "id": 1210, - "name": "almonds", - "name_readable": "Almonds", - "supercategory": "food" - }, - { - "id": 2620, - "name": "wine-white", - "name_readable": "Wine, white", - "supercategory": "food" - }, - { - "id": 1310, - "name": "hard-cheese", - "name_readable": "Hard cheese", - "supercategory": "food" - }, - { - "id": 1893, - "name": "ham-raw", - "name_readable": "Ham, raw", - "supercategory": "food" - }, - { - "id": 1069, - "name": "tomato", - "name_readable": "Tomato", - "supercategory": "food" - }, - { - "id": 1058, - "name": "french-beans", - "name_readable": "French beans", - "supercategory": "food" - }, - { - "id": 1180, - "name": "mandarine", - "name_readable": "Mandarine", - "supercategory": "food" - }, - { - "id": 2618, - "name": "wine-red", - "name_readable": "Wine, red", - "supercategory": "food" - }, - { - "id": 1010, - "name": "potatoes-steamed", - "name_readable": "Potatoes steamed", - "supercategory": "food" - }, - { - "id": 1588, - "name": "croissant", - "name_readable": "Croissant", - "supercategory": "food" - }, - { - "id": 1879, - "name": "salami", - "name_readable": "Salami", - "supercategory": "food" - }, - { - "id": 3080, - "name": "boisson-au-glucose-50g", - "name_readable": "Boisson au glucose 50g", - "supercategory": "food" - }, - { - "id": 2388, - "name": "biscuits", - "name_readable": "Biscuits", - "supercategory": "food" - }, - { - "id": 1108, - "name": "corn", - "name_readable": "Corn", - "supercategory": "food" - }, - { - "id": 1032, - "name": "leaf-spinach", - "name_readable": "Leaf spinach", - "supercategory": "food" - }, - { - "id": 2099, - "name": "jam", - "name_readable": "Jam", - "supercategory": "food" - }, - { - "id": 2530, - "name": "tea-green", - "name_readable": "Tea, green", - "supercategory": "food" - }, - { - "id": 1013, - "name": "chips-french-fries", - "name_readable": "Chips, french fries", - "supercategory": "food" - }, - { - "id": 1323, - "name": "parmesan", - "name_readable": "Parmesan", - "supercategory": "food" - }, - { - "id": 2634, - "name": "beer", - "name_readable": "Beer", - "supercategory": "food" - }, - { - "id": 1056, - "name": "avocado", - "name_readable": "Avocado", - "supercategory": "food" - }, - { - "id": 1520, - "name": "bread-french-white-flour", - "name_readable": "Bread, French (white flour)", - "supercategory": "food" - }, - { - "id": 1788, - "name": "chicken", - "name_readable": "Chicken", - "supercategory": "food" - }, - { - "id": 1352, - "name": "soft-cheese", - "name_readable": "Soft cheese", - "supercategory": "food" - }, - { - "id": 2498, - "name": "tea", - "name_readable": "Tea", - "supercategory": "food" - }, - { - "id": 2711, - "name": "sauce-savoury", - "name_readable": "Sauce (savoury)", - "supercategory": "food" - }, - { - "id": 2103, - "name": "honey", - "name_readable": "Honey", - "supercategory": "food" - }, - { - "id": 1554, - "name": "bread-whole-wheat", - "name_readable": "Bread, whole wheat", - "supercategory": "food" - }, - { - "id": 1556, - "name": "bread-sourdough", - "name_readable": "Bread, sourdough", - "supercategory": "food" - }, - { - "id": 1307, - "name": "gruyere", - "name_readable": "Gruyère", - "supercategory": "food" - }, - { - "id": 1060, - "name": "pickle", - "name_readable": "Pickle", - "supercategory": "food" - }, - { - "id": 1220, - "name": "mixed-nuts", - "name_readable": "Mixed nuts", - "supercategory": "food" - }, - { - "id": 2580, - "name": "water-mineral", - "name_readable": "Water, mineral", - "supercategory": "food" - } - ] -json.dump(annotations, open('test.json', 'w')) - - -def single_gpu_test(model, data_loader, show=False): - model.eval() - results = [] - dataset = data_loader.dataset - prog_bar = mmcv.ProgressBar(len(dataset)) - for i, data in enumerate(data_loader): - with torch.no_grad(): - result = model(return_loss=False, rescale=not show, **data) - results.append(result) - if show: - model.module.show_result(data, result) - - batch_size = data['img'][0].size(0) - for _ in range(batch_size): - prog_bar.update() - return results - - -def multi_gpu_test(model, data_loader, tmpdir=None): - model.eval() - results = [] - dataset = data_loader.dataset - rank, world_size = get_dist_info() - if rank == 0: - prog_bar = mmcv.ProgressBar(len(dataset)) - for i, data in enumerate(data_loader): - with torch.no_grad(): - result = model(return_loss=False, rescale=True, **data) - results.append(result) - - if rank == 0: - batch_size = data['img'][0].size(0) - for _ in range(batch_size * world_size): - prog_bar.update() - - # collect results from all ranks - results = collect_results(results, len(dataset), tmpdir) - - return results - - -def collect_results(result_part, size, tmpdir=None): - rank, world_size = get_dist_info() - # create a tmp dir if it is not specified - if tmpdir is None: - MAX_LEN = 512 - # 32 is whitespace - dir_tensor = torch.full((MAX_LEN, ), - 32, - dtype=torch.uint8, - device='cuda') - if rank == 0: - tmpdir = tempfile.mkdtemp() - tmpdir = torch.tensor( - bytearray(tmpdir.encode()), dtype=torch.uint8, device='cuda') - dir_tensor[:len(tmpdir)] = tmpdir - dist.broadcast(dir_tensor, 0) - tmpdir = dir_tensor.cpu().numpy().tobytes().decode().rstrip() - else: - mmcv.mkdir_or_exist(tmpdir) - # dump the part result to the dir - mmcv.dump(result_part, osp.join(tmpdir, 'part_{}.pkl'.format(rank))) - dist.barrier() - # collect all parts - if rank != 0: - return None - else: - # load results of all parts from tmp dir - part_list = [] - for i in range(world_size): - part_file = osp.join(tmpdir, 'part_{}.pkl'.format(i)) - part_list.append(mmcv.load(part_file)) - # sort the results - ordered_results = [] - for res in zip(*part_list): - ordered_results.extend(list(res)) - # the dataloader may pad some samples - ordered_results = ordered_results[:size] - # remove tmp dir - shutil.rmtree(tmpdir) - return ordered_results - - -def parse_args(): - parser = argparse.ArgumentParser(description='MMDet test detector') - parser.add_argument('config', help='test config file path') - parser.add_argument('checkpoint', help='checkpoint file') - parser.add_argument('--out', help='output result file') - parser.add_argument( - '--json_out', - help='output result file name without extension', - type=str) - parser.add_argument( - '--eval', - type=str, - nargs='+', - choices=['proposal', 'proposal_fast', 'bbox', 'segm', 'keypoints'], - help='eval types') - parser.add_argument('--show', action='store_true', help='show results') - parser.add_argument('--tmpdir', help='tmp dir for writing some results') - parser.add_argument( - '--launcher', - choices=['none', 'pytorch', 'slurm', 'mpi'], - default='none', - help='job launcher') - parser.add_argument('--local_rank', type=int, default=0) - args = parser.parse_args() - if 'LOCAL_RANK' not in os.environ: - os.environ['LOCAL_RANK'] = str(args.local_rank) - return args - - -def main(): - args = parse_args() - - assert args.out or args.show or args.json_out, \ - ('Please specify at least one operation (save or show the results) ' - 'with the argument "--out" or "--show" or "--json_out"') - - if args.out is not None and not args.out.endswith(('.pkl', '.pickle')): - raise ValueError('The output file must be a pkl file.') - - if args.json_out is not None and args.json_out.endswith('.json'): - args.json_out = args.json_out[:-5] - - cfg = mmcv.Config.fromfile(args.config) - # set cudnn_benchmark - if cfg.get('cudnn_benchmark', False): - torch.backends.cudnn.benchmark = True - cfg.model.pretrained = None - cfg.data.test.test_mode = True - cfg.data.test.ann_file = 'test.json' - cfg.data.test.img_prefix = test_images_path - - # init distributed env first, since logger depends on the dist info. - if args.launcher == 'none': - distributed = False - else: - distributed = True - init_dist(args.launcher, **cfg.dist_params) - - # build the dataloader - # TODO: support multiple images per gpu (only minor changes are needed) - dataset = build_dataset(cfg.data.test) - data_loader = build_dataloader( - dataset, - imgs_per_gpu=1, - workers_per_gpu=cfg.data.workers_per_gpu, - dist=distributed, - shuffle=False) - - # build the model and load checkpoint - model = build_detector(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg) - fp16_cfg = cfg.get('fp16', None) - if fp16_cfg is not None: - wrap_fp16_model(model) - checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu') - # old versions did not save class info in checkpoints, this walkaround is - # for backward compatibility - model.CLASSES = [category['name'] for category in annotations['categories']] - if not distributed: - model = MMDataParallel(model, device_ids=[0]) - outputs = single_gpu_test(model, data_loader, args.show) - else: - model = MMDistributedDataParallel(model.cuda()) - outputs = multi_gpu_test(model, data_loader, args.tmpdir) - - rank, _ = get_dist_info() - if args.out and rank == 0: - print('\nwriting results to {}'.format(args.out)) - mmcv.dump(outputs, args.out) - eval_types = args.eval - if eval_types: - print('Starting evaluate {}'.format(' and '.join(eval_types))) - if eval_types == ['proposal_fast']: - result_file = args.out - coco_eval(result_file, eval_types, dataset.coco) - else: - if not isinstance(outputs[0], dict): - result_files = results2json(dataset, outputs, args.out) - coco_eval(result_files, eval_types, dataset.coco) - else: - for name in outputs[0]: - print('\nEvaluating {}'.format(name)) - outputs_ = [out[name] for out in outputs] - result_file = args.out + '.{}'.format(name) - result_files = results2json(dataset, outputs_, - result_file) - coco_eval(result_files, eval_types, dataset.coco) - print(args.json_out, rank) - if outputs and args.json_out and rank == 0: - if not isinstance(outputs[0], dict): - response = results2json(dataset, outputs, args.json_out) - else: - for name in outputs[0]: - outputs_ = [out[name] for out in outputs] - result_file = args.json_out + '.{}'.format(name) - response = results2json(dataset, outputs_, result_file) - shutil.move(response['segm'], predictions_output_path) - -if __name__ == '__main__': - main() - diff --git a/tools/test.py b/tools/infer.py similarity index 58% rename from tools/test.py rename to tools/infer.py index 324ff11fe5075b93ad865e6509f687bb29fbdaff..40b2a6739458d9334a0dd8e0e67f244207bdf399 100644 --- a/tools/test.py +++ b/tools/infer.py @@ -22,7 +22,7 @@ print(predictions_output_path) annotations = {'categories': [], 'info': {}, 'images': []} for item in glob.glob(test_images_path+'/*.jpg'): image_dict = dict() - + img = mmcv.imread(item) height,width,__ = img.shape id = int(os.path.basename(item).split('.')[0]) @@ -31,375 +31,8 @@ for item in glob.glob(test_images_path+'/*.jpg'): image_dict['width'] = width image_dict['height'] = height annotations['images'].append(image_dict) -annotations['categories'] = [ - { - "id": 2578, - "name": "water", - "name_readable": "Water", - "supercategory": "food" - }, - { - "id": 2939, - "name": "pizza-margherita-baked", - "name_readable": "Pizza, Margherita, baked", - "supercategory": "food" - }, - { - "id": 1085, - "name": "broccoli", - "name_readable": "Broccoli", - "supercategory": "food" - }, - { - "id": 1040, - "name": "salad-leaf-salad-green", - "name_readable": "Salad, leaf / salad, green", - "supercategory": "food" - }, - { - "id": 1070, - "name": "zucchini", - "name_readable": "Zucchini", - "supercategory": "food" - }, - { - "id": 2022, - "name": "egg", - "name_readable": "Egg", - "supercategory": "food" - }, - { - "id": 2053, - "name": "butter", - "name_readable": "Butter", - "supercategory": "food" - }, - { - "id": 1566, - "name": "bread-white", - "name_readable": "Bread, white", - "supercategory": "food" - }, - { - "id": 1151, - "name": "apple", - "name_readable": "Apple", - "supercategory": "food" - }, - { - "id": 2131, - "name": "dark-chocolate", - "name_readable": "Dark chocolate", - "supercategory": "food" - }, - { - "id": 2521, - "name": "white-coffee-with-caffeine", - "name_readable": "White coffee, with caffeine", - "supercategory": "food" - }, - { - "id": 1068, - "name": "sweet-pepper", - "name_readable": "Sweet pepper", - "supercategory": "food" - }, - { - "id": 1026, - "name": "mixed-salad-chopped-without-sauce", - "name_readable": "Mixed salad (chopped without sauce)", - "supercategory": "food" - }, - { - "id": 2738, - "name": "tomato-sauce", - "name_readable": "Tomato sauce", - "supercategory": "food" - }, - { - "id": 1565, - "name": "bread-wholemeal", - "name_readable": "Bread, wholemeal", - "supercategory": "food" - }, - { - "id": 2512, - "name": "coffee-with-caffeine", - "name_readable": "Coffee, with caffeine", - "supercategory": "food" - }, - { - "id": 1061, - "name": "cucumber", - "name_readable": "Cucumber", - "supercategory": "food" - }, - { - "id": 1311, - "name": "cheese", - "name_readable": "Cheese", - "supercategory": "food" - }, - { - "id": 1505, - "name": "pasta-spaghetti", - "name_readable": "Pasta, spaghetti", - "supercategory": "food" - }, - { - "id": 1468, - "name": "rice", - "name_readable": "Rice", - "supercategory": "food" - }, - { - "id": 1967, - "name": "salmon", - "name_readable": "Salmon", - "supercategory": "food" - }, - { - "id": 1078, - "name": "carrot", - "name_readable": "Carrot", - "supercategory": "food" - }, - { - "id": 1116, - "name": "onion", - "name_readable": "Onion", - "supercategory": "food" - }, - { - "id": 1022, - "name": "mixed-vegetables", - "name_readable": "Mixed vegetables", - "supercategory": "food" - }, - { - "id": 2504, - "name": "espresso-with-caffeine", - "name_readable": "Espresso, with caffeine", - "supercategory": "food" - }, - { - "id": 1154, - "name": "banana", - "name_readable": "Banana", - "supercategory": "food" - }, - { - "id": 1163, - "name": "strawberries", - "name_readable": "Strawberries", - "supercategory": "food" - }, - { - "id": 2750, - "name": "mayonnaise", - "name_readable": "Mayonnaise", - "supercategory": "food" - }, - { - "id": 1210, - "name": "almonds", - "name_readable": "Almonds", - "supercategory": "food" - }, - { - "id": 2620, - "name": "wine-white", - "name_readable": "Wine, white", - "supercategory": "food" - }, - { - "id": 1310, - "name": "hard-cheese", - "name_readable": "Hard cheese", - "supercategory": "food" - }, - { - "id": 1893, - "name": "ham-raw", - "name_readable": "Ham, raw", - "supercategory": "food" - }, - { - "id": 1069, - "name": "tomato", - "name_readable": "Tomato", - "supercategory": "food" - }, - { - "id": 1058, - "name": "french-beans", - "name_readable": "French beans", - "supercategory": "food" - }, - { - "id": 1180, - "name": "mandarine", - "name_readable": "Mandarine", - "supercategory": "food" - }, - { - "id": 2618, - "name": "wine-red", - "name_readable": "Wine, red", - "supercategory": "food" - }, - { - "id": 1010, - "name": "potatoes-steamed", - "name_readable": "Potatoes steamed", - "supercategory": "food" - }, - { - "id": 1588, - "name": "croissant", - "name_readable": "Croissant", - "supercategory": "food" - }, - { - "id": 1879, - "name": "salami", - "name_readable": "Salami", - "supercategory": "food" - }, - { - "id": 3080, - "name": "boisson-au-glucose-50g", - "name_readable": "Boisson au glucose 50g", - "supercategory": "food" - }, - { - "id": 2388, - "name": "biscuits", - "name_readable": "Biscuits", - "supercategory": "food" - }, - { - "id": 1108, - "name": "corn", - "name_readable": "Corn", - "supercategory": "food" - }, - { - "id": 1032, - "name": "leaf-spinach", - "name_readable": "Leaf spinach", - "supercategory": "food" - }, - { - "id": 2099, - "name": "jam", - "name_readable": "Jam", - "supercategory": "food" - }, - { - "id": 2530, - "name": "tea-green", - "name_readable": "Tea, green", - "supercategory": "food" - }, - { - "id": 1013, - "name": "chips-french-fries", - "name_readable": "Chips, french fries", - "supercategory": "food" - }, - { - "id": 1323, - "name": "parmesan", - "name_readable": "Parmesan", - "supercategory": "food" - }, - { - "id": 2634, - "name": "beer", - "name_readable": "Beer", - "supercategory": "food" - }, - { - "id": 1056, - "name": "avocado", - "name_readable": "Avocado", - "supercategory": "food" - }, - { - "id": 1520, - "name": "bread-french-white-flour", - "name_readable": "Bread, French (white flour)", - "supercategory": "food" - }, - { - "id": 1788, - "name": "chicken", - "name_readable": "Chicken", - "supercategory": "food" - }, - { - "id": 1352, - "name": "soft-cheese", - "name_readable": "Soft cheese", - "supercategory": "food" - }, - { - "id": 2498, - "name": "tea", - "name_readable": "Tea", - "supercategory": "food" - }, - { - "id": 2711, - "name": "sauce-savoury", - "name_readable": "Sauce (savoury)", - "supercategory": "food" - }, - { - "id": 2103, - "name": "honey", - "name_readable": "Honey", - "supercategory": "food" - }, - { - "id": 1554, - "name": "bread-whole-wheat", - "name_readable": "Bread, whole wheat", - "supercategory": "food" - }, - { - "id": 1556, - "name": "bread-sourdough", - "name_readable": "Bread, sourdough", - "supercategory": "food" - }, - { - "id": 1307, - "name": "gruyere", - "name_readable": "Gruyère", - "supercategory": "food" - }, - { - "id": 1060, - "name": "pickle", - "name_readable": "Pickle", - "supercategory": "food" - }, - { - "id": 1220, - "name": "mixed-nuts", - "name_readable": "Mixed nuts", - "supercategory": "food" - }, - { - "id": 2580, - "name": "water-mineral", - "name_readable": "Water, mineral", - "supercategory": "food" - } - ] -json.dump(annotations, open('test.json', 'w')) +annotations['categories'] = json.loads(open("all_categories.json").read()) +json.dump(annotations, open('test_annotations.json', 'w')) def single_gpu_test(model, data_loader, show=False): @@ -591,7 +224,7 @@ def main(): torch.backends.cudnn.benchmark = True cfg.model.pretrained = None cfg.data.test.test_mode = True - cfg.data.test.ann_file = 'test.json' + cfg.data.test.ann_file = 'test_annotations.json' cfg.data.test.img_prefix = test_images_path # init distributed env first, since logger depends on the dist info. if args.launcher == 'none':