Skip to content

Ultralytics API d'inférence HUB

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

Ultralytics Capture d'écran HUB de l'onglet Déploiement dans la page Modèle avec une flèche pointant vers la carte API Inference dédiée et une autre vers la carte API Inference partagée.


Regarder : Ultralytics Présentation de l'API d'inférence HUB

API d'inférence dédiée

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

Note

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

  • Couverture mondiale : DĂ©ployĂ© dans 38 rĂ©gions du monde, il garantit un accès Ă  faible latence depuis n'importe quel endroit. Voir la liste complète des rĂ©gions Google Cloud.
  • Google Soutenu par Cloud Run : Soutenu par Google Cloud Run, fournissant une infrastructure infiniment Ă©volutive et hautement fiable.
  • Vitesse Ă©levĂ©e : une latence infĂ©rieure Ă  100 ms est possible pour l'infĂ©rence YOLOv8n Ă  une rĂ©solution de 640 Ă  partir de rĂ©gions proches, d'après les tests effectuĂ©s sur le site Ultralytics .
  • SĂ©curitĂ© renforcĂ©e : Des fonctions de sĂ©curitĂ© robustes protègent vos donnĂ©es et garantissent la conformitĂ© aux normes du secteur. En savoir plus sur Google Cloud security.

Pour utiliser l'API d'inférence dédiée de 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.

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

Conseil

Choisissez la région où la latence est la plus faible pour obtenir les meilleures performances, comme indiqué dans la documentation.

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

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

API d'inférence partagée

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

Les utilisateurs gratuits ont les limites d'utilisation suivantes :

  • 100 appels / heure
  • 1000 appels / mois

Les utilisateurs Pro ont les limites d'utilisation suivantes :

  • 1000 appels / heure
  • 10000 appels / mois

Python

Pour accéder à l'API d'inférence du HUB Ultralytics à l'aide de 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())

Note

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

Si vous utilisez notre API d'inférence dédiéeRemplacer le url également.

cURL

Pour accéder à l'API d'inférence de Ultralytics HUB à l'aide de 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"

Note

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

Si vous utilisez notre API d'inférence dédiéeRemplacer le url également.

Arguments

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

Argument DĂ©faut Type Description
file file Fichier image ou vidéo à utiliser pour l'inférence.
imgsz 640 int Taille de l'image d'entrée, plage valide 32 - 1280 pixels.
conf 0.25 float Seuil de confiance pour les prédictions, plage de validité 0.01 - 1.0.
iou 0.45 float Intersection au-dessus de l'Union (IoU), plage de validité 0.0 - 0.95.

RĂ©ponse

L'API d'inférence 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": ...
}
📅C réé il y a 10 mois ✏️ Mis à jour il y a 2 mois

Commentaires