انتقل إلى المحتوى

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

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

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


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

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

واستجابةً للطلب الكبير والاهتمام الواسع النطاق، يسعدنا الكشف عن واجهة برمجة التطبيقات الاستدلالية المخصصة 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, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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 كذلك.

حليقه

للوصول إلى واجهة برمجة التطبيقات الاستدلالية Ultralytics HUB Inference API باستخدام cURL، استخدم الكود التالي:

curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -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].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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

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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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": ...
}

📅 Created 7 months ago ✏️ Updated 2 days ago

التعليقات