Введение
На этот раз наша задача проанализировать футбольный матч и определить ее игроков c помощью TensorFlow (по крайней мере, одного из них).
Говоря о футболе, первое, что пришло в голову – это талантливая аргентинская звезда Лионель Месси. Я предлагаю:
- Давайте подготовим персональную модель, которая позволит нам найти аргентинскую звезду.
- Давайте проанализируем реальную игру (в этом случае я выбрал матч Уругвай – Аргентина, Конмебол, отборочный 31 августа 2017 года), чтобы увидеть какие результаты мы можем получить.
- Давайте подумаем, можно ли улучшить или внести свой вклад в тактику этого страстного вида спорта, используя эту технологию.
Мы будем использовать TensorFlow и предлагаемую модель для обнаружения объектов, все под лицензией Apache License 2.0.
Начну я с полученного мною результата:
Если вам понравилось, я приглашаю вас посвятить еще несколько минут, чтобы исследовать поэтапно процедуру построения этой модели.
Мы должны совершить три важных момента:
- Создание настраиваемого наборо данных с объектами, которые будут обнаружены. [в нашем случае Лионель Месси].
- Поиск и оценка модели с помощью TensorFlow.
- Использование созданной модели.
Шаг за шагом:
Создание собственного набора данных:
- Если мы изучим официальную документацию, то найдем эксклюзивный раздел для создания нашего пользовательского набора данных. Здесь вы можете это увидеть.
- Нам нужны изображения объектов, которые мы хотим обнаружить. И нам нужно их обозначить.
- В этом случае я использовал инструмент RectLabel, отличный вариант для MacOS. [Есть и другие альтернативы, такие как LabelImg]
- Затем для первых тестов я собрал около 119 изображений (для тестирования) футбольной игры.
- Я обозначил около 100 единиц, выбрав аргентинскую звезду.
Чтобы возпроизвести этот пример в производство, на этом этапе, безусловно, потребуется гораздо больше изображений.
Следующим шагом будет преобразование фотографий и их соответствующих тегов в файлы TFFormat. Здесь вы можете увидеть используемый сценарий. (Я использовал промежуточный шаг для преобразования ярлыков xml в csv, здесь скрипт).
Помните, что идеальной средой является создание учебного набора и набора оценки.
Тренировка нашей модели
Теперь мы начнем обучать и оценивать модель.
- Для этого шага я использовал ML Engine, так как у меня не было локальной инфраструктуры для выполнения процесса в среднем за 1 час. [здесь есть официальное описание процедуры]
- 5 рабочих с использованием стандартного gpu.
- Также настоятельно рекомендуется использовать TensorBoard, чтобы визуализировать процесс обучения и оценки.
- Не забудьте использовать прямое взаимодействие с облачным хранилищем Google. Другими словами, все файлы должны находиться в их репозитории, чтобы взаимодействовать с ними.


После использования 21,77 единиц, 1 часа 9 минут и около 20 тыс. Итераций у нас есть несколько контрольных точек и приемлемая модель.
Используя самую последнюю контрольную точку, мы переходим к преобразованию обучаемой модели в вывод. (Здесь вы можете увидеть официальную документацию).
Использование модели
Закончив эту процедуру, мы будем использовать модель для следующих опций:
- Скрипт, который использует модель и генерирует видео с результатом обнаружения. Вот пример реализации.
- Скрипт, который может оценивать видео в реальном времени и декодировать метки для расчета появления аргентинской звезды. Вот пример реализации.
Демонстрация с замедленным движением:
Больше информации о реализации здесь.
Заключение
Как можно улучшить спортивную тактику? Включить в нее больше игроков. Пока мы используем только одну камеру, но что произойдет, если бы у нас была опция камеры с более подробной информацией или полным обзором футбольного поля?
Позиции всех игроков могли быть рассчитаны, ведь мы подтвердили, что игроков можно легко идентифицировать, тогда … можно ли найти лучшую тактику, основанную на позиции игрока и их хорошо известных навыках?
Надеюсь, вам понравилась эта процедура, и я надеюсь увидеть все больше и больше реализаций TensorFlow в спортивных дисциплинах, таких как эта.