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 de manière quasi instantanée. Contrairement au traitement hors ligne, où les données sont collectées et analysées en masse ultérieurement, l'inférence en temps réel s'effectue à 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 des données en quelques millisecondes.
Link to this sectionL'importance d'une faible latence#
La mesure principale pour évaluer les performances en temps réel est la latence d'inférence. Celle-ci mesure le délai entre le moment où les données sont saisies dans le modèle — comme une image provenant d'une caméra vidéo — et le moment où le modèle produit une sortie, telle qu'une BBox ou une étiquette de classification. Pour qu'une application soit considérée comme étant 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 de temps strict d'environ 33 millisecondes pour traiter chaque image. Si l'inférence prend plus de temps, le système introduit un décalage, pouvant entraîner des pertes 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 d'Edge AI spécialisés comme le NVIDIA Jetson.
Link to this sectionInfé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 les deux impliquent la génération de prédictions, leurs objectifs et leurs architectures diffèrent considérablement :
- Inférence en temps réel : Donne la priorité à une faible latence. Elle traite des points de données individuels (ou de très petits lots) dès leur arrivée. C'est essentiel pour les applications interactives comme les véhicules autonomes, où une voiture doit instantanément détecter un piéton pour freiner à temps.
- Inférence par lots : Donne la priorité à un débit élevé. Elle collecte un grand volume de données et les traite toutes en même temps. Cela est adapté aux tâches non urgentes, comme la génération de rapports d'inventaire nocturnes ou l'analyse des tendances historiques de big data.
Link to this sectionApplications 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 tapis roulants utilisent l'inférence en temps réel pour effectuer un contrôle qualité automatisé. Un modèle de détection d'objets peut instantanément identifier des défauts ou des objets étrangers dans des produits se déplaçant à grande vitesse. Si une anomalie est détectée, le système déclenche un bras robotique 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 simplement enregistrer des images, 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é au moment précis où 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 continuellement déduire l'emplacement des obstacles et des travailleurs humains pour planifier son chemin de manière sûre et efficace.
Link to this sectionOptimisation et déploiement#
Le déploiement de modèles pour des applications en temps réel nécessite souvent une optimisation pour garantir 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.
Les développeurs peuvent utiliser la plateforme Ultralytics 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.
Link to this sectionExemple de code#
L'extrait Python suivant démontre comment exécuter une inférence en temps réel sur un flux de webcam en utilisant la bibliothèque ultralytics. Il utilise le modèle Nano YOLO26, conçu spécifiquement pour des performances à haute vitesse sur les appareils de périphérie (edge devices).
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")





