الكشف التفاعلي عن الكائنات: Gradio & Ultralytics YOLOv8 🚀
مقدمة في الكشف التفاعلي عن الأشياء
توفر واجهة Gradio هذه طريقة سهلة وتفاعلية لأداء اكتشاف الكائنات باستخدام Ultralytics YOLOv8 نموذج. يمكن للمستخدمين تحميل الصور وضبط المعلمات مثل عتبة الثقة وعتبة التقاطع عبر الاتحاد (IoU) للحصول على نتائج الكشف في الوقت الفعلي.
لماذا استخدام Gradio لاكتشاف الكائنات؟
- واجهة سهلة الاستخدام: يوفر Gradio نظاما أساسيا مباشرا للمستخدمين لتحميل الصور وتصور نتائج الكشف دون أي متطلبات ترميز.
- التعديلات في الوقت الحقيقي: يمكن تعديل المعلمات مثل الثقة وعتبات إنترنت الأشياء أثناء التنقل ، مما يسمح بردود الفعل الفورية وتحسين نتائج الكشف.
- إمكانية الوصول على نطاق واسع: يمكن لأي شخص الوصول إلى واجهة الويب Gradio ، مما يجعلها أداة ممتازة للعروض التوضيحية والأغراض التعليمية والتجارب السريعة.
كيفية تثبيت Gradio
كيفية استخدام الواجهة
- تحميل الصورة: انقر فوق "تحميل صورة" لاختيار ملف صورة لاكتشاف الكائن.
- ضبط المعلمات:
- عتبة الثقة: شريط التمرير لتعيين الحد الأدنى لمستوى الثقة لاكتشاف الكائنات.
- عتبة إنترنت الأشياء: شريط التمرير لتعيين عتبة IoU لتمييز الكائنات المختلفة.
- عرض النتائج: سيتم عرض الصورة المعالجة مع الكائنات المكتشفة وعلاماتها.
أمثلة على حالات الاستخدام
- صورة نموذجية 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 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()
شرح المعلمات
اسم المعلمة | نوع | وصف |
---|---|---|
img |
Image |
الصورة التي سيتم إجراء اكتشاف الكائن عليها. |
conf_threshold |
float |
عتبة الثقة لاكتشاف الكائنات. |
iou_threshold |
float |
عتبة التقاطع فوق الاتحاد لفصل الكائنات. |
مكونات واجهة Gradio
مكون | وصف |
---|---|
إدخال الصورة | لتحميل الصورة للكشف. |
المتزلجون | لضبط الثقة وعتبات إنترنت الأشياء. |
إخراج الصورة | لعرض نتائج الكشف. |