Meet YOLO26: next-gen vision AI.

Link to this sectionАналитика с использованием Ultralytics YOLO26#

Link to this sectionВведение#

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



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Link to this sectionПримеры визуализации#

Линейный графикСтолбчатая диаграммаКруговая диаграмма
Линейный график аналитики YOLO для отслеживания объектовСтолбчатая диаграмма аналитики YOLO для подсчета обнаруженийКруговая диаграмма аналитики YOLO для распределения по классам

Link to this sectionПочему графики важны#

  • Линейные графики идеально подходят для отслеживания изменений на коротких и длинных промежутках времени, а также для сравнения изменений в нескольких группах за один и тот же период.
  • Столбчатые диаграммы, напротив, подходят для сравнения количественных показателей по разным категориям и демонстрации отношений между категорией и ее числовым значением.
  • Наконец, круговые диаграммы эффективны для иллюстрации пропорций между категориями и показа частей целого.
Аналитика с использованием Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Link to this sectionАргументы Analytics#

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

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
analytics_typestr'line'Тип графика, например: line, bar, area или pie.

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

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

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

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

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

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

Link to this sectionЧасто задаваемые вопросы (FAQ)#

Link to this sectionКак создать линейный график с помощью Ultralytics YOLO26 Analytics?#

Чтобы создать линейный график с помощью Ultralytics YOLO26 Analytics, выполни следующие действия:

  1. Загрузи модель YOLO26 и открой свой видеофайл.
  2. Инициализируй класс Analytics с типом, установленным в "line".
  3. Итерируй по кадрам видео, обновляя линейный график соответствующими данными, такими как количество объектов на кадр.
  4. Сохрани выходное видео, отображающее линейный график.

Пример:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Для получения дополнительной информации о настройке класса Analytics посети раздел Аналитика с использованием Ultralytics YOLO26.

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

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

  1. Визуализация данных в реальном времени: Легко интегрируй результаты обнаружения объектов в столбчатые диаграммы для динамических обновлений.
  2. Простота использования: Простой API и функции делают реализацию и визуализацию данных максимально понятными.
  3. Кастомизация: Настраивай заголовки, подписи, цвета и многое другое в соответствии со своими конкретными требованиями.
  4. Эффективность: Эффективно обрабатывай большие объемы данных и обновляй графики в реальном времени во время обработки видео.

Используй следующий пример для генерации столбчатой диаграммы:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Чтобы узнать больше, посети раздел Столбчатая диаграмма в руководстве.

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

Ultralytics YOLO26 — отличный выбор для создания круговых диаграмм, потому что:

  1. Интеграция с обнаружением объектов: Непосредственно интегрируй результаты обнаружения объектов в круговые диаграммы для мгновенного анализа.
  2. Дружественный API: Простота настройки и использования при минимуме кода.
  3. Кастомизируемость: Различные варианты настройки цветов, подписей и многого другого.
  4. Обновления в реальном времени: Обработка и визуализация данных в реальном времени, что идеально подходит для проектов видеоаналитики.

Вот краткий пример:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Для получения дополнительной информации обратись к разделу Круговая диаграмма в руководстве.

Link to this sectionМожно ли использовать Ultralytics YOLO26 для отслеживания объектов и динамического обновления визуализаций?#

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

Пример отслеживания и обновления линейного графика:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Чтобы узнать о полном функционале, ознакомься с разделом Отслеживание.

Link to this sectionЧем Ultralytics YOLO26 отличается от других решений для обнаружения объектов, таких как OpenCV и TensorFlow?#

Ultralytics YOLO26 выделяется среди других решений по нескольким причинам:

  1. Передовая точность: YOLO26 обеспечивает превосходную точность в задачах обнаружения объектов, сегментации экземпляров, семантической сегментации и классификации.
  2. Простота использования: Дружественный API позволяет быстро реализовать и интегрировать решение без необходимости писать сложный код.
  3. Производительность в реальном времени: Оптимизирован для высокоскоростного вывода, что делает его пригодным для приложений реального времени.
  4. Разнообразные задачи: Поддерживает множество задач, включая многообъектное отслеживание, обучение кастомных моделей и экспорт в различные форматы, такие как ONNX, TensorRT и CoreML.
  5. Исчерпывающая документация: Обширная документация и ресурсы блога, которые помогут тебе на каждом этапе.

Для более подробных сравнений и сценариев использования изучи наш Блог Ultralytics.

Комментарии