Link to this sectionПодсчет объектов в регионах с помощью Ultralytics YOLO26#
Решение RegionCounter в Ultralytics YOLO26 отслеживает объекты в кадрах видео и в каждом кадре считает объекты, центр ограничивающего прямоугольника которых находится внутри заданной тобой области. Каждая область отображается на кадре со своим счетчиком в реальном времени, поэтому ты можешь контролировать несколько зон, например, проходы магазина, дорожные полосы или производственные площади, используя всего один вызов Python или команду CLI.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
Link to this sectionЗачем использовать подсчет в регионах?#
- Несколько зон за один проход: Передай словарь именованных многоугольников, и для каждой зоны на кадре будет отображаться независимый счетчик, поэтому один видеопоток охватит все интересующие тебя области.
- Встроенное отслеживание: Решение запускает обнаружение YOLO26 и отслеживание объектов внутри себя, поэтому нет необходимости настраивать отдельный конвейер отслеживания.
- Счетчики, доступные программно: Каждый обработанный кадр возвращает объект результатов со словарем счетчиков регионов, готовый для дашбордов, оповещений или логирования.
Link to this sectionРеальные сценарии применения#
| Ритейл | Рыночные улицы |
|---|---|
![]() | ![]() |
| Подсчет людей в регионах с помощью Ultralytics YOLO | Подсчет толпы в регионах с помощью Ultralytics YOLO |
Link to this sectionКак подсчитывать объекты в регионах с помощью Ultralytics YOLO#
Запусти решение RegionCounter для источника видео из CLI или Python. Регион может быть списком точек (одна зона) или словарем, который сопоставляет имена зон со списками точек. В примере на Python ниже объекты подсчитываются в двух именованных регионах, а обработанные кадры записываются в выходной видеофайл:
# 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 sectionАргументы RegionCounter()#
Ниже представлена таблица с аргументами RegionCounter:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
region | list или dict | None | Точки, определяющие область интереса, представленные либо списком кортежей (x, y), либо словарем, сопоставляющим названия областей со списками точек для нескольких регионов (только для RegionCounter). Если значение None, решения, требующие наличия области, переключаются на предопределенное значение по умолчанию. |
Решение RegionCounter позволяет использовать параметры отслеживания объектов:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Указывает алгоритм отслеживания, который нужно использовать. Встроенные опции: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания. |
iou | float | 0.7 | Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений. |
classes | list | None | Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы. |
verbose | bool | True | Контролирует отображение результатов отслеживания, предоставляя визуальный вывод отслеживаемых объектов. |
device | str | None | Указывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели. |
Кроме того, поддерживаются следующие настройки визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования. |
line_width | int or None | None | Указывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически подстраивается под размер изображения. Обеспечивает визуальную настройку для ясности. |
show_conf | bool | True | Отображает показатель уверенности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели в каждом обнаружении. |
show_labels | bool | True | Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает быстрое понимание того, какие объекты были обнаружены. |
Link to this sectionКак работает подсчет в регионах#
Решение RegionCounter превращает каждый переданный тобой регион в многоугольник, содержащий не менее трех точек. Обычный список точек становится единственной зоной с именем Region#01, в то время как словарь позволяет использовать твои собственные имена зон; каждая зона отрисовывается своим цветом из палитры Ultralytics. Затем каждый кадр обрабатывается в три этапа:
- Отслеживание YOLO26 обнаруживает и следует за каждым объектом в кадре
- Для каждого отслеживаемого объекта решение вычисляет центр ограничивающего прямоугольника и проверяет, внутри каких многоугольников региона он находится
- Счетчик каждого региона отображается в его центре, а значения сбрасываются перед следующим кадром
Поскольку счетчики перезапускаются для каждого кадра, число, показанное на регионе, представляет собой текущую заполненность, то есть сколько объектов находится внутри него прямо сейчас, а не накопленный итог. Для подсчета объектов, пересекающих границу кумулятивно, используй решение ObjectCounter.
Каждый вызов также возвращает объект результатов, чей атрибут plot_im содержит аннотированный кадр, а словарь region_counts сопоставляет имена регионов с их значениями, чтобы ты мог использовать эти данные в логике своего приложения.
Link to this sectionЗаключение#
Решение Ultralytics YOLO26 RegionCounter отслеживает количество объектов в реальном времени в любом количестве именованных зон с помощью всего нескольких строк кода. Чтобы пойти дальше, подсчитывай пересечения границ с помощью подсчета объектов, отслеживай объекты внутри одной зоны с помощью TrackZone или изучи другие решения Ultralytics.
Link to this sectionFAQ#
Link to this sectionКак работает подсчет объектов в регионах в Ultralytics YOLO26?#
Ultralytics YOLO26 подсчитывает объекты в регионах, отслеживая каждый объект в кадре и проверяя, находится ли центр его ограничивающего прямоугольника внутри каждого заданного пользователем многоугольника. Число, отображаемое в регионе, — это текущая заполненность для этого кадра, а не кумулятивный итог. Параметры конфигурации перечислены в разделе Аргументы RegionCounter().
Link to this sectionКак подсчитывать объекты в нескольких регионах одновременно?#
Передай аргумент region как словарь, который сопоставляет имена зон со списками точек, как в основном примере:
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)Каждая именованная зона рисуется своим цветом с независимым счетчиком.
Link to this sectionКак программно получить значения счетчиков регионов?#
Объект, возвращаемый каждым вызовом regioncounter(im0), содержит словарь region_counts, который сопоставляет имена регионов с их значениями, наряду с plot_im (аннотированный кадр) и total_tracks (количество отслеживаемых объектов). Выведи объект результатов, чтобы просмотреть все доступные поля.
Link to this sectionМогу ли я считать только определенные классы объектов в регионе?#
Да. Передай аргумент classes с индексами классов, которые хочешь оставить, например, classes=[0] для подсчета только людей с помощью модели, предобученной на COCO. Полный список аргументов, связанных с отслеживанием, находится в разделе Аргументы RegionCounter().
Link to this sectionВ чем разница между RegionCounter и ObjectCounter?#
RegionCounter показывает, сколько объектов находится внутри каждой полигональной зоны на текущем кадре, в то время как ObjectCounter считает объекты кумулятивно по мере их пересечения линии или границы региона, отслеживая общие суммы входа и выхода. Используй RegionCounter для контроля текущей заполненности одной или нескольких зон, а ObjectCounter — для подсчета входов и выходов; линейные регионы поддерживаются только в ObjectCounter.

