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

Сейчас доступно несколько таких программ, например, системы французской компании Sport Universal и английской ProZone. Но они предлагают лишь непосредственно результаты анализа матчей.

Наиболее полное решение было разработано в России нашими соотечественниками. Это Ascensio System  — программный комплекс для всестороннего анализа футбольных матчей и сбора статистической информации. Ascensio System создает двух- и трехмерную модели матча и предоставляет пользователю средства комплексного изучения игры, построения отчетов и т.д. Футбольные клубы могут использовать это решение для анализа как собственных матчей, так и матчей соперников, с которыми им предстоит встречаться.

Принцип работы системы состоит в следующем: матч снимается четырьмя статично установленными видеокамерами, охватывающими все поле (соседние камеры должны иметь зоны перекрытия), затем полученные видеоизображения обрабатываются, распознаются фигуры всех игроков, судей, отслеживаются перемещения мяча и участников матча на поле. По полученным данным строятся статистические отчеты, а также формируется 3D-модель матча, позволяющая взглянуть на поле с любой точки, даже глазами каждого игрока.

Что же нужно для разработки такой программы кроме нескольких лет работы талантливых программистов? На первый взгляд не так много:

  • алгоритмы распознавания образов;
  • игровой движок для 3D-визуализации;
  • консультации опытного футбольного тренера.

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

Трехмерная модель матча в Ascensio System Limited

Распознавание образов

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

Собственно, эта задача делится на две: выделение объектов (отделение изображений игроков, судей, мяча от общего фона) и отслеживание движения объектов.

Определение объектов

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

Можно также воспользоваться способом, применяемым в охранных системах, — попиксельно сравнивать текущий кадр с предыдущим. Но этот метод слишком условен — он позволяет определить положение объекта в кадре лишь очень приблизительно. Интересен еще и такой подход, при котором изображение игрока будет «вычитаться» из фона. Действительно, точно зная, какой участок поля попадает в поле зрения каждой камеры, мы можем определить в качестве фона изображение пустого поля, снятое этой камерой. А затем попиксельно сравнивать с ним каждый кадр видео-записи матча.

Отслеживание перемещений

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

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

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

Очевидно, что программная реализация таких алгоритмов — дело непростое. Вот и у программистов из Ascensio на это ушло около полугода.

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

Создание трехмерной модели

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

Специалисты из Ascensio остановили свой выбор на коммерческом решении C4, разработанном Эриком Ленгелом (Eric Lengyel). Основными факторами в пользу этого выбора послужили два обстоятельства. Во-первых, движок написан на OpenGL, а во-вторых, разработчики обеспечивают качественную техническую поддержку этого решения.

По словам специалистов из Ascensio, система использует порядка 70% возможностей C4. Весь остальной функционал, касающийся непосредственно футбола, — траектории движения игроков, анимации, модели, расчет перемещений мяча — дописывался российскими разработчиками. Кстати, программистам из Ascensio пришлось перевести работу C4 в оконный режим, так как изначально он был написан с расчетом на полноэкранный режим, используемый в играх.

Тщательно реализованные и протестированные алгоритмы распознавания образов и доработанный игровой движок позволили снабдить Ascensio System следующими возможностями:

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

Перед чемпионатом мира в 2006 г. разработчики решили воплотить в действие свои наработки, однако оказалось, что установить на немецких стадионах свои камеры было невозможно. Но для того, чтобы провести трехмерную визуализацию отдельно взятого игрового момента, достаточно было записи с телевизионной трансляции: камеры обычно довольно хорошо освещают острые игровые моменты. Таким образом, у компании появился еще один проект — сайт www.3dgoals.com . Посетителям сайта предлагается 3D-проигрыватель, позволяющий посмотреть на лучшие голы чемпионата с такого ракурса, который не был предоставлен в трансляции.

Кстати, похожие возможности предлагала и европейская компания Sportflashback, размещавшая 3D-ролики лучших игровых моментов чемпионата на сайте bbc.co.uk.

В этом году компания Ascensio планирует принять участие в освещении чемпионата Европы. А значит, вполне возможно, что ко времени выхода этого номера журнала из печати на одном из спортивных интернет-порталов появятся 3D-ролики лучших моментов Евро–2008.

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


НЕМНОГО ИСТОРИИ

Четыре года назад в российскую компанию Ascensio System Limited обратился человек с просьбой помочь ему в распознании образов игроков на футбльном поле по видерзаписи.

Идея заинтересовала разработчиков, и они взялись за дело, хотя специалистов в области футбола в компании на тот момент не было. На разработку и тестирование алгоритма распознавания образов ушло около полугода. После этого в штате появился сотрудник, имевший базовые представления о футбольной игре, который сумел перевести теоретические тренерские наработки в программный вид. Таким образом был разработан алгоритм автоматического тренинга игроков, который впоследствии вошел в систему Ascensio System.

Постепенно система совершенствовалась, добавлялся новый функционал: серверные приложения для создания и управления информацией по матчам, приложения для обработки видеоданных (автоматический трекинг, ручная доводка его результатов, распознование событий), а также модуль для игрового просмотра. Изучить возможности системы можно на примере финального матча чемпионата мира 2006 г. - демоверсия порграммы свободно доступна в Интернете по адресу: http://footballsoftpro.com/files/Ascensio_Match_Expert_Demo.exe.

Презентация программы состоялась на футбольной выставке Soccerex-2005 в Дубаи. Там же был заключен первый контракт с футбольным клубом. По иронии судьбы этот клуб представлял Россию.


C4 для 3D

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

По сути C4 представляет собой набор «менеджеров» (managers) — самостоятельных блоков, предназначенных для реализации разных типов функциональности. Блоки организованы в многослойную архитектуру, причем менеджеры, предоставляющие высокоуровневую функциональность, полностью зависят от тех, которые реализуют низкоуровневые возможности. Менеджеры самого низшего уровня (например, файловые менеджеры, менеджеры памяти и ресурсов) взаимодействуют напрямую с операционной системой, а вот блоки верхних уровней (отвечающие за анимацию, генерацию сцен, создание эффектов и проч.) полностью платформенно–независимы.

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

Отдельная сцена, обрабатываемая в C4, согласно игровой терминологии называется «мир» (world) и программно реализуется соответствующим классом. Все объекты и элементы «мира» представлены древовидной структурой. Движок C4 оперирует такими объектами, как «Свет» (доступно несколько различных источников), «Камера» (также несколько типов), «Зона» (фрагмент сцены) и т.д.

C4 доступен в версиях для платформы Windows и Macintosh. В первом случае в установочный пакет включены файлы проектов для Microsoft Visual Studio 2008, во втором — для Xcode 2.4.

Помимо явных достоинств C4 обладает и еще двумя преимуществами — относительно невысокими требованиями к оборудованию и умеренной ценой. Лицензия для независимых разработчиков на одно рабочее место стоит всего 200 долл. и включает в себя версию для Macintosh, исходные тексты движка и ряд дополнительных инструментов. Минимальные требования среды к оборудованию также вполне приемлемы: для правильной работы C4 достаточно видеокарты NVIDIA GeForceFX 5200, ATI Radeon 9500 или Intel GMA X3000.

Ознакомительную версию системы можно загрузить с сайта http://www.terathon.com.