Настраивайтесь на YOLO Vision 2025!
25 сентября 2025 г.
10:00 — 18:00 BST
Гибридное мероприятие
Yolo Vision 2024

Улучшение приложений компьютерного зрения с помощью визуализаций

Nuvola Ladi

4 мин чтения

12 мая 2025 г.

Узнайте, как превратить данные из приложений компьютерного зрения в простые для понимания графики с помощью Python-пакета Ultralytics для получения более глубоких знаний.

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

Это особенно актуально, когда речь идет о приложениях компьютерного зрения. Компьютерное зрение — это раздел искусственного интеллекта (ИИ), который помогает машинам интерпретировать и понимать визуальную информацию из окружающего мира, такую как изображения и видео. В то время как модели Vision AI, такие как Ultralytics YOLO11, могут помочь проанализировать такие визуальные данные для получения информации, визуализация данных помогает представить эту информацию в формате, который легко понять.

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

Именно потребность в сторителлинге обуславливает рост популярности визуализации данных, и ожидается, что к 2030 году объем рынка достигнет 18,36 миллиарда долларов. Ранее мы рассматривали, как компьютерное зрение может предоставить ценную аналитику для бизнеса. Сегодня мы пойдем еще дальше и рассмотрим, как создавать четкие, информативные аналитические графики для приложений компьютерного зрения с помощью пакета Ultralytics. Итак, начнем!

Рис. 1. Пример визуализации данных на основе результатов YOLO11.

Обзор визуализации данных в приложениях компьютерного зрения

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

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

Вот несколько основных причин, почему визуализация данных полезна:

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

Различные типы визуализации данных

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

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

Рис. 2. Примеры аналитических графиков.

Создание аналитических графиков для получения аналитической информации о компьютерном зрении

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

Python-пакет Ultralytics упрощает обучение моделей, обнаружение объектов, выполнение прогнозов и визуализацию результатов. Чтобы начать работу с ним, вам понадобится среда кодирования. Вот три простых варианта:

  • Интерфейс командной строки (CLI): Это базовый текстовый инструмент, в котором вы можете вводить команды для запуска кода. У него нет визуального интерфейса, и вы взаимодействуете с ним, вводя инструкции в терминал или командную строку.
  • Jupyter Notebooks: Это интерактивная среда кодирования, в которой вы можете писать, запускать и тестировать небольшие фрагменты кода (так называемые "ячейки") по одному за раз. Она показывает результаты непосредственно под каждой ячейкой, что позволяет легко понять, что происходит шаг за шагом. Это особенно полезно для обучения и экспериментов.
  • Google Colab: Этот вариант представляет собой бесплатную облачную версию Jupyter Notebooks, которая работает в вашем веб-браузере. Он не требует какой-либо настройки на вашем компьютере и предоставляет вам доступ к бесплатным графическим процессорам для более быстрой обработки.

Эти инструменты отлично подходят для быстрого начала работы, но пользователи также могут интегрировать Ultralytics в интегрированные среды разработки (IDE), такие как Visual Studio Code (VS Code), или в производственные конвейеры. Дополнительные сведения см. в официальной документации Ultralytics.

Шаг 1: Настройка среды

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

Если вы работаете в Google Colab, имейте в виду, что по умолчанию он использует ЦП, что может замедлить работу. Чтобы ускорить работу, переключитесь на графический процессор, перейдя в меню "Runtime", выбрав "Change runtime type" и установив аппаратный ускоритель на GPU (в идеале T4).

Чтобы подготовить вашу среду, вам необходимо установить Python-пакет Ultralytics с помощью команды, упомянутой ниже. В инструментах на основе блокнотов, таких как Colab или Jupyter, обязательно добавьте восклицательный знак (!) перед командой.

pip install ultralytics

Шаг 2: Загрузка видеофайла

Далее нам понадобится видео для работы. Вы можете легко скачать его с бесплатного стокового сайта, например, Pexels. Убедитесь, что выбранное видео содержит объекты, которые может обнаружить YOLO11. Поскольку модель предварительно обучена на наборе данных COCO, она может распознавать распространенные объекты, такие как люди, автомобили и велосипеды. 

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

Рис. 3. Кадр из входного видео, показывающий обработку багажа в терминале аэропорта.

Шаг 3: Импорт пакетов

Далее мы можем импортировать необходимые библиотеки и загрузить входное видео.

Мы начнем с импорта OpenCV (cv2), широко используемой библиотеки для работы с изображениями и видео в компьютерном зрении. Мы также импортируем библиотеку Ultralytics, которая помогает нам запускать обнаружение объектов и генерировать аналитику из видео.

Затем мы попытаемся открыть видеофайл, указав его путь. Обязательно замените "path/to/video.mp4" фактическим местоположением загруженного видеофайла. 

Кроме того, приведенный ниже фрагмент кода включает простую проверку, чтобы убедиться, что видео загружается правильно. Если путь указан неверно или файл поврежден, программа остановится и отобразит сообщение об ошибке: «Ошибка чтения видеофайла».

import cv2

from ultralytics import solutions

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

Шаг 4: Подготовка модуля записи видео

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

В приведенном ниже фрагменте кода мы сначала извлекаем ключевые свойства из входного видео — его ширину, высоту и количество кадров в секунду (fps). Эти значения берутся непосредственно из видео и преобразуются в целые числа, чтобы обеспечить их правильный формат для записи вывода.

Далее мы используем функцию cv2.VideoWriter для создания нового видеофайла с именем "analytics_output.avi" (вы можете переименовать его по мере необходимости). Видео сохраняется в формате MJPG, который является распространенным методом сжатия видео. Выходное разрешение установлено на 1280 × 720 пикселей, независимо от размера исходного видео.

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(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720), 
)

Шаг 5: Настройка решения Ultralytics Analytics

Теперь мы настроим решение Ultralytics Analytics для создания графиков на основе видео. Вы можете выбрать способ отображения данных, например, в виде линейного графика, круговой диаграммы, графика области или столбчатой диаграммы, а также то, какую модель YOLO использовать. В этом примере мы будем использовать облегченную модель "yolo11n.pt" и отобразим результаты в виде графика области.

analytics = solutions.Analytics(
    show=True, 
    analytics_type="area", 
    model="yolo11n.pt",   
)

Шаг 6: Обработка входного видео

Заключительная часть кода выполняет цикл, который обрабатывает видео покадрово. Каждый кадр передается в инструмент аналитики, который обновляет график в режиме реального времени. Затем обновленный график записывается в выходное видео. Если кадр не может быть прочитан, цикл останавливается. После обработки всех кадров видео сохраняется, и все открытые окна закрываются.

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count) 

        out.write(results.plot_im) 
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows()

Шаг 7: Собираем все вместе

Наконец, давайте соберем все вместе. С помощью всего нескольких дополнительных строк кода мы можем сгенерировать два выходных видео: одно с результатами обнаружения объектов YOLO11 с ограничивающими рамками и метками, а другое с графиками аналитики в реальном времени.

Для этого мы настроим два экземпляра VideoWriter: один для сохранения видео с прогнозами, а другой - для аналитики. Эта версия кода включает в себя как отслеживание объектов, так и генерацию графиков, поэтому вы можете видеть результаты обнаружения вместе с визуальными данными.

Вот полный код вместе с примерами выходных данных прогнозирования и аналитики.

import cv2
from ultralytics import YOLO, solutions

# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"

# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)

# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)

# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')

# Process frames
frame_count = 0
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    frame_count += 1
    pred_frame = model.track(frame, persist=True)[0].plot()
    out_pred.write(pred_frame)

    resized = cv2.resize(pred_frame, analytics_res)
    out_ana.write(analytics(resized, frame_count).plot_im)

cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()

Когда приведенный выше код успешно запустится, он сгенерирует два выходных видео. Файл “output_predictions.avi” покажет результаты обнаружения объектов с ограничивающими рамками и метками, а “output_analytics.avi” отобразит графики аналитики в реальном времени на основе обнаружений.

Рис. 4. Кадр из файла “output_predictions.avi”.

Вот кадр из аналитического вывода, основанного на прогнозах. Используя график области, мы можем получить представление о колебаниях количества чемоданов с течением времени, например, о всплеске около кадра 268, указывающем на перемещение чемодана или активность в этой части видео.

Рис. 5. Прогнозы YOLO11, визуализированные в виде графика области.

Использование графиков в реальных приложениях компьютерного зрения

Вот несколько реальных приложений компьютерного зрения, в которых визуализация данных оказывает значительное влияние:

  • Здравоохранение: Системы компьютерного зрения могут отслеживать активность пациентов, перемещение персонала и использование оборудования в режиме реального времени. Это генерирует большие объемы визуальных данных, которые при визуализации могут выявить закономерности, такие как пиковое время посещения пациентов или задержки в реагировании.
  • Розничная торговля и электронная коммерция: Vision AI можно использовать для отслеживания перемещения клиентов, времени их пребывания перед полками и взаимодействия с продуктами. Визуальная аналитика, такая как столбчатые или круговые диаграммы, может выделить, какие зоны магазина или товары привлекают больше всего внимания, помогая розничным торговцам оптимизировать размещение продуктов и улучшить конверсию.
  • Производство: Камеры, оснащенные моделями компьютерного зрения, могут отслеживать сборочные линии на предмет дефектов, нарушений техники безопасности или состояния оборудования. Визуализация данных может показать тенденции в наиболее распространенных типах дефектов или выделить периоды времени с самыми высокими показателями ошибок, что позволяет быстрее принимать решения и проводить профилактическое обслуживание.

Основные выводы

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

Хотите узнать больше об ИИ? Изучите наш репозиторий GitHub, свяжитесь с нашим сообществом и ознакомьтесь с нашими вариантами лицензирования, чтобы дать старт своему проекту в области компьютерного зрения. Узнайте больше об инновациях, таких как ИИ в производстве и компьютерное зрение в логистике, на страницах наших решений.

Давайте строить будущее
ИИ вместе!

Начните свой путь в будущее машинного обучения

Начать бесплатно
Ссылка скопирована в буфер обмена