Zum Inhalt springen

Ultralytics HUB Inference API

Nachdem Sie ein Modell trainiert haben, können Sie die Shared Inference API kostenlos nutzen. Wenn Sie ein Pro-Benutzer sind, können Sie auf die Dedicated Inference API zugreifen. Die Ultralytics HUB Inference API ermöglicht es Ihnen, Inferenzen über unsere REST API auszuführen, ohne die Ultralytics YOLO-Umgebung lokal installieren und einrichten zu müssen.

Ultralytics HUB Screenshot der Registerkarte „Bereitstellen“ auf der Modellseite mit einem Pfeil, der auf die Karte für Dedicated Inference API und einem, der auf die Karte für Shared Inference API zeigt.


Ansehen: Ultralytics HUB Inference API Anleitung

Dedizierte Inference API

Als Reaktion auf die hohe Nachfrage und das große Interesse freuen wir uns, die Ultralytics HUB Dedicated Inference API vorzustellen, die unseren Pro-Benutzern eine Ein-Klick-Bereitstellung in einer dedizierten Umgebung bietet!

Hinweis

Wir freuen uns, diese Funktion während unserer öffentlichen Beta-Phase als Teil des Pro Plans KOSTENLOS anzubieten, wobei in Zukunft kostenpflichtige Stufen möglich sind.

  • Globale Abdeckung: Bereitgestellt in 38 Regionen weltweit, um einen latenzarmen Zugriff von jedem Standort aus zu gewährleisten. Sehen Sie sich die vollständige Liste der Google Cloud-Regionen an.
  • Unterstützung durch Google Cloud Run: Unterstützt durch Google Cloud Run, das eine unendlich skalierbare und hochzuverlässige Infrastruktur bietet.
  • Hohe Geschwindigkeit: Eine Latenz von unter 100 ms ist für die YOLOv8n-Inferenz bei einer Auflösung von 640 aus naheliegenden Regionen basierend auf Ultralytics-Tests möglich.
  • Erhöhte Sicherheit: Bietet robuste Sicherheitsfunktionen, um Ihre Daten zu schützen und die Einhaltung von Industriestandards sicherzustellen. Erfahren Sie mehr über die Sicherheit von Google Cloud.

Um die Ultralytics HUB Dedicated Inference API zu nutzen, klicken Sie auf die Schaltfläche Start Endpoint. Verwenden Sie anschließend die eindeutige Endpunkt-URL, wie in den folgenden Anleitungen beschrieben.

Ultralytics HUB Screenshot der Registerkarte „Bereitstellen“ auf der Modellseite mit einem Pfeil, der auf die Schaltfläche „Endpunkt starten“ in der Karte für Dedicated Inference API zeigt.

Tipp

Wählen Sie die Region mit der geringsten Latenz für die beste Leistung, wie in der Dokumentation beschrieben.

Um den dedizierten Endpunkt herunterzufahren, klicken Sie auf die Schaltfläche Endpunkt stoppen.

Ultralytics HUB Screenshot der Registerkarte „Bereitstellen“ auf der Modellseite mit einem Pfeil, der auf die Schaltfläche „Endpunkt stoppen“ in der Karte für Dedicated Inference API zeigt.

Shared Inference API

Um die Ultralytics HUB Shared Inference API zu nutzen, folgen Sie den untenstehenden Anleitungen.

Die Ultralytics HUB Shared Inference API hat die folgenden Nutzungslimits:

  • 100 Anrufe / Stunde

Python

Um auf die Ultralytics HUB Inference API mittels Python zuzugreifen, verwenden Sie den folgenden Code:

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())

Hinweis

Ersetzen Sie MODEL_ID mit der gewünschten Modell-ID, API_KEY mit Ihrem tatsächlichen API-Schlüssel und path/to/image.jpg mit dem Pfad zu dem Bild, auf dem Sie Inferenz ausführen möchten.

Wenn du unsere Dedizierte Inference APIersetzen Sie die/den/das url auch.

cURL

Um auf die Ultralytics HUB Inference API mittels cURL zuzugreifen, verwenden Sie den folgenden Code:

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"

Hinweis

Ersetzen Sie MODEL_ID mit der gewünschten Modell-ID, API_KEY mit Ihrem tatsächlichen API-Schlüssel und path/to/image.jpg mit dem Pfad zu dem Bild, auf dem Sie Inferenz ausführen möchten.

Wenn du unsere Dedizierte Inference APIersetzen Sie die/den/das url auch.

Argumente

Eine vollständige Liste der verfügbaren Inferenzargumente finden Sie in der folgenden Tabelle.

ArgumentStandardTypBeschreibung
filefileBild- oder Videodatei, die für die Inferenz verwendet werden soll.
imgsz640intGröße des Eingangsbildes, gültiger Bereich ist 32 - 1280 Pixel.
conf0.25floatKonfidenzschwellwert für Vorhersagen, gültiger Bereich 0.01 - 1.0.
iou0.45floatIntersection over Union (Schnittmenge über Vereinigung) (IoU)-Schwellenwert, gültiger Bereich 0.0 - 0.95.

Antwort

Die Ultralytics HUB Inference API gibt eine JSON-Antwort zurück.

Klassifizierung

Klassifikationsmodell

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": ...
}

Erkennung

Erkennungsmodell

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-Modell

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": ...
}

Segmentation

Segmentierungsmodell

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": ...
}

Pose

Pose-Modell

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": ...
}


📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 9 Monaten
glenn-jochersergiuwaxmannMatthewNoyceRizwanMunawarjk4eUltralyticsAssistantRizwanMunawarpriytosh-tripathi

Kommentare