Meet YOLO26: next-gen vision AI.

Link to this sectionТепловые карты отслеживания объектов с Ultralytics YOLO26#

Open Heatmaps In Colab

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



Watch: Heatmaps using Ultralytics YOLO26

Link to this sectionЗачем использовать тепловые карты для видеоаналитики?#

  • Мгновенное обнаружение паттернов активности: Интенсивность накапливается там, где отслеживаемые объекты проводят время, поэтому оживленные полосы, популярные полки или места скопления людей выделяются без необходимости ручного просмотра кадр за кадром.
  • Встроенное отслеживание: Решение выполняет обнаружение и отслеживание YOLO26 внутренне, поэтому не нужно настраивать отдельный конвейер отслеживания.
  • Подсчет за один проход: Передай region для подсчета объектов, входящих и выходящих из зоны, во время создания тепловой карты, объединяя две аналитические задачи в одном запуске.

Link to this sectionРеальные сценарии применения#

ТранспортРитейл
Наложение тепловой карты Ultralytics YOLO, показывающее плотность транспортного потокаНаложение тепловой карты Ultralytics YOLO, показывающее перемещение покупателей в розничной торговле
Тепловая карта транспорта Ultralytics YOLOТепловая карта розничной торговли Ultralytics YOLO

Link to this sectionКак создавать тепловые карты с помощью Ultralytics YOLO#

Запусти решение Heatmap для источника видео из CLI или Python. Пример на Python записывает обработанные кадры в выходной видеофайл:

Тепловые карты с использованием Ultralytics YOLO
# Run a heatmap example
yolo solutions heatmap show=True

# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"

# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO

# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

Link to this sectionАргументы Heatmap()#

Вот таблица с аргументами Heatmap:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
colormapintcv2.COLORMAP_DEEPGREENЦветовая карта для использования в тепловой карте.
show_inboolTrueФлаг для управления отображением входящих объектов в потоке видео.
show_outboolTrueФлаг для управления отображением выходящих объектов в потоке видео.
regionlist или dictNoneТочки, определяющие область интереса, представленные либо списком кортежей (x, y), либо словарем, сопоставляющим названия областей со списками точек для нескольких регионов (только для RegionCounter). Если значение None, решения, требующие наличия области, переключаются на предопределенное значение по умолчанию.

Ты также можешь применять различные аргументы track в решении Heatmap.

АргументТипПо умолчаниюОписание
trackerstr'botsort.yaml'Указывает алгоритм отслеживания, который нужно использовать. Встроенные опции: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.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Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает быстрое понимание того, какие объекты были обнаружены.

Link to this sectionЦветовые карты (Colormaps) тепловых карт#

Аргумент colormap принимает любую цветовую карту OpenCV. Передай константу из модуля cv2, например colormap=cv2.COLORMAP_INFERNO:

Название цветовой картыОписание
cv2.COLORMAP_AUTUMNОсенняя цветовая карта
cv2.COLORMAP_BONEКостяная цветовая карта
cv2.COLORMAP_JETЦветовая карта Jet
cv2.COLORMAP_WINTERЗимняя цветовая карта
cv2.COLORMAP_RAINBOWРадужная цветовая карта
cv2.COLORMAP_OCEANОкеаническая цветовая карта
cv2.COLORMAP_SUMMERЛетняя цветовая карта
cv2.COLORMAP_SPRINGВесенняя цветовая карта
cv2.COLORMAP_COOLХолодная цветовая карта
cv2.COLORMAP_HSVЦветовая карта HSV (оттенок, насыщенность, значение)
cv2.COLORMAP_PINKРозовая цветовая карта
cv2.COLORMAP_HOTГорячая цветовая карта
cv2.COLORMAP_PARULAЦветовая карта Parula
cv2.COLORMAP_MAGMAЦветовая карта Magma
cv2.COLORMAP_INFERNOЦветовая карта Inferno
cv2.COLORMAP_PLASMAЦветовая карта Plasma
cv2.COLORMAP_VIRIDISЦветовая карта Viridis
cv2.COLORMAP_CIVIDISЦветовая карта Cividis
cv2.COLORMAP_TWILIGHTЦветовая карта сумерек
cv2.COLORMAP_TWILIGHT_SHIFTEDСмещенная цветовая карта сумерек
cv2.COLORMAP_TURBOЦветовая карта Turbo
cv2.COLORMAP_DEEPGREENТемно-зеленая цветовая карта

Link to this sectionКак работают тепловые карты#

Решение Heatmap расширяет класс ObjectCounter. На первом обработанном кадре оно создает пустой слой интенсивности, соответствующий размеру кадра. Затем каждый кадр обрабатывается в два этапа:

  1. Отслеживание YOLO26 обнаруживает и следует за каждым объектом в кадре
  2. Для каждого отслеживаемого объекта интенсивность тепловой карты увеличивается в пределах круговой области, центрированной в его ограничительной рамке (bbox)

Раз в кадр накопленный слой интенсивности нормализуется, раскрашивается с помощью выбранной цветовой карты и накладывается на исходный кадр. Наложение появляется, как только отслеживается хотя бы один объект; кадры без отслеживаемых объектов отображаются без наложения тепловой карты.

Результатом является динамическая визуализация, которая накапливается с течением времени, выявляя модели трафика, движения толпы или другие пространственные поведения в данных твоего видео. Когда установлен region, решение также считает объекты, входящие и выходящие из этой области, пока строится тепловая карта.

Link to this sectionЗаключение#

Решение Ultralytics YOLO26 Heatmap превращает результаты отслеживания объектов в интуитивно понятное наложение активности всего за несколько строк кода. Чтобы двигаться дальше, объедини его с подсчетом объектов, изучи другие решения Ultralytics или прочитай о базовом режиме отслеживания.

Link to this sectionFAQ#

Link to this sectionКак Ultralytics YOLO26 создает тепловые карты из видео?#

Ultralytics YOLO26 создает тепловые карты, отслеживая объекты в кадрах видео и накапливая значение интенсивности в месте нахождения каждого отслеживаемого объекта, а затем раскрашивает результат и накладывает его на исходный кадр. Области, где объекты появляются часто или задерживаются, накапливают более высокую интенсивность и отображаются более теплыми цветами. Чтобы узнать о параметрах конфигурации, обратись к разделу Heatmap() Arguments.

Link to this sectionКак сохранить результат тепловой карты в видеофайл?#

Используй cv2.VideoWriter из OpenCV и записывай results.plot_im для каждого обработанного кадра, как показано в основном примере. Атрибут plot_im содержит кадр с уже примененным наложением тепловой карты.

Link to this sectionМожно ли объединить тепловые карты с подсчетом объектов?#

Да. Передай аргумент region в Heatmap() с точками линии, прямоугольника или многоугольника, и решение будет считать объекты, входящие и выходящие из этой области, во время построения тепловой карты. Возвращаемые результаты включают in_count, out_count и количество по каждому классу. См. руководство по подсчету объектов для получения подробной информации о настройке области.

Link to this sectionКак я могу визуализировать только конкретные классы объектов на тепловых картах с помощью Ultralytics YOLO26?#

Передай аргумент classes в Heatmap() с индексами классов, которые хочешь оставить. Например, classes=[0, 2] строит тепловую карту только на основе людей и автомобилей (индексы классов COCO 0 и 2):

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

Link to this sectionЧем тепловые карты Ultralytics YOLO26 отличаются от других инструментов визуализации данных, таких как OpenCV или Matplotlib?#

Тепловые карты Ultralytics YOLO26 объединяют обнаружение объектов, отслеживание, накопление интенсивности и отрисовку наложения в один вызов, в то время как общие инструменты, такие как OpenCV или Matplotlib, требуют самостоятельной сборки такого конвейера. Решение обрабатывает видеопотоки в реальном времени и поддерживает постоянное отслеживание и настраиваемые цветовые карты «из коробки». Подробности о базовой модели см. на странице модели YOLO26.

Комментарии