Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

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

Nuvola Ladi

4 мин чтения

12 мая 2025 г.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пакет Ultralytics Python позволяет легко обучать модели, detect объекты, выполнять прогнозы и визуализировать результаты. Чтобы начать работу с ним, вам понадобится среда кодирования. Вот три простых варианта:

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

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

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

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

Если вы работаете в Google Colab, имейте в виду, что по умолчанию он использует CPU , что может снижать производительность. Чтобы ускорить работу, переключитесь на GPU , зайдя в меню "Время выполнения", выбрав "Изменить тип времени выполнения" и установив в качестве аппаратного ускорителя GPU (в идеале T4).

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

pip install ultralytics

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

Далее нам понадобится видео для работы. Вы можете легко загрузить его с бесплатного стокового сайта, например Pexels. Обязательно выберите видео, в котором есть объекты, которые YOLO11 может detect. Поскольку модель была предварительно обучена на наборе данных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 , визуализированные в виде графика площадей.

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

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

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

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

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

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

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

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

Начать бесплатно