تخطي إلى المحتوى

Inference API لـ Ultralytics HUB

بعد تدريب النموذج، يمكنك استخدام Shared Inference API مجانًا. إذا كنت مستخدمًا Pro، فيمكنك الوصول إلى Dedicated Inference API. يتيح لك Ultralytics HUB Inference API تشغيل الاستدلال من خلال REST API الخاص بنا دون الحاجة إلى تثبيت وإعداد بيئة Ultralytics YOLO محليًا.

لقطة شاشة لواجهة Ultralytics HUB لعلامة التبويب Deploy داخل صفحة النموذج مع سهم يشير إلى بطاقة Dedicated Inference API وآخر إلى بطاقة Shared Inference API


شاهد: شرح تفصيلي لـ Inference API الخاص بـ Ultralytics HUB

Inference API مخصصة

استجابة للطلب المرتفع والاهتمام الواسع النطاق، يسعدنا الكشف عن Ultralytics HUB Dedicated Inference API، الذي يوفر نشرًا بنقرة واحدة في بيئة مخصصة لمستخدمي Pro!

ملاحظة

يسعدنا أن نقدم هذه الميزة مجانًا خلال النسخة التجريبية العامة كجزء من الخطة الاحترافية، مع إمكانية وجود مستويات مدفوعة في المستقبل.

  • تغطية عالمية: يتم النشر عبر 38 منطقة حول العالم، مما يضمن الوصول بزمن انتقال منخفض من أي مكان. اطلع على القائمة الكاملة لمناطق Google Cloud.
  • مدعوم من Google Cloud Run: مدعوم من Google Cloud Run، مما يوفر بنية تحتية قابلة للتطوير بلا حدود وموثوقة للغاية.
  • سرعة عالية: زمن انتقال أقل من 100 مللي ثانية ممكن لاستدلال YOLOv8n بدقة 640 من المناطق القريبة بناءً على اختبار Ultralytics.
  • أمان مُحسَّن: يوفر ميزات أمان قوية لحماية بياناتك وضمان الامتثال لمعايير الصناعة. تعرف على المزيد حول أمان Google Cloud.

لاستخدام Ultralytics HUB Dedicated Inference API، انقر فوق زر بدء نقطة النهاية. بعد ذلك، استخدم عنوان URL الفريد لنقطة النهاية كما هو موضح في الأدلة أدناه.

لقطة شاشة لواجهة Ultralytics HUB لعلامة التبويب Deploy داخل صفحة النموذج مع سهم يشير إلى زر Start Endpoint في بطاقة Dedicated Inference API

نصيحة

اختر المنطقة ذات الأقل زمن انتقال للحصول على أفضل أداء كما هو موضح في الوثائق.

لإيقاف نقطة النهاية المخصصة، انقر فوق زر إيقاف نقطة النهاية.

لقطة شاشة لواجهة Ultralytics HUB لعلامة التبويب Deploy داخل صفحة النموذج مع سهم يشير إلى زر Stop Endpoint في بطاقة Dedicated Inference API

Inference API مشتركة

لاستخدام Ultralytics HUB Shared Inference API، اتبع الأدلة أدناه.

تحتوي Inference API Ultralytics HUB Shared Inference API على حدود الاستخدام التالية:

  • 100 مكالمة / ساعة

Python

للوصول إلى Ultralytics HUB Inference API باستخدام Python، استخدم الكود التالي:

import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())

ملاحظة

استبدل MODEL_ID مع مُعرّف النموذج المطلوب، API_KEY مع مفتاح API الفعلي الخاص بك، و path/to/image.jpg مع مسار الصورة التي تريد تشغيل الاستدلال عليها.

إذا كنت تستخدم Inference API مخصصة، استبدل الـ url أيضًا.

cURL

للوصول إلى Ultralytics HUB Inference API باستخدام cURL، استخدم الكود التالي:

curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"

ملاحظة

استبدل MODEL_ID مع مُعرّف النموذج المطلوب، API_KEY مع مفتاح API الفعلي الخاص بك، و path/to/image.jpg مع مسار الصورة التي تريد تشغيل الاستدلال عليها.

إذا كنت تستخدم Inference API مخصصة، استبدل الـ url أيضًا.

الوسائط

راجع الجدول أدناه للحصول على قائمة كاملة بحجج الاستدلال المتاحة.

الوسيطةافتراضيالنوعالوصف
filefileملف صورة أو فيديو لاستخدامه في الاستدلال.
imgsz640intحجم الصورة المدخلة، النطاق الصالح هو 32 - 1280 بكسل.
conf0.25floatعتبة الثقة للتنبؤات، نطاق صالح 0.01 - 1.0.
iou0.45floatالتقاطع على الاتحاد عتبة (IoU)، نطاق صالح 0.0 - 0.95.

استجابة

تُرجع Inference API Ultralytics HUB Inference API استجابة JSON.

التصنيف

نموذج التصنيف

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-cls.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

اكتشاف

نموذج الكشف

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

OBB

نموذج OBB

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-obb.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 374.85565,
            "x2": 392.31824,
            "x3": 412.81805,
            "x4": 395.35547,
            "y1": 264.40704,
            "y2": 267.45728,
            "y3": 150.0966,
            "y4": 147.04634
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

التجزئة

نموذج التقسيم

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-seg.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          },
          "segments": {
            "x": [
              266.015625,
              266.015625,
              258.984375,
              ...
            ],
            "y": [
              110.15625,
              113.67188262939453,
              120.70311737060547,
              ...
            ]
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

الوضع

نموذج الوضعية

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-pose.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
  -F "file=@/path/to/image.jpg" \
  -F "imgsz=640" \
  -F "conf=0.25" \
  -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          },
          "keypoints": {
            "visible": [
              0.9909399747848511,
              0.8162999749183655,
              0.9872099757194519,
              ...
            ],
            "x": [
              316.3871765136719,
              315.9374694824219,
              304.878173828125,
              ...
            ],
            "y": [
              156.4207763671875,
              148.05775451660156,
              144.93240356445312,
              ...
            ]
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}


📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 8 أشهر
glenn-jochersergiuwaxmannMatthewNoycejk4eUltralyticsAssistantRizwanMunawarpriytosh-tripathi

تعليقات