Inférence
Ultralytics fournit une API d'inférence pour tester les modèles entraînés. Utilisez l'onglet Test du navigateur pour une validation rapide ou REST API un accès programmatique.
Onglet Test
Chaque modèle comprend 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
- Consultez les prévisions instantanément
Télécharger une image
Glisser-déposer ou cliquer pour télécharger :
- Formats pris en charge: JPG, PNG, WebP, GIF
- Taille maximale: 10 Mo
- Auto-inférence: les résultats s'affichent automatiquement
Exemples d'images
Utilisez les images d'exemple intégrées pour effectuer des tests rapides :
| Image | Contenu |
|---|---|
bus.jpg | Scène de rue avec des véhicules |
zidane.jpg | Scène sportive avec des personnes |
Afficher les résultats
Affichage des résultats de l'inférence :
- Boîtes englobantes avec étiquettes de classe
- Scores de confiance pour chaque détection
- Couleurs de classe correspondant à votre ensemble de données
Paramètres d'inférence
Ajustez le comportement de détection à l'aide 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.45 | IoU NMS IoU |
| Taille de l'image | 32-1280 | 640 | Dimensions de redimensionnement de l'entrée |
Seuil de confiance
Filtrer les prédictions par niveau de confiance :
- Supérieur (0,5+): prédictions moins nombreuses, mais plus sûres
- Inférieur (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
IoU
Contrôle de la suppression non maximale :
- Supérieur (0,7+): autoriser le chevauchement des boîtes
- Inférieur (0,3-0,45): fusionner les détections proches
- Par défaut (0,45): NMS standard
REST API
Accéder à l'inférence par programmation :
Authentification
Incluez votre clé API dans les requêtes :
Authorization: Bearer YOUR_API_KEY
Point final
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
Demande
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.45"
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.45}
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 demande |
predictions | tableau | Liste des détections |
predictions[].class | chaîne | Nom de la classe |
predictions[].confidence | flottant | Confiance de détection (0-1) |
predictions[].box | objet | Coordonnées du cadre englobant |
image | objet | Dimensions de l'image originale |
Réponses spécifiques à une 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 a des limites de débit :
| Plan | Demandes/Minute | Demandes/jour |
|---|---|---|
| Gratuit | 10 | 100 |
| Pro | 60 | 10,000 |
Pour des limites plus élevées, déployez un terminal dédié.
Gestion des erreurs
Réponses d'erreur courantes :
| Code | Message | Solution |
|---|---|---|
| 400 | Image invalide | Vérifier le format du fichier |
| 401 | Non autorisé | Vérifier la clé API |
| 404 | Modèle introuvable | Vérifier le slug du modèle |
| 429 | Taux limité | Attendre ou mettre à niveau le forfait |
| 500 | Erreur serveur | Demande de nouvelle tentative |
FAQ
Puis-je effectuer une inférence sur une vidéo ?
L'API accepte les images individuelles. Pour les vidéos :
- Extraire les images localement
- Envoyer chaque image à l'API
- Résultats globaux
Pour la vidéo en temps réel, envisagez de déployer un terminal dédié.
Comment puis-je obtenir l'image annotée ?
L'API renvoie des prédictions JSON. Pour visualiser :
- Utilisez les prédictions pour dessiner des boîtes localement
- Utilisez Ultralytics
plot()méthode :
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
Quelle est la taille maximale des images ?
- Limite de téléchargement: 10 Mo
- Recommended: <5MB for fast inference
- Redimensionnement automatique: Les images sont redimensionnées à
imgszparamètre
Les images volumineuses sont automatiquement redimensionnées tout en conservant leur rapport hauteur/largeur.
Puis-je exécuter une inférence par lots ?
L'API actuelle traite une image par requête. Pour les lots :
- Envoyer des requêtes simultanées
- Utilisez un point de terminaison dédié pour un débit plus élevé.
- Envisager l'inférence locale pour les lots volumineux