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

Каждую минуту создаются огромные объёмы данных — от аэропортов и железнодорожных вокзалов до торговых центров. По мере распространения AI всё больше этих данных анализируется и обрабатывается. Но иногда результаты работы AI-моделей затрудняют быстрое выявление закономерностей и понимание тенденций. Здесь на помощь приходит визуализация данных: она превращает сложные результаты в понятные и легко воспринимаемые выводы.
Особенно это актуально для приложений компьютерного зрения. Компьютерное зрение — это область искусственного интеллекта (AI), которая помогает машинам интерпретировать и понимать визуальную информацию из окружающего мира, например изображения и видео. Модели компьютерного зрения, такие как Ultralytics YOLO11, помогают анализировать такие визуальные данные и получать из них информацию, а визуализация данных представляет эту информацию в удобном для понимания формате.
Проще говоря, визуализация данных с помощью информативных аналитических графиков устраняет разрыв между необработанными данными и их полноценным пониманием. В современном мире, основанном на данных, это особенно важно: недостаточно, чтобы машины просто выполняли задачи, — нужно, чтобы они рассказывали историю.
Именно эта потребность в повествовании объясняет стремительный рост популярности визуализации данных: ожидается, что к 2030 году объём этого рынка достигнет $18,36 млрд. Ранее мы рассмотрели, как компьютерное зрение может предоставлять ценные бизнес-инсайты. Сегодня мы пойдём дальше и пошагово разберём, как создавать понятные и информативные аналитические графики для приложений компьютерного зрения с помощью пакета Ultralytics. Начнём!

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

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

Рис. 3. Кадр из входного видео, на котором показана обработка багажа в аэропортовом терминале.
Шаг 3: Импорт пакетов#
Далее мы импортируем необходимые библиотеки и загрузим входное видео.
Начнём с импорта OpenCV (cv2) — широко используемой библиотеки для работы с изображениями и видео в задачах компьютерного зрения. Также импортируем библиотеку Ultralytics, которая помогает выполнять обнаружение объектов и создавать аналитику на основе видео.
Затем попробуем открыть видеофайл, указав его путь. Не забудь заменить "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: Подготовка средства записи видео#
Затем настроим средство записи видео для сохранения результата. При запуске аналитики эта часть кода создаст новый видеофайл, в который будут записываться обновлённые графики, созданные для каждого кадра исходного видео.
В приведённом ниже фрагменте кода сначала извлекаются основные свойства входного видео — его ширина, высота и число кадров в секунду (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: Объединение всех частей#
Наконец, объединим всё вместе. С помощью всего нескольких дополнительных строк кода можно создать два выходных видео: одно с результатами обнаружения объектов 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, визуализированные в виде площадного графика.
Использование графиков в реальных приложениях компьютерного зрения#
Вот несколько реальных приложений компьютерного зрения, в которых визуализация данных оказывает существенное влияние:
-
Здравоохранение: Системы компьютерного зрения могут в реальном времени отслеживать активность пациентов, перемещение сотрудников и использование оборудования. Это создаёт большие объёмы визуальных данных, визуализация которых позволяет выявлять закономерности — например, периоды максимальной загрузки пациентов или задержки реагирования.
-
Розничная торговля и электронная коммерция: AI компьютерного зрения можно использовать для отслеживания перемещения покупателей, времени, проведённого у полок, и взаимодействия с товарами. Визуальная аналитика, например столбчатые или круговые диаграммы, может показать, какие зоны магазина или товары привлекают больше всего внимания, помогая ритейлерам оптимизировать размещение товаров и повышать конверсию.
-
Производство: Камеры с моделями компьютерного зрения могут отслеживать на сборочных линиях дефекты, нарушения правил безопасности и состояние оборудования. Визуализация данных может показывать тенденции по наиболее распространённым типам дефектов или выделять периоды с самым высоким уровнем ошибок, обеспечивая более быстрое принятие решений и профилактическое обслуживание.
Основные выводы#
С помощью пакета Ultralytics ты можешь легко превращать видеозаписи в понятные и информативные графики, которые показывают происходящее, например отслеживают количество людей или объектов во времени. Вместо ручного просмотра многочасовых видео можно создавать визуальные сводки, выделяющие ключевые закономерности и тенденции, чтобы быстрее принимать меры. В больницах, магазинах или на производственных объектах такие графики превращают сложные результаты AI в выводы, которые может понять и использовать любой человек.
Хочешь узнать больше об AI? Изучи наш репозиторий на GitHub, присоединяйся к нашему сообществу и ознакомься с вариантами лицензирования, чтобы быстрее начать свой проект в области компьютерного зрения. Узнай больше о таких инновациях, как AI в производстве и компьютерное зрение в логистике, на страницах наших решений.









