forked from open-mmlab/mmsegmentation
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Feature] remote sensing inference (open-mmlab#3131)
## Motivation Supports inference for ultra-large-scale remote sensing images. ## Modification Add RSImageInference.py in demo. ## Use cases Taking the inference of Vaihingen dataset images using PSPNet as an example, the following settings are required: **img**: Specify the path of the image. **model**: Provide the configuration file for the model. **checkpoint**: Specify the weight file for the model. **out**: Set the output path for the results. **batch_size**: Determine the batch size used during inference. **win_size**: Specify the width and height(512x512) of the sliding window. **stride**: Set the stride(400x400) for sliding the window. **thread(default: 1)**: Specify the number of threads to be used for inference. **Inference device (default: cuda:0)**: Specify the device for inference (e.g., cuda:0 for CPU). ```shell python demo/rs_image_inference.py demo/demo.png projects/pp_mobileseg/configs/pp_mobileseg/pp_mobileseg_mobilenetv3_2x16_80k_ade20k_512x512_tiny.py pp_mobileseg_mobilenetv3_2xb16_3rdparty-tiny_512x512-ade20k-a351ebf5.pth --batch-size 8 --device cpu --thread 2 ``` --------- Co-authored-by: xiexinch <xiexinch@outlook.com>
- Loading branch information
Showing
9 changed files
with
489 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Copyright (c) OpenMMLab. All rights reserved. | ||
from argparse import ArgumentParser | ||
|
||
from mmseg.apis import RSImage, RSInferencer | ||
|
||
|
||
def main(): | ||
parser = ArgumentParser() | ||
parser.add_argument('image', help='Image file path') | ||
parser.add_argument('config', help='Config file') | ||
parser.add_argument('checkpoint', help='Checkpoint file') | ||
parser.add_argument( | ||
'--output-path', | ||
help='Path to save result image', | ||
default='result.png') | ||
parser.add_argument( | ||
'--batch-size', | ||
type=int, | ||
default=1, | ||
help='maximum number of windows inferred simultaneously') | ||
parser.add_argument( | ||
'--window-size', | ||
help='window xsize,ysize', | ||
default=(224, 224), | ||
type=int, | ||
nargs=2) | ||
parser.add_argument( | ||
'--stride', | ||
help='window xstride,ystride', | ||
default=(224, 224), | ||
type=int, | ||
nargs=2) | ||
parser.add_argument( | ||
'--thread', default=1, type=int, help='number of inference threads') | ||
parser.add_argument( | ||
'--device', default='cuda:0', help='Device used for inference') | ||
args = parser.parse_args() | ||
inferencer = RSInferencer.from_config_path( | ||
args.config, | ||
args.checkpoint, | ||
batch_size=args.batch_size, | ||
thread=args.thread, | ||
device=args.device) | ||
image = RSImage(args.image) | ||
|
||
inferencer.run(image, args.window_size, args.stride, args.output_path) | ||
|
||
|
||
if __name__ == '__main__': | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
# Copyright (c) OpenMMLab. All rights reserved. | ||
from .inference import inference_model, init_model, show_result_pyplot | ||
from .mmseg_inferencer import MMSegInferencer | ||
from .remote_sense_inferencer import RSImage, RSInferencer | ||
|
||
__all__ = [ | ||
'init_model', 'inference_model', 'show_result_pyplot', 'MMSegInferencer' | ||
'init_model', 'inference_model', 'show_result_pyplot', 'MMSegInferencer', | ||
'RSInferencer', 'RSImage' | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.