Пару лет назад я рассказывал, как мы трекаем движения игроков на поле, что помогает очень круто оцифровать тренировки детей (в наших футбольных школах). Потом оказалось, что это нужно футбольным клубам по всему миру. Но там классическая засада — мы дошли до определённого предела точности и остановились. А дальше последовал мир дивных открытий, отчасти связанный с ночной лигой Лондона, которая играет, внезапно, вечером. Ну и потому что наш софт начали тестить в большом футболе, и им зашло.
Принцип такой:
- Берём кадр видео и Ёлу, она размечает все объекты (игроков, зрителей, мяч, ворота и так далее), затем мы отсеиваем птичек, зрителей и судей и оставляем только значимые объекты.
- Делаем так для каждого кадра видео.
- Затем привязываем координаты игроков к плоскости поля и получаем положение каждого объекта с точностью до 0,5 метра.
- Пытаемся связать игрока из первого кадра с максимально близким (или похожим) объектом во втором кадре и так далее, то есть оттрекать каждого конкретного человека, чтобы можно было видеть их движение по полю весь матч.
- Пытаемся понять, что с мячом: кто-то им владеет, он летит и где он вообще.
То есть сначала у нас есть группа разрозненных объектов, потом каждый из них приобретает траекторию, потом, когда есть траектории, на них появляются события вроде «получил мяч», «отдал пас» и так далее.
Чтобы вы понимали глубину проблемы, покажу вот этого архангела:
Вокруг него не святая аура, а футболист другой команды. И нужно как-то это понять.
Давайте сначала перечислю проблемы, а потом расскажу, что мы с этим делали (или не делали).