الاستدلال#
توفر Ultralytics Platform استدلالًا عبر المتصفح لاختبار النماذج المدرَّبة، ونقاط نهاية مخصصة للوصول البرمجي.

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

طرق الإدخال#
تدعم لوحة التنبؤ طرق إدخال متعددة:
| الطريقة | الوصف |
|---|---|
| تحميل صورة | اسحب صورة وأفلتها أو انقر لتحميلها |
| صور المثال | انقر فوق الأمثلة المضمّنة (صور مجموعة البيانات أو الصور الافتراضية) |
| التقاط من كاميرا الويب | بث مباشر من الكاميرا مع التقاط إطار واحد |
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
- الحد الأقصى للحجم: 10 MB
- الاستدلال التلقائي: تظهر النتائج تلقائيًا بعد التحميل
تُجري لوحة التنبؤ الاستدلال تلقائيًا عند تحميل صورة، أو تحديد مثال، أو التقاط إطار من كاميرا الويب. لا حاجة إلى النقر فوق أي زر.
قبل التحميل، تغيّر اللوحة حجم الصورة بحيث يطابق أطول جانب فيها Image Size المحدد، وتطلب إحداثيات مُطبَّعة. يحافظ ذلك على سرعة الاختبار في المتصفح؛ أما الطلبات التي ترسلها بنفسك فلا يُغيَّر حجمها.
صور المثال#
تعرض لوحة التنبؤ ما يصل إلى صورتين مثاليتين من مجموعة البيانات المرتبطة بنموذجك، مع تفضيل التقسيم val، ثم
test، ثم train. إذا لم تكن هناك مجموعة بيانات مرتبطة، تُستخدم الأمثلة الافتراضية:
| الصورة | المحتوى |
|---|---|
bus.jpg | مشهد شارع يضم مركبات |
zidane.jpg | مشهد رياضي يضم أشخاصًا |
بالنسبة إلى نماذج OBB، تُعرض بدلًا من ذلك صور جوية لقوارب ومطار.
تُحمّل صور المثال مسبقًا عند تحميل الصفحة، لذا يؤدي النقر فوق مثال إلى تشغيل الاستدلال شبه الفوري من دون انتظار التنزيل.
كاميرا الويب#
انقر فوق بطاقة كاميرا الويب لبدء بث مباشر من الكاميرا:
- امنح إذن الوصول إلى الكاميرا عند مطالبتك بذلك
- انقر فوق معاينة الفيديو لالتقاط إطار
- يُجرى الاستدلال تلقائيًا على الإطار الملتقط
- انقر مرة أخرى لإعادة تشغيل كاميرا الويب
عرض النتائج#
تعرض نتائج الاستدلال المخرجات المناسبة لمهمة النموذج: المربعات، أو الأقنعة، أو النقاط الأساسية، أو المربعات الموجّهة، أو درجات التصنيف، أو التغطية الدلالية، أو خريطة العمق. تستخدم نتائج الكائنات ألوان الفئات الخاصة بمجموعة البيانات عند توفرها. وتعرض اللوحة أيضًا توقيت المعالجة المسبقة، والاستدلال، والمعالجة اللاحقة، والشبكة.

تُظهر لوحة النتائج ما يلي:
| الحقل | الوصف |
|---|---|
| ملخص النتائج | قائمة بكل اكتشاف، أو أعلى 5 فئات لنماذج التصنيف والنماذج الدلالية |
| إحصاءات السرعة | المعالجة المسبقة، والاستدلال، والمعالجة اللاحقة، والشبكة (ms) |
| الإصدارات | إصدارات Ultralytics وPyTorch، بالإضافة إلى نطاق العمق أو حجم القناع عند الاقتضاء |
| استجابة JSON | استجابة API الخام داخل كتلة تعليمات برمجية، مع حذف بيانات الخريطة المشفّرة بصيغة base64 |
يوجد عنصران للتحكم فوق المعاينة بعد ظهور النتائج: انقر فوق الصورة لتكبيرها مع إبقاء التراكبات intact، واستخدم زر التنزيل لحفظ صورة JPEG مشروحة للنتيجة الحالية.
معلمات الاستدلال#
اضبط سلوك الاستدلال باستخدام أشرطة التمرير الثلاثة أسفل الصورة:

| المعلمة | النطاق | الافتراضي | الوصف |
|---|---|---|---|
| الثقة | 0.01 – 1.0، بخطوات مقدارها 0.01 | 0.25 | الحد الأدنى لعتبة الثقة |
| IoU | 0.0 – 0.95، بخطوات مقدارها 0.01 | 0.7 | عتبة IoU الخاصة بـ NMS |
| حجم الصورة | 32 – 1280، بخطوات مقدارها 32 | 640 | بُعد تغيير حجم الإدخال |
يؤدي تغيير أي معلمة إلى إعادة تشغيل الاستدلال تلقائيًا على الصورة الحالية مع تأخير قدره 500ms. لا حاجة إلى إعادة التحميل.
عتبة الثقة#
صفِّ التنبؤات حسب الثقة:
- أعلى (0.5+): تنبؤات أقل وأكثر يقينًا
- أقل (0.1-0.25): تنبؤات أكثر، مع بعض الضوضاء
- الافتراضية (0.25): متوازنة لمعظم حالات الاستخدام
عتبة IoU#
تحكّم في الإخماد غير الأقصى:
- أعلى (0.7+): السماح بمزيد من المربعات المتداخلة
- أقل (0.3-0.5): قمع الاكتشافات المتداخلة بدرجة أكبر
- الافتراضية (0.7): سلوك NMS متوازن لمعظم حالات الاستخدام
التنبؤ عبر النشر#
تتضمن كل نقطة نهاية مخصصة قيد التشغيل علامة تبويب Predict مباشرةً على بطاقة النشر الخاصة بها. ويستخدم ذلك خدمة الاستدلال الخاصة بالنشر بدلًا من خدمة التنبؤ المشتركة، ما يتيح لك اختبار نقطة النهاية المنشورة من المتصفح.
في نقطة نهاية مدفوعة مع تمكين المراقبة، تسهم الصور المعالجة أيضاً في علامة تبويب المراقبة. إن أمثلتها المعينة بعينات والرسوم البيانية التجميعية هي بيانات خفيفة الوزن ومؤقتة محتفظ بها في الذاكرة؛ إذ يمكن أن يؤدي إيقاف النموذج، أو إعادة تشغيله، أو إعادة نشره، أو تغيير حجمه، أو استبداله إلى مسحها. احفظ أمثلة علامة تبويب المراقبة في مجموعة بيانات للاحتفاظ بها.
واجهة API لنقطة النهاية المخصصة#
تحتوي بطاقة API Docs في علامة تبويب النموذج Predict على طلبات نموذجية باستخدام Python وJavaScript وcURL، مع تعبئتها مسبقًا بقيم الثقة وIoU وحجم الصورة المضبوطة حاليًا على أشرطة التمرير. يظل عنوان URL والمفتاح عنصرين نائبين إلى أن تنشر النموذج — وينقلك زر Deploy بجوار علامات تبويب التعليمات البرمجية إلى علامة تبويب النموذج Deploy. بعد النشر، تُعبّئ علامة تبويب Code في بطاقة النشر عنوان URL لنقطة النهاية هذه، ومفتاح API المرتبط بها لمالكي مساحة العمل، ويصبحان جاهزين للنسخ والتشغيل.
المصادقة#
ضمّن مفتاح API الخاص بك في الطلبات:
Authorization: Bearer YOUR_API_KEYلتشغيل الاستدلال من نصوصك البرمجية أو دفاتر الملاحظات أو تطبيقاتك، ضمّن مفتاح API. أنشئ واحدًا في Settings > API Keys. تقبل نقطة النهاية المخصصة المفتاح الواحد الذي أُنشئت به فقط؛ بينما تقبل واجهة API المشتركة للنموذج أي مفتاح نشط في مساحة العمل، كما تقبل النماذج العامة الطلبات المجهولة.
نقطة النهاية#
تستقبل نقاط النهاية المخصصة الطلبات على عنوان URL الخاص بها:
POST https://YOUR_DEPLOYMENT_URL.run.app/predictيستخدم الاستدلال المشترك Platform API مع المسار الكامل للنموذج:
POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predictيقبل كلاهما نص الطلب multipart/form-data نفسه ويعيدان بنية الاستجابة نفسها. باستخدام Python SDK، استخدم client.models.predict(owner, project, model, body=...) للاستدلال المشترك أو client.deployments.predict(owner, deployment, body=...) لنشر مخصص:
from ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})الطلب#
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 | file | - | - | ملف صورة أو فيديو (مطلوب ما لم يتم تعيين source) |
conf | float | 0.25 | 0.01 – 1.0 | الحد الأدنى لعتبة الثقة |
iou | float | 0.7 | 0.0 – 0.95 | عتبة IoU الخاصة بـ NMS |
imgsz | int | 640 | 32 – 1280 | حجم صورة الإدخال بالبكسل |
normalize | bool | false | - | إرجاع إحداثيات المربع المحيط ضمن النطاق 0 – 1 |
decimals | int | 5 | 0 – 10 | الدقة العشرية لقيم الإحداثيات |
bits | int | 8 | 8, 12, 16 | تكميم خريطة العمق، لنماذج العمق فقط |
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,
"functionTimeAlive": 1284.51,
"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 | كائن | إحداثيات المربع المحيط |
images[].semantic_mask | كائن | خريطة الفئات لكل بكسل (للنماذج الدلالية فقط) |
images[].depth | كائن | خريطة العمق لكل بكسل (لنماذج العمق فقط) |
images[].speed | كائن | أوقات المعالجة بالمللي ثانية |
metadata | كائن | عدد الصور، وأوقات الخدمة، والمهمة، وإصدارات Ultralytics/PyTorch |
الاستجابات الخاصة بالمهمة#
يختلف تنسيق الاستجابة باختلاف المهمة:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}حدود معدل الطلبات#
تقتصر واجهة النماذج المشتركة على 20 طلبًا/دقيقة لكل مفتاح API أو متصل سجّل دخوله أو عنوان IP مجهول. عند
تقييد المعدل، تعيد واجهة API القيمة 429 مع ترويسة Retry-After. راجع
مرجع حدود المعدل الكامل لجميع فئات نقاط النهاية.
لا تمر الطلبات المرسلة مباشرةً إلى نقطة نهاية مخصصة عبر محدِّد معدل Platform API. ومع ذلك، تظل نقطة النهاية تخفف الحمل باستخدام 429 وترويسة Retry-After عندما تبلغ سعتها الحد الأقصى مؤقتًا. للاستدلال المحلي واسع النطاق، راجع دليل وضع Predict.
معالجة الأخطاء#
استجابات الأخطاء الشائعة:
| الرمز | الرسالة | الحل |
|---|---|---|
| 400 | الصورة غير صالحة | تحقق من تنسيق الملف أو من أن النموذج يحتوي على أوزان مدرَّبة |
| 401 | غير مصرّح به | تحقق من مفتاح API |
| 404 | النموذج غير موجود | تحقق من أسماء المالك والمشروع والنموذج |
| 413 | الإدخال كبير جدًا | خفّض حجم الملف إلى ما دون حد نقطة النهاية |
| 429 | تم بلوغ حد المعدل | انتظر وأعد المحاولة، أو أرسل الطلبات مباشرةً إلى نقطة نهاية مخصصة |
| 500 | خطأ في الخادم | أعد محاولة الطلب |
| 503 | الخدمة غير متاحة | خدمة Predict قيد بدء التشغيل أو يتعذر الوصول إليها؛ انتظر قليلًا ثم أعد المحاولة |
الأسئلة الشائعة#
تقبل طريقتا الاستدلال كلتاهما ملفات الفيديو:
- تقبل نقاط النهاية المخصصة ملفات الفيديو مباشرةً. التنسيقات المدعومة (حتى 100 ميغابايت): ASF، AVI، GIF، M4V، MKV، MOV، MP4، MPEG، MPG، TS، WEBM، WMV. تتم معالجة كل إطار على حدة، وتُعاد النتائج لكل إطار. راجع نقاط النهاية المخصصة للحصول على التفاصيل.
- يستخدم الاستدلال المشترك (
POST /api/models/{owner}/{project}/{model}/predict) خدمة التنبؤ نفسها ويقبل تنسيقات الفيديو نفسها. لا يتيح تبويب Predict في المتصفح سوى اختيار الصور، لذا استخدم API أو نقطة نهاية مخصصة للفيديو.
في تبويب Predict، يحفظ زر التنزيل الموجود فوق المعاينة النتيجة الحالية بصيغة JPEG مشروحة. وتعيد واجهة API نفسها تنبؤات بتنسيق JSON. لتصوير هذه التنبؤات:
- استخدم التنبؤات لرسم المربعات محليًا
- استخدم طريقة
plot()في Ultralytics:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("image.jpg") results[0].save("annotated.jpg")راجع وثائق وضع Predict للاطلاع على واجهة النتائج الكاملة وخيارات التصوير.
- حد تبويب Predict: 10 ميغابايت
- حد API: 100 ميغابايت لكل من الاستدلال المشترك ونقاط النهاية المخصصة
- تغيير الحجم تلقائيًا في تبويب Predict: تُغيَّر أحجام الصور إلى
Image Sizeالمحدد قبل الرفع
تُغيَّر أحجام الصور الكبيرة تلقائيًا في المتصفح مع الحفاظ على نسبة العرض إلى الارتفاع. أما الطلبات التي ترسلها بنفسك فلا يُغيَّر حجمها، لذا تُرفض الصور التي تتجاوز الحد مع
413.تعالج API الحالية صورة واحدة لكل طلب. لإجراء المعالجة الدفعية:
- أرسل طلبات منفصلة لكل صورة
- وزّع الطلبات على نقاط النهاية المخصصة عند الاقتضاء
- استخدم الاستدلال المحلي للدفعات الكبيرة
الاستدلال الدفعي باستخدام Pythonimport concurrent.futures import requests url = "https://YOUR_DEPLOYMENT_URL.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))