Zum Inhalt springen

Ultralytics HUB Inference API

Nachdem du ein Modell trainiert hast, kannst du die Shared Inference API kostenlos nutzen. Als Pro-Nutzer kannst du auf die Dedicated Inference API zugreifen. Mit der Ultralytics HUB Inference API kannst du Inferenzen über unsere REST-API durchführen, ohne dass du die Ultralytics YOLO Umgebung lokal installieren und einrichten musst.

Ultralytics HUB-Screenshot der Registerkarte "Bereitstellen" auf der Seite "Modell" mit einem Pfeil, der auf die Karte "Dedizierte Inferenz-API" und einen auf die Karte "Gemeinsame Inferenz-API" zeigt


Pass auf: Ultralytics HUB Inference API Komplettlösung

Dedizierte Inferenz-API

Aufgrund der hohen Nachfrage und des großen Interesses freuen wir uns, die Ultralytics HUB Dedicated Inference API vorzustellen, die unseren Pro-Benutzern eine Ein-Klick-Bereitstellung in einer speziellen Umgebung ermöglicht!

Hinweis

Wir freuen uns, diese Funktion während der öffentlichen Beta-Phase als Teil des Pro-Plans KOSTENLOS anbieten zu können, wobei in Zukunft auch kostenpflichtige Stufen möglich sind.

  • Globale Deckung: Wir sind in 38 Regionen weltweit vertreten und gewährleisten einen Zugang mit niedriger Latenz von jedem Ort aus. Siehe die vollständige Liste der Google Cloud-Regionen.
  • Google Cloud Run-Backed: Unterstützt von Google Cloud Run, das eine unbegrenzt skalierbare und äußerst zuverlässige Infrastruktur bietet.
  • Hohe Geschwindigkeit: Eine Latenzzeit von weniger als 100 ms ist für YOLOv8n bei einer Auflösung von 640 aus nahegelegenen Regionen möglich, basierend auf Ultralytics Tests.
  • Verbesserte Sicherheit: Bietet robuste Sicherheitsfunktionen, um deine Daten zu schützen und die Einhaltung von Branchenstandards zu gewährleisten. Erfahre mehr über Google Cloud-Sicherheit.

Um die Ultralytics HUB Dedicated Inference API zu nutzen, klicke auf die Schaltfläche Endpunkt starten. Verwende dann die eindeutige Endpunkt-URL wie in den folgenden Anleitungen beschrieben.

Ultralytics HUB-Screenshot der Registerkarte "Deploy" auf der Seite "Model" mit einem Pfeil, der auf die Schaltfläche "Start Endpoint" in der Karte "Dedicated Inference API" zeigt

Tipp

Wähle die Region mit der niedrigsten Latenz, um die beste Leistung zu erzielen, wie in der Dokumentation beschrieben.

Um den dedizierten Endpunkt abzuschalten, klicke auf die Schaltfläche Endpunkt stoppen.

Ultralytics HUB-Screenshot der Registerkarte "Deploy" auf der Seite "Model" mit einem Pfeil, der auf die Schaltfläche "Stop Endpoint" in der Karte "Dedicated Inference API" zeigt

Gemeinsame Inferenz-API

Um die Ultralytics HUB Shared Inference API zu nutzen, befolge die unten stehenden Anleitungen.

Für kostenlose Nutzer gelten die folgenden Nutzungsbeschränkungen:

  • 100 Anrufe / Stunde
  • 1000 Anrufe / Monat

Für Pro-Benutzer gelten die folgenden Nutzungsbeschränkungen:

  • 1000 Anrufe / Stunde
  • 10000 Anrufe / Monat

Python

Um mit Python auf die Ultralytics HUB Inference API zuzugreifen, verwende 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

Ersetze MODEL_ID mit der gewünschten Modell-ID, API_KEY mit deinem aktuellen API-Schlüssel, und path/to/image.jpg mit dem Pfad zu dem Bild, für das du die Inferenz durchführen möchtest.

Wenn du unser Dedizierte Inferenz-API, ersetzen Sie die url auch.

cURL

Um mit cURL auf die Ultralytics HUB Inference API zuzugreifen, verwende 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

Ersetze MODEL_ID mit der gewünschten Modell-ID, API_KEY mit deinem aktuellen API-Schlüssel, und path/to/image.jpg mit dem Pfad zu dem Bild, für das du die Inferenz durchführen möchtest.

Wenn du unser Dedizierte Inferenz-API, ersetzen Sie die url auch.

Argumente

In der folgenden Tabelle findest du eine vollständige Liste der verfügbaren Schlussfolgerungsargumente.

Argument Standard Typ Beschreibung
file file Bild- oder Videodatei, die für die Inferenz verwendet werden soll.
imgsz 640 int Größe des Eingabebildes, gültiger Bereich ist 32 - 1280 bildpunkte.
conf 0.25 float Konfidenzschwelle für Vorhersagen, gültiger Bereich 0.01 - 1.0.
iou 0.45 float Schnittpunkt über Union (IoU) threshold, valid range 0.0 - 0.95.

Antwort

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

Klassifizierung

Klassifizierungsmodell

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

Segmentierung

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

📅 Created 8 months ago ✏️ Updated 13 days ago

Kommentare