Перейти к содержанию

Продвинутая Визуализация Данных: Тепловые карты с использованием Ultralytics YOLO11 🚀

Введение в тепловые карты

Открыть тепловые карты в Colab

Тепловая карта, сгенерированная с помощью Ultralytics YOLO11, преобразует сложные данные в яркую матрицу с цветовой кодировкой. Этот визуальный инструмент использует спектр цветов для представления различных значений данных, где более теплые оттенки указывают на более высокие интенсивности, а более холодные тона обозначают более низкие значения. Тепловые карты отлично подходят для визуализации сложных закономерностей данных, корреляций и аномалий, предлагая доступный и привлекательный подход к интерпретации данных в различных областях.



Смотреть: Тепловые карты с использованием Ultralytics YOLO11

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

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

Приложения в реальном мире

ТранспортРозничная торговля
Тепловая карта транспорта Ultralytics YOLO11Ultralytics YOLO11 Retail Heatmap
Тепловая карта транспорта Ultralytics YOLO11Ultralytics YOLO11 Retail Heatmap

Тепловые карты с использованием 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)]"
import cv2

from ultralytics import solutions

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

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

# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)]                                      # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]              # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]   # polygon points

# Initialize heatmap object
heatmap = solutions.Heatmap(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file
    colormap=cv2.COLORMAP_PARULA,  # colormap of heatmap
    # region=region_points,  # object counting with heatmaps, you can pass region_points
    # classes=[0, 2],  # generate heatmap for specific classes i.e person and car.
)

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

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

    results = heatmap(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

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

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

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

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

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

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

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

Цветовые схемы тепловых карт

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

Эти цветовые карты обычно используются для визуализации данных с различными цветовыми представлениями.

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

Решение Heatmap в Ultralytics YOLO11 расширяет класс ObjectCounter для создания и визуализации моделей движения в видеопотоках. При инициализации решение создает пустой слой тепловой карты, который обновляется по мере перемещения объектов по кадру.

Для каждого обнаруженного объекта решение:

  1. Отслеживает объект по кадрам, используя возможности отслеживания YOLO11
  2. Обновляет интенсивность тепловой карты в местоположении объекта
  3. Применяет выбранную цветовую карту для визуализации значений интенсивности
  4. Накладывает цветную тепловую карту на исходный кадр

В результате получается динамическая визуализация, которая развивается с течением времени, выявляя закономерности движения транспорта, перемещения толпы или другие пространственные особенности в ваших видеоданных.

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

Как Ultralytics YOLO11 генерирует тепловые карты и каковы их преимущества?

Ultralytics YOLO11 генерирует тепловые карты, преобразуя сложные данные в матрицу с цветовой кодировкой, где разные оттенки представляют интенсивность данных. Тепловые карты облегчают визуализацию закономерностей, корреляций и аномалий в данных. Более теплые оттенки указывают на более высокие значения, а более холодные тона — на более низкие значения. Основные преимущества включают интуитивно понятную визуализацию распределения данных, эффективное обнаружение закономерностей и расширенный пространственный анализ для принятия решений. Для получения более подробной информации и параметров конфигурации обратитесь к разделу «Конфигурация тепловой карты».

Могу ли я использовать Ultralytics YOLO11 для одновременного отслеживания объектов и создания тепловой карты?

Да, Ultralytics YOLO11 поддерживает одновременное отслеживание объектов и генерацию тепловых карт. Это можно реализовать с помощью его Heatmap Решение, интегрированное с моделями отслеживания объектов. Для этого необходимо инициализировать объект тепловой карты и использовать возможности отслеживания YOLO11. Вот простой пример:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")

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

Для получения дополнительных указаний ознакомьтесь со страницей Режим отслеживания.

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

Тепловые карты Ultralytics YOLO11 специально разработаны для интеграции с моделями обнаружения и отслеживания объектов и представляют собой комплексное решение для анализа данных в реальном времени. В отличие от общих инструментов визуализации, таких как OpenCV или Matplotlib, тепловые карты YOLO11 оптимизированы для производительности и автоматизированной обработки, поддерживая такие функции, как постоянное отслеживание, настройка коэффициента затухания и наложение видео в реальном времени. Более подробную информацию об уникальных возможностях YOLO11 можно найти в разделе " Введение вUltralytics YOLO11 ".

Как я могу визуализировать только определенные классы объектов в тепловых картах, используя Ultralytics YOLO11?

Вы можете визуализировать определенные классы объектов, указав желаемые классы в track() метод модели YOLO. Например, если вы хотите визуализировать только автомобили и людей (предполагая, что их индексы классов 0 и 2), вы можете установить classes параметр соответственно.

import cv2

from ultralytics import solutions

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

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

Почему предприятиям следует выбирать Ultralytics YOLO11 для создания тепловых карт при анализе данных?

Ultralytics YOLO11 предлагает бесшовную интеграцию расширенного обнаружения объектов и создания тепловых карт в режиме реального времени, что делает его идеальным выбором для предприятий, стремящихся к более эффективной визуализации данных. Среди ключевых преимуществ - интуитивно понятная визуализация распределения данных, эффективное обнаружение закономерностей и улучшенный пространственный анализ для принятия более эффективных решений. Кроме того, такие передовые функции YOLO11, как постоянное отслеживание, настраиваемые цветовые карты и поддержка различных форматов экспорта, делают его лучше других инструментов, таких как TensorFlow и OpenCV для комплексного анализа данных. Узнайте больше о бизнес-приложениях в Ultralytics Plans.



📅 Создано 1 год назад ✏️ Обновлено 6 месяцев назад
glenn-jocherRizwanMunawarMatthewNoyceUltralyticsAssistantIvorZhu331AyushExelYOLOv5-Magic

Комментарии