الاستدلال
توفر Ultralytics واجهة برمجة تطبيقات استدلالية لاختبار النماذج المدربة. استخدم علامة التبويب "اختبار" المستندة إلى المتصفح للتحقق السريع أو REST API البرمجي.
علامة التبويب "اختبار"
يتضمن كل نموذج علامة تبويب "اختبار" للاستدلال المستند إلى المتصفح:
- انتقل إلى نموذجك
- انقر فوق علامة التبويب " اختبار "
- قم بتحميل صورة أو استخدم أمثلة
- عرض التوقعات على الفور
تحميل صورة
السحب والإفلات أو النقر للتحميل:
- التنسيقات المدعومة: JPG، PNG، WebP، GIF
- الحجم الأقصى: 10 ميغابايت
- الاستدلال التلقائي: تظهر النتائج تلقائيًا
أمثلة على الصور
استخدم الصور النموذجية المدمجة لإجراء اختبار سريع:
| صورة | المحتوى |
|---|---|
bus.jpg | مشهد شارع مع مركبات |
zidane.jpg | مشهد رياضي مع أشخاص |
عرض النتائج
عرض نتائج الاستدلال:
- مربعات الحدود مع تسميات الفئات
- درجات الثقة لكل اكتشاف
- ألوان الفئات المطابقة لمجموعة البيانات الخاصة بك
معلمات الاستدلال
اضبط سلوك الكشف باستخدام المعلمات:
| المعلمة | النطاق | افتراضي | الوصف |
|---|---|---|---|
| الثقة | 0.0-1.0 | 0.25 | الحد الأدنى لعتبة الثقة |
| IoU | 0.0-1.0 | 0.45 | IoU NMS IoU |
| حجم الصورة | 32-1280 | 640 | تغيير حجم المدخلات |
عتبة الثقة
تصفية التنبؤات حسب الثقة:
- أعلى (0.5+): تنبؤات أقل وأكثر تأكيدًا
- أقل (0.1-0.25): المزيد من التوقعات، بعض الضوضاء
- الافتراضي (0.25): متوازن لمعظم حالات الاستخدام
IoU
التحكم في عدم القمع الأقصى:
- أعلى (0.7+): السماح بتداخل المربعات
- أقل (0.3-0.45): دمج الاكتشافات القريبة
- الافتراضي (0.45): NMS القياسي 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.45"
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.45}
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 | لم يتم العثور على النموذج | تحقق من نموذج slug |
| 429 | معدل محدود | انتظر أو قم بترقية الخطة |
| 500 | خطأ في الخادم | إعادة محاولة الطلب |
الأسئلة الشائعة
هل يمكنني إجراء استدلال على الفيديو؟
تقبل واجهة برمجة التطبيقات (API) الإطارات الفردية. بالنسبة للفيديو:
- استخراج الإطارات محليًا
- إرسال كل إطار إلى واجهة برمجة التطبيقات
- النتائج الإجمالية
بالنسبة للفيديو في الوقت الفعلي، ضع في اعتبارك نشر نقطة نهاية مخصصة.
كيف أحصل على الصورة المُعلقة؟
تقوم واجهة برمجة التطبيقات (API) بإرجاع تنبؤات JSON. للتصور:
- استخدم التنبؤات لرسم المربعات محليًا
- استخدم Ultralytics
plot()الطريقة:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
ما هو الحد الأقصى لحجم الصورة؟
- حد التحميل: 10 ميغابايت
- Recommended: <5MB for fast inference
- تغيير الحجم تلقائيًا: يتم تغيير حجم الصور إلى
imgszمعامل
يتم تغيير حجم الصور الكبيرة تلقائيًا مع الحفاظ على نسبة العرض إلى الارتفاع.
هل يمكنني تشغيل الاستدلال الدفعي؟
تقوم واجهة برمجة التطبيقات الحالية بمعالجة صورة واحدة لكل طلب. بالنسبة للدُفعات:
- إرسال طلبات متزامنة
- استخدم نقطة نهاية مخصصة لزيادة الإنتاجية
- النظر في الاستدلال المحلي للدفعات الكبيرة