Skip to content

Ultralytics API d'inférence HUB

Après avoir formé un modèle, tu peux utiliser gratuitement l'API d'inférence partagée. Si tu es un utilisateur Pro, tu peux accéder à l'API d'inférence dédiée. L'API d'inférence Ultralytics HUB te permet d'exécuter l'inférence par le biais de notre API REST sans avoir besoin d'installer et de configurer localement l'environnement Ultralytics YOLO .

Ultralytics Capture d'écran HUB de l'onglet Déployer à l'intérieur de la page Modèle avec une flèche pointant vers la carte API Inférence dédiée et une autre vers la carte API Inférence partagée.


Regarde : 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 de proposer cette fonctionnalité GRATUITE pendant notre bêta publique dans le cadre du plan Pro, avec des paliers 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. Voir la liste complète des rĂ©gions de Google Cloud.
  • Google Soutenu par Cloud Run : Soutenu par Google Cloud Run, qui fournit une infrastructure Ă©volutive Ă  l'infini et très 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 voisines, d'après les tests effectuĂ©s sur le site Ultralytics .
  • SĂ©curitĂ© renforcĂ©e : Offre des fonctions de sĂ©curitĂ© robustes pour protĂ©ger tes donnĂ©es et garantir 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, clique sur le bouton Start Endpoint. Ensuite, utilise 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 à 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

Choisis 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é, clique sur le bouton Arrêter le point de terminaison.

Ultralytics Capture d'écran 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.

API d'inférence partagée

Pour utiliser l'API d'inférence partagée Ultralytics HUB, suis 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, utilise 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 désiré, API_KEY avec ta clé API réelle, et path/to/image.jpg avec le chemin d'accès à l'image sur laquelle tu veux faire de l'inférence.

Si tu utilises notre API d'inférence dédiéeremplace le url également.

cURL

Pour accéder à l'API d'inférence de Ultralytics HUB à l'aide de cURL, utilise 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 désiré, API_KEY avec ta clé API réelle, et path/to/image.jpg avec le chemin d'accès à l'image sur laquelle tu veux faire de l'inférence.

Si tu utilises notre API d'inférence dédiéeremplace le url également.

Arguments

Tu trouveras dans le tableau ci-dessous la 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, la plage valide est 32 - 1280 Pixels.
conf 0.25 float Seuil de confiance pour les prédictions, plage valide 0.01 - 1.0.
iou 0.45 float Intersection au-dessus de l’Union (IoU) threshold, valid range 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": ...
}

📅 Created 8 months ago ✏️ Updated 17 days ago

Commentaires