Passer au contenu

Inference API Ultralytics HUB

Après avoir entraîné un modèle, vous pouvez utiliser l’Inference API partagée gratuitement. Si vous êtes un utilisateur Pro, vous pouvez accéder à l’Inference API dédiée. L’Ultralytics HUB Inference API vous permet d’exécuter l’inférence via notre REST API sans avoir besoin d’installer et de configurer l’environnement Ultralytics YOLO localement.

Capture d'écran d'Ultralytics HUB de l'onglet Déploiement à l'intérieur de la page Modèle avec une flèche pointant vers la carte Dedicated Inference API et une vers la carte Shared Inference API


Regarder : Présentation de l'Inference API Ultralytics HUB

Inference API dédiée

En réponse à la forte demande et à l'intérêt généralisé, nous sommes ravis de dévoiler l'Ultralytics HUB Inference API dédiée, offrant un déploiement en un seul clic dans un environnement dédié pour nos utilisateurs Pro !

Remarque

Nous sommes ravis d'offrir cette fonctionnalité GRATUITEMENT pendant notre bêta publique dans le cadre du Pro Plan, avec des niveaux payants possibles à l'avenir.

  • Couverture mondiale : Déployé dans 38 régions du monde, assurant un accès à faible latence depuis n'importe quel endroit. Consultez la liste complète des régions Google Cloud.
  • Basé sur Google Cloud Run : Soutenu par Google Cloud Run, fournissant une infrastructure infiniment scalable et très fiable.
  • Haute Vitesse : Une latence inférieure à 100 ms est possible pour l'inférence YOLOv8n à une résolution de 640 à partir de régions proches, selon les tests d'Ultralytics.
  • Sécurité Renforcée : Fournit des fonctionnalités de sécurité robustes pour protéger vos données et garantir la conformité aux normes de l'industrie. En savoir plus sur la sécurité de Google Cloud.

Pour utiliser l'Inference API dédiée Ultralytics HUB, cliquez sur le bouton Start Endpoint. Ensuite, utilisez l'URL unique du point de terminaison comme décrit dans les guides ci-dessous.

Capture d'écran d'Ultralytics HUB de l'onglet Déploiement à l'intérieur de la page Modèle avec une flèche pointant vers le bouton Start Endpoint dans la carte Dedicated Inference API

Astuce

Choisissez la région avec la latence la plus faible pour obtenir les meilleures performances, comme décrit dans la documentation.

Pour arrêter le point de terminaison dédié, cliquez sur le bouton Arrêter le point de terminaison.

Capture d'écran d'Ultralytics HUB de l'onglet Déploiement à l'intérieur de la page Modèle avec une flèche pointant vers le bouton Stop Endpoint dans la carte Dedicated Inference API

Inference API partagée

Pour utiliser l'Inference API partagée Ultralytics HUB, suivez les guides ci-dessous.

L'Inference API partagée Ultralytics HUB a les limites d'utilisation suivantes :

  • 100 appels / heure

Python

Pour accéder à l'Inference API Ultralytics HUB en utilisant python, utilisez le code suivant :

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

Remarque

Remplacez MODEL_ID avec l'ID de modèle souhaité, API_KEY avec votre clé API réelle, et path/to/image.jpg avec le chemin d'accès à l'image sur laquelle vous souhaitez exécuter l'inférence.

Si vous utilisez notre Inference API dédiée, remplacez le url également.

cURL

Pour accéder à l'Inference API Ultralytics HUB en utilisant cURL, utilisez le code suivant :

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"

Remarque

Remplacez MODEL_ID avec l'ID de modèle souhaité, API_KEY avec votre clé API réelle, et path/to/image.jpg avec le chemin d'accès à l'image sur laquelle vous souhaitez exécuter l'inférence.

Si vous utilisez notre Inference API dédiée, remplacez le url également.

Arguments

Consultez le tableau ci-dessous pour une liste complète des arguments d'inférence disponibles.

ArgumentPar défautTypeDescription
filefileFichier image ou vidéo à utiliser pour l'inférence.
imgsz640intTaille de l'image d'entrée, la plage valide est 32 - 1280 pixels.
conf0.25floatSeuil de confiance pour les prédictions, plage valide 0.01 - 1.0.
iou0.45floatIntersection sur Union seuil (IoU), plage valide 0.0 - 0.95.

Réponse

L'Inference API Ultralytics HUB renvoie une réponse JSON.

Classification

Modèle de classification

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

Détection

Modèle de détection

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

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

Segmentation

Modèle de segmentation

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

Modèle de pose

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


📅 Créé il y a 1 an ✏️ Mis à jour il y a 8 mois
glenn-jochersergiuwaxmannMatthewNoycejk4eUltralyticsAssistantRizwanMunawarpriytosh-tripathi

Commentaires