YOLO Vision 2026:

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

Open Heatmaps In Colab

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



Watch: Heatmaps using Ultralytics YOLO26

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

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

Реальные сценарии применения#

ТранспортРитейл
Ultralytics YOLO heatmap overlay showing vehicle traffic densityUltralytics YOLO heatmap overlay showing retail customer movement
Тепловая карта транспорта Ultralytics YOLOТепловая карта розничной торговли Ultralytics YOLO

Как создавать тепловые карты с помощью 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)]"

Аргументы Heatmap()#

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

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

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

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

Кроме того, ниже перечислены поддерживаемые аргументы визуализации:

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

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

Аргумент colormap принимает любую OpenCV colormap. Передай константу из модуля 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Темно-зеленая цветовая карта

Как работают тепловые карты#

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

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

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

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

Заключение#

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

FAQ#

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

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

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

  • Передай аргумент 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()
  • Тепловые карты Ultralytics YOLO26 объединяют object detection, трекинг, накопление интенсивности и рендеринг наложения в один вызов, в то время как общие инструменты, такие как OpenCV или Matplotlib, требуют самостоятельного создания этого конвейера. Решение обрабатывает видеопотоки в реальном времени и из коробки поддерживает постоянное трекингование и настраиваемые палитры. Подробную информацию о лежащей в основе модели см. на YOLO26 model page.

Комментарии