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

Каждую минуту создаются огромные объемы данных — в аэропортах и на железнодорожных станциях, в торговых центрах и других местах. По мере распространения ИИ все больше этих данных анализируется и обрабатывается. Но иногда результаты работы моделей ИИ мешают сразу замечать закономерности или понимать тенденции. Здесь помогает визуализация данных: она превращает сложные результаты в понятные и легко воспринимаемые выводы.
Это особенно актуально для приложений компьютерного зрения. Компьютерное зрение — это область искусственного интеллекта (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: открой меню «Среда выполнения», выбери «Сменить тип среды выполнения» и установи в качестве аппаратного ускорителя 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
# Загрузка модели и видео
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Получение характеристик
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Запись видео с предсказаниями и аналитикой
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 = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Обработка кадров
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 в виде графика с областями.
Использование графиков в реальных приложениях компьютерного зрения#
Вот несколько реальных приложений компьютерного зрения, в которых визуализация данных приносит заметную пользу:
-
Здравоохранение: Системы компьютерного зрения могут в реальном времени отслеживать активность пациентов, перемещение персонала и использование оборудования. Это позволяет собирать большие объемы визуальных данных, которые после визуализации могут выявить закономерности — например, периоды пиковой загрузки пациентов или задержки в реагировании.
-
Розничная торговля и электронная коммерция: ИИ на основе компьютерного зрения можно использовать для отслеживания перемещения покупателей, времени, которое они проводят у полок, и взаимодействия с товарами. Наглядная аналитика, например столбчатые или круговые диаграммы, показывает, какие зоны магазина или товары привлекают больше всего внимания, и помогает ритейлерам оптимизировать выкладку и повышать конверсию.
-
Производство: Камеры с моделями компьютерного зрения могут следить за сборочными линиями, выявляя дефекты, нарушения техники безопасности и состояние оборудования. Визуализация данных показывает тенденции для наиболее распространенных типов дефектов и выявляет периоды с наибольшим числом ошибок, помогая быстрее принимать решения и проводить профилактическое обслуживание.
Главные выводы#
С пакетом Ultralytics ты легко превратишь видеозаписи в понятные и содержательные графики, которые покажут, что происходит, например сколько людей или объектов появляется со временем. Вместо того чтобы вручную просматривать часы видео, можно создавать наглядные сводки, выделяющие ключевые закономерности и тенденции, чтобы быстрее принимать меры. В больницах, магазинах или на производственных предприятиях такие графики превращают сложные результаты работы ИИ в выводы, понятные каждому и полезные в работе.
Хочешь узнать больше об ИИ? Загляни в наш репозиторий GitHub, присоединяйся к нашему сообществу и изучи варианты лицензирования, чтобы начать свой проект в области компьютерного зрения. Узнай больше о таких инновациях, как ИИ в производстве и компьютерное зрение в логистике, на страницах наших решений.










