Создание 1 модели обнаружения объектов для обнаружения 4 разных футбольных команд.

Введение

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

Футбол - это вид спорта, в котором участвуют 2 команды; в каждой команде по 11 игроков и вратарь. Вот некоторые аналитические данные, которые можно получить из футбольных игр с использованием ИИ.

  1. Предсказание возможности проиграть гол с пенальти или свободного удара.
  2. Мониторинг взаимодействия игроков в игре.
  3. Предсказание, кто следующий получит мяч в данной команде.
  4. Прогнозирование возможности забить гол с помощью угловых и других ударов.

Блокнот для этой работы можно найти здесь.

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

Существует так много аналитических идей, которые мы могли бы раскрыть с помощью компьютерного зрения, языкового моделирования и архитектур обучения с подкреплением, но для простоты давайте рассмотрим создание модели обнаружения объектов, которая может отслеживать 4 известные футбольные команды: Chelsea, Man -Город, Ливерпуль и Арсенал.

Ниже представлен план того, как мы решим эту проблему:

  1. Источники данных
  2. Labelme для аннотации данных
  3. Подготовка данных (экспорт в виде записей TensorFlow).
  4. Настройка и обучение модели
  5. Выполнение вывода на Raspberry Pi 3
  6. Итоги и заключение

Источники данных

Чтобы приступить к созданию модели обнаружения объектов, которая может отслеживать 4 команды, нам сначала необходимо получить данные для 4 различных команд. Исходные данные взяты из матчей между Челси-Ман Сити и Ливерпуль - Арсенал. Используя исходное видео, из каждой видеосвязи было извлечено 94 кадра, представляющих 4 различные команды, с использованием приведенного ниже кода:

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

LabelMe

LabelMe - это графический инструмент с открытым кодом для обработки изображений и аннотаций. Исходный код о том, как использовать его локально, можно найти здесь. Он прост в использовании и эффективен благодаря свойствам аннотации. Чтобы пометить изображения, щелкните createRect в левом окне. Это даст вам возможность создавать собственные аннотации многоугольников для каждого объекта, присутствующего на изображениях. Мы можем маркировать изображения в таком порядке:

  1. Челси (красная аннотация) - Класс 0
  2. Man-City (зеленая аннотация) - класс 1
  3. Ливерпуль (желтая аннотация) - 2 класс
  4. Арсенал (синяя аннотация) - 3 класс

Теперь, когда все классы во фреймах были правильно помечены, мы можем продолжить и подготовить нашу модель, используя архитектуру обнаружения объектов под названием EfficientDet. Обратите внимание, что перед тем, как моделировать, нам необходимо преобразовать эти помеченные данные вместе со сгенерированными файлами JSON (файлы, созданные для каждого кадра, содержащие ограничивающую рамку для каждой метки в изображении) в записи TensorFlow.

Экспорт данных в виде записей TensorFlow (tfrecords)

Теперь, когда мы получили возможность удобно маркировать данные, мы можем продолжить и экспортировать данные в виде tfrecords, используя платформу управления данными Roboflow. Все, что вам нужно сделать, это выполнить следующие процессы:

  1. Создайте учетную запись в Roboflow и нажмите «Создать набор данных».
  2. Заполните данные своего набора данных, загрузите данные (изображения и файлы .xml). Убедитесь, что вы выбрали обнаружение объекта при выборе типа данных для моделирования компьютерного зрения.
  3. При необходимости добавьте этапы предварительной обработки и этапы дополнения.
  4. Наконец, в правом верхнем углу после загрузки нажмите «Создать записи TensorFlow». Идите вперед и выберите «Сгенерировать как код» - это даст вам ссылку для загрузки записей ваших тренировочных данных.

Настройка и обучение модели

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

  1. Как настроить Google Colab для обнаружения объектов.
  2. Установка API обнаружения объектов (tfrecords).
  3. Создание собственного файла конфигурации.
  4. Модель и конвейер данных для обучения и прогнозирования.


Вот небольшие изменения в прилагаемой статье для этого проекта:

  1. Вместо EfficientDet (D0) попробуйте реализовать EfficientDet (D1).
  2. Шагов тренировки можно увеличить до 10 000.

После выполнения вышеизложенного ниже представлен результат тренировки с помощью Tensorboard после 5000 эпох:

Выполнение вывода на Raspberry Pi 3

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



В дополнение к прилагаемой статье обратите внимание на следующее:

Чтобы избежать любой формы ошибки импорта при выполнении вывода из каталога модели обнаружения объектов TensorFlow, вы можете добавить это в начале программы:

Кроме того, чтобы передать видеокадры в Raspberry Pi 3 для вывода в реальном времени, пожалуйста, измените это:

в это:

Результат и заключение

Ниже представлена ​​полная видеодемонстрация работы архитектуры обнаружения объектов на видеокадрах.



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

  1. Предсказание возможности проиграть гол с пенальти или свободного удара.
  2. Мониторинг взаимодействия игроков в игре.
  3. Предсказание, кто следующий получит мяч в данной команде.
  4. Прогнозирование возможности забить гол с помощью угловых и других ударов.

Если эта статья поможет вам в деталях разобраться в компьютерном зрении, поделитесь с друзьями. Спасибо за чтение!

использованная литература

  1. roboflow.ai
  2. Https://heartbeat.comet.ml/end-to-end-object-detection-using-efficientdet-on-raspberry-pi-3-part-2-bb5133646630
  3. Https://medium.com/@iKhushPatel/convert-video-to-images-images-to-video-using-opencv-python-db27a128a481
  4. Https://heartbeat.comet.ml/end-to-end-object-detection-using-efficientdet-on-raspberry-pi-3-part-3-2bd6a7a6614d

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

Независимая редакция, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по обработке данных и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить модели машинного обучения.