Etkileşimli Nesne Algılama: Gradio & Ultralytics YOLOv8 🚀
Etkileşimli Nesne Algılamaya Giriş
Bu Gradio arayüzü, nesne algılama işlemini gerçekleştirmek için kolay ve etkileşimli bir yol sağlar. Ultralytics YOLOv8 model. Kullanıcılar görüntüleri yükleyebilir ve gerçek zamanlı algılama sonuçları elde etmek için güven eşiği ve kesişim-üzerinde-birleşme (IoU) eşiği gibi parametreleri ayarlayabilir.
Nesne Algılama için Neden Gradio Kullanılmalı?
- Kullanıcı Dostu Arayüz: Gradio, kullanıcıların herhangi bir kodlama gereksinimi olmadan görüntü yüklemeleri ve algılama sonuçlarını görselleştirmeleri için basit bir platform sunar.
- Gerçek Zamanlı Ayarlamalar: Güven ve IoU eşikleri gibi parametreler anında ayarlanabilir, böylece anında geri bildirim ve tespit sonuçlarının optimizasyonu sağlanır.
- Geniş Erişilebilirlik: Gradio web arayüzüne herkes tarafından erişilebilir, bu da onu gösteriler, eğitim amaçları ve hızlı deneyler için mükemmel bir araç haline getirir.
Gradio Nasıl Kurulur
Arayüz Nasıl Kullanılır
- Görüntü Yükle: Nesne algılama için bir görüntü dosyası seçmek üzere 'Görüntü Yükle' üzerine tıklayın.
- Parametreleri Ayarlayın:
- Güven Eşiği: Nesneleri tespit etmek için minimum güven seviyesini ayarlamak için kaydırıcı.
- IoU Eşiği: Farklı nesneleri ayırt etmek için IoU eşiğini ayarlamak için kaydırıcı.
- Sonuçları Görüntüle: Algılanan nesneleri ve etiketlerini içeren işlenmiş görüntü görüntülenecektir.
Örnek Kullanım Durumları
- Örnek Resim 1: Varsayılan eşiklerle otobüs algılama.
- Örnek Görüntü 2: Varsayılan eşik değerleriyle bir spor görüntüsü üzerinde algılama.
Kullanım Örneği
Bu bölümde Ultralytics YOLOv8 modeli ile Gradio arayüzünü oluşturmak için kullanılan Python kodu sağlanmaktadır. Sınıflandırma görevlerini, algılama görevlerini, segmentasyon görevlerini ve anahtar nokta görevlerini destekler.
import gradio as gr
import PIL.Image as Image
from ultralytics import ASSETS, YOLO
model = YOLO("yolov8n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts and plots labeled objects in an image using YOLOv8 model with adjustable confidence and IOU thresholds."""
results = model.predict(
source=img,
conf=conf_threshold,
iou=iou_threshold,
show_labels=True,
show_conf=True,
imgsz=640,
)
for r in results:
im_array = r.plot()
im = Image.fromarray(im_array[..., ::-1])
return im
iface = gr.Interface(
fn=predict_image,
inputs=[
gr.Image(type="pil", label="Upload Image"),
gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
],
outputs=gr.Image(type="pil", label="Result"),
title="Ultralytics Gradio",
description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
examples=[
[ASSETS / "bus.jpg", 0.25, 0.45],
[ASSETS / "zidane.jpg", 0.25, 0.45],
],
)
if __name__ == "__main__":
iface.launch()
Parametreler Açıklama
Parametre Adı | Tip | Açıklama |
---|---|---|
img |
Image |
Nesne algılamanın gerçekleştirileceği görüntü. |
conf_threshold |
float |
Nesneleri tespit etmek için güven eşiği. |
iou_threshold |
float |
Nesne ayrımı için kesişim-üzerinde-birleşme eşiği. |
Gradio Arayüz Bileşenleri
Bileşen | Açıklama |
---|---|
Görüntü Girişi | Tespit için görüntüyü yüklemek için. |
Sürgüler | Güven ve IoU eşiklerini ayarlamak için. |
Görüntü Çıktısı | Algılama sonuçlarını görüntülemek için. |