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

علامة التبويب "تنبؤ"
كل طراز يشمل Predict علامة تبويب للاستدلال المستند إلى المتصفح:
- انتقل إلى نموذجك
- انقر فوق علامة التبويب " التنبؤ "
- قم بتحميل صورة أو استخدم مثالاً أو افتح كاميرا الويب الخاصة بك
- عرض التنبؤات على الفور مع تراكب مربعات الحدود

طرق الإدخال
تدعم لوحة التنبؤ طرق إدخال متعددة:
| الطريقة | الوصف |
|---|---|
| تحميل الصور | اسحب وأسقط أو انقر لتحميل صورة |
| أمثلة على الصور | انقر فوق الأمثلة المدمجة (صور مجموعة البيانات أو الإعدادات الافتراضية) |
| التقاط كاميرا الويب | بث مباشر من الكاميرا مع التقاط إطار واحد |
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، يتم عرض صور جوية للقوارب والمطارات بدلاً من ذلك.
الصور المحملة مسبقًا
يتم تحميل الصور النموذجية مسبقًا عند تحميل الصفحة، لذا فإن النقر على أحد الأمثلة يؤدي إلى استنتاج شبه فوري دون الحاجة إلى الانتظار للتنزيل.
كاميرا ويب
انقر على بطاقة الكاميرا لبدء بث مباشر للكاميرا:
- امنح الكاميرا الإذن عند المطالبة بذلك
- انقر على معاينة الفيديو لالتقاط إطار
- يتم تشغيل الاستدلال تلقائيًا على الإطار الملتقط
- انقر مرة أخرى لإعادة تشغيل كاميرا الويب
عرض النتائج
عرض نتائج الاستدلال:
- مربعات الحدود مع تسميات الفئات كطبقات SVG
- درجات الثقة لكل detect
- ألوان الفئات من لوحة ألوان مجموعة البيانات الخاصة بك (أو لوحة الألوان Ultralytics )
- تفصيل السرعة: المعالجة المسبقة، الاستدلال، المعالجة اللاحقة، ووقت الشبكة

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

| المعلمة | النطاق | افتراضي | الوصف |
|---|---|---|---|
| الثقة | 0.01-1.0 | 0.25 | الحد الأدنى لعتبة الثقة |
| IoU | 0.0-0.95 | 0.70 | عتبة NMS IoU |
| حجم الصورة | 320, 640, 1280 | 640 | تغيير حجم المدخلات (زر التبديل) |
إعادة التشغيل التلقائي
يؤدي تغيير أي معلمة إلى إعادة تشغيل الاستدلال تلقائيًا على الصورة الحالية مع فترة توقف مدتها 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);

استجابة
{
"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"
}
}
}

حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
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) الإطارات الفردية. بالنسبة للفيديو:
- استخرج الإطارات محليًا
- أرسل كل إطار إلى واجهة برمجة التطبيقات (API)
- اجمع النتائج
للفيديو في الوقت الفعلي، فكر في نشر نقطة نهاية مخصصة.
كيف أحصل على الصورة المشروحة؟
تعيد الـ API تنبؤات بصيغة JSON. للتصور:
- استخدم التنبؤات لرسم المربعات محليًا
- استخدم 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 الحالية صورة واحدة لكل طلب. للمعالجة الدفعية:
- أرسل طلبات متزامنة
- استخدم نقطة نهاية مخصصة لإنتاجية أعلى
- فكر في الاستدلال المحلي للدفعات الكبيرة
الاستدلال الدفعي باستخدام 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))