تخطي إلى المحتوى

الاستدلال

منصة Ultralytics يوفر واجهة برمجة تطبيقات استدلالية لاختبار النماذج المدربة. استخدم المتصفح القائم على Predict علامة التبويب للتحقق السريع أو REST API للوصول البرمجي.

علامة تبويب "تنبؤ النموذج" Ultralytics مع تراكب الكشف

علامة التبويب "تنبؤ"

كل طراز يشمل Predict علامة تبويب للاستدلال المستند إلى المتصفح:

  1. انتقل إلى نموذجك
  2. انقر فوق علامة التبويب " التنبؤ "
  3. قم بتحميل صورة أو استخدم مثالاً أو افتح كاميرا الويب الخاصة بك
  4. عرض التنبؤات على الفور مع تراكب مربعات الحدود

Ultralytics علامة التبويب "تنبؤ" منطقة تحميل الصور

طرق الإدخال

تدعم لوحة التنبؤ طرق إدخال متعددة:

الطريقةالوصف
تحميل الصوراسحب وأسقط أو انقر لتحميل صورة
أمثلة على الصورانقر فوق الأمثلة المدمجة (صور مجموعة البيانات أو الإعدادات الافتراضية)
التقاط كاميرا الويببث مباشر من الكاميرا مع التقاط إطار واحد
graph LR
    A[Upload Image] --> D[Auto-Inference]
    B[Example Image] --> D
    C[Webcam Capture] --> D
    D --> E[Results + Overlays]

    style D fill:#2196F3,color:#fff
    style E fill:#4CAF50,color:#fff

تحميل صورة

اسحب وأفلت أو انقر للتحميل:

  • التنسيقات المدعومة: JPEG، PNG، WebP، AVIF، HEIC، JP2، TIFF، BMP، DNG، MPO
  • الحجم الأقصى: 10 ميجابايت
  • الاستنتاج التلقائي: تظهر النتائج تلقائيًا بعد التحميل

الاستدلال التلقائي

تقوم لوحة التنبؤ بتشغيل الاستدلال تلقائيًا عند تحميل صورة أو تحديد مثال أو التقاط إطار من كاميرا الويب. لا حاجة للنقر على أي زر.

صور أمثلة

تعرض لوحة التنبؤ صورًا نموذجية من مجموعة البيانات المرتبطة بنموذجك. إذا لم تكن هناك مجموعة بيانات مرتبطة، يتم استخدام أمثلة افتراضية:

صورةالمحتوى
bus.jpgمشهد شارع بمركبات
zidane.jpgمشهد رياضي بأشخاص

بالنسبة لنماذج OBB، يتم عرض صور جوية للقوارب والمطارات بدلاً من ذلك.

الصور المحملة مسبقًا

يتم تحميل الصور النموذجية مسبقًا عند تحميل الصفحة، لذا فإن النقر على أحد الأمثلة يؤدي إلى استنتاج شبه فوري دون الحاجة إلى الانتظار للتنزيل.

كاميرا ويب

انقر على بطاقة الكاميرا لبدء بث مباشر للكاميرا:

  1. امنح الكاميرا الإذن عند المطالبة بذلك
  2. انقر على معاينة الفيديو لالتقاط إطار
  3. يتم تشغيل الاستدلال تلقائيًا على الإطار الملتقط
  4. انقر مرة أخرى لإعادة تشغيل كاميرا الويب

عرض النتائج

عرض نتائج الاستدلال:

  • مربعات الحدود مع تسميات الفئات كطبقات SVG
  • درجات الثقة لكل detect
  • ألوان الفئات من لوحة ألوان مجموعة البيانات الخاصة بك (أو لوحة الألوان Ultralytics )
  • تفصيل السرعة: المعالجة المسبقة، الاستدلال، المعالجة اللاحقة، ووقت الشبكة

Ultralytics تتنبأ بنتائج علامة التبويب باستخدام الكشف وإحصائيات السرعة

تظهر لوحة النتائج ما يلي:

الحقلالوصف
قائمة الكشفكل كشف مع اسم الفئة والثقة
إحصائيات السرعةالمعالجة المسبقة، الاستدلال، المعالجة اللاحقة، الشبكة (مللي ثانية)
استجابة JSONاستجابة API الخام في كتلة كود

معلمات الاستدلال

اضبط سلوك الكشف باستخدام المعلمات في قسم المعلمات القابل للطي:

Ultralytics شريط التمرير لمعلمات علامة التبويب "التنبؤ"

المعلمةالنطاقافتراضيالوصف
الثقة0.01-1.00.25الحد الأدنى لعتبة الثقة
IoU0.0-0.950.70عتبة NMS IoU
حجم الصورة320, 640, 1280640تغيير حجم المدخلات (زر التبديل)

إعادة التشغيل التلقائي

يؤدي تغيير أي معلمة إلى إعادة تشغيل الاستدلال تلقائيًا على الصورة الحالية مع فترة توقف مدتها 500 مللي ثانية. لا حاجة لإعادة التحميل.

عتبة الثقة

فلترة التنبؤات حسب الثقة:

  • أعلى (0.5+): تنبؤات أقل وأكثر تأكيدًا
  • أقل (0.1-0.25): تنبؤات أكثر، مع بعض التشويش
  • افتراضي (0.25): متوازن لمعظم حالات الاستخدام

عتبة IoU

التحكم في قمع القيم غير القصوى:

  • أعلى (0.7+): السماح بمزيد من التداخل بين المربعات
  • أقل (0.3-0.5): دمج عمليات الكشف القريبة بشكل أكثر قوة
  • الافتراضي (0.70): NMS متوازن لمعظم حالات الاستخدام

تنبؤ النشر

كل جري نقطة نهاية مخصصة يشمل Predict علامة التبويب مباشرة على بطاقة النشر الخاصة بها. يستخدم هذا خدمة الاستدلال الخاصة بالنشر بدلاً من خدمة التنبؤ المشتركة، مما يتيح لك اختبار نقطة النهاية المنشورة من المتصفح.

REST API

الوصول إلى الاستدلال برمجيًا:

المصادقة

قم بتضمين مفتاح API الخاص بك في الطلبات:

Authorization: Bearer YOUR_API_KEY

مفتاح API مطلوب

لتشغيل الاستدلال من البرامج النصية أو دفاتر الملاحظات أو التطبيقات الخاصة بك، قم بتضمين مفتاح API. قم بإنشاء مفتاح في Settings (قسم مفاتيح API في علامة التبويب "الملف الشخصي").

نقطة النهاية

POST https://platform.ultralytics.com/api/models/{modelId}/predict

الطلب

import requests

url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
curl -X POST \
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7" \
  -F "imgsz=640"
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("conf", "0.25");
formData.append("iou", "0.7");
formData.append("imgsz", "640");

const response = await fetch(
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict",
  {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_API_KEY" },
    body: formData,
  }
);

const result = await response.json();
console.log(result);

أمثلة على كود علامة التبويب Predict في Ultralytics  Python

استجابة

{
    "images": [
        {
            "shape": [1080, 1920],
            "results": [
                {
                    "class": 0,
                    "name": "person",
                    "confidence": 0.92,
                    "box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
                },
                {
                    "class": 2,
                    "name": "car",
                    "confidence": 0.87,
                    "box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
                }
            ],
            "speed": {
                "preprocess": 1.2,
                "inference": 12.5,
                "postprocess": 2.3
            }
        }
    ],
    "metadata": {
        "imageCount": 1,
        "functionTimeCall": 0.018,
        "model": "model.pt",
        "version": {
            "ultralytics": "8.4.14",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Ultralytics علامة التبويب Predict عرض استجابة Json

حقول الاستجابة

الحقلالنوعالوصف
imagesمصفوفةقائمة الصور المعالجة
images[].shapeمصفوفةأبعاد الصورة [الارتفاع، العرض]
images[].resultsمصفوفةقائمة الاكتشافات
images[].results[].nameسلسلة نصيةاسم الفئة
images[].results[].confidenceعائمثقة الاكتشاف (0-1)
images[].results[].boxكائنإحداثيات صندوق الإحاطة
images[].speedكائنأوقات المعالجة بالمللي ثانية
metadataكائنطلب بيانات التعريف ومعلومات الإصدار

استجابات خاصة بالمهام

تنسيق الاستجابة يختلف حسب المهمة:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "results": [
    {"class": 0, "name": "cat", "confidence": 0.95},
    {"class": 1, "name": "dog", "confidence": 0.03}
  ]
}
{
  "class": 0,
  "name": "ship",
  "confidence": 0.89,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "obb": {"x1": 105, "y1": 48, "x2": 295, "y2": 55, "x3": 290, "y3": 395, "x4": 110, "y4": 402}
}

حدود المعدل

الاستدلال المشترك محدود المعدل إلى 20 طلبًا/دقيقة لكل مفتاح API. عند الاختناق، تعيد واجهة برمجة التطبيقات 429 مع Retry-After الرأس. انظر النص الكامل مرجع حد السعر لجميع فئات النقاط النهائية.

هل تحتاج إلى مزيد من الإنتاجية؟

نشر نقطة نهاية مخصصة لاستنتاجات غير محدودة بدون قيود على المعدل، وإنتاجية يمكن التنبؤ بها، واستجابات متسقة منخفضة التأخير. للاستنتاجات المحلية، راجع دليل وضع التنبؤ.

معالجة الأخطاء

استجابات الأخطاء الشائعة:

الرمزالرسالةالحل
400صورة غير صالحةتحقق من تنسيق الملف
401غير مصرح بهتحقق من مفتاح API
404النموذج غير موجودتحقق من معرف الطراز
429تم تجاوز حد المعدلانتظر وأعد المحاولة، أو استخدم نقطة نهاية مخصصة للحصول على إنتاجية غير محدودة
500خطأ في الخادمأعد محاولة الطلب

الأسئلة الشائعة

هل يمكنني إجراء الاستدلال على الفيديو؟

تقبل واجهة برمجة التطبيقات (API) الإطارات الفردية. بالنسبة للفيديو:

  1. استخرج الإطارات محليًا
  2. أرسل كل إطار إلى واجهة برمجة التطبيقات (API)
  3. اجمع النتائج

للفيديو في الوقت الفعلي، فكر في نشر نقطة نهاية مخصصة.

كيف أحصل على الصورة المشروحة؟

تعيد الـ API تنبؤات بصيغة JSON. للتصور:

  1. استخدم التنبؤات لرسم المربعات محليًا
  2. استخدم Ultralytics plot() الطريقة:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

انظر وثائق وضع التنبؤ للحصول على واجهة برمجة التطبيقات الكاملة للنتائج وخيارات التصور.

ما هو أقصى حجم للصورة؟

  • حد التحميل: 10 ميجابايت
  • Recommended: <5MB for fast inference
  • تغيير الحجم تلقائيًا: يتم تغيير حجم الصور إلى الحجم المحدد Image Size معامل

يتم تغيير حجم الصور الكبيرة تلقائيًا مع الحفاظ على نسبة العرض إلى الارتفاع.

هل يمكنني إجراء الاستدلال الدفعي؟

تعالج الـ API الحالية صورة واحدة لكل طلب. للمعالجة الدفعية:

  1. أرسل طلبات متزامنة
  2. استخدم نقطة نهاية مخصصة لإنتاجية أعلى
  3. فكر في الاستدلال المحلي للدفعات الكبيرة

الاستدلال الدفعي باستخدام Python

import concurrent.futures

import requests

url = "https://predict-abc123.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
images = ["img1.jpg", "img2.jpg", "img3.jpg"]


def predict(image_path):
    with open(image_path, "rb") as f:
        return requests.post(url, headers=headers, files={"file": f}).json()


with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
    results = list(executor.map(predict, images))


📅 تم الإنشاء قبل 1 شهر ✏️ تم التحديث قبل 5 أيام
glenn-jochersergiuwaxmannLaughing-q

تعليقات