انتقل إلى المحتوى

الكشف التفاعلي عن الكائنات: Gradio & Ultralytics YOLOv8 🚀

مقدمة في الكشف التفاعلي عن الأشياء

توفر واجهة Gradio هذه طريقة سهلة وتفاعلية لأداء اكتشاف الكائنات باستخدام Ultralytics YOLOv8 نموذج. يمكن للمستخدمين تحميل الصور وضبط المعلمات مثل عتبة الثقة وعتبة التقاطع عبر الاتحاد (IoU) للحصول على نتائج الكشف في الوقت الفعلي.



شاهد: Gradio Integration with Ultralytics YOLOv8

لماذا استخدام Gradio لاكتشاف الكائنات؟

  • واجهة سهلة الاستخدام: يوفر Gradio نظاما أساسيا مباشرا للمستخدمين لتحميل الصور وتصور نتائج الكشف دون أي متطلبات ترميز.
  • التعديلات في الوقت الحقيقي: يمكن تعديل المعلمات مثل الثقة وعتبات إنترنت الأشياء أثناء التنقل ، مما يسمح بردود الفعل الفورية وتحسين نتائج الكشف.
  • إمكانية الوصول على نطاق واسع: يمكن لأي شخص الوصول إلى واجهة الويب Gradio ، مما يجعلها أداة ممتازة للعروض التوضيحية والأغراض التعليمية والتجارب السريعة.

لقطة شاشة مثال Gradio

كيفية تثبيت Gradio

pip install gradio

كيفية استخدام الواجهة

  1. تحميل الصورة: انقر فوق "تحميل صورة" لاختيار ملف صورة لاكتشاف الكائن.
  2. ضبط المعلمات:
    • عتبة الثقة: شريط التمرير لتعيين الحد الأدنى لمستوى الثقة لاكتشاف الكائنات.
    • عتبة إنترنت الأشياء: شريط التمرير لتعيين عتبة IoU لتمييز الكائنات المختلفة.
  3. عرض النتائج: سيتم عرض الصورة المعالجة مع الكائنات المكتشفة وعلاماتها.

أمثلة على حالات الاستخدام

  • صورة نموذجية 1: اكتشاف الناقل مع الحدود الافتراضية.
  • صورة نموذجية 2: الكشف عن صورة رياضية ذات حدود افتراضية.

مثال على الاستخدام

يوفر هذا القسم Python التعليمات البرمجية المستخدمة لإنشاء واجهة Gradio مع Ultralytics YOLOv8 نموذج. يدعم مهام التصنيف ومهام الكشف ومهام التجزئة ومهام النقاط الرئيسية.

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 objects in an image using a 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()

شرح المعلمات

اسم المعلمة نوع وصف
img Image الصورة التي سيتم إجراء اكتشاف الكائن عليها.
conf_threshold float عتبة الثقة لاكتشاف الكائنات.
iou_threshold float عتبة التقاطع فوق الاتحاد لفصل الكائنات.

مكونات واجهة Gradio

مكون وصف
إدخال الصورة لتحميل الصورة للكشف.
المتزلجون لضبط الثقة وعتبات إنترنت الأشياء.
إخراج الصورة لعرض نتائج الكشف.


Created 2024-02-01, Updated 2024-06-19
Authors: ambitious-octopus (1), glenn-jocher (5), IvorZhu331 (1), RizwanMunawar (1)

التعليقات