Встречай YOLO26: ИИ компьютерного зрения нового поколения.
Ultralytics
Руководства

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

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

НУНувола Лади
4 min read
Превращение данных компьютерного зрения в аналитические графики

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

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

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

Эта потребность в сторителлинге — как раз та причина, по которой визуализация данных становится все более востребованной: к 2030 году объем этого рынка достигнет $18.36 миллиарда. Ранее мы исследовали, как компьютерное зрение может предоставлять ценные бизнес-инсайты. Сегодня мы сделаем еще один шаг вперед и разберемся, как создавать понятные и информативные аналитические графики для приложений компьютерного зрения с помощью пакета Ultralytics. Приступим!

Визуализация данных на основе выходных результатов YOLO11

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

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

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

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

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

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

  • Выявление тенденций: Линейные и столбчатые графики помогают определить закономерности во времени, например, когда и где обычно увеличивается поток людей.

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

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

Link to this sectionРазличные типы визуализации данных#

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

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

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

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

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

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

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

  • Интерфейс командной строки (CLI): Это базовый текстовый инструмент, в котором ты можешь вводить команды для запуска своего кода. У него нет визуального интерфейса, и ты взаимодействуешь с ним, вводя инструкции в терминале или командной строке.

  • Jupyter Notebooks: Это интерактивная среда программирования, в которой ты можешь писать, запускать и тестировать небольшие фрагменты кода (называемые «ячейками») по очереди. Она показывает результаты непосредственно под каждой ячейкой, что позволяет легко понять, что происходит на каждом шаге. Это особенно полезно для обучения и экспериментов.

  • Google Colab: Этот вариант представляет собой бесплатную облачную версию Jupyter Notebooks, которая работает в твоем веб-браузере. Она не требует никакой настройки на твоем компьютере и предоставляет доступ к бесплатным GPU для ускорения обработки.

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

Link to this sectionШаг 1: Настройка среды#

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

Если ты работаешь в Google Colab, помни, что по умолчанию он использует CPU, что может замедлить производительность. Чтобы ускорить работу, переключись на GPU: зайди в меню «Среда выполнения» (Runtime), выбери «Сменить тип среды выполнения» (Change runtime type) и установи аппаратный ускоритель на GPU (желательно T4).

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

pip install ultralytics

Link to this sectionШаг 2: Загрузка видеофайла#

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

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

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

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

Link to this sectionШаг 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"

Link to this sectionШаг 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),
)

Link to this sectionШаг 5: Настройка решения Ultralytics Analytics#

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

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

Link to this sectionШаг 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()

Link to this sectionШаг 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-го кадра, указывающий на перемещение чемоданов или активность в этой части видео.

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

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

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

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

  • Здравоохранение: Системы компьютерного зрения могут отслеживать активность пациентов, перемещение персонала и использование оборудования в режиме реального времени. Это генерирует большие объемы визуальных данных, которые при визуализации могут выявлять закономерности, например пиковые периоды пребывания пациентов или задержки в реагировании.

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

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

Link to this sectionОсновные выводы#

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

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

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

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

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.

Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

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

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.

Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

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

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.

Узнать больше

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

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