YOLO Vision 2026 :

Inférence#

Ultralytics Platform fournit une inférence basée sur le navigateur pour tester les modèles entraînés et des points de terminaison dédiés pour un accès programmatique.

Ultralytics Platform Model Predict Tab With Detections Overlay

Onglet Prédire#

Chaque modèle avec des poids inclut un onglet Predict pour l'inférence basée sur le navigateur :

  1. Accède à ton modèle
  2. Clique sur l'onglet Predict
  3. Télécharge une image, utilise un exemple ou ouvre ta webcam
  4. Consulte la superposition spécifique à la tâche, le résumé de prédiction, le minutage et la réponse brute

Les modèles sans poids affichent un état vide à la place — entraîne d'abord le modèle ou importe des poids.

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-dépose ou clique pour télécharger une image
Images d'exempleClique sur des exemples intégrés (images du dataset ou par défaut)
Capture webcamFlux vidéo en direct avec capture d'image unique
graph LR
    A[Upload Image]:::start --> D[Auto-Inference]:::proc
    B[Example Image]:::start --> D
    C[Webcam Capture]:::start --> D
    D --> E[Results + Overlays]:::out

    classDef start fill:#4CAF50,color:#fff
    classDef proc fill:#2196F3,color:#fff
    classDef out fill:#9C27B0,color:#fff

Télécharger une image#

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

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

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 via la webcam. Aucun clic sur un bouton n'est nécessaire.

Redimensionnement côté client

Avant l'importation, le panneau redimensionne l'image pour que son côté le plus long corresponde au Image Size sélectionné, et demande des coordonnées normalisées. Cela permet de garder les tests dans le navigateur rapides ; les requêtes que tu envoies toi-même ne sont pas redimensionnées.

Images d'exemple#

Le panneau de prédiction affiche jusqu'à deux exemples d'images provenant du jeu de données lié de ton modèle, en privilégiant la division val, puis test, et enfin train. Si aucun jeu de données 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'un aéroport sont affichées à la place.

Images préchargées

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

Webcam#

Clique sur la carte de la webcam pour démarrer un flux vidéo en direct :

  1. Accorde la permission d'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 d'inférence affichent la sortie adaptée à la tâche du modèle : boîtes, masques, points clés, boîtes orientées, scores de classification, couverture sémantique ou carte de profondeur. Les résultats d'objets utilisent les couleurs de classe du dataset lorsqu'elles sont disponibles. Le panneau indique également les temps de prétraitement, d'inférence, de post-traitement et de réseau.

Ultralytics Platform Predict Tab Results With Detections And Speed Stats Le panneau des résultats affiche :

ChampDescription
Résumé des résultatsListe par détection, ou les 5 meilleures classes pour les modèles de classification et sémantiques
Statistiques de vitessePrétraitement, inférence, post-traitement et réseau (ms)
VersionsVersions d'Ultralytics et PyTorch, plus la plage de profondeur ou la taille du masque le cas échéant
Réponse JSONRéponse API brute dans un bloc de code, avec les données de carte base64 omises

Deux contrôles se trouvent au-dessus de l'aperçu une fois les résultats obtenus : clique sur l'image pour l'agrandir avec les superpositions intactes, et utilise le bouton de téléchargement pour enregistrer un JPEG annoté du résultat actuel.

Paramètres d'inférence#

Ajuste le comportement d'inférence à l'aide des trois curseurs situés sous l'image :

Ultralytics Platform Predict Tab Parameters Sliders

ParamètrePlageDéfautDescription
Confiance0,01 – 1,0, par incréments de 0,010.25Seuil de confiance minimum
IoU0,0 – 0,95, par incréments de 0,010.7Seuil IoU NMS
Taille de l'image32 – 1280, par incréments de 32640Dimension de redimensionnement de l'entrée
Auto-réexécution

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

Seuil de confiance#

Filtre les prédictions par confiance :

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

Seuil IoU#

Contrôle la NMS (Non-Maximum Suppression) :

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

Inférence 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. Celui-ci utilise le propre service d'inférence du déploiement plutôt que le service de prédiction partagé, ce qui te permet de tester ton point de terminaison déployé depuis le navigateur.

API de point de terminaison dédié#

La carte API Docs dans l'onglet Predict du modèle contient des exemples de requêtes Python, JavaScript et cURL, pré-remplies avec la confiance, l'IoU et la taille d'image actuellement définies sur les curseurs. L'URL et la clé sont des espaces réservés tant que tu ne déploies pas le modèle — un bouton Deploy à côté des onglets de code permet de passer à l'onglet Deploy du modèle. Après le déploiement, l'onglet Code de la carte de déploiement se remplit avec l'URL de ce point de terminaison et, pour les propriétaires d'espace de travail, son clé API liée, prête à être copiée et exécutée.

Authentification#

Inclus ta clé API dans les requêtes :

Authorization: Bearer YOUR_API_KEY
Clé API requise

Pour exécuter l'inférence à partir de tes propres scripts, notebooks ou applications, inclus une clé API. Génère-la dans Settings > API Keys. Un point de terminaison dédié n'accepte que la clé unique avec laquelle il a été créé ; l'API de modèle partagé accepte toute clé active de l'espace de travail, et les modèles publics acceptent également les requêtes anonymes.

Point de terminaison#

Les points de terminaison dédiés acceptent les requêtes sur leur propre URL :

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

L'inférence partagée utilise l'API Platform avec le chemin complet du modèle :

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

Les deux acceptent le même corps multipart/form-data et renvoient la même forme de réponse. Avec le Python SDK, utilise client.models.predict(owner, project, model, body=...) pour une inférence partagée ou client.deployments.predict(owner, deployment, body=...) pour un déploiement dédié :

from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
    results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})

Requête#

import requests

url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

with open("image.jpg", "rb") as image_file:
    response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())

Ultralytics Platform Predict Tab Code Examples Python Tab

Paramètres de requête#

ParamètreTypeDéfautPlageDescription
filefichier--Fichier image ou vidéo (requis sauf si source est défini)
confflottant0.250.01 – 1.0Seuil de confiance minimum
iouflottant0.70.0 – 0.95Seuil IoU NMS
imgszentier64032 – 1280Taille de l'image d'entrée en pixels
normalizeboolfalse-Retourne les coordonnées des boîtes englobantes entre 0 et 1
decimalsentier50 – 10Précision décimale pour les valeurs de coordonnées
bitsentier88, 12, 16Quantification de la carte de profondeur, modèles de profondeur uniquement
sourcecha'ne de caract'res--URL d'image ou chaîne en base64 (alternative à file)

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,
        "functionTimeAlive": 1284.51,
        "functionTimeCall": 0.018,
        "task": "detect",
        "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
imagesarrayListe des images traitées, une entrée par image vidéo pour les vidéos
images[].shapearrayDimensions de l'image [hauteur, largeur]
images[].resultsarrayListe des détections
images[].results[].classentierIndice de classe (ID entier)
images[].results[].namecha'ne de caract'resNom de la classe
images[].results[].confidenceflottantConfiance de la détection (0-1)
images[].results[].boxobjetCoordonnées de la boîte englobante
images[].semantic_maskobjetCarte de classe par pixel (modèles sémantiques uniquement)
images[].depthobjetCarte de profondeur par pixel (modèles de profondeur uniquement)
images[].speedobjetTemps de traitement en millisecondes
metadataobjetNombre d'images, temps de service, tâche et versions d'Ultralytics/PyTorch

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}
}

Limites de taux#

L'API de modèle partagée est limitée à 20 requêtes/minute pour chaque clé API, appelant connecté ou IP anonyme. En cas de limitation, l'API renvoie 429 avec un en-tête Retry-After. Consulte la référence de limitation de débit complète pour toutes les catégories de points de terminaison.

Besoin de plus de débit ?

Les requêtes envoyées directement à un point de terminaison dédié ne passent pas par le limiteur de débit de l'API Platform. Le point de terminaison réduit toujours la charge avec 429 et un en-tête Retry-After lorsqu'il est temporairement à pleine capacité. Pour une inférence locale à grand volume, consulte le guide du mode Predict.

Gestion des erreurs#

Réponses d'erreur courantes :

CodeMessageSolution
400Image invalideVérifie le format de fichier, ou que le modèle a des poids entraînés
401Non autoriséVérifie ta clé API
404Modèle introuvableVérifie les noms du propriétaire, du projet et du modèle
413Entrée trop volumineuseRéduis la taille du fichier en dessous de la limite du point de terminaison
429Limite de débit atteinteAttends et réessaie, ou envoie des requêtes directement à un point de terminaison dédié
500Erreur serveurRéessaie la requête
503Service indisponibleLe service Predict démarre ou est injoignable ; attends un court instant et réessaie

FAQ#

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

    • Les points de terminaison dédiés 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 les points de terminaison dédiés pour plus de détails.
    • L'inférence partagée (POST /api/models/{owner}/{project}/{model}/predict) utilise le même service de prédiction et accepte les mêmes formats vidéo. L'onglet Predict du navigateur ne sélectionne que des images, alors utilise l'API ou un point de terminaison dédié pour la vidéo.
  • Dans l'onglet Predict, le bouton de téléchargement au-dessus de l'aperçu enregistre le résultat actuel sous forme de JPEG annoté. L'API elle-même renvoie des prédictions JSON. Pour les visualiser :

    1. Utilise les prédictions pour dessiner les boîtes localement
    2. Utilise la méthode Ultralytics plot() :
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("image.jpg")
    results[0].save("annotated.jpg")

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

    • Limite de l'onglet Predict : 10 Mo
    • Limite de l'API : 100 Mo pour l'inférence partagée et les points de terminaison dédiés
    • Redimensionnement automatique dans l'onglet Predict : Les images sont redimensionnées au Image Size sélectionné avant le téléchargement

    Les grandes images sont automatiquement redimensionnées dans le navigateur tout en préservant le rapport hauteur/largeur. Les requêtes que tu envoies toi-même ne sont pas redimensionnées, les images dépassant la limite sont donc rejetées avec 413.

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

    1. Envoie des requêtes séparées pour chaque image
    2. Répartis les requêtes sur des points de terminaison dédiés lorsque cela est approprié
    3. Utilise l'inférence locale pour les lots volumineux
    Inférence par lots avec Python
    import concurrent.futures
    
    import requests
    
    url = "https://YOUR_DEPLOYMENT_URL.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