コード例 #1
0
def parse_args():
    parser = argparse.ArgumentParser()

    parser.add_argument(
        '--checkpoint',
        type=str,
        required=True,
        help='The path to the checkpoint. '
        'This can be a relative path (relative to cfg.INTERACTIVE_MODELS_PATH) '
        'or an absolute path. The file extension can be omitted.')

    parser.add_argument('--n-clicks',
                        type=int,
                        default=100,
                        help='Maximum number of input clicks for the model.')

    parser.add_argument('--gpu', type=int, default=0, help='Id of GPU to use.')

    parser.add_argument('--cfg',
                        type=str,
                        default="config.yml",
                        help='The path to the config file.')

    args = parser.parse_args()
    args.device = torch.device(f'cuda:{args.gpu}')
    cfg = exp.load_config_file(args.cfg, return_edict=True)

    return args, cfg
コード例 #2
0
def parse_args():
    parser = argparse.ArgumentParser()

    parser.add_argument('--checkpoint', type=str, required=True,
                        help='The path to the checkpoint. '
                             'This can be a relative path (relative to cfg.INTERACTIVE_MODELS_PATH) '
                             'or an absolute path. The file extension can be omitted.')

    parser.add_argument('--gpu', type=int, default=0,
                        help='Id of GPU to use.')

    parser.add_argument('--cpu', action='store_true', default=False,
                        help='Use only CPU for inference.')

    parser.add_argument('--limit-longest-size', type=int, default=800,
                        help='If the largest side of an image exceeds this value, '
                             'it is resized so that its largest side is equal to this value.')

    parser.add_argument('--norm-radius', type=int, default=260)

    parser.add_argument('--cfg', type=str, default="config.yml",
                        help='The path to the config file.')

    args = parser.parse_args()
    if args.cpu:
        args.device =torch.device('cpu')
    else:
        args.device = torch.device(f'cuda:{args.gpu}')
    cfg = exp.load_config_file(args.cfg, return_edict=True)

    return args, cfg
コード例 #3
0
def parse_args():
    parser = argparse.ArgumentParser()

    group_pkl_path = parser.add_mutually_exclusive_group(required=True)
    group_pkl_path.add_argument('--folder', type=str, default=None,
                                help='Path to folder with .pickle files.')
    group_pkl_path.add_argument('--files', nargs='+', default=None,
                                help='List of paths to .pickle files separated by space.')
    group_pkl_path.add_argument('--model-dirs', nargs='+', default=None,
                                help="List of paths to model directories with 'plots' folder "
                                     "containing .pickle files separated by space.")
    group_pkl_path.add_argument('--exp-models', nargs='+', default=None,
                                help='List of experiments paths suffixes (relative to cfg.EXPS_PATH/evaluation_logs). '
                                     'For each experiment, the checkpoint prefix must be specified '
                                     'by using the ":" delimiter at the end.')

    parser.add_argument('--mode', choices=['NoBRS', 'RGB-BRS', 'DistMap-BRS',
                                           'f-BRS-A', 'f-BRS-B', 'f-BRS-C'],
                        default=None, nargs='*', help='')
    parser.add_argument('--datasets', type=str, default='GrabCut,Berkeley,DAVIS,COCO_MVal,SBD',
                        help='List of datasets for plotting the iou analysis'
                             'Datasets are separated by a comma. Possible choices: '
                             'GrabCut, Berkeley, DAVIS, COCO_MVal, SBD')
    parser.add_argument('--config-path', type=str, default='./config.yml',
                        help='The path to the config file.')
    parser.add_argument('--n-clicks', type=int, default=-1,
                        help='Maximum number of clicks to plot.')
    parser.add_argument('--plots-path', type=str, default='',
                        help='The path to the evaluation logs. '
                             'Default path: cfg.EXPS_PATH/evaluation_logs/iou_analysis.')

    args = parser.parse_args()

    cfg = load_config_file(args.config_path, return_edict=True)
    cfg.EXPS_PATH = Path(cfg.EXPS_PATH)

    args.datasets = args.datasets.split(',')
    if args.plots_path == '':
        args.plots_path = cfg.EXPS_PATH / 'evaluation_logs/iou_analysis'
    else:
        args.plots_path = Path(args.plots_path)
    print(args.plots_path)
    args.plots_path.mkdir(parents=True, exist_ok=True)

    return args, cfg
コード例 #4
0
def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('mode', choices=['NoBRS', 'RGB-BRS', 'DistMap-BRS',
                                         'f-BRS-A', 'f-BRS-B', 'f-BRS-C'],
                        help='')
    parser.add_argument('--checkpoint', type=str, required=True,
                        help='The path to the checkpoint. '
                             'This can be a relative path (relative to cfg.INTERACTIVE_MODELS_PATH) '
                             'or an absolute path. The file extension can be omitted.')
    parser.add_argument('--datasets', type=str, default='GrabCut,Berkeley,DAVIS,COCO_MVal,SBD',
                        help='List of datasets on which the model should be tested. '
                             'Datasets are separated by a comma. Possible choices: '
                             'GrabCut, Berkeley, DAVIS, COCO_MVal, SBD')
    parser.add_argument('--n-clicks', type=int, default=20,
                        help='Maximum number of clicks for the NoC metric.')
    parser.add_argument('--gpus', type=str, default='0',
                        help='ID of used GPU.')
    parser.add_argument('--cpu', action='store_true', default=False,
                        help='Use only CPU for inference.')
    parser.add_argument('--thresh', type=float, required=False, default=0.49,
                        help='The segmentation mask is obtained from the probability outputs using this threshold.')
    parser.add_argument('--target-iou', type=float, default=0.90,
                        help='Target IoU threshold for the NoC metric. (min possible value = 0.8)')
    parser.add_argument('--config-path', type=str, default='./config.yml',
                        help='The path to the config file.')
    parser.add_argument('--logs-path', type=str, default='',
                        help='The path to the evaluation logs. Default path: cfg.EXPS_PATH/evaluation_logs.')

    args = parser.parse_args()
    if args.cpu:
        args.device = torch.device('cpu')
    else:
        args.device = [torch.device(f'cuda:{x}') for x in args.gpus.split(',')][0]
    args.target_iou = max(0.8, args.target_iou)

    cfg = load_config_file(args.config_path, return_edict=True)

    if args.logs_path == '':
        args.logs_path = Path(cfg.EXPS_PATH) / 'evaluation_logs'
    else:
        args.logs_path = Path(args.logs_path)

    return args, cfg
コード例 #5
0
def parse_args():
    parser = argparse.ArgumentParser()

    parser.add_argument('dataset',
                        choices=['openimages', 'ade20k', 'coco_lvis'],
                        help='')
    parser.add_argument('--split',
                        nargs='+',
                        choices=['train', 'val', 'test'],
                        type=str,
                        default=['train', 'val'],
                        help='')
    parser.add_argument('--n-jobs', type=int, default=10)
    parser.add_argument('--config-path',
                        type=str,
                        default='./config.yml',
                        help='The path to the config file.')

    args = parser.parse_args()
    cfg = load_config_file(args.config_path, return_edict=True)
    return args, cfg
コード例 #6
0
import matplotlib.pyplot as plt

import sys, random
import numpy as np
import torch

sys.path.insert(0, '..')
from isegm.utils import vis, exp

from isegm.inference import utils
from isegm.inference.evaluation import evaluate_dataset, evaluate_sample

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
cfg = exp.load_config_file('./config.yml', return_edict=True)

## init dateset
# Possible choices: 'GrabCut', 'Berkeley', 'DAVIS', 'COCO_MVal', 'SBD'
DATASET = 'Berkeley'
dataset = utils.get_dataset(DATASET, cfg)

## init model
from isegm.inference.predictors import get_predictor

EVAL_MAX_CLICKS = 20
MODEL_THRESH = 0.49

checkpoint_path = utils.find_checkpoint(cfg.INTERACTIVE_MODELS_PATH,
                                        'coco_lvis_h18_itermask')
model = utils.load_is_model(checkpoint_path, device)

# Possible choices: 'NoBRS', 'f-BRS-A', 'f-BRS-B', 'f-BRS-C', 'RGB-BRS', 'DistMap-BRS'
コード例 #7
0
def parse_args():
    parser = argparse.ArgumentParser()

    parser.add_argument('mode',
                        choices=[
                            'NoBRS', 'RGB-BRS', 'DistMap-BRS', 'f-BRS-A',
                            'f-BRS-B', 'f-BRS-C'
                        ],
                        help='')

    group_checkpoints = parser.add_mutually_exclusive_group(required=True)
    group_checkpoints.add_argument(
        '--checkpoint',
        type=str,
        default='',
        help='The path to the checkpoint. '
        'This can be a relative path (relative to cfg.INTERACTIVE_MODELS_PATH) '
        'or an absolute path. The file extension can be omitted.')
    group_checkpoints.add_argument(
        '--exp-path',
        type=str,
        default='',
        help='The relative path to the experiment with checkpoints.'
        '(relative to cfg.EXPS_PATH)')

    parser.add_argument(
        '--datasets',
        type=str,
        default='GrabCut,Berkeley,DAVIS,SBD,PascalVOC',
        help='List of datasets on which the model should be tested. '
        'Datasets are separated by a comma. Possible choices: '
        'GrabCut, Berkeley, DAVIS, SBD, PascalVOC')

    group_device = parser.add_mutually_exclusive_group()
    group_device.add_argument('--gpus',
                              type=str,
                              default='0',
                              help='ID of used GPU.')
    group_device.add_argument('--cpu',
                              action='store_true',
                              default=False,
                              help='Use only CPU for inference.')

    group_iou_thresh = parser.add_mutually_exclusive_group()
    group_iou_thresh.add_argument(
        '--target-iou',
        type=float,
        default=0.90,
        help=
        'Target IoU threshold for the NoC metric. (min possible value = 0.8)')
    group_iou_thresh.add_argument(
        '--iou-analysis',
        action='store_true',
        default=False,
        help='Plot mIoU(number of clicks) with target_iou=1.0.')

    parser.add_argument('--n-clicks',
                        type=int,
                        default=20,
                        help='Maximum number of clicks for the NoC metric.')
    parser.add_argument('--min-n-clicks',
                        type=int,
                        default=1,
                        help='Minimum number of clicks for the evaluation.')
    parser.add_argument(
        '--thresh',
        type=float,
        required=False,
        default=0.49,
        help=
        'The segmentation mask is obtained from the probability outputs using this threshold.'
    )
    parser.add_argument('--clicks-limit', type=int, default=None)
    parser.add_argument(
        '--eval-mode',
        type=str,
        default='cvpr',
        help='Possible choices: cvpr, fixed<number> (e.g. fixed400, fixed600).'
    )

    parser.add_argument('--save-ious', action='store_true', default=False)
    parser.add_argument('--print-ious', action='store_true', default=False)
    parser.add_argument('--vis-preds', action='store_true', default=False)
    parser.add_argument('--model-name',
                        type=str,
                        default=None,
                        help='The model name that is used for making plots.')
    parser.add_argument('--config-path',
                        type=str,
                        default='./config.yml',
                        help='The path to the config file.')
    parser.add_argument(
        '--logs-path',
        type=str,
        default='',
        help=
        'The path to the evaluation logs. Default path: cfg.EXPS_PATH/evaluation_logs.'
    )

    args = parser.parse_args()
    if args.cpu:
        args.device = torch.device('cpu')
    else:
        args.device = torch.device(f"cuda:{args.gpus.split(',')[0]}")

    if (args.iou_analysis or args.print_ious) and args.min_n_clicks <= 1:
        args.target_iou = 1.01
    else:
        args.target_iou = max(0.8, args.target_iou)

    cfg = load_config_file(args.config_path, return_edict=True)
    cfg.EXPS_PATH = Path(cfg.EXPS_PATH)

    if args.logs_path == '':
        args.logs_path = cfg.EXPS_PATH / 'evaluation_logs'
    else:
        args.logs_path = Path(args.logs_path)

    return args, cfg