الاستدلال
منصة Ultralytics توفر Inference API لاختبار النماذج المدربة. استخدم علامة تبويب الاختبار المستندة إلى المتصفح للتحقق السريع أو REST API للوصول البرمجي.
علامة تبويب الاختبار
يتضمن كل نموذج علامة تبويب للاختبار للاستدلال المستند إلى المتصفح:
- انتقل إلى نموذجك
- انقر على علامة تبويب الاختبار
- حمّل صورة أو استخدم الأمثلة
- شاهد التنبؤات فورًا
تحميل صورة
اسحب وأفلت أو انقر للتحميل:
- التنسيقات المدعومة: JPG، PNG، WebP، GIF
- الحجم الأقصى: 10 ميجابايت
- الاستدلال التلقائي: تظهر النتائج تلقائيًا
صور أمثلة
استخدم صور الأمثلة المضمنة للاختبار السريع:
| صورة | المحتوى |
|---|---|
bus.jpg | مشهد شارع بمركبات |
zidane.jpg | مشهد رياضي بأشخاص |
عرض النتائج
عرض نتائج الاستدلال:
- صناديق الإحاطة مع تسميات الفئات
- درجات الثقة لكل detect
- ألوان الفئات المطابقة لمجموعة بياناتك
معلمات الاستدلال
اضبط سلوك الـ detect باستخدام المعلمات:
| المعلمة | النطاق | افتراضي | الوصف |
|---|---|---|---|
| الثقة | 0.0-1.0 | 0.25 | الحد الأدنى لعتبة الثقة |
| IoU | 0.0-1.0 | 0.70 | عتبة NMS IoU |
| حجم الصورة | 32-1280 | 640 | أبعاد تغيير حجم الإدخال |
عتبة الثقة
فلترة التنبؤات حسب الثقة:
- أعلى (0.5+): تنبؤات أقل وأكثر تأكيدًا
- أقل (0.1-0.25): تنبؤات أكثر، مع بعض التشويش
- افتراضي (0.25): متوازن لمعظم حالات الاستخدام
عتبة IoU
التحكم في قمع القيم غير القصوى:
- أعلى (0.7+): السماح بمزيد من التداخل بين المربعات
- أقل (0.3-0.5): دمج عمليات الكشف القريبة بشكل أكثر قوة
- الافتراضي (0.70): NMS متوازن لمعظم حالات الاستخدام
REST API
الوصول إلى الاستدلال برمجيًا:
المصادقة
قم بتضمين مفتاح API الخاص بك في الطلبات:
Authorization: Bearer YOUR_API_KEY
نقطة النهاية
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
الطلب
curl -X POST \
"https://platform.ultralytics.com/api/models/username/project/model/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.7"
import requests
url = "https://platform.ultralytics.com/api/models/username/project/model/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
استجابة
{
"success": true,
"predictions": [
{
"class": "person",
"confidence": 0.92,
"box": {
"x1": 100,
"y1": 50,
"x2": 300,
"y2": 400
}
},
{
"class": "car",
"confidence": 0.87,
"box": {
"x1": 400,
"y1": 200,
"x2": 600,
"y2": 350
}
}
],
"image": {
"width": 1920,
"height": 1080
}
}
حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
success | قيمة منطقية | حالة الطلب |
predictions | مصفوفة | قائمة الاكتشافات |
predictions[].class | سلسلة نصية | اسم الفئة |
predictions[].confidence | عائم | ثقة الاكتشاف (0-1) |
predictions[].box | كائن | إحداثيات صندوق الإحاطة |
image | كائن | أبعاد الصورة الأصلية |
استجابات خاصة بالمهام
تنسيق الاستجابة يختلف حسب المهمة:
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"segments": [[100, 50], [150, 60], ...]
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"keypoints": [
{"x": 200, "y": 75, "conf": 0.95},
...
]
}
{
"predictions": [
{"class": "cat", "confidence": 0.95},
{"class": "dog", "confidence": 0.03}
]
}
حدود المعدل
الاستدلال المشترك يخضع لقيود معدل:
| الخطة | الطلبات/الدقيقة | الطلبات/اليوم |
|---|---|---|
| مجاني | 10 | 100 |
| احترافي | 60 | 10,000 |
للحصول على حدود أعلى، انشر نقطة نهاية مخصصة.
معالجة الأخطاء
استجابات الأخطاء الشائعة:
| الرمز | الرسالة | الحل |
|---|---|---|
| 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
- تغيير الحجم تلقائيًا: يتم تغيير حجم الصور إلى
imgszمعامل
يتم تغيير حجم الصور الكبيرة تلقائيًا مع الحفاظ على نسبة العرض إلى الارتفاع.
هل يمكنني إجراء الاستدلال الدفعي؟
تعالج الـ API الحالية صورة واحدة لكل طلب. للمعالجة الدفعية:
- أرسل طلبات متزامنة
- استخدم نقطة نهاية مخصصة لإنتاجية أعلى
- فكر في الاستدلال المحلي للدفعات الكبيرة