samithcs's picture
Update app.py
86db453 verified
import gradio as gr
from src.pipeline.prediction_pipeline import PredictionPipeline
import numpy as np
from PIL import Image
pipeline = PredictionPipeline()
def predict_single(image):
if image is None:
return None, "No image detected!", "No image detected!"
img = Image.fromarray(image) if isinstance(image, np.ndarray) else image
result = pipeline.predict(img)
annotated_img = pipeline.annotate(img, result)
return annotated_img, result["category"], result["freshness"]
with gr.Blocks() as demo:
gr.Markdown("# Food Freshness Detection")
with gr.Tab("Image Upload"):
image = gr.Image(sources=["upload"], label="Upload an Image")
out_img = gr.Image()
cat = gr.Textbox(label="Category")
fresh = gr.Textbox(label="Freshness")
btn = gr.Button("Predict on Image")
btn.click(predict_single, inputs=image, outputs=[out_img, cat, fresh])
with gr.Tab("Live Webcam"):
webcam = gr.Image(sources=["webcam"], label="Webcam")
out_img = gr.Image()
cat = gr.Textbox(label="Category")
fresh = gr.Textbox(label="Freshness")
btn = gr.Button("Predict")
btn.click(predict_single, inputs=webcam, outputs=[out_img, cat, fresh])
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)