# Copyright (c) OpenMMLab. All rights reserved. from argparse import ArgumentParser from mmengine.utils import revert_sync_batchnorm from mmseg.apis import inference_model, init_model, show_result_pyplot from mmseg.utils import register_all_modules def main(): parser = ArgumentParser() parser.add_argument('img', help='Image file') parser.add_argument('config', help='Config file') parser.add_argument('checkpoint', help='Checkpoint file') parser.add_argument( '--device', default='cuda:0', help='Device used for inference') parser.add_argument( '--save-dir', default=None, help='Save file dir for all storage backends.') parser.add_argument( '--opacity', type=float, default=0.5, help='Opacity of painted segmentation map. In (0, 1] range.') parser.add_argument( '--title', default='result', help='The image identifier.') args = parser.parse_args() register_all_modules() # build the model from a config file and a checkpoint file model = init_model(args.config, args.checkpoint, device=args.device) if args.device == 'cpu': model = revert_sync_batchnorm(model) # test a single image result = inference_model(model, args.img) # show the results show_result_pyplot( model, args.img, [result], title=args.title, opacity=args.opacity, draw_gt=False, show=False if args.save_dir is not None else True, save_dir=args.save_dir) if __name__ == '__main__': main()