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

Однако среди маркетинговой мишуры встречается и интересное для исследования. Так всем участникам серии забегов «Бегом по Золотому кольцу» после финиша в личном кабинете на сайте платформы торжественно вручается не только электронная грамота, но и видео финиша. Все эти видео, впрочем, доступны любому посетителю странички с результатами. Например - результаты десятикилометрового забега на Ярославском полумарафоне.

К великому сожалению это лишь видео финиширующих спортсменов, а не находящихся на дистанции. Но тем не менее, сделав скидку на это, мы имеем:

  • видео телодвижений на несколько секунд

  • результат спортсмена

  • некоторые его данные: пол, возраст

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

Датасет

В набор попало около 1000 записей участников пяти забегов на 10 км: Ростов, Рыбинск, Ярославль, Кострома и Сергиев Посад. Для каждого есть видео, координаты ключевых точек тела и метаданные с возрастом, полом и результатом.

Распределение по итоговому времени участников, попавших в датасет
Распределение по итоговому времени участников, попавших в датасет

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

Как получить точки скелета

Используем связку YOLOX + RTMPose-M следующим образом:

  1. Находим людей. YOLOX выделяет прямоугольные области с людьми в кадре.

  2. Определяем ключевые точки. RTMPose-M для каждого человека предсказывает 26 точек формата Halpe26: плечи, локти, кисти, таз, колени, лодыжки, пятки, точки носков стопы и головы.

  3. Трекаем человека между кадрами. Трекер сопоставляет обнаружения по положению и движению.

  4. Отфильтровываем ненадёжные измерения. Отсеиваем по уверенности RTMPose, короткие пропуски до 5 кадров интерполируем.

Контрольные точки для анализа механики бега
Контрольные точки для анализа механики бега

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

Синхронизация данных

Перед сравнением приводим направление бега к единому, приблизительно нормализуем масштаб по проекционным длинам сегментов тела и совмещаем положение таза. Чтобы наложить движения друг на друга, нужна общая точка отсчёта. Единый уравнитель - цикл, два шага левой и правой ногой. Начало цикла — максимальный вынос левой лодыжки вперёд. Следующее такое положение завершает цикл.

Синхронизация по фазе циклов бега быстрых, средних и медленных бегунов
Синхронизация по фазе циклов бега быстрых, средних и медленных бегунов

Далее каждый полный цикл переводим в шкалу от 0 до 100%. Такая синхронизация по фазу стирает данные о частоте шагов, их храним отдельно. Неполные циклы не достраиваем, траектории искусственно не замыкаем.

Исследуем параметры механики бега

Посмотрим на:

  • частоту шагов — каденс

  • углы сгибания конечностей

  • постановку стопы

Что по каденсу

Сортируем записи по времени на 10 км и выбираем три фиксированные группы: первые 50, средние 50 и последние 50 (их результаты 30:58–38:28, 52:44–55:36 и 74:02–95:44) соответственно.

Сравнение частоты шагов трёх групп бегунов: из начала, середины и конца списка
Сравнение частоты шагов трёх групп бегунов: из начала, середины и конца списка

Медиана для всех групп уместилась в пределах 160-180. Связь с результатом заметна, но не очень сильно (например, разница в скорости между первой и третьей группой в 2-3 раза).

Что по углам

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

Сравнительное наложение скелетов бегунов (быстрые, средние, медленные)
Сравнительное наложение скелетов бегунов (быстрые, средние, медленные)

Заметно, что быстрые бегуны более амплитудные, и держат корпус прямее. Посмотрим по отдельности разные точки. Конкретные параметры взяты из статьи Running Technique is an Important Component of Running Economy and Performance. Например, средний диапазон сгибания колена за полный цикл у быстрых значительно больше.

Сгибание колена, градусы, 0° — прямая нога
Сгибание колена, градусы, 0° — прямая нога

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

Вертикальные перемещения таза, % проекционной длины ноги, вверх положительно
Вертикальные перемещения таза, % проекционной длины ноги, вверх положительно

Максимальный вынос бедра вперёд также больше у быстрых: около 22° против 15° у медленных, тогда как заднее положение близко. Хотя, в целом более широкий рисунок движения бедра коррелирует с более быстрым бегом (статейка).

Движение бедра, угол к вертикали, градусы, вперёд положительно
Движение бедра, угол к вертикали, градусы, вперёд положительно

У быстрых корпус выглядит скорее отклонённым назад, средний размах его колебаний тоже больше.

Положение корпуса, проекционный наклон вперёд, градусы
Положение корпуса, проекционный наклон вперёд, градусы

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

Траектория лодыжки относительно таза, одинаковый масштаб осей
Траектория лодыжки относительно таза, одинаковый масштаб осей

И целиком для наглядности:

Сравнительные движения ног, с траекториями лодыжек
Сравнительные движения ног, с траекториями лодыжек

Отдельно дальше глянем на тип постановки стопы оносительно пятки и носка.

Экономичность бега

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

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

Каденс

Более высокая частота шагов слабо связана с меньшими энергозатратами. Но это не означает, что увеличение каденса улучшит экономичность каждого бегуна. Van Hooren et al., 2024

Вертикальные перемещения таза

Меньшие перемещения умеренно связаны с меньшими энергозатратами. Van Hooren et al., 2024

Сгибание колена и движение бедра

Отдельные исследования связывают экономичность с параметрами суставов во время опоры, однако устойчивой общей связи суставных углов и амплитуд с экономичностью метаанализ не выявил. Folland et al., 2017

Наклон и колебания корпуса

Универсального оптимального угла наклона не установлено. Van Hooren et al., 2024

Постановка стопы

Убедительного универсального преимущества приземления на пятку или переднюю часть стопы по экономичности не установлено. Van Hooren et al., 2024

На постановке стопы можно остановиться поподробнее. Попробуем по видео, определив угол наклона камеры к поверхности определить моменты касания поверхности.

Модель стопы и момент касания (для примера: с пятки и с носка)
Модель стопы и момент касания (для примера: с пятки и с носка)

Берем по 100 спортсменов из топа рейтинга, из середины и из конца, определяем момент опоры:

Момент опоры стопы c наложением корпусов спортсменов
Момент опоры стопы c наложением корпусов спортсменов

Конкретно стопы с наложением, откалиброванные к плоскости поверхности земли:

Стопы в момент опоры у быстрых, средних и медленных бегунов
Стопы в момент опоры у быстрых, средних и медленных бегунов

Для большинства случаев нет возможности сделать явный вывод и постановке стопы, так как камера расположена под произвольным углом к бегущему. Суммарно результаты получились такими:

Постановка стопы
Постановка стопы

Предположительно, явный бег «с пятки» — перерогатива менее опытных бегунов. А вот про бег «с носка» какие-то явные выводы сделать сложно. По тем данным, что получилось добыть, явно «с носка» бегают скорее медленные бегуны, но и результаты эти сравни погрешности.

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

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

Предсказываем результат

Попробуем предсказать результат спортсмена на 10 км забеге, используя данные одного цикла движения. Скорость, каденс, возраст и пол во входы не включаем. Собираем для каждой записи датасета массив признаков. Берем семь углов:

Семь углов на скелете
Семь углов на скелете

И вычисляем значения в 16 фазовых точках полного цикла, получаем всего суммарно 112 признаков для обучения:

Величины углов в пределах полной фазы
Величины углов в пределах полной фазы

Для интереса сравним два подхода:

  • кастомная модель линейной регрессии

  • OpenAI Decisions

и два сценария:

  • новые записи со знакомых камер

  • целый забег, исключённый из обучения

Обучаем модель линейной регрессии с L2-регуляризацией; признаки стандартизируем только по обучающей части, а силу регуляризации подбираем внутренней кросс-валидацией.

В каждый запрос Decisions передаём те же 112 чисел и 50 размеченных примеров из соответствующей обучающей части — по десять на диапазон времени. Это контекстные примеры, без дообучения весов модели. На выходе — вероятности вхождения в 5 временных диапазонов. Полученные вероятности переводим в минуты через средние результаты этих диапазонов в обучающей части.

Результаты сравнения
Результаты сравнения

На одинаковых 50 тестовых записях модель линейной регрессии оказалась точнее при знакомых камерах, Decisions — при исключённом забеге. Стоит помнить, что сравнение умозрительное: модель обучалась на всем доступном датасете, а Decisions получил 50 примеров в окне контекста.

Теперь можем предполагать за сколько минут человек пробежит десятку, основываясь лишь на его беговой механике:

Предсказание времени на 10 км основываясь на технике бега
Предсказание времени на 10 км основываясь на технике бега

Итого

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

По форме одного полного цикла удалось получить прогноз результата. В ограниченной проверке на 50 записях средняя абсолютная ошибка составила 4,9 минуты у модели линейной регресии и 6,6 у Decisions при знакомых камерах; при исключении забега из обучения — 7,7 и 5,9 минуты. В движении есть полезный предсказательный сигнал, однако устойчивость этих результатов ещё предстоит проверить, так как данных использовалось довольно мало.

Ну и главное «но» — бег на дистанции по большей части сильно отличается от движений на финише, кто-то притормаживает, кто-то наоборот разгоняется, а кто-то вообще вскидывает руки. Поэтому исследованием бегунов это можно назвать с ещё большей натяжкой, скорее финишёров.