Passer au contenu

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 :

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

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

ChampTypeDescription
successbooléenStatut de la demande
predictionstableauListe des détections
predictions[].classchaîneNom de la classe
predictions[].confidenceflottantConfiance de détection (0-1)
predictions[].boxobjetCoordonnées du cadre englobant
imageobjetDimensions 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 :

PlanDemandes/MinuteDemandes/jour
Gratuit10100
Pro6010,000

Pour des limites plus élevées, déployez un terminal dédié.

Gestion des erreurs

Réponses d'erreur courantes :

CodeMessageSolution
400Image invalideVérifier le format du fichier
401Non autoriséVérifier la clé API
404Modèle introuvableVérifier le slug du modèle
429Taux limitéAttendre ou mettre à niveau le forfait
500Erreur serveurDemande de nouvelle tentative

FAQ

Puis-je effectuer une inférence sur une vidéo ?

L'API accepte les images individuelles. Pour les vidéos :

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

  1. Utilisez les prédictions pour dessiner des boîtes localement
  2. 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 à imgsz paramè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 :

  1. Envoyer des requêtes simultanées
  2. Utilisez un point de terminaison dédié pour un débit plus élevé.
  3. Envisager l'inférence locale pour les lots volumineux


📅 Créé il y a 0 jour ✏️ Mis à jour il y a 0 jour
glenn-jocher

Commentaires