Inférence
La plateforme Ultralytics fournit une Inference API pour tester les modèles entraînés. Utilisez l'onglet Test basé sur le navigateur pour une validation rapide ou la REST API pour un accès programmatique.
Onglet Test
Chaque modèle inclut un onglet Test pour l'inférence basée sur le navigateur :
- Accédez à votre modèle
- Cliquez sur l'onglet Test
- Téléchargez une image ou utilisez des exemples
- Affichez les prédictions instantanément
Télécharger une image
Glissez-déposez ou cliquez pour télécharger :
- Formats pris en charge : JPG, PNG, WebP, GIF
- Taille maximale : 10 Mo
- Auto-inférence : Les résultats apparaissent automatiquement
Exemples d'images
Utilisez les images d'exemple intégrées pour des tests rapides :
| Image | Contenu |
|---|---|
bus.jpg | Scène de rue avec des véhicules |
zidane.jpg | Scène de sport avec des personnes |
Afficher les résultats
Affichage des résultats d'inférence :
- Boîtes englobantes avec des étiquettes de classe
- Scores de confiance pour chaque détection
- Couleurs de classe correspondant à votre jeu de données
Paramètres d'inférence
Ajustez le comportement de détection avec des paramètres :
| Paramètre | Plage | Par défaut | Description |
|---|---|---|---|
| Confiance | 0.0-1.0 | 0.25 | Seuil de confiance minimum |
| IoU | 0.0-1.0 | 0.70 | Seuil IoU de NMS |
| Taille de l'image | 32-1280 | 640 | Dimension de redimensionnement de l'entrée |
Seuil de confiance
Filtrer les prédictions par confiance :
- Plus élevé (0.5+) : Moins de prédictions, plus certaines
- Plus faible (0.1-0.25) : Plus de prédictions, avec un certain bruit
- Par défaut (0.25) : Équilibré pour la plupart des cas d'utilisation
Seuil d'IoU
Contrôler la NMS :
- Supérieur (0,7+): autoriser davantage de chevauchement entre les cases
- Inférieur (0,3-0,5): fusionner les détections proches de manière plus agressive
- Par défaut (0,70): NMS équilibré pour la plupart des cas d'utilisation
REST API
Accéder à l'inférence par programmation :
Authentification
Inclure votre clé API dans les requêtes :
Authorization: Bearer YOUR_API_KEY
Point de terminaison
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
Requête
curl -X POST \
"https://platform.ultralytics.com/api/models/username/project/model/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.7"
import requests
url = "https://platform.ultralytics.com/api/models/username/project/model/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Réponse
{
"success": true,
"predictions": [
{
"class": "person",
"confidence": 0.92,
"box": {
"x1": 100,
"y1": 50,
"x2": 300,
"y2": 400
}
},
{
"class": "car",
"confidence": 0.87,
"box": {
"x1": 400,
"y1": 200,
"x2": 600,
"y2": 350
}
}
],
"image": {
"width": 1920,
"height": 1080
}
}
Champs de réponse
| Champ | Type | Description |
|---|---|---|
success | booléen | Statut de la requête |
predictions | tableau | Liste des détections |
predictions[].class | chaîne de caractères | Nom de la classe |
predictions[].confidence | flottant | Confiance de détection (0-1) |
predictions[].box | objet | Coordonnées des boîtes englobantes |
image | objet | Dimensions de l'image originale |
Réponses spécifiques à la tâche
Le format de réponse varie selon la tâche :
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"segments": [[100, 50], [150, 60], ...]
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"keypoints": [
{"x": 200, "y": 75, "conf": 0.95},
...
]
}
{
"predictions": [
{"class": "cat", "confidence": 0.95},
{"class": "dog", "confidence": 0.03}
]
}
Limites de débit
L'inférence partagée est soumise à des limites de débit :
| Forfait | Requêtes/Minute | Requêtes/Jour |
|---|---|---|
| Gratuit | 10 | 100 |
| Pro | 60 | 10,000 |
Pour des limites plus élevées, déployez un point de terminaison dédié.
Gestion des erreurs
Réponses d'erreur courantes :
| Code | Message | Solution |
|---|---|---|
| 400 | Image invalide | Vérifiez le format du fichier |
| 401 | Non autorisé | Vérifiez la clé API |
| 404 | Modèle introuvable | Vérifiez le slug du modèle |
| 429 | Débit limité | Attendez ou mettez à niveau votre forfait |
| 500 | Erreur serveur | Réessayez la requête |
FAQ
Puis-je exécuter l'inférence sur des vidéos ?
L'API accepte les images individuelles. Pour la vidéo :
- Extrayez les images localement
- Envoyer chaque image à l'API
- Agréger les résultats
Pour la vidéo en temps réel, envisagez de déployer un point de terminaison dédié.
Comment puis-je obtenir l'image annotée ?
L'API renvoie des prédictions JSON. Pour visualiser :
- Utiliser les prédictions pour tracer les cadres localement
- Utiliser Ultralytics
plot()méthode :
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
Quelle est la taille maximale de l'image ?
- Limite de téléversement : 10 Mo
- Recommended: <5MB for fast inference
- Redimensionnement automatique: Les images sont redimensionnées à
imgszparamètre
Les images de grande taille sont automatiquement redimensionnées tout en préservant leur rapport d'aspect.
Puis-je exécuter l'inférence par lots ?
L'API actuelle traite une image par requête. Pour le traitement par lots :
- Envoyer des requêtes concurrentes
- Utiliser un point de terminaison dédié pour un débit plus élevé
- Privilégier l'inférence locale pour les grands lots