2021-08-17 14:16:55 +08:00
|
|
|
# Copyright (c) OpenMMLab. All rights reserved.
|
2020-07-07 20:52:19 +08:00
|
|
|
from argparse import ArgumentParser
|
|
|
|
|
2022-08-25 15:15:21 +08:00
|
|
|
from mmengine.model import revert_sync_batchnorm
|
2022-07-29 18:37:20 +08:00
|
|
|
|
2022-07-12 16:19:59 +08:00
|
|
|
from mmseg.apis import inference_model, init_model, show_result_pyplot
|
2020-07-07 20:52:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
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')
|
2022-08-31 17:44:41 +08:00
|
|
|
parser.add_argument('--out-file', default=None, help='Path to output file')
|
2020-07-07 20:52:19 +08:00
|
|
|
parser.add_argument(
|
|
|
|
'--device', default='cuda:0', help='Device used for inference')
|
2021-03-23 11:34:38 +08:00
|
|
|
parser.add_argument(
|
|
|
|
'--opacity',
|
|
|
|
type=float,
|
|
|
|
default=0.5,
|
|
|
|
help='Opacity of painted segmentation map. In (0, 1] range.')
|
2022-07-29 18:37:20 +08:00
|
|
|
parser.add_argument(
|
|
|
|
'--title', default='result', help='The image identifier.')
|
2020-07-07 20:52:19 +08:00
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
# build the model from a config file and a checkpoint file
|
2022-07-12 16:19:59 +08:00
|
|
|
model = init_model(args.config, args.checkpoint, device=args.device)
|
2022-07-29 18:37:20 +08:00
|
|
|
if args.device == 'cpu':
|
|
|
|
model = revert_sync_batchnorm(model)
|
2020-07-07 20:52:19 +08:00
|
|
|
# test a single image
|
2022-07-12 16:19:59 +08:00
|
|
|
result = inference_model(model, args.img)
|
2020-07-07 20:52:19 +08:00
|
|
|
# show the results
|
2021-03-23 11:34:38 +08:00
|
|
|
show_result_pyplot(
|
|
|
|
model,
|
2022-08-31 17:44:41 +08:00
|
|
|
args.img,
|
|
|
|
result,
|
2022-07-29 18:37:20 +08:00
|
|
|
title=args.title,
|
|
|
|
opacity=args.opacity,
|
|
|
|
draw_gt=False,
|
2022-08-31 17:44:41 +08:00
|
|
|
show=False if args.out_file is not None else True,
|
|
|
|
out_file=args.out_file)
|
2020-07-07 20:52:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|