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.

Onglet Prédire#
Chaque modèle inclut un onglet Predict pour l'inférence basée sur le navigateur :
- Accède à ton modèle
- Clique sur l'onglet Predict
- Télécharge une image, utilise un exemple ou ouvre ta webcam
- Consulte la superposition spécifique à la tâche, le résumé de prédiction, le minutage et la réponse brute

Méthodes d'entrée#
Le panneau de prédiction prend en charge plusieurs méthodes d'entrée :
| Méthode | Description |
|---|---|
| Téléchargement d'image | Glisse-dépose ou clique pour télécharger une image |
| Images d'exemple | Clique sur des exemples intégrés (images du dataset ou par défaut) |
| Capture webcam | Flux 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:#fffTé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, DNG, MPO
- Taille max : 10 Mo
- Auto-inférence : Les résultats apparaissent automatiquement après le téléchargement
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.
Images d'exemple#
Le panneau de prédiction affiche des images d'exemple provenant du dataset lié à ton modèle. Si aucun dataset n'est lié, des exemples par défaut sont utilisés :
| Image | Contenu |
|---|---|
bus.jpg | Scène de rue avec des véhicules |
zidane.jpg | Scè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.
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 :
- Accorde la permission d'accès à la caméra lorsque cela est demandé
- Clique sur l'aperçu vidéo pour capturer une image
- L'inférence s'exécute automatiquement sur l'image capturée
- 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.
Le panneau des résultats affiche :
| Champ | Description |
|---|---|
| Résumé des résultats | Détections, classifications ou couverture de classe sémantique |
| Statistiques de vitesse | Prétraitement, inférence, post-traitement et réseau (ms) |
| Réponse JSON | Réponse API brute dans un bloc de code |
Paramètres d'inférence#
Ajuste le comportement d'inférence à l'aide des trois curseurs situés sous l'image :

| Paramètre | Plage | Défaut | Description |
|---|---|---|---|
| Confiance | 0,01 – 1,0, par incréments de 0,01 | 0.25 | Seuil de confiance minimum |
| IoU | 0,0 – 0,95, par incréments de 0,01 | 0.7 | Seuil IoU NMS |
| Taille de l'image | 32 – 1280, par incréments de 32 | 640 | Dimension de redimensionnement de l'entrée |
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. Les exemples utilisent des espaces réservés jusqu'à ce que tu déploies le modèle. Après le déploiement, l'onglet Code de la carte de déploiement remplit l'URL de son point de terminaison et la clé API disponible pour ton espace de travail.
Authentification#
Inclus ta clé API dans les requêtes :
Authorization: Bearer YOUR_API_KEYPour exécuter l'inférence à partir de tes propres scripts, notebooks ou applications, inclus une clé API. Génère-zen une dans Settings > API Keys.
Point de terminaison#
POST https://YOUR_DEPLOYMENT_URL.run.app/predictRequê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())
Paramètres de requête#
| Paramètre | Type | Défaut | Plage | Description |
|---|---|---|---|---|
file | fichier | - | - | Fichier image ou vidéo (requis sauf si source est défini) |
conf | flottant | 0.25 | 0.01 – 1.0 | Seuil de confiance minimum |
iou | flottant | 0.7 | 0.0 – 0.95 | Seuil IoU NMS |
imgsz | entier | 640 | 32 – 1280 | Taille de l'image d'entrée en pixels |
normalize | bool | false | - | Retourne les coordonnées des boîtes englobantes entre 0 et 1 |
decimals | entier | 5 | 0 – 10 | Précision décimale pour les valeurs de coordonnées |
source | cha'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,
"functionTimeCall": 0.018,
"task": "detect",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
Champs de réponse#
| Champ | Type | Description |
|---|---|---|
images | array | Liste des images traitées |
images[].shape | array | Dimensions de l'image [hauteur, largeur] |
images[].results | array | Liste des détections |
images[].results[].class | entier | Indice de classe (ID entier) |
images[].results[].name | cha'ne de caract'res | Nom de la classe |
images[].results[].confidence | flottant | Confiance de la détection (0-1) |
images[].results[].box | objet | Coordonnées de la boîte englobante |
images[].speed | objet | Temps de traitement en millisecondes |
metadata | objet | Métadonnées de la requête et informations sur la 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}
}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.
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. Pour une inférence locale à volume élevé, consulte le guide du mode Predict.
Gestion des erreurs#
Réponses d'erreur courantes :
| Code | Message | Solution |
|---|---|---|
| 400 | Image invalide | Vérifie le format de fichier |
| 401 | Non autorisé | Vérifie ta clé API |
| 404 | Modèle introuvable | Vérifie l'ID du modèle |
| 429 | Limite de débit atteinte | Attends et réessaie, ou envoie des requêtes directement à un point de terminaison dédié |
| 500 | Erreur serveur | Réessaie la requête |
| 503 | Service indisponible | Le 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 (
/api/models/{id}/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, utilise donc l'API ou un point de terminaison dédié pour la vidéo.
L'API renvoie des prédictions JSON. Pour visualiser :
- Utilise les prédictions pour dessiner les boîtes localement
- 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 de point de terminaison dédié : 100 Mo
- Redimensionnement automatique dans l'onglet Predict : Les images sont redimensionnées au
Image Sizesélectionné avant le téléchargement
Les grandes images sont automatiquement redimensionnées tout en préservant le rapport hauteur/largeur.
L'API actuelle traite une image par requête. Pour le mode par lots :
- Envoie des requêtes séparées pour chaque image
- Répartis les requêtes sur des points de terminaison dédiés lorsque cela est approprié
- Utilise l'inférence locale pour les lots volumineux
Inférence par lots avec Pythonimport 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))