| from skimage.util import montage as montage2d |
| from utils import load_model, preprocess_image, attempt_download_from_hub |
| import matplotlib.pyplot as plt |
|
|
| import gradio as gr |
|
|
| model_path = 'deprem-ml/deprem-keras-satellite-semantic-mapping' |
|
|
| def keras_inference(img_data, model_path): |
| model_path = attempt_download_from_hub(model_path) |
| seg_model = load_model(model_path) |
| out_img = preprocess_image(img_data) |
| pred_y = seg_model.predict(out_img) |
|
|
| plt.imshow(montage2d(pred_y[:, :, :, 0]), cmap = 'bone_r') |
| plt.savefig('output.png') |
| return 'output.png' |
|
|
| inputs = [ |
| gr.Image(type='filepath', label='Image'), |
| gr.Dropdown([model_path], value=model_path, label='Model Path') |
| ] |
|
|
| outputs = gr.Image(label='Segmentation') |
|
|
| examples = [ |
| ['data/testv1.jpg', model_path], |
| ['data/testv2.jpg', model_path], |
| ['data/testv3.jpg', model_path], |
| ] |
|
|
| title = 'Segmenting Buildings in Satellite Images with Keras' |
|
|
| demo_app = gr.Interface( |
| keras_inference, |
| inputs, |
| outputs, |
| title=title, |
| examples=examples, |
| cache_examples=True, |
| ) |
|
|
| demo_app.launch(debug=True, enable_queue=True) |
|
|