İçeriğe geç

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 örnek ekran görüntüsü

Gradio Nasıl Kurulur

pip install gradio

Arayüz Nasıl Kullanılır

  1. 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.
  2. 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ı.
  3. 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.


Oluşturuldu 2024-02-01, Güncellendi 2024-05-18
Yazarlar: glenn-jocher (3), RizwanMunawar (1)

Yorumlar