Ultralytics YOLO27 :

Comptage d’objets avec Ultralytics YOLO26#

Qu’est-ce que le comptage d’objets ?#

Open Object Counting In Colab

Le comptage d’objets avec Ultralytics YOLO26 consiste à identifier et compter avec précision des objets spécifiques dans des vidéos et des flux de caméras. YOLO26 excelle dans les applications en temps réel en fournissant un comptage d’objets efficace et précis dans divers scénarios, tels que l’analyse de foule et la vidéosurveillance, grâce à ses algorithmes de pointe et à ses capacités d’apprentissage profond.



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

Avantages du comptage d’objets#

  • Optimisation des ressources : Le comptage d’objets facilite la gestion efficace des ressources en fournissant des décomptes précis et en optimisant l’allocation des ressources dans des applications telles que la gestion des stocks.
  • Sécurité renforcée : Le comptage d’objets renforce la sécurité et la surveillance en suivant et en comptant précisément les entités, ce qui contribue à la détection proactive des menaces.
  • Prise de décision éclairée : Le comptage d’objets fournit des informations précieuses pour la prise de décision et l’optimisation des processus dans le commerce de détail, la gestion du trafic et divers autres domaines.

Applications concrètes#

LogistiqueAquaculture
Comptage de colis sur un tapis roulant avec Ultralytics YOLO26Comptage de poissons en mer avec Ultralytics YOLO26
Comptage de colis sur un tapis roulant avec Ultralytics YOLO26Comptage de poissons en mer avec Ultralytics YOLO26

Compter des objets avec YOLO26#

Définis une region — deux points pour une ligne ou au moins trois pour un polygone — et transmets-la à la solution ObjectCounter. Le compteur suit chaque objet d’une image à l’autre et totalise les décomptes ENTRÉE/SORTIE lorsque les objets suivis franchissent la ligne ou traversent la région, puis renvoie une image annotée que tu peux écrire dans une vidéo de sortie.

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 composé d’au moins trois points. Définis les coordonnées dans l’ordre dans lequel elles doivent être reliées afin que le compteur sache exactement où ont lieu les entrées et les sorties.

Arguments de ObjectCounter#

Voici un tableau présentant les arguments de ObjectCounter :

ArgumentTypeValeur par défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.
show_inboolTrueIndicateur contrôlant l'affichage ou non des comptages entrants sur le flux vidéo.
show_outboolTrueIndicateur contrôlant l'affichage ou non des comptages sortants sur le flux vidéo.
regionlist ou dictNonePoints définissant la région d'intérêt, soit une liste de tuples (x, y), soit un dictionnaire associant les noms des régions à des listes de points pour plusieurs régions (RegionCounter uniquement). Lorsque None, les solutions qui nécessitent une région utilisent une région par défaut prédéfinie.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des comptages dessinés par la solution.
verboseboolTrueActive le journal par image de la solution, qui indique la forme d'entrée, les comptages par classe et la vitesse de traitement. L'appel de suivi lui-même est toujours silencieux.

La solution ObjectCounter permet d’utiliser plusieurs arguments track :

ArgumentTypeValeur par défautDescription
trackerstr'botsort.yaml'Indique l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Définit le seuil de confiance des détections ; des valeurs plus faibles permettent de suivre davantage 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.
devicestrNoneIndique le périphérique utilisé pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle.
imgszint or tuple640Taille de l'image d'inférence cible : un entier pour un carré ou une paire (height, width). Les formes sont ajustées au pas du modèle.
max_detint300Nombre maximal de détections conservées par image avant le suivi, ce qui limite les objets traités par une solution dans les scènes denses.
quantizeint or strNonePrécision de l'inférence : 16 (FP16) ou 32/non définie (FP32) pour les modèles PyTorch et TorchScript ; les autres formats s'exécutent à la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'indicateur déprécié half.

De plus, les arguments de visualisation listés ci-dessous sont pris en charge :

ArgumentTypeValeur par défautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour obtenir un retour visuel immédiat pendant le développement ou les tests.
show_confboolTrueAffiche le score de confiance de chaque détection à côté de son étiquette. Donne un aperçu du degré de certitude du modèle pour chaque détection.
show_labelsboolTrueAffiche les étiquettes de chaque détection dans la sortie visuelle. Permet d’identifier immédiatement les objets détectés.

FAQ#

  • 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 région 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 région définie.

    Voici un exemple simple de comptage dans une région :

    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 des options plus avancées, consulte la solution RegionCounter pour compter simultanément des objets dans plusieurs régions.

  • L’utilisation d’Ultralytics YOLO26 pour le comptage d’objets offre plusieurs avantages :

    1. Optimisation des ressources : Il facilite la gestion efficace des ressources en fournissant des décomptes précis et en aidant à optimiser l’allocation des ressources dans des secteurs tels que la gestion des stocks.
    2. Sécurité renforcée : Il renforce la sécurité et la surveillance en suivant et en comptant précisément les entités, ce qui contribue à la détection proactive des menaces et aux systèmes de sécurité.
    3. Prise de décision éclairée : Il fournit des informations précieuses pour la prise de décision et l’optimisation des processus dans des domaines tels que le commerce de détail, la gestion du trafic et bien d’autres.
    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 découvrir des exemples d’implémentation et des applications pratiques, consulte la solution TrackZone pour suivre des objets dans des zones spécifiques.

  • Pour compter des classes d’objets spécifiques avec Ultralytics YOLO26, tu dois indiquer 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 des classes 0 et 2 (par exemple, les personnes et les voitures dans le jeu de données COCO). Tu trouveras davantage d’informations sur les indices de classes dans la documentation du jeu de données COCO.

  • Ultralytics YOLO26 offre plusieurs avantages par rapport à d’autres modèles de détection d’objets tels que 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 à grande vitesse, telles que la vidéosurveillance et la conduite autonome.
    2. Précision : Il fournit une précision de détection et de suivi de pointe, réduisant les faux positifs et améliorant la fiabilité globale du système.
    3. Facilité d’intégration : YOLO26 s’intègre facilement à diverses plateformes et appareils, notamment les appareils mobiles et les appareils edge, ce qui est essentiel pour les applications modernes d’IA.
    4. Flexibilité : Il prend en charge les tâches de détection et de segmentation, avec le mode de suivi en complément, ainsi que des modèles configurables pour répondre aux exigences de cas d’utilisation spécifiques.

    Consulte la documentation YOLO26 d’Ultralytics pour approfondir ses fonctionnalités et comparer ses performances.

  • Oui, Ultralytics YOLO26 est parfaitement adapté aux applications avancées telles que 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 des objets très précis dans des environnements dynamiques. Voici quelques exemples de cas d’utilisation :

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

    Pour des applications plus spécialisées, consulte les solutions Ultralytics, qui proposent un ensemble complet d’outils conçus pour relever les défis de la vision par ordinateur dans le monde réel.

Commentaires