Team Ai
Apppublic

AI-Naga/Container_Code_Detection

sourceHugging Faceupdated 4y agoView on Hugging Face
0likes
app.py69 linesDownload Raw Back to root
1import gradio as gr2from gradio.outputs import Label3import cv24import requests5import os6import numpy as np7 8from ultralytics import YOLO9import yolov510 11# Function for inference12def yolov5_inference(13    image: gr.inputs.Image = None,14    model_path: gr.inputs.Dropdown = None,15    image_size: gr.inputs.Slider = 640,16    conf_threshold: gr.inputs.Slider = 0.25,17    iou_threshold: gr.inputs.Slider = 0.45 ):18 19    # Loading Yolo V5 model20    model = yolov5.load(model_path, device="cpu")21 22    # Setting model configuration 23    model.conf = conf_threshold24    model.iou = iou_threshold25 26    # Inference27    results = model([image], size=image_size)28 29    # Cropping the predictions    30    crops = results.crop(save=False)31    img_crops = []32    for i in range(len(crops)):33        img_crops.append(crops[i]["im"][..., ::-1])34    return results.render()[0], img_crops35        36# gradio Input37inputs = [38    gr.inputs.Image(type="pil", label="Input Image"),39    gr.inputs.Dropdown(["Container_YOLOV5.pt"], label="Model", default = 'Container_YOLOV5.pt'),40    gr.inputs.Slider(minimum=320, maximum=1280, default=640, step=32, label="Image Size"),41    gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.25, step=0.05, label="Confidence Threshold"),42    gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.45, step=0.05, label="IOU Threshold"),43]44 45# gradio Output46outputs = gr.outputs.Image(type="filepath", label="Output Image")47outputs_crops = gr.Gallery(label="Object crop")48 49title = "Container code detection"50 51# gradio examples: "Image", "Model", "Image Size", "Confidence Threshold", "IOU Threshold"52examples = [['image_0.jpg', 'Container_YOLOV5.pt', 640, 0.35, 0.45]53           ,['image_1.jpg', 'Container_YOLOV5.pt', 640, 0.35, 0.45]54           ,['image_2.jpg', 'Container_YOLOV5.pt', 640, 0.35, 0.45],55           ]56 57# gradio app launch58demo_app = gr.Interface(59    fn=yolov5_inference,60    inputs=inputs,61    outputs=[outputs,outputs_crops],62    title=title,63    description="Scroll down for sample inputs !!!",64    examples=examples,65    cache_examples=False,66    live=True,67    theme='huggingface',68)69demo_app.launch(debug=True, enable_queue=True, width=50, height=50)