Inférence

Ultralytics Platform fournit une API d'inférence pour tester tes modèles entraînés. Utilise l'onglet Predict basé sur le navigateur pour une validation rapide ou l'REST API pour un accès programmatique.

Ultralytics Platform Model Predict Tab With Detections Overlay

Onglet Prédiction

Chaque modèle inclut un onglet Predict pour l'inférence via le navigateur :

  1. Navigue vers ton modèle
  2. Clique sur l'onglet Predict
  3. Télécharge une image, utilise un exemple ou ouvre ta webcam
  4. Visualise les prédictions instantanément avec des superpositions de boîtes englobantes

Ultralytics Platform Predict Tab Image Upload Dropzone

Méthodes d'entrée

Le panneau de prédiction prend en charge plusieurs méthodes d'entrée :

MéthodeDescription
Téléchargement d'imageGlisse et dépose ou clique pour télécharger une image
Images d'exempleClique sur les exemples intégrés (images de dataset ou par défaut)
Capture webcamFlux de caméra en direct avec capture d'image unique
graph LR
    A[Upload Image] --> D[Auto-Inference]
    B[Example Image] --> D
    C[Webcam Capture] --> D
    D --> E[Results + Overlays]

    style D fill:#2196F3,color:#fff
    style E fill:#4CAF50,color:#fff

Télécharger une image

Glisse et dépose ou clique pour télécharger :

  • Formats pris en charge : JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
  • Taille maximale : 10 Mo
  • Auto-inférence : Les résultats apparaissent automatiquement après le téléchargement
Auto-Inference

Le panneau de prédiction exécute l'inférence automatiquement lorsque tu télécharges une image, sélectionnes un exemple ou captures une image webcam. Aucun clic sur un bouton n'est nécessaire.

Images d'exemple

Le panneau de prédiction affiche des exemples d'images provenant du dataset lié à ton modèle. Si aucun dataset n'est lié, des exemples par défaut sont utilisés :

ImageContenu
bus.jpgScène de rue avec des véhicules
zidane.jpgScène sportive avec des personnes

Pour les modèles OBB, des images aériennes de bateaux et d'aéroports sont affichées à la place.

Images préchargées

Les images d'exemple sont préchargées lors du chargement de la page, donc cliquer sur un exemple déclenche une inférence quasi instantanée sans attente de téléchargement.

Webcam

Clique sur la carte de la webcam pour démarrer un flux de caméra en direct :

  1. Autorise l'accès à la caméra lorsque cela est demandé
  2. Clique sur l'aperçu vidéo pour capturer une image
  3. L'inférence s'exécute automatiquement sur l'image capturée
  4. Clique à nouveau pour redémarrer la webcam

Voir les résultats

Les résultats de l'inférence affichent :

  • Boîtes englobantes avec des étiquettes de classe sous forme de superpositions SVG
  • Scores de confiance pour chaque détection
  • Couleurs des classes issues de la palette de couleurs de ton dataset (ou de la palette par défaut d'Ultralytics)
  • Répartition de la vitesse : Prétraitement, inférence, post-traitement et temps réseau

Ultralytics Platform Predict Tab Results With Detections And Speed Stats

Le panneau de résultats affiche :

ChampDescription
Liste des détectionsChaque détection avec le nom de la classe et la confiance
Statistiques de vitessePrétraitement, inférence, post-traitement, réseau (ms)
Réponse JSONRéponse API brute dans un bloc de code

Paramètres d'inférence

Ajuste le comportement de détection avec les paramètres dans la section repliable Parameters :

Ultralytics Platform Predict Tab Parameters Sliders

ParamètrePlageDéfautDescription
Confidence0,01 – 1,00.25Seuil de confiance minimum
IoU0,0 – 0,950.7Seuil NMS IoU
Image Size320, 640, 1280 (bascule UI)640Dimension de redimensionnement d'entrée (l'API accepte toute valeur de 32 à 1280)
Auto-réexécution

Changer n'importe quel paramètre relance automatiquement l'inférence sur l'image actuelle avec un debounce de 500 ms. Pas besoin de retélécharger.

Seuil de confiance

Filtre les prédictions par confiance :

  • Plus élevé (0,5+) : Moins de prédictions, plus certaines
  • Plus bas (0,1-0,25) : Plus de prédictions, un peu de bruit
  • Par défaut (0,25) : Équilibré pour la plupart des cas d'utilisation

Seuil IoU

Contrôle la suppression non maximale (NMS) :

  • Plus élevé (0,7+) : Permet plus de boîtes qui se chevauchent
  • Plus bas (0,3-0,5) : Fusionne les détections proches de manière plus agressive
  • Par défaut (0,7) : Comportement NMS équilibré pour la plupart des cas d'utilisation

Prédiction de déploiement

Chaque point de terminaison dédié en cours d'exécution inclut un onglet Predict directement sur sa carte de déploiement. Cela utilise le service d'inférence propre au déploiement plutôt que le service de prédiction partagé, te permettant de tester ton point de terminaison déployé depuis le navigateur.

REST API

Accède à l'inférence par programmation :

Authentification

Inclue ta clé API dans tes requêtes :

Authorization: Bearer YOUR_API_KEY
Clé API requise

Pour exécuter l'inférence depuis tes propres scripts, notebooks ou applications, inclue une clé API. Génère-en une dans Settings > API Keys.

Point de terminaison

POST https://platform.ultralytics.com/api/models/{modelId}/predict

Requête

import requests

url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

Ultralytics Platform Predict Tab Code Examples Python Tab

Réponse

{
    "images": [
        {
            "shape": [1080, 1920],
            "results": [
                {
                    "class": 0,
                    "name": "person",
                    "confidence": 0.92,
                    "box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
                },
                {
                    "class": 2,
                    "name": "car",
                    "confidence": 0.87,
                    "box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
                }
            ],
            "speed": {
                "preprocess": 1.2,
                "inference": 12.5,
                "postprocess": 2.3
            }
        }
    ],
    "metadata": {
        "imageCount": 1,
        "functionTimeCall": 0.018,
        "model": "model.pt",
        "version": {
            "ultralytics": "8.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Ultralytics Platform Predict Tab Json Response View

Champs de réponse

ChampTypeDescription
imagestableauListe des images traitées
images[].shapetableauDimensions de l'image [hauteur, largeur]
images[].resultstableauListe des détections
images[].results[].namechaîneNom de la classe
images[].results[].confidenceflottantConfiance de détection (0-1)
images[].results[].boxobjetCoordonnées de la BBox
images[].speedobjetTemps de traitement en millisecondes
metadataobjetMétadonnées de la requête et informations de version

Réponses spécifiques à la tâche

Le format de réponse varie selon la tâche :

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}

Facturation

L'inférence partagée (l'onglet Predict et le point de terminaison /api/models/{id}/predict) est incluse sans coût supplémentaire dans tous les plans. Il n'y a aucun frais par requête pour l'inférence partagée.

Pour les charges de travail de production nécessitant un débit plus élevé, déploie un dedicated endpoint.

Limites de débit

L'inférence partagée est limitée à 20 requêtes/min par API key. En cas de limitation, l'API renvoie 429 avec un en-tête Retry-After. Consulte la rate limit reference complète pour toutes les catégories de points de terminaison.

Besoin de plus de débit ?

Déploie un dedicated endpoint pour une inférence illimitée sans limites de débit, un débit prévisible et des réponses cohérentes à faible latence. Pour une inférence locale, consulte le Predict mode guide.

Gestion des erreurs

Réponses aux erreurs courantes :

CodeMessageSolution
400Image non valideVérifie le format du fichier
401Non autoriséVérifie ton API key
404Modèle introuvableVérifie l'ID du modèle
429Débit limitéAttends et réessaie, ou utilise un dedicated endpoint pour un débit illimité
500Erreur serveurRéessaie la requête

FAQ

Puis-je exécuter l'inférence sur une vidéo ?

Les deux méthodes d'inférence acceptent les fichiers vidéo :

  • Dedicated endpoints acceptent directement les fichiers vidéo. Formats pris en charge (jusqu'à 100 Mo) : ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Chaque image est traitée individuellement et les résultats sont renvoyés par image. Consulte dedicated endpoints pour plus de détails.
  • Shared inference (/api/models/{id}/predict) utilise le même service de prédiction et accepte les mêmes formats vidéo. Cependant, l'onglet Predict du navigateur dans l'interface utilisateur ne télécharge que des images — utilise directement l'API REST ou un dedicated endpoint pour les flux de travail vidéo. Le point de terminaison partagé est également rate-limited to 20 req/min, donc les points de terminaison dédiés sont le meilleur choix pour les charges de travail vidéo lourdes.

Comment obtenir l'image annotée ?

L'API renvoie des prédictions JSON. Pour visualiser :

  1. Utilise les prédictions pour dessiner des boîtes localement
  2. Utilise la méthode plot() d'Ultralytics :
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

Consulte la Predict mode documentation pour obtenir l'API complète des résultats et les options de visualisation.

Quelle est la taille maximale de l'image ?

  • Limite de téléchargement : 10 Mo
  • Recommandé : <5 Mo pour une inférence rapide
  • Redimensionnement automatique : Les images sont redimensionnées selon le paramètre Image Size sélectionné

Les grandes images sont automatiquement redimensionnées tout en préservant le rapport d'aspect.

Puis-je exécuter une inférence par lots ?

L'API actuelle traite une image par requête. Pour le traitement par lots :

  1. Envoie des requêtes simultanées
  2. Utilise un point de terminaison dédié pour un débit plus élevé
  3. Envisage une inférence locale pour les grands lots
Inférence par lots avec Python
import concurrent.futures

import requests

url = "https://predict-abc123.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
images = ["img1.jpg", "img2.jpg", "img3.jpg"]

def predict(image_path):
    with open(image_path, "rb") as f:
        return requests.post(url, headers=headers, files={"file": f}).json()

with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
    results = list(executor.map(predict, images))

Commentaires