Analyses utilisant Ultralytics YOLO26

Introduction

Ce guide fournit un aperçu complet de trois types fondamentaux de visualisations de données : graphiques linéaires, diagrammes à barres et diagrammes circulaires. Chaque section comprend des instructions étape par étape et des extraits de code sur la façon de créer ces visualisations en utilisant Python.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Exemples visuels

Graphique linéaireDiagramme à barresDiagramme circulaire
Graphique linéaire d'analyse YOLO pour le suivi d'objetsDiagramme à barres d'analyse YOLO pour les comptages de détectionDiagramme circulaire d'analyse YOLO pour la distribution des classes

Pourquoi les graphiques sont-ils importants

  • Les graphiques linéaires sont idéaux pour suivre les changements sur des périodes courtes et longues et pour comparer les changements pour plusieurs groupes sur la même période.
  • Les diagrammes à barres, quant à eux, sont adaptés pour comparer des quantités à travers différentes catégories et montrer les relations entre une catégorie et sa valeur numérique.
  • Enfin, les diagrammes circulaires sont efficaces pour illustrer les proportions parmi les catégories et montrer les parties d'un tout.
Analyses utilisant Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Arguments Analytics

Voici un tableau résumant les arguments Analytics :

ArgumentTypeDéfautDescription
modelstrNoneChemin d'accès vers un fichier de modèle Ultralytics YOLO.
analytics_typestr'line'Type de graphique, par ex. line, bar, area ou pie.

Tu peux également tirer parti de différents arguments track dans la solution Analytics.

ArgumentTypeDéfautDescription
trackerstr'botsort.yaml'Spécifie l'algorithme de suivi à utiliser, par exemple bytetrack.yaml ou botsort.yaml.
conffloat0.1Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre davantage d'objets mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil Intersection over Union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées.
verboseboolTrueContrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis.
devicestrNoneSpécifie le périphérique pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle.

De plus, les arguments de visualisation suivants sont pris en charge :

ArgumentTypeDéfautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat lors du développement ou des tests.
line_widthint or NoneNoneSpécifie l'épaisseur de ligne des boîtes englobantes. Si None, l'épaisseur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté.

Conclusion

Comprendre quand et comment utiliser différents types de visualisations est crucial pour une analyse de données efficace. Les graphiques linéaires, les diagrammes à barres et les diagrammes circulaires sont des outils fondamentaux qui peuvent t'aider à transmettre l'histoire de tes données plus clairement et efficacement. La solution Ultralytics YOLO26 Analytics fournit un moyen simplifié de générer ces visualisations à partir de tes résultats de détection d'objets et de suivi, rendant plus facile l'extraction d'insights significatifs à partir de tes données visuelles.

FAQ

Comment créer un graphique linéaire en utilisant Ultralytics YOLO26 Analytics ?

Pour créer un graphique linéaire en utilisant Ultralytics YOLO26 Analytics, suis ces étapes :

  1. Charge un modèle YOLO26 et ouvre ton fichier vidéo.
  2. Initialise la classe Analytics avec le type réglé sur "line."
  3. Itère à travers les images vidéo, en mettant à jour le graphique linéaire avec des données pertinentes, telles que les comptages d'objets par image.
  4. Enregistre la vidéo de sortie affichant le graphique linéaire.

Exemple :

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

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(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Pour plus de détails sur la configuration de la classe Analytics, visite la section Analyses utilisant Ultralytics YOLO26.

Quels sont les avantages d'utiliser Ultralytics YOLO26 pour créer des diagrammes à barres ?

L'utilisation d'Ultralytics YOLO26 pour créer des diagrammes à barres offre plusieurs avantages :

  1. Visualisation de données en temps réel : Intègre de manière transparente les résultats de détection d'objets dans des diagrammes à barres pour des mises à jour dynamiques.
  2. Facilité d'utilisation : Une API et des fonctions simples rendent la mise en œuvre et la visualisation des données directes.
  3. Personnalisation : Personnalise les titres, les étiquettes, les couleurs et plus encore pour répondre à tes exigences spécifiques.
  4. Efficacité : Gère efficacement de grandes quantités de données et mets à jour les graphiques en temps réel pendant le traitement vidéo.

Utilise l'exemple suivant pour générer un diagramme à barres :

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

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(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Pour en savoir plus, visite la section Diagramme à barres dans le guide.

Pourquoi devrais-je utiliser Ultralytics YOLO26 pour créer des diagrammes circulaires dans mes projets de visualisation de données ?

Ultralytics YOLO26 est un excellent choix pour créer des diagrammes circulaires car :

  1. Intégration avec la détection d'objets : Intègre directement les résultats de détection d'objets dans des diagrammes circulaires pour des insights immédiats.
  2. API conviviale : Simple à configurer et à utiliser avec un minimum de code.
  3. Personnalisable : Diverses options de personnalisation pour les couleurs, les étiquettes et plus encore.
  4. Mises à jour en temps réel : Gère et visualise les données en temps réel, ce qui est idéal pour les projets d'analyse vidéo.

Voici un exemple rapide :

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

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(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Pour plus d'informations, réfère-toi à la section Diagramme circulaire dans le guide.

Ultralytics YOLO26 peut-il être utilisé pour suivre des objets et mettre à jour dynamiquement des visualisations ?

Oui, Ultralytics YOLO26 peut être utilisé pour suivre des objets et mettre à jour dynamiquement des visualisations. Il prend en charge le suivi de plusieurs objets en temps réel et peut mettre à jour diverses visualisations comme des graphiques linéaires, des diagrammes à barres et des diagrammes circulaires basés sur les données des objets suivis.

Exemple pour le suivi et la mise à jour d'un graphique linéaire :

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

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(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Pour en savoir plus sur la fonctionnalité complète, consulte la section Suivi.

Qu'est-ce qui rend Ultralytics YOLO26 différent des autres solutions de détection d'objets comme OpenCV et TensorFlow ?

Ultralytics YOLO26 se distingue des autres solutions de détection d'objets comme OpenCV et TensorFlow pour plusieurs raisons :

  1. Précision de pointe : YOLO26 fournit une précision supérieure dans les tâches de détection, de segmentation et de classification d'objets.
  2. Facilité d'utilisation : Une API conviviale permet une mise en œuvre et une intégration rapides sans codage approfondi.
  3. Performance en temps réel : Optimisé pour une inférence à haute vitesse, adapté aux applications en temps réel.
  4. Applications diverses : Prend en charge diverses tâches, notamment le suivi multi-objets, l'entraînement de modèles personnalisés et l'exportation vers différents formats comme ONNX, TensorRT et CoreML.
  5. Documentation complète : Une documentation étendue et des ressources de blog pour guider les utilisateurs à chaque étape.

Pour des comparaisons et des cas d'utilisation plus détaillés, explore notre Blog Ultralytics.

Commentaires