惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
A
About on SuperTechFans
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
I
InfoQ
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
U
Unit 42
The Cloudflare Blog
Y
Y Combinator Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
fast-volleyball-tracking-inference — детектор волейбольно...
asigatchov · 2026-05-17 · via Все публикации подряд на Хабре

YOLOv8 и поиск мяча

Так сложилось, что я люблю играть в волейбол и активно снимаю свои игры и тренировки.

У любителей обычно стоит стационарная камера на штативе, которая захватывает всю площадку (или почти всю) в формате 16:9. При этом современные соцсети потребляют контент вертикально (9:16) и короткими роликами около минуты.

Задача: быстро делать вертикальные видео из любительских волейбольных съёмок.

Центральный объект внимания в волейболе — мяч. Значит, нужно определять начало розыгрыша и дальше уверенно следить за мячом. Если сопровождать мяч и делать кроп из 16:9 в 9:16 — получаем готовый вертикальный ролик.

При изучении темы детекции объектов почти сразу попадаешь на семейство YOLO. Отличные модели. В предобученных весах есть класс sport ball.

Но возникает проблема. Площадка 18×9 метров, диаметр мяча — 65–67 см. Чем дальше мяч от камеры, тем он меньше на изображении и тем хуже его определяет YOLO.

Человек легко отслеживает мяч даже на сложных кадрах, потому что видит движение и контекст последовательности. А при покадровой обработке YOLO часто «теряет» маленький объект.

На первом этапе мы попробовали superframe — три grayscale-кадра, записанные в RGB-каналы. Это позволило явно подсветить движущиеся объекты.

superframe-3grayscale

superframe-3grayscale

Такой подход заметно повысил точность детекции маленьких движущихся объектов.

TrackNetV4 и специализированные спортивные модели

Оказалось, что задачу уже хорошо решили до нас. Существует целая линейка моделей TrackNet (TrackNetX), специально созданных для отслеживания быстрых и мелких объектов в спорте (теннис, бадминтон, ).

TrackNet работает на основе тепловых карт (heatmap). Модель смотрит не на один кадр, а на последовательность (обычно 3 кадра) и предсказывает положение мяча с учётом траектории.

В TrackNetV4 добавили механизм внимания для движущихся объектов: github.com/TrackNetV4/TrackNetV4.

Существует два основных режима работы:

  1. Один центральный кадр → одно предсказание — максимальная точность.

  2. Три кадра → три предсказания — выше скорость.

vball-net — наша производительная модель под CPU

Как появилась модель vball-net ?

Мы взяли TrackNetV4 за основу и сильно модифицировали её под свои нужды.

Основные изменения:

  • На вход подаётся 9 grayscale-кадров вместо 3 RGB.

  • На выходе — 9 предсказаний (heatmap для каждого входного кадра).

Гипотезы, которые подтвердились:

  1. Человек уверенно видит волейбольный мяч даже на чёрно-белом видео → нейросети тоже достаточно яркостной информации.

  2. Волейбольный мяч значительно крупнее теннисного → можно радикально уменьшить модель.

Количество параметров

TrackNetV4 - 11.04 млн
vball-net - ~58k

Результат на Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz - 80 fps ( на 1920х1080 видео)

Преимущества легких моделей

скорость работы 80+ fps на CPU
скорость обучение - 20к кадров - 8-10мин на эпоху для RTX3060 12GB. Модель на пик выходит примерно за 30 эпох (зависит от разера датасета)

Как результат мы можем дообучить модель практически на любой игровой видео карте
На старте автор проводил обучение на RTX 2060 6G ( 20 мин на эпоху)

Специфика датасета и дальнейшее улучшение

Все видео сняты с экшен-камер на 30 fps:

  • Xiaomi Mijia 4K Action (рыбий глаз)

  • DJI Action 2 (сильный «туннель» из-за коррекции дисторсии)

  • DJI Action 4 (аналогично)

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

Создание вертикального видео

Создание видео выполняется в 3 прохода

1 этап - детекция мяча - получаем ball.csv файл с предсказаниями центра мяча
2 этап - строим треки мяча на основе координат и фильтруем ложные детекты
3 этап - для кокретрых треков создаем вертикальное видео

VIDEO="examples/gtu_20250316_002.mp4"
MODEL="models/VballNetV1_seq9_grayscale_330_h288_w512.onnx"
OUT="output"

# 1) Detection -> ball.csv
uv run src/inference_onnx_seq_gray_v2.py \
  --video_path "$VIDEO" \
  --model_path "$MODEL" \
  --output_dir "$OUT" \
  --only_csv

# 2) Tracks from CSV -> track_*.json
uv run src/track_calculator.py \
  --csv_path "$OUT/gtu_20250316_002/ball.csv" \
  --output_dir "$OUT"


# 3) Vertical reels from tracks
uv run src/make_reels.py \
  --video_path "$VIDEO" \
  --track_0026.json "$OUT/gtu_20250316_002/tracks/track_0028.json \
  --output_dir "$OUT"

Привер reels/shorts можно посмотреть по ссылкам
Youtube https://youtube.com/shorts/26lpljOL9WU?feature=share
VK - https://vkvideo.ru/clip-55450327_456242219

github - инференса https://github.com/asigatchov/fast-volleyball-tracking-inference