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

Ultralytics واجهة برمجة تطبيقات HUB الاستدلالية

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

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


شاهد: Ultralytics شرح تفصيلي لواجهة برمجة تطبيقات HUB Inference API

واجهة برمجة التطبيقات الاستدلالية المخصصة

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

ملاحظة

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

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

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

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

نصيحة

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

لإيقاف تشغيل نقطة النهاية المخصصة، انقر على زر إيقاف نقطة النهاية.

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

واجهة برمجة تطبيقات الاستدلال المشترك

لاستخدام واجهة برمجة تطبيقات الاستدلال المشترك Ultralytics HUB، اتبع الإرشادات أدناه.

المستخدمون المجانيون لديهم حدود الاستخدام التالية:

  • 100 مكالمة/ساعة
  • 1000 مكالمة/شهرياً

المستخدمون المحترفون لديهم حدود الاستخدام التالية:

  • 1000 مكالمة/ساعة
  • 10000 مكالمة / شهر

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 مع المسار إلى الصورة التي تريد تشغيل الاستدلال عليها.

إذا كنت تستخدم واجهة برمجة التطبيقات الاستدلالية المخصصة، استبدل 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 مع المسار إلى الصورة التي تريد تشغيل الاستدلال عليها.

إذا كنت تستخدم واجهة برمجة التطبيقات الاستدلالية المخصصة، استبدل url كذلك.

الحجج

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

الجدال افتراضي النوع الوصف
file file ملف الصورة أو الفيديو المراد استخدامه للاستدلال.
imgsz 640 int حجم صورة الإدخال، النطاق الصالح هو 32 - 1280 بكسل.
conf 0.25 float عتبة الثقة للتنبؤات، النطاق الصحيح 0.01 - 1.0.
iou 0.45 float تقاطع فوق الاتحاد عتبة (IoU)، النطاق الصالح 0.0 - 0.95.

الاستجابة

تُرجع واجهة برمجة التطبيقات 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": ...
}
📅 تم الإنشاء قبل 10 أشهر ✏️ تم التحديث منذ 2 أشهر

التعليقات