Spaces:
Build error
Build error
from pathlib import Path | |
from typing import List, Dict, Tuple | |
import matplotlib.colors as mpl_colors | |
import matplotlib.pyplot as plt | |
import pandas as pd | |
import seaborn as sns | |
import shinyswatch | |
import predictor | |
import PIL | |
from shiny import App, Inputs, Outputs, Session, reactive, render, req, ui | |
from transformers import SamModel, SamConfig, SamProcessor | |
import torch | |
sns.set_theme() | |
www_dir = Path(__file__).parent.resolve() / "www" | |
app_ui = ui.page_fillable( | |
shinyswatch.theme.minty(), | |
ui.layout_sidebar( | |
ui.sidebar( | |
ui.input_file("image_input", "Upload image: ", multiple=True), | |
), | |
ui.output_image("image"), | |
ui.output_plot("plot") | |
), | |
) | |
def server(input: Inputs, output: Outputs, session: Session): | |
def image(): | |
here = Path(__file__).parent | |
if input.image_input(): | |
src = input.image_input()[0]['datapath'] | |
img = {"src": src, "width": "500px"} | |
return img | |
return None | |
def plot(): | |
if input.image_input(): | |
new_image = input.image_input()[0]['datapath'] | |
pred_prob, pred_prediction = predictor.pred(new_image) | |
print("plotting...") | |
fig, axes = plt.subplots(1, 2, figsize=(15, 5)) | |
axes[0].imshow(pred_prediction, cmap='gray') | |
axes[0].set_title("Prediction") | |
im = axes[1].imshow(pred_prob) | |
axes[1].set_title("Probability Map") | |
cbar = fig.colorbar(im, ax=axes[1]) | |
for ax in axes: | |
ax.set_xticks([]) | |
ax.set_yticks([]) | |
ax.set_xticklabels([]) | |
ax.set_yticklabels([]) | |
return fig | |
return None | |
# else: | |
# print("no image received") | |
# fig, _ = plt.subplots() # Create an empty figure if no image received | |
# fig.text(0.5, 0.5, "No image received", ha='center', va='center', fontsize=14) | |
# return None | |
app = App( | |
app_ui, | |
server, | |
static_assets=str(www_dir), | |
) |