Link to this sectionComptage d'objets dans des régions avec Ultralytics YOLO26#
La solution RegionCounter dans Ultralytics YOLO26 suit les objets à travers les images vidéo et, à chaque image, compte les objets dont le centre de la bbox tombe à l'intérieur de chaque région que tu définis. Chaque région est tracée sur l'image avec son propre comptage en direct, ce qui te permet de surveiller plusieurs zones, comme des rayons de magasin, des voies routières ou des zones de production, avec un seul appel Python ou une seule commande CLI.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
Link to this sectionPourquoi utiliser le comptage par région ?#
- Plusieurs zones en un seul passage : Passe un dictionnaire de polygones nommés et chaque zone obtient un comptage indépendant tracé sur l'image, de sorte qu'un seul flux vidéo couvre chaque zone qui t'intéresse.
- Suivi intégré : La solution exécute la détection YOLO26 et le suivi d'objets en interne, il n'y a donc pas de pipeline de suivi séparé à connecter.
- Comptages lisibles par programmation : Chaque image traitée renvoie un objet de résultats contenant un dictionnaire des comptages par région, prêt pour des tableaux de bord, des alertes ou de la journalisation.
Link to this sectionApplications dans le monde réel#
| Commerce de détail | Rues commerçantes |
|---|---|
![]() | ![]() |
| Comptage de personnes par région avec Ultralytics YOLO | Comptage de foule par région avec Ultralytics YOLO |
Link to this sectionComment compter des objets dans des régions avec Ultralytics YOLO#
Exécute la solution RegionCounter sur une source vidéo depuis la CLI ou Python. Une région peut être une liste de points (une seule zone) ou un dictionnaire qui mappe des noms de zone à des listes de points. L'exemple Python ci-dessous compte les objets dans deux régions nommées et écrit les images traitées dans un fichier vidéo de sortie :
# Run a region counting example
yolo solutions region show=True
# Pass a source video
yolo solutions region source="path/to/video.mp4"
# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"Link to this sectionArguments RegionCounter()#
Voici un tableau avec les arguments de RegionCounter :
| Argument | Type | Défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès vers un fichier de modèle YOLO d'Ultralytics. |
region | list ou dict | None | Points définissant la région d'intérêt, soit une liste de tuples (x, y), soit un dictionnaire associant des noms de régions à des listes de points pour plusieurs régions (RegionCounter uniquement). Lorsque la valeur est None, les solutions nécessitant une région utilisent une valeur par défaut prédéfinie. |
La solution RegionCounter permet d'utiliser les paramètres de suivi d'objets :
| Argument | Type | Défaut | Description |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Spécifie l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Dé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. |
iou | float | 0.7 | Définit le seuil d'Intersection sur Union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
verbose | bool | True | Contrôle l'affichage des résultats de suivi, en fournissant une sortie visuelle des objets suivis. |
device | str | None | Spé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 paramètres de visualisation suivants 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. Offre 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. Permet une compréhension immédiate des objets détectés. |
Link to this sectionComment fonctionne le comptage par région#
La solution RegionCounter transforme chaque région que tu transmets en polygone, avec au moins trois points par région. Une liste de points simple devient une zone unique nommée Region#01, tandis qu'un dictionnaire conserve tes propres noms de zone ; chaque zone est dessinée dans sa propre couleur à partir de la palette Ultralytics. Chaque image est ensuite traitée en trois étapes :
- Le suivi YOLO26 détecte et suit chaque objet dans l'image
- Pour chaque objet suivi, la solution calcule le centre de la bbox et vérifie quels polygones de région le contiennent
- Le comptage de chaque région est dessiné à son centre, et les comptages sont réinitialisés avant l'image suivante
Comme les comptages redémarrent à chaque image, le nombre affiché sur une région représente son occupation actuelle, c'est-à-dire combien d'objets se trouvent à l'intérieur en ce moment, et non un total cumulé. Pour compter les objets franchissant une limite de manière cumulative, utilise plutôt la solution ObjectCounter.
Chaque appel renvoie également un objet de résultats dont l'attribut plot_im contient l'image annotée et dont le dictionnaire region_counts mappe les noms de région à leurs comptages, afin que tu puisses intégrer ces chiffres dans ta propre logique d'application.
Link to this sectionConclusion#
La solution Ultralytics YOLO26 RegionCounter surveille les comptages d'objets en direct dans autant de zones nommées que nécessaire avec quelques lignes de code. Pour aller plus loin, compte les franchissements de limites avec le comptage d'objets, suis les objets à l'intérieur d'une zone unique avec TrackZone, ou explore les autres solutions Ultralytics.
Link to this sectionFAQ#
Link to this sectionComment fonctionne le comptage d'objets dans des régions avec Ultralytics YOLO26 ?#
Ultralytics YOLO26 compte les objets dans des régions en suivant chaque objet dans l'image et en testant si le centre de sa bbox se trouve à l'intérieur de chaque polygone défini par l'utilisateur. Le comptage affiché sur une région est son occupation actuelle pour cette image, et non un total cumulé. Les options de configuration sont listées dans la section Arguments RegionCounter().
Link to this sectionComment compter des objets dans plusieurs régions à la fois ?#
Passe l'argument region sous forme de dictionnaire qui mappe les noms de zone à des listes de points, comme dans l'exemple principal :
from ultralytics import solutions
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)Chaque zone nommée est dessinée dans sa propre couleur avec un comptage indépendant.
Link to this sectionComment obtenir les comptages de région par programmation ?#
L'objet renvoyé par chaque appel regioncounter(im0) contient un dictionnaire region_counts qui mappe les noms de région à leurs comptages, ainsi que plot_im (l'image annotée) et total_tracks (le nombre d'objets suivis). Affiche l'objet de résultats pour inspecter tous les champs disponibles.
Link to this sectionPuis-je compter uniquement des classes d'objets spécifiques dans une région ?#
Oui. Passe l'argument classes avec les indices des classes à conserver, par exemple classes=[0] pour ne compter que les personnes avec un modèle pré-entraîné sur COCO. La liste complète des arguments liés au suivi se trouve dans la section Arguments RegionCounter().
Link to this sectionQuelle est la différence entre RegionCounter et ObjectCounter ?#
RegionCounter montre combien d'objets se trouvent à l'intérieur de chaque zone polygonale sur l'image actuelle, tandis qu'ObjectCounter compte les objets de manière cumulative lorsqu'ils franchissent une ligne ou une limite de région, en suivant les totaux d'entrée et de sortie. Utilise RegionCounter pour l'occupation en direct d'une ou plusieurs zones et ObjectCounter pour le comptage des entrées et sorties ; les régions en forme de ligne ne sont prises en charge que par ObjectCounter.

