Meet YOLO26: next-gen vision AI.

Link to this sectionComptage d'objets avec Ultralytics YOLO26#

Link to this sectionQu'est-ce que le comptage d'objets ?#

Ouvrir le comptage d'objets dans Colab

Le comptage d'objets avec Ultralytics YOLO26 implique l'identification et le comptage précis d'objets spécifiques dans des vidéos et des flux de caméra. YOLO26 excelle dans les applications en temps réel, fournissant un comptage d'objets efficace et précis pour divers scénarios comme l'analyse de foule et la surveillance, grâce à ses algorithmes de pointe et ses capacités de deep learning.



Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀

Link to this sectionAvantages du comptage d'objets#

  • Optimisation des ressources : Le comptage d'objets facilite une gestion efficace des ressources en fournissant des comptages précis, optimisant l'allocation des ressources dans des applications comme la gestion des stocks.
  • Sécurité renforcée : Le comptage d'objets améliore la sécurité et la surveillance en suivant et en comptant précisément les entités, ce qui aide à la détection proactive des menaces.
  • Prise de décision éclairée : Le comptage d'objets offre des informations précieuses pour la prise de décision, optimisant les processus dans le commerce de détail, la gestion du trafic et divers autres domaines.

Link to this sectionApplications dans le monde réel#

LogistiqueAquaculture
Comptage de paquets sur tapis roulant avec Ultralytics YOLO26Comptage de poissons en mer avec Ultralytics YOLO26
Comptage de paquets sur tapis roulant avec Ultralytics YOLO26Comptage de poissons en mer avec Ultralytics YOLO26
Comptage d'objets avec Ultralytics YOLO
# Run a counting example
yolo solutions count show=True

# Pass a source video
yolo solutions count source="path/to/video.mp4"

# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

L'argument region accepte soit deux points (pour une ligne), soit un polygone avec trois points ou plus. Définis les coordonnées dans l'ordre où elles doivent être reliées afin que le compteur sache exactement où les entrées et sorties se produisent.

Link to this sectionArguments de ObjectCounter#

Voici un tableau avec les arguments de ObjectCounter :

ArgumentTypeDéfautDescription
modelstrNoneChemin d'accès vers un fichier de modèle YOLO d'Ultralytics.
show_inboolTrueIndicateur pour contrôler s'il faut afficher les comptages entrants sur le flux vidéo.
show_outboolTrueIndicateur pour contrôler s'il faut afficher les comptages sortants sur le flux vidéo.
regionlist'[(20, 400), (1260, 400)]'Liste de points définissant la région de comptage.

La solution ObjectCounter permet d'utiliser plusieurs arguments track :

ArgumentTypeDéfautDescription
trackerstr'botsort.yaml'Spécifie l'algorithme de suivi à utiliser, par ex. bytetrack.yaml ou botsort.yaml.
conffloat0.1Définit le seuil de confiance pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets, mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil d'Intersection sur Union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
verboseboolTrueContrôle l'affichage des résultats de suivi, en fournissant une sortie visuelle des objets suivis.
devicestrNoneSpécifie le périphérique pour l'inférence (par ex. 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 listés ci-dessous 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. Offre une personnalisation visuelle pour plus de clarté.
show_confboolTrueAffiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection.
show_labelsboolTrueAffiche les étiquettes pour chaque détection dans la sortie visuelle. Permet une compréhension immédiate des objets détectés.

Link to this sectionFAQ#

Link to this sectionComment compter des objets dans une vidéo en utilisant Ultralytics YOLO26 ?#

Pour compter des objets dans une vidéo avec Ultralytics YOLO26, tu peux suivre ces étapes :

  1. Importe les bibliothèques nécessaires (cv2, ultralytics).
  2. Définis la zone de comptage (par exemple, un polygone, une ligne, etc.).
  3. Configure la capture vidéo et initialise le compteur d'objets.
  4. Traite chaque image pour suivre les objets et les compter dans la zone définie.

Voici un exemple simple pour le comptage dans une zone :

import cv2

from ultralytics import solutions

def count_objects_in_region(video_path, output_video_path, model_path):
    """Count objects in a specific region within a video."""
    cap = cv2.VideoCapture(video_path)
    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))
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

    region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
    counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path)

    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or processing is complete.")
            break
        results = counter(im0)
        video_writer.write(results.plot_im)

    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()

count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")

Pour des configurations et options plus avancées, consulte la solution RegionCounter pour compter des objets dans plusieurs zones simultanément.

Link to this sectionQuels sont les avantages d'utiliser Ultralytics YOLO26 pour le comptage d'objets ?#

Utiliser Ultralytics YOLO26 pour le comptage d'objets offre plusieurs avantages :

  1. Optimisation des ressources : Cela facilite une gestion efficace des ressources en fournissant des comptages précis, aidant à optimiser l'allocation des ressources dans des secteurs comme la gestion des stocks.
  2. Sécurité renforcée : Cela améliore la sécurité et la surveillance en suivant et en comptant précisément les entités, aidant à la détection proactive des menaces et aux systèmes de sécurité.
  3. Prise de décision éclairée : Cela offre des informations précieuses pour la prise de décision, optimisant les processus dans des domaines comme le commerce de détail, la gestion du trafic, et plus encore.
  4. Traitement en temps réel : L'architecture de YOLO26 permet l'inférence en temps réel, ce qui le rend adapté aux flux vidéo en direct et aux applications sensibles au facteur temps.

Pour des exemples d'implémentation et des applications pratiques, explore la solution TrackZone pour suivre des objets dans des zones spécifiques.

Link to this sectionComment puis-je compter des classes d'objets spécifiques en utilisant Ultralytics YOLO26 ?#

Pour compter des classes d'objets spécifiques en utilisant Ultralytics YOLO26, tu dois spécifier les classes qui t'intéressent pendant la phase de suivi. Voici un exemple en Python :

import cv2

from ultralytics import solutions

def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
    """Count specific classes of objects in a video."""
    cap = cv2.VideoCapture(video_path)
    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))
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

    line_points = [(20, 400), (1080, 400)]
    counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count)

    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or processing is complete.")
            break
        results = counter(im0)
        video_writer.write(results.plot_im)

    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()

count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])

Dans cet exemple, classes_to_count=[0, 2] signifie qu'il compte les objets de classe 0 et 2 (par exemple, personne et voiture dans le jeu de données COCO). Tu peux trouver plus d'informations sur les indices de classe dans la documentation du jeu de données COCO.

Link to this sectionPourquoi devrais-je utiliser YOLO26 plutôt que d'autres modèles de détection d'objets pour les applications en temps réel ?#

Ultralytics YOLO26 offre plusieurs avantages par rapport à d'autres modèles de détection d'objets comme Faster R-CNN, SSD et les versions précédentes de YOLO :

  1. Vitesse et efficacité : YOLO26 offre des capacités de traitement en temps réel, ce qui le rend idéal pour les applications nécessitant une inférence à haute vitesse, telles que la surveillance et la conduite autonome.
  2. Précision : Il offre une précision de pointe pour les tâches de détection et de suivi d'objets, réduisant le nombre de faux positifs et améliorant la fiabilité globale du système.
  3. Facilité d'intégration : YOLO26 offre une intégration transparente avec diverses plateformes et appareils, y compris les appareils mobiles et les appareils en périphérie, ce qui est crucial pour les applications IA modernes.
  4. Flexibilité : Prend en charge diverses tâches comme la détection d'objets, la segmentation et le suivi avec des modèles configurables pour répondre aux exigences spécifiques de chaque cas d'utilisation.

Consulte la documentation d'Ultralytics YOLO26 pour une plongée plus profonde dans ses fonctionnalités et ses comparaisons de performance.

Link to this sectionPuis-je utiliser YOLO26 pour des applications avancées comme l'analyse de foule et la gestion du trafic ?#

Oui, Ultralytics YOLO26 est parfaitement adapté aux applications avancées comme l'analyse de foule et la gestion du trafic grâce à ses capacités de détection en temps réel, son évolutivité et sa flexibilité d'intégration. Ses fonctionnalités avancées permettent un suivi, un comptage et une classification d'objets de haute précision dans des environnements dynamiques. Quelques exemples d'utilisation incluent :

  • Analyse de foule : Surveille et gère les grands rassemblements, en assurant la sécurité et en optimisant les flux de foule grâce au comptage par zone.
  • Gestion du trafic : Suis et compte les véhicules, analyse les modèles de trafic et gère les embouteillages en temps réel grâce aux capacités d'estimation de vitesse.
  • Analyses de commerce de détail : Analyse les modèles de déplacement des clients et les interactions avec les produits pour optimiser l'agencement des magasins et améliorer l'expérience client.
  • Automatisation industrielle : Compte les produits sur les tapis roulants et surveille les lignes de production pour le contrôle qualité et l'amélioration de l'efficacité.

Pour des applications plus spécialisées, explore les solutions Ultralytics pour un ensemble complet d'outils conçus pour les défis de vision par ordinateur du monde réel.

Commentaires