import gradio as gr import torch from sahi.prediction import ObjectPrediction from sahi.utils.cv import visualize_object_predictions, read_image from ultralyticsplus import YOLO, render_result def yolov8_inference( image: gr.inputs.Image = None, model_path: gr.inputs.Dropdown = None, image_size: gr.inputs.Slider = 640, conf_threshold: gr.inputs.Slider = 0.25, iou_threshold: gr.inputs.Slider = 0.45, ): """ YOLOv8 inference function Args: image: Input image model_path: Path to the model image_size: Image size conf_threshold: Confidence threshold iou_threshold: IOU threshold Returns: Rendered image """ model = YOLO(model_path) model.overrides['conf'] = conf_threshold model.overrides['iou']= iou_threshold model.overrides['agnostic_nms'] = False # NMS class-agnostic model.overrides['max_det'] = 1000 image = read_image(image) results = model.predict(image) render = render_result(model=model, image=image, result=results[0]) return render inputs = [ gr.inputs.Image(type="filepath", label="Input Image"), gr.inputs.Dropdown(["foduucom/thermal-image-object-detection"], default="foduucom/thermal-image-object-detection", label="Model"), gr.inputs.Slider(minimum=320, maximum=1280, default=640, step=32, label="Image Size"), gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.25, step=0.05, label="Confidence Threshold"), gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.45, step=0.05, label="IOU Threshold"), ] outputs = gr.outputs.Image(type="filepath", label="Output Image") title = "ThermalSense: Object Detection in Thermal Images" description =""" Tired of playing 'Where's Waldo?' with your thermal images? Look no further! 🕵️‍♂️🔍 Our cutting-edge app, powered by the incredible Foduu AI model, has mastered the art of object detection in thermal images. Whether it's locating your lost TV remote in the abyss of your cozy couch or pinpointing the neighborhood cat's stealthy midnight escapades, ThermalFoduu has got your back! 📱🔥 No more squinting at pixelated blobs – our app skillfully identifies objects with the precision of a hawk eyeing its prey. 🦅🎯 Worried about distinguishing between a warm pizza slice and your sneaky pet lizard? Worry no more! ThermalFoduu's got your back, even in the most 'heated' culinary conundrums. 🍕🦎 And if you ever find yourself puzzled by the nuances of thermal imagery or craving a deeper dive into the infrared universe, fear not! Our friendly team at Foduu is just an email away. Contact us at info@foduu for all your questions, suggestions, or even if you just want to chat about the latest trends in thermal fashion. 😎📧 So, if you're ready to unveil the secrets hidden within thermal landscapes, join the ThermalFoduu revolution today! Tap that download button and let the thermal adventure begin! 🚀🌌 #ThermalFoduu #HeatSeeker #FoduuMagic """ examples = [['samples/1.jpg', 'foduucom/thermal-image-object-detection', 640, 0.25, 0.45], ['samples/2.jpg', 'foduucom/thermal-image-object-detection', 640, 0.25, 0.45]] demo_app = gr.Interface( fn=yolov8_inference, inputs=inputs, outputs=outputs, title=title, description=description, examples=examples, cache_examples=True, theme='huggingface', ) demo_app.launch(debug=True, enable_queue=True)