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

Каждую минуту создаются огромные объемы данных: от аэропортов и железнодорожных станций до торговых центров. По мере того как ИИ получает все более широкое распространение, большая часть этих данных теперь анализируется и структурируется. Однако иногда результаты работы моделей ИИ затрудняют выявление закономерностей или понимание тенденций с первого взгляда. Именно здесь на помощь приходит визуализация данных — она превращает сложные результаты в понятные и легко усваиваемые инсайты.
Это особенно верно для приложений компьютерного зрения. Computer vision — это ветвь artificial intelligence (AI), которая помогает машинам интерпретировать и понимать визуальную информацию из окружающего мира, такую как изображения и видео. Хотя модели компьютерного зрения, такие как Ultralytics YOLO11, могут помочь проанализировать такие визуальные данные для получения информации, визуализация данных помогает представить эту информацию в удобном для понимания формате.
Проще говоря, визуализация данных преодолевает разрыв между «сырыми» данными и реальным пониманием с помощью значимых аналитических графиков. В современном мире, основанном на данных, это критически важно, потому что машинам недостаточно просто выполнять задачи — нам нужно, чтобы они рассказывали историю.
Эта потребность в наглядном представлении данных — именно то, почему визуализация данных набирает обороты: к 2030 году объем рынка должен достичь $18.36 миллиарда. Ранее мы рассматривали, как компьютерное зрение может предоставлять ценные business insights. Сегодня мы сделаем шаг вперед и разберем, как создавать понятные и информативные аналитические графики для приложений компьютерного зрения с помощью пакета Ultralytics. Давайте начнем!

Fig 1. Пример визуализации данных на основе результатов работы YOLO11.
Обзор визуализации данных в приложениях компьютерного зрения#
Визуализация данных в приложениях компьютерного зрения включает преобразование результатов computer vision tasks, таких как обнаружение и отслеживание объектов, в понятные графики или панели мониторинга. Эти визуальные элементы помогают выявлять закономерности и тенденции, особенно при работе с большими объемами видеоматериалов.
Например, вместо ручного просмотра часов записей с камер наблюдения, простой линейный график, показывающий количество обнаруженных автомобилей или людей с течением времени, может быстро выделить часы пик или необычно спокойные периоды.
Вот несколько ключевых причин, почему визуализация данных полезна:
-
Упрощение сложных данных: Тысячи обнаруженных объектов могут привести к перегрузке данными, но такие способы визуализации, как гистограммы или круговые диаграммы, позволяют легче увидеть общую картину, например, какие объекты встречаются чаще всего.
-
Выявление тенденций: Линейные и столбчатые графики помогают определить закономерности во времени, например, когда и где обычно увеличивается поток людей.
-
Экономия времени: Вместо того чтобы просматривать каждый кадр видео, графики могут быстро выделить важные детали, такие как внезапные всплески активности транспортных средств или необычное появление объектов в запретных зонах.
-
Улучшение коммуникации: Визуальные материалы облегчают обмен инсайтами с нетехнической аудиторией, помогая каждому более четко понять результаты.
Различные типы визуализации данных#
Различные типы аналитических графиков могут превратить результаты компьютерного зрения в наглядные и понятные визуальные элементы. Допустим, ты работаешь над computer vision application, которое обнаруживает людей и транспортные средства на записях с камер наблюдения. В этом случае линейный график отлично подходит для демонстрации того, как количество обнаружений меняется с течением времени, например, для отслеживания пиков интенсивности пешеходного движения в течение дня.
Аналогично, гистограммы полезны, когда ты хочешь сравнить количество обнаруженных объектов разных типов, например, увидеть, кого больше: автомобилей, велосипедов или пешеходов. Круговые диаграммы, с другой стороны, показывают, какую долю от общего числа обнаружений составляет каждый тип объекта. У каждого графика есть свое назначение, и они помогают сделать сложные данные компьютерного зрения более легкими для интерпретации и обмена.

Fig 2. Примеры аналитических графиков.
Создание аналитических графиков для получения инсайтов из компьютерного зрения#
Теперь, когда мы выяснили, что такое визуализация данных и почему важны различные типы аналитических графиков, давай подробнее рассмотрим, как использовать Ultralytics Analytics solution для визуализации результатов предсказаний твоей модели компьютерного зрения. Прежде чем перейти к пошаговому процессу, давай взглянем на инструменты и варианты настройки для обучения и использования пакета Ultralytics и таких моделей, как YOLO11.
Пакет Ultralytics Python позволяет легко обучать модели, обнаруживать объекты, запускать прогнозы и визуализировать результаты. Чтобы начать работу, тебе понадобится среда для программирования. Вот три простых варианта:
-
Интерфейс командной строки (CLI): Это базовый текстовый инструмент, в котором ты можешь вводить команды для запуска своего кода. У него нет визуального интерфейса, и ты взаимодействуешь с ним, вводя инструкции в терминале или командной строке.
-
Jupyter Notebooks: Это интерактивная среда программирования, в которой ты можешь писать, запускать и тестировать небольшие фрагменты кода (называемые «ячейками») по очереди. Она показывает результаты непосредственно под каждой ячейкой, что позволяет легко понять, что происходит на каждом шаге. Это особенно полезно для обучения и экспериментов.
-
Google Colab: этот вариант представляет собой бесплатную облачную версию Jupyter Notebooks, которая работает в твоем веб-браузере. Он не требует никакой настройки на твоем компьютере и дает доступ к бесплатным графическим процессорам для более быстрой обработки.
Эти инструменты отлично подходят для быстрого старта, но пользователи также могут интегрировать Ultralytics в среды разработки (IDE), такие как Visual Studio Code (VS Code), или в производственные конвейеры. Чтобы узнать о других возможностях, изучи официальную Ultralytics documentation.
Шаг 1: Настройка среды#
Как только ты выберешь предпочтительную среду, следующим шагом будет её настройка для запуска прогнозов и визуализации результатов. Ты можешь использовать любую из вышеперечисленных сред, в зависимости от того, с чем тебе удобнее работать.
Если ты работаешь в Google Colab, помни, что по умолчанию он использует CPU, что может замедлить производительность. Чтобы ускорить работу, переключись на GPU: зайди в меню «Среда выполнения» (Runtime), выбери «Сменить тип среды выполнения» (Change runtime type) и установи аппаратный ускоритель на GPU (желательно T4).
Чтобы подготовить свое окружение, тебе нужно установить Ultralytics Python package с помощью команды, приведенной ниже. В инструментах на основе блокнотов, таких как Colab или Jupyter, обязательно добавь восклицательный знак (!) перед командой.
pip install ultralyticsШаг 2: Загрузка видеофайла#
Затем нам понадобится видео для работы. Ты можешь легко скачать его с бесплатного стокового сайта, такого как Pexels. Убедись, что выбрал видео, содержащее объекты, которые Ultralytics YOLO11 может обнаруживать. Поскольку модель предобучена на датасете COCO dataset, она может распознавать распространенные объекты, такие как люди, автомобили и велосипеды.
Для этого учебного пособия мы будем использовать видео baggage handling в оживленном терминале аэропорта. Ты можешь использовать то же видео или выбрать другое, которое подходит для твоего проекта.

Fig 3. Кадр из входного видео, показывающий обработку багажа в терминале аэропорта.
Шаг 3: Импорт пакетов#
Далее мы можем импортировать необходимые библиотеки и загрузить исходное видео.
Мы начнем с импорта OpenCV (cv2), которая является широко используемой библиотекой для работы с изображениями и видео в компьютерном зрении. Мы также импортируем библиотеку Ultralytics, которая помогает нам запускать обнаружение объектов и generate analytics на основе видео.
Затем мы попробуем открыть видеофайл, указав путь к нему. Обязательно замени "path/to/video.mp4" на реальный путь к твоему скачанному видеофайлу.
Также фрагмент кода ниже включает простую проверку, чтобы убедиться, что видео загружается правильно. Если путь указан неверно или файл поврежден, программа остановится и выведет сообщение об ошибке: "Error reading video file."
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"Шаг 4: Подготовка видеозаписывающего устройства#
Затем мы настроим устройство записи видео для сохранения результата. Когда мы запустим аналитику, эта часть кода создаст новый видеофайл, в котором будут записаны обновляемые графики, генерируемые для каждого кадра исходного видео.
В приведенном ниже фрагменте кода мы сначала извлекаем ключевые свойства из входного видео — его ширину, высоту и frames per second (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 model использовать. В этом примере мы будем использовать легковесную модель "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: Собираем все вместе#
Наконец, давай соберем все воедино. Всего с несколькими дополнительными строками кода мы можем сгенерировать два выходных видео: одно с результатами object detection от Ultralytics 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. Предсказания Ultralytics YOLO11, визуализированные в виде графика с областями.
Использование графиков в реальных приложениях компьютерного зрения#
Вот несколько реальных приложений компьютерного зрения, где визуализация данных имеет существенное значение:
-
Healthcare: системы компьютерного зрения могут отслеживать активность пациентов, перемещение персонала и использование оборудования в режиме реального времени. Это генерирует большие объемы визуальных данных, которые при визуализации могут выявлять закономерности, такие как пиковые часы заполняемости пациентами или задержки в реагировании.
-
Ритейл и электронная коммерция: Визуальный ИИ можно использовать для отслеживания перемещения клиентов, времени пребывания перед полками и взаимодействия с продуктами. Визуальная аналитика в виде столбчатых или круговых диаграмм может выделить, какие зоны магазина или товары вызывают наибольший интерес, помогая ритейлерам оптимизировать размещение товаров и повысить конверсию.
-
Производство: Камеры, оснащенные моделями компьютерного зрения, могут контролировать сборочные линии на предмет дефектов, нарушений техники безопасности или состояния оборудования. Визуализация данных может показать тенденции в наиболее распространенных типах дефектов или выделить периоды времени с самыми высокими показателями ошибок, что позволяет принимать решения быстрее и проводить профилактическое обслуживание.
Основные выводы#
С пакетом Ultralytics ты можешь легко превратить видеозаписи в ясные и информативные графики, которые раскрывают суть происходящего, например, отслеживая, сколько людей или объектов появляется за определенное время. Вместо ручного просмотра часов видео ты можешь создавать визуальные сводки, которые выделяют ключевые закономерности и тенденции, упрощая процесс принятия быстрых решений. Будь то больницы, розничные магазины или производственные предприятия, эти графики превращают сложные результаты работы ИИ в инсайты, которые может понять и использовать каждый.
Хочешь узнать больше об ИИ? Изучи наш GitHub repository, пообщайся с our community и ознакомься с our licensing options, чтобы ускорить свой проект в области computer vision. Узнай больше о таких инновациях, как AI in manufacturing и computer vision in the logistics в нашей отрасли на страницах решений.






