Comptage d'objets avec Ultralytics YOLO26
Qu'est-ce que le comptage d'objets ?
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, offrant 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 🚀
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, optimisant ainsi 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 des menaces de manière proactive.
- Prise de décision éclairée : Le comptage d'objets offre des informations précieuses pour la prise de décision, en optimisant les processus dans le commerce de détail, la gestion du trafic et divers autres domaines.
Applications dans le monde réel
| Logistique | Aquaculture |
|---|---|
![]() | ![]() |
| Comptage de paquets sur tapis roulant avec Ultralytics YOLO26 | Comptage de poissons en mer avec Ultralytics YOLO26 |
# 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 connectées afin que le compteur sache exactement où se produisent les entrées et les sorties.
Arguments de ObjectCounter
Voici un tableau avec les arguments de ObjectCounter :
| Argument | Type | Défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès vers un fichier de modèle Ultralytics YOLO. |
show_in | bool | True | Drapeau pour contrôler si les comptes entrants doivent être affichés sur le flux vidéo. |
show_out | bool | True | Drapeau pour contrôler si les comptes sortants doivent être affichés sur le flux vidéo. |
region | list | '[(20, 400), (1260, 400)]' | Liste de points définissant la zone de comptage. |
La solution ObjectCounter permet l'utilisation de plusieurs arguments track :
| Argument | Type | Défaut | Description |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Spécifie l'algorithme de suivi à utiliser, par exemple bytetrack.yaml ou botsort.yaml. |
conf | float | 0.1 | Dé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. |
iou | float | 0.7 | Définit le seuil Intersection over Union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées. |
verbose | bool | True | Contrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis. |
device | str | None | Spé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 listés ci-dessous sont pris en charge :
| Argument | Type | Défaut | Description |
|---|---|---|---|
show | bool | False | Si 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_width | int or None | None | Spé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é. |
show_conf | bool | True | Affiche 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_labels | bool | True | Affiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des objets détectés. |
FAQ
Comment compter des objets dans une vidéo avec Ultralytics YOLO26 ?
Pour compter des objets dans une vidéo avec Ultralytics YOLO26, tu peux suivre ces étapes :
- Importe les bibliothèques nécessaires (
cv2,ultralytics). - Définis la zone de comptage (ex. : 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 pour compter 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 des options plus avancées, jette un œil à la solution RegionCounter pour compter des objets dans plusieurs zones simultanément.
Quels sont les avantages d'utiliser Ultralytics YOLO26 pour le comptage d'objets ?
L'utilisation d'Ultralytics YOLO26 pour le comptage d'objets offre plusieurs avantages :
- Optimisation des ressources : Cela facilite une gestion efficace des ressources en fournissant des décomptes précis, aidant à optimiser l'allocation des ressources dans des industries comme la gestion des stocks.
- 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é.
- 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.
- Traitement en temps réel : L'architecture de YOLO26 permet une inférence en temps réel, ce qui la rend adaptée 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.
Comment puis-je compter des classes d'objets spécifiques avec Ultralytics YOLO26 ?
Pour compter des classes d'objets spécifiques avec Ultralytics YOLO26, tu dois spécifier les classes qui t'intéressent lors de 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 (ex. : personne et voiture dans le dataset COCO). Tu peux trouver plus d'informations sur les indices de classe dans la documentation du dataset COCO.
Pourquoi devrais-je utiliser YOLO26 plutôt que d'autres modèles de détection d'objets pour des 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 :
- 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.
- 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.
- Facilité d'intégration : YOLO26 offre une intégration transparente avec diverses plateformes et appareils, y compris les appareils mobiles et edge devices, ce qui est crucial pour les applications IA modernes.
- Flexibilité : Il 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 des cas d'utilisation.
Consulte la documentation d'Ultralytics YOLO26 pour une exploration plus approfondie de ses fonctionnalités et des comparaisons de performances.
Puis-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. Voici des exemples de cas d'utilisation :
- Analyse de foule : Surveille et gère les grands rassemblements, en assurant la sécurité et en optimisant le flux de foule avec le 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 avec des capacités d'estimation de vitesse.
- Analyses en commerce de détail : Analyse les modèles de mouvement 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 les améliorations de l'efficacité.
Pour des applications plus spécialisées, explore les Solutions Ultralytics pour découvrir un ensemble complet d'outils conçus pour les défis du monde réel en vision par ordinateur.

