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 les vidéos et les flux de caméras. 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.
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 la gestion efficace des ressources en fournissant des décomptes précis, ce qui permet d’optimiser 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 avec précision les entités, ce qui facilite 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, l'optimisation des processus dans le commerce de détail, la gestion du trafic et divers autres domaines.
Applications concrètes
| Logistique | Aquaculture |
|---|---|
![]() | ![]() |
| Comptage de paquets sur tapis roulant à l'aide d'Ultralytics YOLO26 | Comptage de poissons en mer à l'aide d'Ultralytics YOLO26 |
Comptage d'objets à l'aide d'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 L'argument accepte soit deux points (pour une ligne), soit un polygone avec trois points ou plus. Définissez les coordonnées dans l'ordre dans lequel elles doivent être connectées afin que le compteur sache exactement où se produisent les entrées et les sorties.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# region_points = [(20, 400), (1080, 400)] # line counting
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] # rectangular region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)] # polygon region
# Video writer
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("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize object counter object
counter = solutions.ObjectCounter(
show=True, # display the output
region=region_points, # pass region points
model="yolo26n.pt", # model="yolo26n-obb.pt" for object counting with OBB model.
# classes=[0, 2], # count specific classes, e.g., person and car with the COCO pretrained model.
# tracker="botsort.yaml", # choose trackers, e.g., "bytetrack.yaml"
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
ObjectCounter Arguments
Voici un tableau avec les ObjectCounter arguments :
| Argument | Type | Par défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès à un fichier de modèle Ultralytics YOLO. |
show_in | bool | True | Indicateur pour contrôler l'affichage des comptes entrants sur le flux vidéo. |
show_out | bool | True | Indicateur pour contrôler l'affichage des comptes sortants sur le flux vidéo. |
region | list | '[(20, 400), (1260, 400)]' | Liste des points définissant la région de comptage. |
L'argument ObjectCounter la solution permet l'utilisation de plusieurs track arguments :
| Argument | Type | Par 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 plus d'objets, mais peuvent inclure de 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 périphériques de calcul pour l'exécution du modèle. |
De plus, les arguments de visualisation énumérés ci-dessous sont pris en charge :
| Argument | Type | Par 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 pendant le développement ou les tests. |
line_width | int or None | None | Spécifie la largeur de ligne des boîtes englobantes. Si None, la largeur 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 à l'aide d'Ultralytics YOLO26 ?
Pour compter des objets dans une vidéo à l'aide d'Ultralytics YOLO26, vous pouvez suivre ces étapes :
- Importer les bibliothèques nécessaires (
cv2,ultralytics). - Définir la région de comptage (par exemple, un polygone, une ligne, etc.).
- Configurer la capture vidéo et initialiser le compteur d'objets.
- Traiter chaque trame pour suivre les objets (track) et les compter dans la région définie.
Voici un exemple simple pour compter 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, consultez la solution RegionCounter pour compter les objets dans plusieurs régions 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 : Elle facilite la gestion efficace des ressources en fournissant des décomptes précis, ce qui permet d’optimiser l’allocation des ressources dans des secteurs comme la gestion des stocks.
- Sécurité renforcée : Elle améliore 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é.
- Prise de décision éclairée : elle offre des informations précieuses pour la prise de décision, optimisant ainsi les processus dans des domaines tels que la vente au détail, la gestion du trafic, etc.
- 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 temps.
Pour des exemples d'implémentation et des applications pratiques, explorez la solution TrackZone pour le suivi d'objets dans des zones spécifiques.
Comment puis-je compter des classes d'objets spécifiques à l'aide d'Ultralytics YOLO26 ?
Pour compter des classes d'objets spécifiques à l'aide d'Ultralytics YOLO26, vous devez spécifier les classes qui vous intéressent pendant la phase de track. Voici un exemple 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 la classe 0 et 2 (par exemple, personne et voiture dans l'ensemble de données COCO). Vous pouvez trouver plus d'informations sur les indices de classe dans le Documentation de l'ensemble de données COCO.
Pourquoi 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 tels que 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 ainsi 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 les appareils périphériques, ce qui est crucial pour les applications d'IA modernes.
- Flexibilité : Prend en charge diverses tâches telles que 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.
Consultez la documentation de YOLO26 d'Ultralytics pour une exploration 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 telles que l'analyse de foule et la gestion du trafic grâce à ses capacités de détection en temps réel, sa scalabilité et sa flexibilité d'intégration. Ses fonctionnalités avancées permettent un track, un comptage et une classification d'objets de haute précision dans des environnements dynamiques. Les cas d'utilisation incluent :
- Analyse de foule : Surveillez et gérez les grands rassemblements, en assurant la sécurité et en optimisant la circulation des foules grâce au comptage basé sur les régions.
- Gestion du trafic : Suivez et comptez les véhicules, analysez les modèles de trafic et gérez la congestion en temps réel grâce aux capacités d’estimation de la vitesse.
- Analyse de vente au détail : Analysez les schémas de déplacement des clients et les interactions avec les produits afin d’optimiser la disposition des magasins et d’améliorer l’expérience client.
- Automatisation industrielle : Compter les produits sur les bandes transporteuses et surveiller les lignes de production pour le contrôle qualité et l'amélioration de l'efficacité.
Pour des applications plus spécialisées, explorez les Solutions Ultralytics pour un ensemble complet d'outils conçus pour les défis de vision par ordinateur du monde réel.

