Spaces:
Build error
Build error
| import gradio as gr | |
| import torch | |
| from ultralyticsplus import YOLO, render_result | |
| torch.hub.download_url_to_file( | |
| 'https://cdn.theatlantic.com/thumbor/xoh2WVVSx4F2uboG9xbT5BDprtM=/0x0:4939x2778/960x540/media/img/mt/2023/11/LON68717_copy/original.jpg', | |
| 'one.jpg') | |
| torch.hub.download_url_to_file( | |
| 'https://i.ytimg.com/vi/lZQX2mmLo2s/maxresdefault.jpg', | |
| 'two.jpg') | |
| torch.hub.download_url_to_file( | |
| 'https://assets.bwbx.io/images/users/iqjWHBFdfxIU/ioQgA.854d7s/v1/-1x-1.jpg', | |
| 'three.jpg') | |
| torch.hub.download_url_to_file( | |
| 'https://cdn.apartmenttherapy.info/image/upload/f_jpg,q_auto:eco,c_fill,g_auto,w_1500,ar_1:1/at%2Fhouse%20tours%2Farchive%2FTour%20a%20Colorful%20Home%20in%20Montreal%2Ffada199d36b084830ef3563b555887f31851ca55', | |
| 'four.jpg') | |
| def yoloV8_func(image: gr.Image = None, | |
| image_size: gr.Slider = 640, | |
| conf_threshold: gr.Slider = 0.4, | |
| iou_threshold: gr.Slider = 0.50): | |
| """ | |
| This function performs YOLOv8 object detection on the given image. | |
| """ | |
| # Load the YOLOv8 model from the 'best.pt' checkpoint | |
| model_path = "YOLO-best.pt" | |
| model = YOLO(model_path) | |
| # Perform object detection on the input image using the YOLOv8 model | |
| results = model.predict(image, | |
| conf=conf_threshold, | |
| iou=iou_threshold, | |
| imgsz=image_size) | |
| # Print the detected objects' information (class, coordinates, and probability) | |
| box = results[0].boxes | |
| print("Object type:", box.cls) | |
| print("Coordinates:", box.xyxy) | |
| print("Probability:", box.conf) | |
| # Render the output image with bounding boxes around detected objects | |
| render = render_result(model=model, image=image, result=results[0], rect_th = 4, text_th = 4) | |
| return render | |
| inputs = [ | |
| gr.Image(type="filepath", label="Input Image"), | |
| gr.Slider(minimum=320, maximum=1280, value=640, | |
| step=32, label="Image Size"), | |
| gr.Slider(minimum=0.0, maximum=1.0, value=0.25, | |
| step=0.05, label="Confidence Threshold"), | |
| gr.Slider(minimum=0.0, maximum=1.0, value=0.45, | |
| step=0.05, label="IOU Threshold"), | |
| ] | |
| outputs = gr.Image(type="filepath", label="Output Image") | |
| title = "YOLOv8 Custom Object Detection by Uyen Nguyen" | |
| examples = [['one.jpg', 900, 0.5, 0.8], | |
| ['two.jpg', 1152, 0.05, 0.05], | |
| ['three.jpg', 1024, 0.25, 0.25], | |
| ['four.jpg', 832, 0.3, 0.3]] | |
| yolo_app = gr.Interface( | |
| fn=yoloV8_func, | |
| inputs=inputs, | |
| outputs=outputs, | |
| title=title, | |
| examples=examples, | |
| cache_examples=True, | |
| ) | |
| # Launch the Gradio interface in debug mode with queue enabled | |
| yolo_app.launch(debug=True, share=True) |