• /
  • /

Система аналитики на основе алгоритмов компьютерного зрения для мониторинга спортивных объектов

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

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

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

Муниципальная служба обязана следить за состоянием спортивных площадок, вовремя сеять траву, не допускать выгула собак на полях и т.д.

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

Запрос

Городским службам нужно было оптимизировать сбор данных об использовании спортплощадок и определять степень износа газона.

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

Заказчик попросил нас разработать систему аналитики на основе алгоритмов компьютерного зрения.

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

  • Плановое обслуживание — анализировать состояние поля и прогнозировать проведение профилактических работ (подсеять газон, внести удобрения, провести аэрацию и т.п.).
  • Сбор статистики — собирать данные о проводимых на спортплощадке спортивных мероприятиях и количестве посетителей.
  • Управление спортивными объектами — обеспечить безопасность, функциональность и эстетику игрового поля.

Решение

Компания КЕДР Solutions начала проект с исследования, чтобы определить наиболее подходящие камеры, способные делать качественные фотографии спортивных площадок.

Три 4K-камеры с углом обзора 60 градусов установлены на высоких мачтах освещения вокруг поля и направлены в левую, правую и центральную части стадиона. Камеры выдают серию фотографий объекта с периодичностью в 5 минут.
Панорамный снимок спортивного поля
Панорамный снимок, сделанный камерой, установленной на мачте освещения
Камеры автоматически переключаются на дневной и ночной режимы. Система использует RGB-изображения для обнаружения объектов в дневное время и распознает объекты в инфракрасном диапазоне в темное время суток.

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

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

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

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

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

Мы переводили данные в координаты на карте, используя как ориентир мачту, на которой установлена камера.

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

Отчеты, хранившиеся в базе данных, содержали информацию о камерах (ID) и обнаруженных объектах (вид объекта, координаты поля и GPS координаты).
Схема алгоритма распознавания людей на спортивной площадке
Алгоритм распознавания
Разработчики КЕДР Solutions создали алгоритм обнаружения объектов на спортивных площадках. Кроме того, была создана отрисовка тепловой карты, где количество людей оценивается цветовым диапазоном.

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

Систематическая повышенная нагрузка на поле свидетельствует о необходимости строительства дополнительной спортивной площадки в этом районе.

Сложности проекта и их решение

Основной трудностью проекта было обнаружение объектов на большой территории — размеры игрового поля составляют 159 x 136 м.
На фото приведены размеры спортивной площадки в метрах
Размер спортивного поля
На такой большой площади люди и другие объекты выглядят как крошечные точки, что затрудняет их идентификацию нейронными сетями.

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

Например, чтобы распознать целевое изображение RGB, мы использовали фильтр Габора для анализа текстуры. Метод помогает отфильтровать ненужные текстуры, например траву, и позволяет системе сфокусироваться на целевом объекте, например на игроке на поле.

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

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

  • Исследование алгоритмов обнаружения объектов
  • Подготовка данных
  • Разметка данных
  • Построение алгоритма и обучение
  • Тестирование алгоритма
  • Реализация алгоритма в бизнес-цикле клиента
                Использованные технологии
                • Изображения сделаны камерами с углом обзора 60 градусов и разрешением 4K.
                • Мы написали серверное ПО на Python.
                • Для алгоритмов, преобразованных из Python, использовались C++ и библиотека OpenCV.
                • RabbitMQ действует как брокер обмена сообщениями для передачи данных между микросервисами, например, системными ботами.
                • Кроссплатформенная система управления базами данных NoSQL MongoDB поддерживает базу данных, созданную для хранения результатов распознанных изображений.
                • С помощью фреймворка Vue.js мы создали веб-интерфейс для фронтенда системы.
                • Мы использовали одноэтапную модель обнаружения объектов RetinaNet.
                • Мы обучили наши ML-алгоритмы и нейронные сети на модели YOLOv5 и фреймворке машинного обучения для языка Python PyTorch.

                                  Итоги

                                  Наши разработчики создали алгоритм распознавания людей и предоставили его заказчику для тестирования.

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

                                  Мы собираемся разработать алгоритм анализа спортивных игр на стадионах. Алгоритм должен распознавать игру по шаблонам — например, по нахождению и перемещению играющих людей.

                                  Система сможет определить вид спорта, выбрав из известных ей видов активностей.

                                  Используя наше решение, клиент получает актуальную аналитическую информацию в режиме реального времени.