Как считаем
Все цифры отчёта считает одна функция по данным разметки — ниже её формулы. Если вы видите цифру, которая не сходится с формулой, это ошибка, и мы её чиним.
Корт и координаты
- План корта по правилам WSF: пол 9.75 × 6.4 м, short line на 5.44 м от фронтальной стены, T — на половинной линии.
- Координаты: x поперёк корта (0 — левая боковая стена), y вдоль (0 — фронтальная стена). Фронтальная стена: tin 0.48 м, линия подачи 1.78 м, аут 4.57 м.
- Кадр → план: гомография по 4–9 точкам разметки (DLT с нормализацией; при >4 точках — метод наименьших квадратов). Ошибка наложения показывается при калибровке.
- Позиция игрока — середина лодыжек по модели поз, переведённая на план. Частота — 3–10 точек в секунду, как выбрано при анализе.
Удары и розыгрыши
- Удар по звуку: энергия сигнала после разностного фильтра окнами 10 мс; «новизна» — прирост относительно медианы предыдущих 300 мс; удар — пик выше медианы + k·MAD в окне 3 с (k — чувствительность, 4–8), не чаще раза в 120 мс.
- Кто бил (автоматически): у кого выше скорость запястий в ±0,2 с от удара. Человек в разметке может исправить.
- Розыгрыш: подряд идущие удары с паузами не больше 3 с; меньше 2 ударов — не розыгрыш. Начало — за 0,3 с до первого удара, конец — через 1 с после последнего.
- Тип удара, место на стене и полу, исход розыгрыша — только ручная разметка. Автоматика их не придумывает.
| Метрика | Формула |
|---|---|
| Ударов | число ударов игрока (все, с типом и без). |
| Выиграно розыгрышей | розыгрыши с известным победителем, где игрок участвовал: выиграно / всего. Победитель — явный, иначе по исходу: виннер и «нет лета» — очко бившему последним, ошибка и строук — его сопернику, лет — очка нет. |
| Виннеры | розыгрыши с исходом «виннер» или «нет лета», где игрок бил последним. |
| Ошибки | розыгрыши с исходом «ошибка» или «строук», где игрок бил последним. |
| % прижатых к стене | среди драйвов, воллеев и возвратов подачи с отметкой отскока на полу — доля с x ≤ 0.5 м или x ≥ 5.9 м (не дальше 0.5 м от боковой стены). |
| % ниже линии подачи | среди ударов с отметкой на фронтальной стене — доля с высотой меньше 1.78 м. |
| % глубоко | среди драйвов, воллеев и возвратов с отметкой на полу — доля с y ≥ 8.75 м (последний метр у задней стены, пол 9.75 м). |
| Возврат подачи: качество | по отметке отскока: высокое — прижат и глубоко; среднее — одно из двух; низкое — ни то ни другое. Без отметки — не считается. |
| Возврат подачи → выигрыш | среди розыгрышей с возвратом этого игрока и известным победителем — доля выигранных им; отдельно по каждому уровню качества. |
| Подача → выигрыш | среди розыгрышей, где игрок подавал (явно отмечено, иначе — бил первым) и победитель известен, — доля выигранных. |
| Средняя длина розыгрыша | среднее число ударов в розыгрышах, где игрок участвовал. |
| Среднее время розыгрыша | среднее (конец − начало) по тем же розыгрышам. |
| Дистанция за розыгрыш | сумма расстояний между соседними точками трека стоп внутри розыгрыша; шаги быстрее 8 м/с (сбой трекинга) отбрасываются. Среднее по розыгрышам. |
| Средняя скорость | вся дистанция в розыгрышах / всё время розыгрышей. |
| Среднее расстояние от T | среднее расстояние точек трека в розыгрышах до точки T (3.2; 5.44). |
| Возврат на T | после каждого удара игрока (кроме последнего в розыгрыше) — время до первой точки трека не дальше 1 м от T в окне 4 с. Доля удавшихся возвратов и среднее время по ним. |
| Время впереди short line | доля точек трека в розыгрышах с y < 5.44 м. |
| Удары из передней зоны | доля ударов, при которых игрок (ближайшая точка трека, ≤ 0,3 с) был впереди short line. |
| Доля воллеев | воллеи / все удары с типом. |
| Тепловая карта пола | сетка 8 × 12 клеток (0,8 × 0,81 м): доля точек трека в розыгрышах, попавших в клетку. |
| Тепловая карта стены | сетка 8 × 6 (0,8 × 0,76 м) по отметкам на фронтальной стене. |
| Удар × зона | для каждого типа удара — число ударов, виннеров и ошибок по 6 зонам отскока: перед (до short line), середина, зад (последние ~2,2 м), слева и справа от половинной линии. |
Ориентиры («профи ≈ 50 %») — из открытых публикаций о сквош-аналитике, не наши замеры. Код формул открыт в репозитории RANKID: src/lib/vision/metrics-core.ts, с тестами.