الاستنتاج#
يوفر Ultralytics Platform استدلالاً مستنداً إلى المتصفح لاختبار النماذج المدربة ونطاقات مخصصة للوصول البرمجي.

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

طرق الإدخال#
تدعم لوحة التوقع طرق إدخال متعددة:
| الطريقة (Method) | الوصف |
|---|---|
| تحميل الصور | سحب وإفلات أو انقر لتحميل صورة |
| صور الأمثلة | انقر فوق الأمثلة المضمنة (صور مجموعة البيانات أو الافتراضية) |
| التقاط كاميرا الويب | بث مباشر للكاميرا مع التقاط إطار واحد |
graph LR
A[Upload Image]:::start --> D[Auto-Inference]:::proc
B[Example Image]:::start --> D
C[Webcam Capture]:::start --> D
D --> E[Results + Overlays]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffتحميل صورة#
سحب وإفلات أو انقر للتحميل:
- التنسيقات المدعومة: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- الحجم الأقصى: 10MB
- الاستنتاج التلقائي: تظهر النتائج تلقائياً بعد التحميل
تعمل لوحة التوقع على إجراء الاستنتاج تلقائياً عند تحميل صورة، أو اختيار مثال، أو التقاط إطار من كاميرا الويب. لا حاجة للنقر على أي زر.
صور الأمثلة#
تعرض لوحة التوقع صوراً توضيحية من مجموعة البيانات المرتبطة بنموذجك. إذا لم يتم ربط أي مجموعة بيانات، يتم استخدام الأمثلة الافتراضية:
| الصورة | المحتوى |
|---|---|
bus.jpg | مشهد شارع مع مركبات |
zidane.jpg | مشهد رياضي مع أشخاص |
بالنسبة لنماذج OBB، يتم عرض صور جوية للقوارب والمطارات بدلاً من ذلك.
يتم تحميل صور الأمثلة مسبقاً عند تحميل الصفحة، لذا فإن النقر على مثال يؤدي إلى بدء الاستنتاج فوراً تقريباً دون انتظار التحميل.
كاميرا الويب#
انقر على بطاقة كاميرا الويب لبدء بث الكاميرا المباشر:
- امنح إذن الوصول للكاميرا عند المطالبة بذلك
- انقر على معاينة الفيديو لالتقاط إطار
- يتم إجراء الاستنتاج تلقائياً على الإطار الذي تم التقاطه
- انقر مرة أخرى لإعادة تشغيل كاميرا الويب
عرض النتائج#
تعرض نتائج الاستدلال النخراج المناسب لمهمة النموذج: المربعات، أو الأقنعة، أو النقاط الرئيسية، أو المربعات الموجهة، أو درجات التصنيف، أو التغطية الدلالية، أو خريطة العمق. تستخدم نتائج الكائنات ألوان فئة مجموعة البيانات عند توفرها. تظهر اللوحة أيضاً أوقات المعالجة المسبقة، والاستدلال، والمعالجة اللاحقة، والشبكة.
تعرض لوحة النتائج ما يلي:
| الحقل | الوصف |
|---|---|
| ملخص النتائج | الاكتشافات أو التصنيفات أو تغطية الفئات الدلالية |
| إحصائيات السرعة | المعالجة المسبقة، الاستدلال، المعالجة اللاحقة، والشبكة (بالميللي ثانية) |
| استجابة JSON | استجابة API الخام في كتلة كود |
معايير الاستنتاج#
اضبط سلوك الاستدلال باستخدام أشرطة التمرير الثلاثة أدناه الصورة:

| المعامل | النطاق | الافتراضي | الوصف |
|---|---|---|---|
| الثقة (Confidence) | 0.01 إلى 1.0، بخطوات قدرها 0.01 | 0.25 | الحد الأدنى لعتبة الثقة |
| IoU | 0.0 إلى 0.95، بخطوات قدرها 0.01 | 0.7 | عتبة NMS IoU |
| حجم الصورة | 32 إلى 1280، بخطوات قدرها 32 | 640 | بعد تغيير حجم الإدخال |
يؤدي تغيير أي معلمة تلقائياً إلى إعادة تشغيل الاستنتاج على الصورة الحالية مع تأخير 500 مللي ثانية. لا حاجة لإعادة التحميل.
عتبة الثقة#
تصفية التوقعات حسب الثقة:
- أعلى (0.5+): توقعات أقل، ولكن أكثر يقينية
- أقل (0.1-0.25): توقعات أكثر، مع بعض الضوضاء
- افتراضي (0.25): متوازن لمعظم حالات الاستخدام
عتبة IoU#
التحكم في خوارزمية NMS (Non-Maximum Suppression):
- أعلى (0.7+): السماح بمزيد من الصناديق المتداخلة
- الحد الأدنى (0.3-0.5): قمع الاكتشافات المتداخلة بشكل أكثر عدوانية
- افتراضي (0.7): سلوك NMS متوازن لمعظم حالات الاستخدام
توقع النشر#
يتضمن كل نقطة نهاية مخصصة قيد التشغيل علامة تبويب Predict مباشرة على بطاقة النشر الخاصة بها. يستخدم هذا خدمة استنتاج النشر نفسها بدلاً من خدمة التوقع المشتركة، مما يتيح لك اختبار نقطة النهاية المنشورة من المتصفح.
API النطاق المخصص#
تحتوي بطاقة API Docs في علامة التبويب Predict للنموذج على طلبات Python وJavaScript وcURL نموذجية. تستخدم الأمثلة عناصر نائبة حتى تقوم بنشر النموذج. بعد النشر، تملأ علامة التبويب Code لبطاقة النشر عنوان URL للنطاق ومفتاح API المتاح لمساحة العمل الخاصة بك.
المصادقة#
قم بتضمين مفتاح API الخاص بك في الطلبات:
Authorization: Bearer YOUR_API_KEYلتشغيل الاستنتاج من البرامج النصية أو دفاتر الملاحظات أو التطبيقات الخاصة بك، قم بتضمين مفتاح API. قم بإنشاء واحد في Settings > API Keys.
نقطة النهاية#
POST https://YOUR_DEPLOYMENT_URL.run.app/predictطلب#
import requests
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
with open("image.jpg", "rb") as image_file:
response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())
معلمات الطلب#
| المعامل | النوع | الافتراضي | النطاق | الوصف |
|---|---|---|---|---|
file | ملف | - | - | ملف صورة أو فيديو (مطلوب ما لم يتم تعيين source) |
conf | float | 0.25 | 0.01 – 1.0 | الحد الأدنى لعتبة الثقة |
iou | float | 0.7 | 0.0 – 0.95 | عتبة NMS IoU |
imgsz | int | 640 | 32 – 1280 | حجم صورة الإدخال بالبكسل |
normalize | منطقي (bool) | false | - | إرجاع إحداثيات صندوق الإحاطة (bounding box) كـ 0 – 1 |
decimals | int | 5 | 0 – 10 | الدقة العشرية لقيم الإحداثيات |
source | string | - | - | عنوان URL للصورة أو سلسلة base64 (بديل لـ file) |
استجابة#
{
"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,
"task": "detect",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
حقول الاستجابة#
| الحقل | النوع | الوصف |
|---|---|---|
images | مصفوفة | قائمة بالصور المعالجة |
images[].shape | مصفوفة | أبعاد الصورة [الارتفاع، العرض] |
images[].results | مصفوفة | قائمة الكشف |
images[].results[].class | int | فهرس الفئة (معرف رقمي) |
images[].results[].name | string | اسم الفئة |
images[].results[].confidence | float | ثقة الكشف (0-1) |
images[].results[].box | كائن | إحداثيات مربع الإحاطة (BBox) |
images[].speed | كائن | أوقات المعالجة بالملي ثانية |
metadata | كائن | بيانات تعريف الطلب ومعلومات الإصدار |
الاستجابات الخاصة بكل مهمة#
يختلف تنسيق الاستجابة حسب المهمة:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}حدود المعدل#
يقتصر API النماذج المشترك على 20 طلباً/دقيقة لكل مفتاح API، أو مُتصل مسجل الدخول، أو عنوان IP مجهول. عند تقييد المعدل، يُرجع API الرمز 429 مع رأس Retry-After. راجع مرجع حد المعدل الكامل لمعرفة جميع فئات النطاقات.
الطلبات المرسلة مباشرة إلى نطاق مخصص لا تمر عبر محدد معدل Platform API. للاستدلال المحلي عالي الحجم، راجع دليل وضع Predict.
معالجة الأخطاء#
استجابات الخطأ الشائعة:
| الكود | الرسالة | الحل |
|---|---|---|
| 400 | صورة غير صالحة | تحقق من تنسيق الملف |
| 401 | غير مصرح به | تحقق من مفتاح الـ API |
| 404 | النموذج غير موجود | تحقق من معرف النموذج |
| 429 | تم تجاوز حد المعدل | انتظر وأعد المحاولة، أو أرسل الطلبات مباشرة إلى نطاق مخصص |
| 500 | خطأ في الخادم | أعد محاولة الطلب |
| 503 | الخدمة غير متوفرة | خدمة Predict قيد التشغيل أو يتعذر الوصول إليها؛ انتظر قليلاً وأعد المحاولة |
الأسئلة الشائعة#
هل يمكنني إجراء الاستدلال على الفيديو؟#
تقبل كلتا طريقتي الاستدلال ملفات الفيديو:
- نقاط النهاية المخصصة تقبل ملفات الفيديو مباشرة. التنسيقات المدعومة (حتى 100 ميجابايت): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. تتم معالجة كل إطار على حدة ويتم إرجاع النتائج لكل إطار. راجع نقاط النهاية المخصصة للحصول على التفاصيل.
- يستخدم الاستدلال المشترك (
/api/models/{id}/predict) نفس خدمة التنبؤ ويقبل نفس تنسيق الفيديو. تحدد علامة التبويب Predict في المتصفح الصور فقط، لذا استخدم API أو نطاقاً مخصصاً للفيديو.
كيف أحصل على الصورة المشروحة؟#
تقوم الـ API بإرجاع تنبؤات بتنسيق JSON. للتصور:
- استخدم التنبؤات لرسم المربعات محلياً
- استخدم طريقة
plot()الخاصة بـ Ultralytics:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")راجع توثيق وضع Predict للحصول على نتائج الـ API الكاملة وخيارات التصور.
ما هو الحد الأقصى لحجم الصورة؟#
- حد علامة التبويب Predict: 10 ميجابايت
- حد API النطاق المخصص: 100 ميجابايت
- تغيير الحجم تلقائياً في علامة التبويب Predict: يتم تغيير حجم الصور إلى
Image Sizeالمحدد قبل الرفع
يتم تغيير حجم الصور الكبيرة تلقائياً مع الحفاظ على نسبة العرض إلى الارتفاع.
هل يمكنني تشغيل استدلال الدفعات (Batch Inference)؟#
تقوم الـ API الحالية بمعالجة صورة واحدة لكل طلب. للدفعات:
- إرسال طلبات منفصلة لكل صورة
- توزيع الطلبات عبر النطاقات المخصصة عندما يكون ذلك مناسباً
- استخدام الاستدلال المحلي للدفعات الكبيرة
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))