Real-time Inference
Explore la puissance de l'inférence en temps réel pour des prédictions IA instantanées. Apprends comment Ultralytics YOLO26 fournit des résultats à faible latence pour les appareils en périphérie (edge) et la robotique.
L'inférence en temps réel désigne le processus par lequel un modèle d'apprentissage automatique (ML) entraîné accepte des données d'entrée en direct et génère des prédictions presque instantanément. Contrairement au traitement hors ligne, où les données sont collectées et analysées en bloc à un moment ultérieur, l'inférence en temps réel se produit à la volée, permettant aux systèmes de réagir à leur environnement avec rapidité et agilité. Cette capacité est le cœur des applications modernes d'intelligence artificielle (IA), permettant aux appareils de percevoir, d'interpréter et d'agir sur les données en quelques millisecondes.
L'importance d'une faible latence#
La principale métrique pour évaluer les performances en temps réel est la latence d'inférence. Celle-ci mesure le délai temporel entre le moment où les données sont entrées dans le modèle — telles qu'une image provenant d'une caméra vidéo — et le moment où le modèle produit une sortie, comme une boîte englobante ou une étiquette de classification. Pour qu'une application soit considérée comme « en temps réel », la latence doit être suffisamment faible pour correspondre à la vitesse du flux de données entrant.
Par exemple, dans les tâches de compréhension vidéo s'exécutant à 30 images par seconde (FPS), le système dispose d'un budget temporel strict d'environ 33 millisecondes pour traiter chaque image. Si l'inférence prend plus de temps, le système introduit un décalage, ce qui peut entraîner la perte d'images ou des réponses retardées. Atteindre cet objectif nécessite souvent une accélération matérielle utilisant des GPU ou des appareils Edge AI spécialisés comme le NVIDIA Jetson.
Inférence en temps réel vs Inférence par lots#
Il est utile de distinguer les flux de travail en temps réel du traitement par lots. Bien que tous deux impliquent la génération de prédictions, leurs objectifs et leurs architectures diffèrent considérablement :
- Inférence en temps réel : privilégie une faible latence. Elle traite des points de données uniques (ou de très petits lots) dès leur arrivée. C'est essentiel pour les applications interactives telles que les véhicules autonomes, où une voiture doit détecter instantanément un piéton pour freiner à temps.
- Inférence par lots : privilégie un débit élevé. Elle collecte un grand volume de données et les traite toutes en même temps. Cela convient aux tâches non urgentes, telles que la génération de rapports d'inventaire nocturnes ou l'analyse de tendances historiques de mégadonnées.
Applications concrètes#
La capacité à prendre des décisions en une fraction de seconde a transformé diverses industries en permettant l'automatisation dans des environnements dynamiques.
- Fabrication intelligente : dans l'IA dans la fabrication, les caméras positionnées au-dessus des bandes transporteuses utilisent l'inférence en temps réel pour effectuer un contrôle qualité automatisé. Un modèle de détection d'objets peut identifier instantanément des défauts ou des corps étrangers dans des produits se déplaçant à grande vitesse. Si une anomalie est détectée, le système déclenche un bras robotisé pour retirer l'article immédiatement, garantissant que seuls des produits de haute qualité atteignent l'emballage.
- Surveillance et sécurité : les systèmes de sécurité modernes s'appuient sur la vision par ordinateur pour surveiller les périmètres. Au lieu de se contenter d'enregistrer des séquences, ces caméras exécutent une détection de personnes ou une reconnaissance faciale en temps réel pour alerter le personnel de sécurité d'un accès non autorisé dès qu'il se produit.
- Robotique : dans le domaine de l'IA en robotique, les robots utilisent l'estimation de pose pour naviguer dans des espaces physiques complexes. Un robot d'entrepôt doit déduire en continu l'emplacement des obstacles et des travailleurs humains pour planifier son trajet de manière sûre et efficace.
Optimisation et déploiement#
Le déploiement de modèles pour des applications en temps réel nécessite souvent une optimisation pour s'assurer qu'ils s'exécutent efficacement sur le matériel cible. Des techniques telles que la quantification de modèle réduisent la précision des poids du modèle (par exemple, de float32 à int8) pour diminuer l'utilisation de la mémoire et augmenter la vitesse d'inférence avec un impact minimal sur la précision.
Tu peux utiliser la Ultralytics Platform pour rationaliser ce processus. La plateforme simplifie l'entraînement et permet aux utilisateurs d'exporter des modèles vers des formats optimisés comme TensorRT pour les GPU NVIDIA, OpenVINO pour les CPU Intel, ou TFLite pour le déploiement mobile.
Exemple de code#
L'extrait Python suivant montre comment exécuter une inférence en temps réel sur le flux d'une webcam en utilisant la bibliothèque ultralytics. Il utilise le modèle YOLO26 Nano, qui est spécialement conçu pour des performances à haute vitesse sur les appareils périphériques.
from ultralytics import YOLO
# Load the YOLO26 Nano model, optimized for speed and real-time tasks
model = YOLO("yolo26n.pt")
# Run inference on the default webcam (source="0")
# 'stream=True' returns a generator for memory-efficient processing
# 'show=True' displays the video feed with bounding boxes in real-time
results = model.predict(source="0", stream=True, show=True)
# Iterate through the generator to process frames as they arrive
for result in results:
# Example: Print the number of objects detected in the current frame
print(f"Detected {len(result.boxes)} objects")





