Link to this sectionТепловые карты отслеживания объектов с Ultralytics YOLO26#
Решение 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 |
Link to this sectionКак создавать тепловые карты с помощью Ultralytics YOLO#
Запусти решение Heatmap для источника видео из CLI или Python. Пример на Python записывает обработанные кадры в выходной видеофайл:
# 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:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Цветовая карта для использования в тепловой карте. |
show_in | bool | True | Флаг для управления отображением входящих объектов в потоке видео. |
show_out | bool | True | Флаг для управления отображением выходящих объектов в потоке видео. |
region | list или dict | None | Точки, определяющие область интереса, представленные либо списком кортежей (x, y), либо словарем, сопоставляющим названия областей со списками точек для нескольких регионов (только для RegionCounter). Если значение None, решения, требующие наличия области, переключаются на предопределенное значение по умолчанию. |
Ты также можешь применять различные аргументы track в решении Heatmap.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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Цветовые карты (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. На первом обработанном кадре оно создает пустой слой интенсивности, соответствующий размеру кадра. Затем каждый кадр обрабатывается в два этапа:
- Отслеживание YOLO26 обнаруживает и следует за каждым объектом в кадре
- Для каждого отслеживаемого объекта интенсивность тепловой карты увеличивается в пределах круговой области, центрированной в его ограничительной рамке (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.

