Подсчет объектов с помощью Ultralytics YOLO26
Что такое подсчет объектов?
Подсчет объектов с помощью Ultralytics YOLO26 предполагает точную идентификацию и подсчет конкретных объектов на видео и в потоках с камер. YOLO26 отлично подходит для приложений реального времени, обеспечивая эффективный и точный подсчет объектов для различных сценариев, таких как анализ толпы и видеонаблюдение, благодаря своим передовым алгоритмам и возможностям глубокого обучения.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
Преимущества подсчета объектов
- Оптимизация ресурсов: Подсчет объектов способствует эффективному управлению ресурсами, предоставляя точные данные и оптимизируя распределение ресурсов в таких областях, как управление запасами.
- Повышенная безопасность: Подсчет объектов повышает уровень безопасности и видеонаблюдения за счет точного отслеживания и учета сущностей, помогая в проактивном обнаружении угроз.
- Обоснованное принятие решений: Подсчет объектов дает ценную информацию для принятия решений, оптимизируя процессы в розничной торговле, управлении трафиком и многих других областях.
Примеры реального применения
| Логистика | Аквакультура |
|---|---|
![]() | ![]() |
| Подсчет пакетов на конвейерной ленте с помощью Ultralytics YOLO26 | Подсчет рыбы в море с помощью 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)]"Аргумент region принимает либо две точки (для линии), либо многоугольник с тремя и более точками. Определи координаты в том порядке, в котором они должны соединяться, чтобы счетчик точно знал, где происходят входы и выходы.
Аргументы ObjectCounter
Вот таблица с аргументами ObjectCounter:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
show_in | bool | True | Флаг для управления отображением входящих объектов на видеопотоке. |
show_out | bool | True | Флаг для управления отображением исходящих объектов на видеопотоке. |
region | list | '[(20, 400), (1260, 400)]' | Список точек, определяющих область подсчета. |
Решение ObjectCounter позволяет использовать несколько аргументов track:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Указывает алгоритм отслеживания, который необходимо использовать, например, bytetrack.yaml или botsort.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 | Отображает метки для каждого обнаруженного объекта на визуальном выводе. Дает быстрое понимание того, какие объекты были найдены. |
Часто задаваемые вопросы (FAQ)
Как мне подсчитать объекты на видео с помощью Ultralytics YOLO26?
Чтобы подсчитать объекты на видео с помощью Ultralytics YOLO26, выполни следующие шаги:
- Импортируй необходимые библиотеки (
cv2,ultralytics). - Определи область подсчета (например, многоугольник, линию и т. д.).
- Настрой захват видео и инициализируй счетчик объектов.
- Обрабатывай каждый кадр для отслеживания объектов и их подсчета в определенной области.
Вот простой пример для подсчета в области:
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")Для более продвинутых конфигураций и опций ознакомься с решением RegionCounter для подсчета объектов в нескольких областях одновременно.
Каковы преимущества использования Ultralytics YOLO26 для подсчета объектов?
Использование Ultralytics YOLO26 для подсчета объектов дает несколько преимуществ:
- Оптимизация ресурсов: Способствует эффективному управлению ресурсами за счет точного подсчета, помогая оптимизировать распределение ресурсов в таких отраслях, как управление запасами.
- Повышенная безопасность: Повышает уровень безопасности и видеонаблюдения за счет точного отслеживания и учета сущностей, помогая в проактивном обнаружении угроз и работе систем безопасности.
- Обоснованное принятие решений: Дает ценную информацию для принятия решений, оптимизируя процессы в таких областях, как розничная торговля, управление трафиком и другие.
- Обработка в реальном времени: Архитектура YOLO26 обеспечивает вывод в реальном времени, что делает ее подходящей для потокового видео в реальном времени и критически важных по времени приложений.
Для примеров реализации и практического применения ознакомься с решением TrackZone для отслеживания объектов в определенных зонах.
Как я могу подсчитать конкретные классы объектов с помощью Ultralytics YOLO26?
Чтобы подсчитать конкретные классы объектов с помощью Ultralytics YOLO26, тебе нужно указать интересующие тебя классы на этапе отслеживания. Ниже приведен пример на 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])В этом примере classes_to_count=[0, 2] означает, что подсчитываются объекты классов 0 и 2 (например, человек и автомобиль в наборе данных COCO). Ты можешь найти больше информации об индексах классов в документации набора данных COCO.
Почему мне стоит использовать YOLO26 вместо других моделей обнаружения объектов для приложений реального времени?
Ultralytics YOLO26 предоставляет несколько преимуществ перед другими моделями обнаружения объектов, такими как Faster R-CNN, SSD и предыдущие версии YOLO:
- Скорость и эффективность: YOLO26 предлагает возможности обработки в реальном времени, что делает ее идеальной для приложений, требующих высокоскоростного вывода, таких как видеонаблюдение и автономное вождение.
- Точность: Обеспечивает современную точность для задач обнаружения и отслеживания объектов, сокращая количество ложных срабатываний и улучшая общую надежность системы.
- Легкость интеграции: YOLO26 предлагает бесшовную интеграцию с различными платформами и устройствами, включая мобильные и периферийные устройства, что критически важно для современных ИИ-приложений.
- Гибкость: Поддерживает различные задачи, такие как обнаружение объектов, сегментация и отслеживание с конфигурируемыми моделями для соответствия конкретным требованиям вариантов использования.
Ознакомься с документацией Ultralytics YOLO26 для более глубокого изучения ее функций и сравнения производительности.
Могу ли я использовать YOLO26 для продвинутых приложений, таких как анализ толпы и управление трафиком?
Да, Ultralytics YOLO26 идеально подходит для продвинутых приложений, таких как анализ толпы и управление трафиком, благодаря своим возможностям обнаружения в реальном времени, масштабируемости и гибкости интеграции. Ее передовые функции позволяют осуществлять высокоточное отслеживание, подсчет и классификацию объектов в динамических средах. Примеры вариантов использования включают:
- Анализ толпы: Мониторинг и управление большими скоплениями людей, обеспечение безопасности и оптимизация потоков с помощью подсчета на основе регионов.
- Управление трафиком: Отслеживание и подсчет транспортных средств, анализ транспортных моделей и управление заторами в режиме реального времени с помощью функций оценки скорости.
- Розничная аналитика: Анализ паттернов движения клиентов и взаимодействия с продуктами для оптимизации планировки магазинов и улучшения клиентского опыта.
- Промышленная автоматизация: Подсчет продуктов на конвейерных лентах и мониторинг производственных линий для контроля качества и улучшения эффективности.
Для более специализированных задач изучи решения Ultralytics — комплексный набор инструментов, разработанных для решения реальных проблем компьютерного зрения.

