Эта статья была впервые опубликована вколонна Джижи
Использованная литература: towardsdatascience.com
Время летит так быстро, Чемпионат мира по футболу 2018 года закончился в мгновение ока, и это лето также приобрело большее значение благодаря чемпионату мира, оставив поклонникам и друзьям бесконечные истории в аромате хмеля. Кто бы мог подумать, что действующего чемпиона Германии отправят домой до того, как картофельные сосиски будут съедены? Все четыре фаворита чемпионата расстроены?
В последнее время вы, возможно, заметили, что многие люди используют это преимущество, чтобы проанализировать чемпионат мира с помощью науки о данных или технологий искусственного интеллекта и придумать несколько интересных проектов. Вы не думали о том, чтобы попытаться проанализировать игру чемпионата мира с помощью технологии машинного обучения? Сегодня я поделюсь практическим руководством по анализу ЧМ с помощью технологии глубокого обучения и нескольких фреймворков машинного обучения.Вы можете попробовать попрактиковаться своими руками.Код этого руководства указан в конце статьи.
Для специалистов по данным и исследователей машинного обучения преимуществом этой работы является возможность использовать то, что вы узнали, для проведения интересного анализа чемпионата мира по футболу. Например, как исследователь глубокого обучения, я использую глубокое обучение и OpenCV для получения интересных результатов из конкурсных видеороликов. Ниже приведены некоторые результаты моего анализа видео матча Австралии и Перу:
Из этого мы можем идентифицировать всех игроков и судей, футбол, а также предсказать, в какой команде находится игрок, на основе цвета майки, и все это можно сделать в режиме реального времени.
Обзор шагов
TensorFlow Object Detection API — очень мощный инструмент для быстрого создания моделей обнаружения объектов. Если вы не очень хорошо знакомы с этим API, вы можете просмотреть следующие три статьи, которыми мы поделились, прежде чем использовать его для обнаружения объектов, каждая из которых более подробная:
Как отследить «Тысячелетний сокол» в «Звездных войнах» с помощью TensorFlow?
Как использовать TensorFlow и Swift для написания приложения для выявления плесени?
Как распознать Пикачу на телефоне Android с помощью TensorFlow?
Или этот учит вас, какСоздавайте собственные модели с помощью API обнаружения объектов TensorFlow.статья
API обнаружения объектов предоставляет предварительно обученные модели обнаружения объектов, которые обучаются на наборе данных COCO. Набор данных COCO содержит общие объекты 90. Ниже приведены изображения некоторых объектов в наборе данных COCO:
В случае нашего анализа чемпионата мира мы фокусируемся на категориях — люди и футбол, которые включены в набор данных COCO.
API также поддерживает ряд моделей машинного обучения, а именно:
Однако скорость и точность этих моделей не могут быть достигнуты одновременно, и при их выборе существует компромисс. Я выбрал SSDLite mobilenet v2, потому что мне было интересно анализировать игру в режиме реального времени.
Когда мы используем API обнаружения объектов TensorFlow для идентификации игроков и прогнозирования, к какой команде они принадлежат, мы можем использовать OpenCV, мощную библиотеку обработки изображений. Если вы не очень хорошо знакомы с OpenCV, вы можете обратиться к следующим двум учебникам:
Как реализовать распознавание лиц менее чем в 25 строках кода Python
OpenCV позволяет нам идентифицировать маску определенного цвета, которую можно использовать для идентификации красных и желтых игроков. Вот рабочий пример маски OpenCV, определяющей красный цвет на изображении:
Подробно расскажите об основных шагах
Теперь давайте поговорим немного больше об операционных шагах.
Если вы впервые используете TensorFlow Object Detection API, сначала загрузите эту ссылку.GitHub
использоватьэта ссылкаИнструкции по установке всех зависимостей среды.
Если вы не установили OpenCV, см.этот учебникУстановить:
Основные шаги, которые я предпринял, следующие: следуйте за мной здесь, на GitHub.Jupyter notebook:
- Загрузите модель мобильной сети SSDLite в граф и загрузите список классов в наборе данных COCO, который содержит людей и футбол.
- Откройте игровое видео с помощью cv2.VideoCapture (имя файла) и прочитайте видеокадры один за другим.
- Выполните обнаружение объектов на каждом кадре, используя загруженный график.
- Результаты, возвращаемые из SSDLite, представляют собой каждый идентифицированный класс, а также прогнозы достоверности и ограничительной рамки. Я обрезаю все символы, достоверность распознавания которых больше 0,6.
- Теперь мы извлекли каждого игрока. Нам нужно прочитать цвет их футболок, чтобы предсказать, принадлежат ли они Австралии или Перу. Этот шаг может быть выполнен с обнаружением блока кода. Сначала мы определяем диапазоны красного и синего цветов, затем создаем маску для цветов с помощью cv2.inRange и cv.bitwise. Чтобы иметь возможность обнаруживать команды, я подсчитал, сколько красных и желтых пикселей было обнаружено, и соотношение по сравнению с общим количеством пикселей в обрезанном изображении.
- Наконец, объедините все блоки кода вместе, запустите их одновременно и отобразите результаты с помощью cv.2imshow.
Эпилог
Если вы выполните описанные выше шаги, вы, наконец, сможете определить игроков на чемпионате мира и к какой команде они принадлежат.
Видите ли, просто комбинируя глубокое обучение с OpenCV, мы можем создать что-то очень интересное. Когда вы будете практиковаться самостоятельно, вы можете пойти дальше и попробовать другие способы игры:
- Когда камера следует за голевой зоной Австралии, вы можете подсчитать, сколько перуанцев и сколько австралийцев играет против этой зоны.
- Вы можете нарисовать следы каждой команды, например, в каких областях перуанские игроки появляются чаще всего.
- Вы также можете нарисовать траектории забивающих игроков двух команд.
Заинтересованные друзья могут использовать финал Кубка мира этого года Хорватия против Франции, чтобы потренировать свои руки, добро пожаловать, чтобы поделиться с нами результатами практики (опубликовано наСообществоЕсть шанс получить подарочную карту Jizhi).
Прикреплен к этому проекту GitHubкодовый адрес
0806 «Искусственный интеллект — от нуля до мастера» со скидкой, ограниченной по времени!
Нажмите здесь, чтобы узнать подробности
Болтать и смеяться Онлайн-программирование Узнать об этом?
(Первые 25 студентов также могут получить купон на 200 иен)