Passer au contenu

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 :

  1. Accédez à votre modèle
  2. Cliquez sur l'onglet Test
  3. Téléchargez une image ou utilisez des exemples
  4. 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 :

ImageContenu
bus.jpgScène de rue avec des véhicules
zidane.jpgScè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ètrePlagePar défautDescription
Confiance0.0-1.00.25Seuil de confiance minimum
IoU0.0-1.00.70Seuil IoU de NMS
Taille de l'image32-1280640Dimension 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

ChampTypeDescription
successbooléenStatut de la requête
predictionstableauListe des détections
predictions[].classchaîne de caractèresNom de la classe
predictions[].confidenceflottantConfiance de détection (0-1)
predictions[].boxobjetCoordonnées des boîtes englobantes
imageobjetDimensions 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 :

ForfaitRequêtes/MinuteRequêtes/Jour
Gratuit10100
Pro6010,000

Pour des limites plus élevées, déployez un point de terminaison dédié.

Gestion des erreurs

Réponses d'erreur courantes :

CodeMessageSolution
400Image invalideVérifiez le format du fichier
401Non autoriséVérifiez la clé API
404Modèle introuvableVérifiez le slug du modèle
429Débit limitéAttendez ou mettez à niveau votre forfait
500Erreur serveurRé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 :

  1. Extrayez les images localement
  2. Envoyer chaque image à l'API
  3. 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 :

  1. Utiliser les prédictions pour tracer les cadres localement
  2. 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 à imgsz paramè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 :

  1. Envoyer des requêtes concurrentes
  2. Utiliser un point de terminaison dédié pour un débit plus élevé
  3. Privilégier l'inférence locale pour les grands lots


📅 Créé il y a 20 jours ✏️ Mis à jour il y a 14 jours
glenn-jocherLaughing-q

Commentaires