En cliquant sur « Accepter tous les cookies », vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Plus d’infos
Paramètres des cookies
En cliquant sur « Accepter tous les cookies », vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Plus d’infos
Découvrez comment transformer les données des applications de vision par ordinateur en graphiques faciles à comprendre grâce au package Python Ultralytics, pour de meilleures informations.
Chaque minute, d'énormes quantités de données sont créées, des terminaux d'aéroport et des gares aux centres commerciaux. Avec l'utilisation croissante de l'IA, une grande partie de ces données est désormais analysée et décomposée. Mais parfois, les résultats de ces modèles d'IA peuvent rendre difficile l'identification des schémas ou la compréhension des tendances en un coup d'œil. C'est là que la visualisation des données est utile : elle transforme des résultats complexes en informations claires et faciles à assimiler.
Ceci est particulièrement vrai en ce qui concerne les applications de vision par ordinateur. La vision par ordinateur est une branche de l'intelligence artificielle (IA) qui aide les machines à interpréter et à comprendre les informations visuelles du monde environnant, telles que les images et les vidéos. Alors que les modèles de Vision IA, comme Ultralytics YOLO11, peuvent aider à analyser ces données visuelles pour obtenir des informations, la visualisation des données aide à mettre ces informations dans un format facile à comprendre.
En termes simples, la visualisation des données comble le fossé entre les données brutes et la compréhension réelle en utilisant des graphiques analytiques significatifs. Dans le monde actuel axé sur les données, c'est essentiel, car il ne suffit pas que les machines se contentent d'effectuer des tâches, nous avons besoin qu'elles racontent une histoire.
Ce besoin de narration est précisément la raison pour laquelle la visualisation des données est en plein essor, le marché étant prêt à atteindre 18,36 milliards de dollars d'ici 2030. Auparavant, nous avons exploré comment la vision par ordinateur peut fournir de précieuses informations commerciales. Aujourd'hui, nous allons aller plus loin en expliquant comment générer des graphiques analytiques clairs et perspicaces pour les applications de vision par ordinateur à l'aide du package Ultralytics. Commençons !
Fig 1. Exemple de visualisation de données basée sur les sorties de YOLO11.
Présentation de la visualisation de données dans les applications de vision par ordinateur
La visualisation des données dans les applications de vision par ordinateur implique la transformation des résultats des tâches de vision par ordinateur, telles que la détection et le suivi d'objets, en graphiques ou tableaux de bord faciles à comprendre. Ces visuels aident à identifier les tendances et les schémas, en particulier lors de l'utilisation de grands volumes de séquences vidéo.
Par exemple, au lieu d'examiner manuellement des heures de vidéo de surveillance, un simple graphique linéaire présentant le nombre de voitures ou de personnes détectées au fil du temps peut rapidement mettre en évidence les heures de pointe ou les périodes inhabituellement calmes.
Voici quelques raisons clés pour lesquelles la visualisation des données est utile :
Simplifie les données complexes : Des milliers de détections d’objets peuvent être accablantes, mais les visualisations telles que les diagrammes à barres ou circulaires facilitent la visualisation d’ensemble, par exemple, quels objets apparaissent le plus fréquemment.
Révèle les tendances : Les graphiques linéaires et à barres aident à identifier les tendances au fil du temps, par exemple quand et où la circulation piétonnière a tendance à augmenter.
Gain de temps : Au lieu d'examiner chaque image vidéo, les graphiques peuvent rapidement mettre en évidence les détails importants, comme les pics soudains d'activité des véhicules ou les apparitions d'objets inhabituels dans les zones réglementées.
Améliore la communication : Les visuels facilitent le partage d'informations avec un public non technique, ce qui aide chacun à comprendre les résultats plus clairement.
Différents types de visualisations de données
Différents types de graphiques analytiques peuvent transformer les résultats de la vision par ordinateur en visuels clairs et faciles à comprendre. Prenons l'exemple d'une application de vision par ordinateur qui détecte les personnes et les véhicules dans des séquences de surveillance. Dans ce cas, un graphique linéaire est idéal pour montrer comment le nombre de détections évolue dans le temps, par exemple pour suivre les pics de fréquentation piétonnière tout au long de la journée.
De même, les histogrammes sont utiles lorsque vous souhaitez comparer le nombre de différents types d'objets détectés, par exemple pour voir si plus de voitures, de vélos ou de piétons apparaissent dans la vidéo. Les diagrammes circulaires, quant à eux, montrent le pourcentage que chaque type d'objet représente par rapport au nombre total de détections. Chaque graphique a son propre usage et permet de rendre les données complexes de vision par ordinateur plus faciles à interpréter et à partager.
Générer des graphiques analytiques pour obtenir des informations sur la vision par ordinateur
Maintenant que nous avons exploré ce qu'est la visualisation de données et pourquoi les différents types de graphiques analytiques sont importants, examinons de plus près comment utiliser la solution Ultralytics Analytics pour visualiser les résultats des prédictions de votre modèle de vision par ordinateur. Avant de passer en revue le processus étape par étape, examinons les outils et les options de configuration pour l'entraînement et l'utilisation du package Ultralytics et des modèles tels que YOLO11.
Le package Python Ultralytics facilite l'entraînement des modèles, la détection des objets, l'exécution des prédictions et la visualisation des résultats. Pour commencer, vous aurez besoin d'un environnement de codage. Voici trois options simples :
Interface de ligne de commande (CLI) : Il s'agit d'un outil de base, uniquement textuel, où vous pouvez taper des commandes pour exécuter votre code. Il n'a pas d'interface visuelle, et vous interagissez avec lui en tapant des instructions dans un terminal ou une invite de commande.
Jupyter Notebooks : Il s'agit d'un environnement de codage interactif où vous pouvez écrire, exécuter et tester de petits blocs de code (appelés « cellules ») un par un. Il affiche les résultats directement sous chaque cellule, ce qui facilite la compréhension de ce qui se passe étape par étape. Il est particulièrement utile pour l'apprentissage et l'expérimentation.
Google Colab : Cette option est une version gratuite basée sur le cloud de Jupyter Notebooks qui s'exécute dans votre navigateur web. Elle ne nécessite aucune configuration sur votre ordinateur et vous donne accès à des GPU gratuits pour un traitement plus rapide.
Ces outils sont parfaits pour démarrer rapidement, mais les utilisateurs peuvent également intégrer Ultralytics dans des environnements de développement intégrés (IDE) tels que Visual Studio Code (VS Code) ou dans des pipelines de production. Pour plus d'options, consultez la documentation officielle d'Ultralytics.
Étape 1 : Configuration de l'environnement
Une fois que vous avez choisi votre environnement préféré, l'étape suivante consiste à le configurer pour exécuter des prédictions et visualiser les résultats. Vous pouvez utiliser l'un des environnements mentionnés ci-dessus, en fonction de celui avec lequel vous êtes le plus à l'aise.
Si vous travaillez dans Google Colab, n'oubliez pas qu'il utilise un CPU par défaut, ce qui peut ralentir les performances. Pour accélérer les choses, passez à un GPU en allant dans le menu "Runtime", en sélectionnant "Change runtime type", et en définissant l'accélérateur matériel sur GPU (idéalement un T4).
Pour préparer votre environnement, vous devrez installer le paquet Python Ultralytics en utilisant la commande mentionnée ci-dessous. Dans les outils basés sur des notebooks comme Colab ou Jupyter, veillez à ajouter un point d'exclamation (!) avant la commande.
pip install ultralytics
Étape 2 : Téléchargement d'un fichier vidéo
Ensuite, nous aurons besoin d'une vidéo avec laquelle travailler. Vous pouvez facilement en télécharger une à partir d'un site de stock gratuit comme Pexels. Assurez-vous de choisir une vidéo qui inclut des objets que YOLO11 peut détecter. Étant donné que le modèle est pré-entraîné sur l'ensemble de données COCO, il peut reconnaître des objets courants tels que les personnes, les voitures et les vélos.
Pour ce tutoriel, nous utiliserons une vidéo de manutention des bagages dans un terminal d'aéroport très fréquenté. Vous pouvez utiliser la même vidéo ou en choisir une autre qui correspond à votre projet.
Fig 3. Une image extraite de la vidéo d'entrée montrant la manutention des bagages dans un terminal d'aéroport.
Étape 3 : Importation des paquets
Ensuite, nous pouvons importer les bibliothèques nécessaires et charger la vidéo d'entrée.
Nous allons commencer par importer OpenCV (cv2), qui est une bibliothèque largement utilisée pour travailler avec des images et des vidéos en vision par ordinateur. Nous allons également importer la bibliothèque Ultralytics, qui nous aide à exécuter la détection d'objets et à générer des analyses à partir de la vidéo.
Ensuite, nous allons essayer d'ouvrir le fichier vidéo en spécifiant son chemin d'accès. Assurez-vous de remplacer "path/to/video.mp4" par l'emplacement réel de votre fichier vidéo téléchargé.
De plus, l'extrait de code ci-dessous comprend une simple vérification pour s'assurer que la vidéo se charge correctement. Si le chemin est incorrect ou si le fichier est corrompu, le programme s'arrêtera et affichera un message d'erreur : "Erreur de lecture du fichier vidéo."
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
Étape 4 : Préparation de l'enregistreur vidéo
Ensuite, nous allons configurer un enregistreur vidéo pour sauvegarder la sortie. Lorsque nous exécuterons l'analyse, cette partie du code créera un nouveau fichier vidéo qui enregistrera les graphiques mis à jour générés à partir de chaque image de la vidéo originale.
Dans l'extrait de code ci-dessous, nous extrayons d'abord les propriétés clés de la vidéo d'entrée : sa largeur, sa hauteur et ses images par seconde (fps). Ces valeurs sont tirées directement de la vidéo et converties en entiers pour s'assurer qu'elles sont dans le format correct pour l'écriture de la sortie.
Ensuite, nous utilisons la fonction cv2.VideoWriter pour créer un nouveau fichier vidéo, nommé « analytics_output.avi » (vous pouvez le renommer si nécessaire). La vidéo est enregistrée au format MJPG, qui est une méthode de compression vidéo courante. La résolution de sortie est définie sur 1280 × 720 pixels, quelle que soit la taille de la vidéo d'origine.
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720),
)
Étape 5 : Configuration de la solution Ultralytics Analytics
Maintenant, nous allons configurer la solution Ultralytics Analytics pour générer des graphiques à partir de la vidéo. Vous pouvez choisir comment les données sont affichées, par exemple sous forme de graphique linéaire, circulaire, de surface ou à barres, et quel modèle YOLO utiliser. Dans cet exemple, nous utiliserons le modèle léger « yolo11n.pt » et afficherons les résultats sous forme de graphique de surface.
La dernière partie du code exécute une boucle qui traite la vidéo une image à la fois. Chaque image est transmise à l'outil d'analyse, qui met à jour le graphique en temps réel. Le graphique mis à jour est ensuite écrit dans la vidéo de sortie. Si une image ne peut pas être lue, la boucle s'arrête. Une fois toutes les images traitées, la vidéo est enregistrée et toutes les fenêtres ouvertes sont fermées.
Enfin, récapitulons. Avec seulement quelques lignes de code supplémentaires, nous pouvons générer deux vidéos de sortie : une montrant les résultats de la détection d'objets YOLO11 avec des boîtes englobantes et des étiquettes, et une autre montrant les graphiques d'analyse en temps réel.
Pour ce faire, nous allons configurer deux instances de VideoWriter : une pour enregistrer la vidéo de prédiction et une autre pour l'analyse. Cette version du code inclut à la fois le suivi d'objets et la génération de graphiques, ce qui vous permet de voir les résultats de la détection ainsi que les informations visuelles.
Voici le code complet ainsi que des exemples des résultats de prédiction et d'analyse.
Lorsque le code ci-dessus s'exécute avec succès, il génère deux vidéos de sortie. Le fichier « output_predictions.avi » affiche les résultats de la détection d'objets avec des boîtes englobantes et des étiquettes, tandis que « output_analytics.avi » affiche les graphiques d'analyse en temps réel basés sur les détections.
Fig 4. Une image extraite du fichier “output_predictions.avi”.
Voici une image de la sortie d'analyse basée sur les prédictions. En utilisant le graphique en aires, nous pouvons obtenir des informations telles que les fluctuations du nombre de valises au fil du temps, comme un pic autour de l'image 268, indiquant un mouvement ou une activité de valises dans cette partie de la vidéo.
Fig. 5. Visualisation des prédictions de YOLO11 sous forme de graphique de surface.
Utilisation de graphiques dans les applications de vision par ordinateur du monde réel
Voici quelques applications concrètes de la vision par ordinateur où la visualisation des données a un impact significatif :
Santé: Les systèmes de vision par ordinateur peuvent surveiller l'activité des patients, les mouvements du personnel et l'utilisation des équipements en temps réel. Cela génère de grandes quantités de données visuelles qui, une fois visualisées, peuvent révéler des tendances, telles que les heures de pointe d'occupation des patients ou les retards de réponse.
Vente au détail et commerce électronique : La vision IA peut être utilisée pour suivre les mouvements des clients, le temps passé devant les rayons et les interactions avec les produits. Les analyses visuelles, telles que les diagrammes à barres ou circulaires, peuvent mettre en évidence les zones ou les articles du magasin qui reçoivent le plus d'attention, ce qui aide les détaillants à optimiser le placement des produits et à améliorer les conversions.
Fabrication : Les caméras équipées de modèles de vision par ordinateur peuvent surveiller les chaînes de montage pour détecter les défauts, les violations de sécurité ou l'état de l'équipement. La visualisation des données peut montrer les tendances dans les types de défauts les plus courants ou mettre en évidence les périodes avec les taux d'erreur les plus élevés, permettant une prise de décision plus rapide et une maintenance préventive.
Principaux points à retenir
Avec le package Ultralytics, vous pouvez facilement transformer des séquences vidéo en graphiques clairs et instructifs qui révèlent ce qui se passe, par exemple en suivant le nombre de personnes ou d'objets qui apparaissent au fil du temps. Au lieu de revoir manuellement des heures de vidéo, vous pouvez générer des résumés visuels qui mettent en évidence les principaux schémas et tendances, ce qui facilite une action rapide. Que ce soit dans les hôpitaux, les magasins de détail ou les usines de fabrication, ces graphiques transforment les sorties complexes de l'IA en informations que tout le monde peut comprendre et utiliser.