Подсчет объектов в различных областях с помощью Ultralytics YOLO 🚀

Что такое подсчет объектов в областях?

Подсчет объектов в областях с использованием Ultralytics YOLO26 предполагает точное определение количества объектов в заданных зонах с помощью передового компьютерного зрения. Этот подход полезен для оптимизации процессов, повышения безопасности и улучшения эффективности в различных приложениях.



Watch: Object Counting in Different Regions using Ultralytics YOLO26 | Ultralytics Solutions 🚀

Преимущества подсчета объектов в областях

  • Точность и аккуратность: Подсчет объектов в областях с использованием передового компьютерного зрения обеспечивает высокую точность и аккуратность, минимизируя ошибки, часто связанные с ручным подсчетом.
  • Повышение эффективности: Автоматизированный подсчет объектов повышает эксплуатационную эффективность, предоставляя результаты в режиме реального времени и оптимизируя процессы в различных приложениях.
  • Универсальность и применение: Универсальность подсчета объектов в областях позволяет применять его в самых разных сферах — от производства и наблюдения до мониторинга дорожного движения, что способствует его широкому распространению и эффективности.

Примеры реального применения

РитейлРыночные улицы
Подсчет людей в разных областях с использованием Ultralytics YOLO26Подсчет толпы в разных областях с использованием Ultralytics YOLO26
Подсчет людей в разных областях с использованием Ultralytics YOLO26Подсчет толпы в разных областях с использованием Ultralytics YOLO26

Примеры использования

Подсчет в областях с помощью Ultralytics YOLO
 import cv2

 from ultralytics import solutions

 cap = cv2.VideoCapture("path/to/video.mp4")
 assert cap.isOpened(), "Error reading video file"

 # Pass region as list
 # region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

 # Pass region as dictionary
 region_points = {
     "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
     "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
 }

 # 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("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

 # Initialize region counter object
 regioncounter = solutions.RegionCounter(
     show=True,  # display the frame
     region=region_points,  # pass region points
     model="yolo26n.pt",  # model for counting in regions, e.g., yolo26s.pt
 )

 # Process video
 while cap.isOpened():
     success, im0 = cap.read()

     if not success:
         print("Video frame is empty or processing is complete.")
         break

     results = regioncounter(im0)

     # print(results)  # access the output

     video_writer.write(results.plot_im)

 cap.release()
 video_writer.release()
 cv2.destroyAllWindows()  # destroy all opened windows
Пример кода Ultralytics

Модуль подсчета в областях Ultralytics доступен в нашем разделе примеров. Ты можешь изучить этот пример для настройки кода и изменить его под свои конкретные задачи.

Аргументы RegionCounter

Ниже приведена таблица с аргументами RegionCounter:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Список точек, определяющих область подсчета.

Решение RegionCounter позволяет использовать параметры отслеживания объектов:

АргументТипПо умолчаниюОписание
trackerstr'botsort.yaml'Указывает алгоритм отслеживания, который необходимо использовать, например, bytetrack.yaml или botsort.yaml.
conffloat0.1Устанавливает порог достоверности для обнаружения; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
ioufloat0.7Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verboseboolTrueУправляет отображением результатов отслеживания, предоставляя визуальный вывод отслеживаемых объектов.
devicestrNoneУказывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

Кроме того, поддерживаются следующие настройки визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, отображает аннотированные изображения или видео в окне. Полезно для мгновенной визуальной проверки в процессе разработки или тестирования.
line_widthint or NoneNoneЗадает толщину линий ограничивающих рамок. Если None, толщина подбирается автоматически в зависимости от размера изображения. Обеспечивает визуальную настройку для ясности.
show_confboolTrueОтображает показатель уверенности для каждого обнаруженного объекта рядом с меткой. Дает представление об уверенности модели в каждом обнаружении.
show_labelsboolTrueОтображает метки для каждого обнаруженного объекта на визуальном выводе. Дает быстрое понимание того, какие объекты были найдены.

Часто задаваемые вопросы (FAQ)

Что такое подсчет объектов в заданных областях с помощью Ultralytics YOLO26?

Подсчет объектов в заданных областях с использованием Ultralytics YOLO26 предполагает обнаружение и учет количества объектов в определенных зонах с применением передового компьютерного зрения. Этот точный метод повышает эффективность и точность в различных сферах, таких как производство, наблюдение и мониторинг дорожного движения.

Как запустить скрипт для подсчета объектов по областям с помощью Ultralytics YOLO26?

Следуй этим шагам, чтобы запустить подсчет объектов в Ultralytics YOLO26:

  1. Клонируй репозиторий Ultralytics и перейди в каталог:

    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics/examples/YOLOv8-Region-Counter
  2. Выполни скрипт подсчета объектов в областях:

    python yolov8_region_counter.py --source "path/to/video.mp4" --save-img

Больше опций можно найти в разделе Примеры использования.

Почему стоит использовать Ultralytics YOLO26 для подсчета объектов в областях?

Использование Ultralytics YOLO26 для подсчета объектов в областях дает несколько преимуществ:

  1. Обработка в реальном времени: Архитектура YOLO26 обеспечивает быстрое выполнение инференса, что идеально подходит для приложений, требующих немедленного получения результатов подсчета.
  2. Гибкое определение областей: Решение позволяет определять несколько пользовательских областей в виде многоугольников, прямоугольников или линий в соответствии с твоими конкретными потребностями мониторинга.
  3. Поддержка нескольких классов: Считай различные типы объектов одновременно в одних и тех же областях, получая всестороннюю аналитику.
  4. Возможности интеграции: Легко интегрируйся с существующими системами через Python API Ultralytics или интерфейс командной строки.

Узнай больше о преимуществах в разделе Преимущества.

Каковы реальные примеры применения подсчета объектов в областях?

Подсчет объектов с Ultralytics YOLO26 может применяться во множестве реальных сценариев:

  • Розничная аналитика: Считай клиентов в разных секциях магазина, чтобы оптимизировать планировку и распределение персонала.
  • Управление дорожным движением: Контролируй транспортный поток на определенных участках дорог или перекрестках.
  • Производство: Отслеживай перемещение продуктов через различные производственные зоны.
  • Складские операции: Считай инвентарные товары в специально отведенных зонах хранения.
  • Общественная безопасность: Контролируй плотность толпы в определенных зонах во время проведения мероприятий.

Изучи другие примеры в разделе Реальные примеры применения и решение TrackZone для получения дополнительных возможностей мониторинга на основе зон.

Комментарии