Comptage d’objets avec Ultralytics YOLO26#
Qu’est-ce que le comptage d’objets ?#
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éra. YOLO26 excelle dans les applications en temps réel et permet un comptage d’objets efficace et précis dans divers scénarios, comme l’analyse de foule et la surveillance, grâce à ses algorithmes de pointe et à ses capacités d’apprentissage profond.
Regarder : Comment effectuer le comptage d’objets en temps réel avec Ultralytics YOLO26 🚀
Avantages du comptage d’objets#
- Optimisation des ressources : Le comptage d’objets facilite une gestion efficace des ressources en fournissant des décomptes précis et en optimisant l’allocation des ressources dans des applications comme la gestion des stocks.
- Sécurité renforcée : Le comptage d’objets renforce la sécurité et la surveillance en suivant et en comptant avec précision les entités, ce qui facilite la détection proactive des menaces.
- Décisions éclairées : Le comptage d’objets fournit des informations utiles pour la prise de décision et l’optimisation des processus dans le commerce de détail, la gestion du trafic et de nombreux autres domaines.
Applications concrètes#
| Logistique | Aquaculture |
|---|---|
![]() | ![]() |
| Comptage de paquets sur un tapis roulant avec Ultralytics YOLO26 | Comptage de poissons en mer avec Ultralytics YOLO26 |
Compter des objets avec YOLO26#
Définis une region de comptage — deux points pour une ligne ou trois points ou plus pour un polygone — puis transmets-la à la solution ObjectCounter. Le compteur suit chaque objet d’une image à l’autre et comptabilise les entrées et sorties lorsque les objets suivis franchissent la ligne ou traversent la zone. Il renvoie une image annotée que tu peux écrire dans une vidéo de sortie.
# 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 d’au moins trois points. Définis les coordonnées dans l’ordre où elles doivent être reliées afin que le compteur sache exactement où se produisent les entrées et les sorties.
Arguments de ObjectCounter#
Voici un tableau des arguments de ObjectCounter :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
model | str | None | Chemin vers un fichier de modèle Ultralytics YOLO. |
show_in | bool | True | Indicateur permettant de contrôler l'affichage du nombre d'entrées dans le flux vidéo. |
show_out | bool | True | Indicateur permettant de contrôler l'affichage du nombre de sorties dans le flux vidéo. |
region | list ou dict | None | Points définissant la région d'intérêt : une liste de tuples (x, y) ou un dictionnaire associant des noms de régions à des listes de points pour plusieurs régions (uniquement RegionCounter). Si None, les solutions qui nécessitent une région utilisent une région par défaut prédéfinie. |
line_width | int | 2 | Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution. |
verbose | bool | True | Active le journal de la solution pour chaque image, qui indique la forme de l'entrée, le nombre d'éléments par classe et la vitesse de traitement. L'appel de suivi reste toujours silencieux. |
La solution ObjectCounter permet d’utiliser plusieurs arguments track :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Indique l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Définit le seuil de confiance des détections ; des valeurs plus faibles permettent de suivre davantage d'objets, mais peuvent inclure des faux positifs. |
iou | float | 0.7 | Définit le seuil d'intersection sur l'union (IoU) utilisé pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats selon l'indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
device | str | None | Indique 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. |
imgsz | int or tuple | 640 | Taille cible de l'image pour l'inférence : un entier pour une image carrée ou une paire (height, width). Les dimensions sont ajustées au stride du modèle. |
max_det | int | 300 | Nombre maximal de détections conservées par image avant le suivi, ce qui limite le nombre d'objets qu'une solution traite dans les scènes denses. |
quantize | int or str | None | Précision d’inférence : 16 (FP16) ou 32/unset (FP32) pour les modèles PyTorch et TorchScript hors CPU ; les autres formats utilisent la précision définie par leur artefact et leur environnement d’exécution. Remplace l’argument half obsolète. |
Les arguments de visualisation ci-dessous sont également pris en charge :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
show | bool | False | Si 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_conf | bool | True | Affiche le score de confiance de chaque détection à côté de son étiquette. Donne une indication du degré de certitude du modèle pour chaque détection. |
show_labels | bool | True | Affiche les étiquettes de chaque détection dans le résultat visuel. Permet d'identifier immédiatement les objets détectés. |
FAQ#
Pour compter des objets dans une vidéo avec Ultralytics YOLO26, suis ces étapes :
- Importe les bibliothèques nécessaires (
cv2,ultralytics). - Définis la zone de comptage (par exemple, un polygone, une ligne, etc.).
- Configure la capture vidéo et initialise le compteur d’objets.
- Traite chaque image pour suivre les objets et les compter dans la zone définie.
Voici un exemple simple de 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 découvrir des configurations et options plus avancées, consulte la solution RegionCounter, qui permet de compter simultanément des objets dans plusieurs zones.
- Importe les bibliothèques nécessaires (
Utiliser Ultralytics YOLO26 pour le comptage d’objets présente plusieurs avantages :
- Optimisation des ressources : Cette solution facilite une gestion efficace des ressources en fournissant des décomptes précis et en aidant à optimiser l’allocation des ressources dans des secteurs comme la gestion des stocks.
- Sécurité renforcée : Cette solution renforce la sécurité et la surveillance en suivant et en comptant avec précision les entités, ce qui facilite la détection proactive des menaces et les systèmes de sécurité.
- Décisions éclairées : Cette solution fournit des informations utiles pour la prise de décision et l’optimisation des processus dans des domaines comme le commerce de détail, la gestion du trafic et bien d’autres.
- 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 qui permet de suivre des objets dans des zones spécifiques.
Pour compter des classes d’objets précises avec 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 que le système compte les objets des classes0et2(par exemple, les personnes et les voitures dans le jeu de données COCO). Tu trouveras plus d’informations sur les indices de classe dans la documentation du jeu de données COCO.Ultralytics YOLO26 présente 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 :
- Vitesse et efficacité : YOLO26 permet un traitement en temps réel, ce qui le rend idéal pour les applications nécessitant une inférence à grande vitesse, comme la surveillance et la conduite autonome.
- Précision : Il offre 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.
- Facilité d’intégration : YOLO26 s’intègre facilement à diverses plateformes et appareils, notamment les appareils mobiles et les appareils en périphérie, un aspect essentiel des applications d’IA modernes.
- Flexibilité : Prend en charge les tâches de détection et de segmentation, complétées par le mode de suivi, ainsi que des modèles configurables adaptés aux besoins de chaque cas d’usage.
Consulte la documentation YOLO26 d’Ultralytics pour approfondir ses fonctionnalités et comparer ses performances.
Oui, Ultralytics YOLO26 convient parfaitement 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 des objets très précis dans des environnements dynamiques. Voici quelques exemples d’utilisation :
- Analyse de foule : Surveille et gère les grands rassemblements, assure la sécurité et optimise les flux de foule grâce au comptage par zone.
- 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 déplacements 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 pour améliorer le contrôle qualité et l’efficacité.
Pour des applications plus spécialisées, découvre Ultralytics Solutions, un ensemble complet d’outils conçus pour relever les défis concrets de la vision par ordinateur.

