YOLO Vision 2026:

الاستنتاج#

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

Ultralytics Platform Model Predict Tab With Detections Overlay

علامة تبويب التنبؤ#

يحتوي كل نموذج ذو أوزان على علامة تبويب Predict للاستدلال القائم على المتصفح:

  1. انتقل إلى النموذج الخاص بك
  2. انقر فوق علامة التبويب Predict
  3. قم بتحميل صورة، أو استخدم مثالاً، أو افتح كاميرا الويب الخاصة بك
  4. راجع التراكب الخاص بالمهمة، وملخص التنبؤ، والتوقيت، والاستجابة الخام

تعرض النماذج التي لا تحتوي على أوزان حالة فارغة بدلاً من ذلك - قم بتدريب النموذج أو تحميل الأوزان أولاً.

Ultralytics Platform Predict Tab Image Upload Dropzone

طرق الإدخال#

تدعم لوحة التوقع طرق إدخال متعددة:

الطريقة (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
  • الحد الأقصى للحجم: 10 ميغابايت
  • الاستنتاج التلقائي: تظهر النتائج تلقائياً بعد التحميل
الاستنتاج التلقائي

تعمل لوحة التوقع على إجراء الاستنتاج تلقائياً عند تحميل صورة، أو اختيار مثال، أو التقاط إطار من كاميرا الويب. لا حاجة للنقر على أي زر.

تغيير حجم الصورة من جانب العميل

قبل التحميل، يقوم اللوح بتغيير حجم الصورة بحيث يتطابق أطول ضلع فيها مع Image Size المحدد، ويطلب إحداثيات مصححة. يحافظ هذا على سرعة الاختبار في المتصفح؛ بينما لا يتم تغيير حجم الطلبات التي ترسلها بنفسك.

صور الأمثلة#

تعرض لوحة التنبؤ ما يصل إلى صورتين نموذجيتين من مجموعة البيانات المرتبطة بنموذجك، مع تفضيل تقسيم val، ثم test، ثم train. إذا لم تقم بربط أي مجموعة بيانات، يتم استخدام الأمثلة الافتراضية:

الصورةالمحتوى
bus.jpgمشهد شارع مع مركبات
zidane.jpgمشهد رياضي مع أشخاص

بالنسبة لنماذج OBB، يتم عرض صور جوية للقوارب ومطار بدلاً من ذلك.

صور محملة مسبقاً

يتم تحميل صور الأمثلة مسبقاً عند تحميل الصفحة، لذا فإن النقر على مثال يؤدي إلى بدء الاستنتاج فوراً تقريباً دون انتظار التحميل.

كاميرا الويب#

انقر على بطاقة كاميرا الويب لبدء بث الكاميرا المباشر:

  1. امنح إذن الوصول للكاميرا عند المطالبة بذلك
  2. انقر على معاينة الفيديو لالتقاط إطار
  3. يتم إجراء الاستنتاج تلقائياً على الإطار الذي تم التقاطه
  4. انقر مرة أخرى لإعادة تشغيل كاميرا الويب

عرض النتائج#

تعرض نتائج الاستدلال النخراج المناسب لمهمة النموذج: المربعات، أو الأقنعة، أو النقاط الرئيسية، أو المربعات الموجهة، أو درجات التصنيف، أو التغطية الدلالية، أو خريطة العمق. تستخدم نتائج الكائنات ألوان فئة مجموعة البيانات عند توفرها. تظهر اللوحة أيضاً أوقات المعالجة المسبقة، والاستدلال، والمعالجة اللاحقة، والشبكة.

Ultralytics Platform Predict Tab Results With Detections And Speed Stats تظهر لوحة النتائج:

الحقلالوصف
ملخص النتائجقائمة لكل عملية اكتشاف، أو أعلى 5 فئات لنموذجي التصنيف والدلالة
إحصائيات السرعةالمعالجة المسبقة، الاستدلال، المعالجة اللاحقة، والشبكة (بالميللي ثانية)
الإصداراتإصدارات Ultralytics و PyTorch، بالإضافة إلى نطاق العمق أو حجم القناع إن وجد
استجابة JSONاستجابة API الخام داخل كتلة تعليمات برمجية، مع حذف بيانات خريطة base64

يوجد عنصرا تحكم أعلى المعاينة بمجرد ظهور النتائج: انقر فوق الصورة لتكبيرها مع الاحتفاظ بالتراكبات سليمة، واستخدم زر التنزيل لحفظ صورة JPEG معلنة للنتيجة الحالية.

معايير الاستنتاج#

اضبط سلوك الاستدلال باستخدام أشرطة التمرير الثلاثة أدناه الصورة:

Ultralytics Platform Predict Tab Parameters Sliders

المعاملالنطاقالافتراضيالوصف
الثقة (Confidence)0.01 إلى 1.0، بخطوات قدرها 0.010.25الحد الأدنى لعتبة الثقة
IoU0.0 إلى 0.95، بخطوات قدرها 0.010.7عتبة NMS IoU
حجم الصورة32 إلى 1280، بخطوات قدرها 32640بعد تغيير حجم الإدخال
إعادة التشغيل التلقائي

يؤدي تغيير أي معلمة تلقائياً إلى إعادة تشغيل الاستنتاج على الصورة الحالية مع تأخير 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، محملة مسبقاً بمستوى الثقة و IoU وحجم الصورة المحدد حالياً على أدوات التمرير. يعتبر عنوان URL والمفتاح عنصرين مؤقتين حتى تقوم بنشر النموذج - ويؤدي زر Deploy بجوار علامات تبويب التعليمات البرمجية إلى الانتقال إلى علامة تبويب Deploy الخاصة بالنموذج. بعد النشر، يتم ملء علامة تبويب Code الخاصة ببطاقة النشر بعنوان URL لتلك نقطة النهاية، وبالنسبة لمالكي مساحة العمل، مفتاح API المرتبط بها، لتكون جاهزة للنسخ والتشغيل.

المصادقة#

قم بتضمين مفتاح API الخاص بك في الطلبات:

Authorization: Bearer YOUR_API_KEY
مفتاح API مطلوب

لتشغيل الاستدلال من نصوصك البرمجية أو دفاتر الملاحظات أو تطبيقاتك، قم تضمين مفتاح API. قم بإنشاء واحد في Settings > API Keys. تقبل نقطة النهاية المخصصة المفتاح الفردي الذي أنشئت به فقط؛ بينما تقبل واجهة برمجة تطبيقات النموذج المشترك أي مفتاح نشط في مساحة العمل، وتقبل النماذج العامة أيضاً الطلبات مجهولة الهوية.

نقطة النهاية#

تقبل نقاط النهاية المخصصة الطلبات على عنوان 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())

Ultralytics Platform Predict Tab Code Examples Python Tab

معلمات الطلب#

المعاملالنوعالافتراضيالنطاقالوصف
fileملف--ملف صورة أو فيديو (مطلوب ما لم يتم تعيين source)
conffloat0.250.01 – 1.0الحد الأدنى لعتبة الثقة
ioufloat0.70.0 – 0.95عتبة NMS IoU
imgszint64032 – 1280حجم صورة الإدخال بالبكسل
normalizeمنطقي (bool)false-إرجاع إحداثيات صندوق الإحاطة (bounding box) كـ 0 – 1
decimalsint50 – 10الدقة العشرية لقيم الإحداثيات
bitsint88, 12, 16كمية خريطة العمق، لنماذج العمق فقط
sourcestring--عنوان 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"
        }
    }
}

Ultralytics Platform Predict Tab Json Response View

حقول الاستجابة#

الحقلالنوعالوصف
imagesمصفوفةقائمة الصور المعالجة، إدخال واحد لكل إطار فيديو لمقاطع الفيديو
images[].shapeمصفوفةأبعاد الصورة [الارتفاع، العرض]
images[].resultsمصفوفةقائمة الكشف
images[].results[].classintفهرس الفئة (معرف رقمي)
images[].results[].namestringاسم الفئة
images[].results[].confidencefloatثقة الكشف (0-1)
images[].results[].boxكائنإحداثيات مربع الإحاطة (BBox)
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 مجهول. عند التقنين، تعيد واجهة برمجة التطبيقات 429 مع ترويسة Retry-After. راجع مرجع معدل الطلبات الكامل لجميع فئات نقاط النهاية.

هل تحتاج إلى إنتاجية أكبر؟

الطلبات المرسلة مباشرة إلى dedicated endpoint لا تمر عبر محدد معدل Platform API. لا تزال نقطة النهاية تتخلص من الحمل باستخدام 429 ورأس Retry-After عندما تكون في سعتها مؤقتاً. للحصول على استدلال محلي عالي الحجم، راجع Predict mode guide.

معالجة الأخطاء#

استجابات الخطأ الشائعة:

الكودالرسالةالحل
400صورة غير صالحةتحقق من تنسيق الملف، أو أن النموذج لديه أوزان مدربة
401غير مصرح بهتحقق من مفتاح الـ API
404النموذج غير موجودتحقق من أسماء المالك والمشروع والنموذج
413الإدخال كبير جداًقم بتقليل حجم الملف ليكون أقل من حد نقطة النهاية
429تم تجاوز حد المعدلانتظر وأعد المحاولة، أو أرسل الطلبات مباشرة إلى نقطة نهاية مخصصة
500خطأ في الخادمأعد محاولة الطلب
503الخدمة غير متوفرةخدمة Predict قيد التشغيل أو يتعذر الوصول إليها؛ انتظر قليلاً وأعد المحاولة

الأسئلة الشائعة#

  • تقبل كلتا طريقتي الاستدلال ملفات الفيديو:

    • النقاط النهائية المخصصة تقبل ملفات الفيديو مباشرة. التنسيقات المدعومة (حتى 100 ميغابايت): ASF وAVI وGIF وM4V وMKV وMOV وMP4 وMPEG وMPG وTS وWEBM وWMV. تتم معالجة كل إطار على حدة ويتم إرجاع النتائج لكل إطار. راجع النقاط النهائية المخصصة للتفاصيل.
    • Shared inference (POST /api/models/{owner}/{project}/{model}/predict) يستخدم خدمة التنبؤ نفسها ويقبل تنسيقات الفيديو نفسها. تحدد علامة تبويب المتصفح Predict الصور فقط، لذا استخدم API أو dedicated endpoint لمقاطع الفيديو.
  • في علامة تبويب Predict، يحفظ زر التنزيل الموجود فوق المعاينة النتيجة الحالية بصيغة JPEG معلنة. تُرجع واجهة برمجة التطبيقات نفسها تنبؤات JSON. لتصور تلك النتائج:

    1. استخدم التنبؤات لرسم المربعات محلياً
    2. استخدم طريقة Ultralytics plot():
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("image.jpg")
    results[0].save("annotated.jpg")

    راجع توثيق وضع التنبؤ لمعرفة واجهة برمجة تطبيقات النتائج الكاملة وخيارات التصور.

    • حد علامة التبويب Predict: 10 ميجابايت
    • API limit: 100 ميغابايت لكل من الاستدلال المشترك ونقاط النهاية المخصصة
    • تغيير الحجم تلقائياً في علامة تبويب Predict: يتم تغيير حجم الصور إلى Image Size المحدد قبل التحميل

    يتم تغيير حجم الصور الكبيرة تلقائياً في المتصفح مع الحفاظ على نسبة الارتفاع. لا يتم تغيير حجم الطلبات التي ترسلها بنفسك، لذا يتم رفض الصور التي تتجاوز الحد باستخدام 413.

  • تقوم الـ API الحالية بمعالجة صورة واحدة لكل طلب. للدفعات:

    1. إرسال طلبات منفصلة لكل صورة
    2. توزيع الطلبات عبر النطاقات المخصصة عندما يكون ذلك مناسباً
    3. استخدام الاستدلال المحلي للدفعات الكبيرة
    استدلال الدفعات باستخدام Python
    import 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))

التعليقات