Last commit not found
raw
history blame
1.8 kB
import os
import gradio as gr
import pandas as pd
from PIL import ImageDraw
from PIL.Image import Image
from sacred import Experiment
from engie_pipeline.pipeline import pipeline_experiment, set_up_pipeline, pipeline
from engie_pipeline.utils import draw_boxes
ex = Experiment("app", ingredients=[pipeline_experiment])
def process_image(models, image: Image, comformity_threshold: float):
image = image.convert("RGB")
siglip_probs, boxes, labels, scores, comformity = pipeline(**models, image=image, conformity_threshold=comformity_threshold, force_detr=True)
image = draw_boxes(
image=image, boxes=boxes[labels == 0], probs=scores[labels == 0], color="gray"
)
image = draw_boxes(
image=image, boxes=boxes[labels == 1], probs=scores[labels == 1], color="orange"
)
image = draw_boxes(
image=image, boxes=boxes[labels == 2], probs=scores[labels == 2], color="purple"
)
siglip_probs = pd.DataFrame(
siglip_probs.detach().numpy(),
columns=["Admissible", "Hors-sujet", "Non-admissible"],
)
return siglip_probs, image, comformity
@ex.automain
def app():
models = set_up_pipeline()
image_input = gr.Image(label="Input image", type="pil")
comformity_threshold = gr.Slider(minimum=0, maximum=1, step=0.01, value=0.8)
prob_output = gr.DataFrame(label="Probabilities (%)")
image_output = gr.Image(label="Output image")
label = gr.Label(label="Is the image conform?")
demo = gr.Interface(
fn=lambda im, thresh: process_image(models=models, image=im, comformity_threshold=thresh),
inputs=[image_input, comformity_threshold],
outputs=[prob_output, image_output, label],
)
demo.launch(auth=(os.environ.get("GRADIO_USERNAME"), os.environ.get("GRADIO_PASSWORD")))