Skillfactory совместно с KION провели хакатон, где студентам предложили разработать инструмент видеоаналитики для распознавания действий в кино. Рассказываем, как команда из трех студентов разработала систему с событийной логикой, оптимизировала производительность и превратила прототип в полноценный инженерный продукт.
Распознать действие по «точкам и палочкам»: с каким брифом пришли партнеры
Онлайн-кинотеатр KION поставил перед участниками хакатона задачу разработать прототип системы, которая умеет распознавать действия персонажей на видео не по изображению целиком, а по скелетным данным — ключевым точкам человеческого тела.
Такой подход позволяет абстрагироваться от визуального шума — освещения, фона, ракурсов — и работать с чистой динамикой движения. В перспективе это может использовать для более точного структурирования контента, анализа сцен и развития интеллектуальных инструментов платформы.
Студентам предстояло не просто обучить модель на фиксированном наборе классов, а создать гибкую систему, способную распознавать как индивидуальные, так и групповые действия. Система должна была распознавать как базовые движения — сидение, ходьбу, прыжки, курение, — так и сложные сценарии взаимодействия — драку, танец, рукопожатие, объятия, митинг, формирование круга или треугольника, перетягивание каната. Также важно было научить модель не просто «видеть» отдельных людей, а отличать коллективное действие от набора разрозненных движений в кадре.
Партнеры задали и конкретные технические ориентиры:
- использование Python и современных CV/ML-инструментов (PyTorch или TensorFlow, OpenCV);
- детекция поз с помощью YOLO-pose или аналогов;
- оценка качества по метрикам Accuracy, Precision, Recall и FPS;
- требование к производительности — обработка одного часа FullHD-видео не более чем за 20 минут.
Архитектурно команды не ограничивали: можно было использовать графовые нейронные сети (например, ST-GCN), трансформеры или гибридные подходы. Важнее было не строгое следование конкретной технологии, а способность предложить работающее и масштабируемое решение.
«Мы постоянно были на созвонах»: как студенты построили разработку
Над проектом работала компактная команда из трех человек, и именно это во многом определило подход к работе. Отсутствие «запаса по людям» заставляло держать высокий темп: участники постоянно синхронизировались, быстро проверяли гипотезы и сразу внедряли рабочие решения в общий пайплайн.
Тимлид команды Елизавета Большова координировала процесс и параллельно участвовала в разработке. Несмотря на небольшой состав, команда покрывала все ключевые направления: Computer Vision (детекция поз и графовые модели), ML-инжиниринг (интеграция мультимодальной модели) и backend — для сборки решения в единый сервис.

Работу выстроили в несколько этапов:
- анализ предметной области и изучение референсных архитектур (включая датасеты уровня NTU);
- параллельная разработка, в которую входят, с одной стороны, настройка детекции поз и графовых моделей, а с другой — разворачивание мультимодальной модели;
- интеграция компонентов через API и сборка единого пайплайна;
- тестирование на реальных видео, оценка метрик и производительности;
- подготовка финальной демонстрации и документации.
Технически решение собрали на Python с использованием PyTorch и OpenCV. Для детекции поз применяли YOLO-pose, для анализа последовательностей — графовую архитектуру ST-GCN++, а для сложных случаев — мультимодальную модель Qwen2-VL, развернутую в Docker-контейнере с доступом через REST API.
Отдельной задачей было организовать инфраструктуру: участники работали на разных устройствах (включая локальные машины и GPU), в разных часовых поясах и с разной нагрузкой. В результате команда фактически выстроила «непрерывный цикл разработки»: пока один участник тестировал и анализировал ошибки, другой подхватывал задачи и развивал следующие компоненты.
Несмотря на высокую скорость работы, команда не отказалась от инженерной дисциплины: модули изолировали, взаимодействие выстроили через API, а сложные компоненты (например, мультимодальную модель) оформили как отдельные сервисы. Такой подход позволил одновременно экспериментировать с архитектурой и сохранять управляемость проекта.
Каким получился итоговый продукт
В результате команда разработала гибридный пайплайн видеоаналитики, который сочетает высокую скорость обработки и точечное использование тяжелых моделей. Базовая система работает в реальном времени и обрабатывает до 200 кадров в секунду, а при обнаружении сложных или неоднозначных сцен подключает мультимодальную модель для дополнительной проверки.
Ключевой особенностью решения стала событийная логика: система большую часть времени работает в легком режиме, но при срабатывании триггера — например, подозрительного жеста или сложного группового взаимодействия — на долю секунды «задумывается» и уточняет результат с помощью VLM. Такой подход позволил одновременно сохранить производительность и повысить точность на сложных кейсах.
На выходе система формирует структурированный JSON-отчет с таймкодами, персонажами и классификацией действий, что делает решение пригодным для интеграции в реальные продукты.
При этом команда осознанно фиксировала ограничения системы и сразу предлагала пути развития. Например, текущая версия пока не поддерживает мультилейблинг — модель выбирает одно доминирующее действие, даже если их несколько. Однако архитектура уже позволяет расширить эту функциональность в следующих итерациях.
«Мы не первый год работаем со студентами, и в этот раз результат превзошел ожидания по глубине проработки. Участники продемонстрировали понимание фундаментальных ограничений чисто скелетного подхода и предложили элегантные инженерные решения. Например, гибридные пайплайны с триггерной активацией визуально-языковых моделей позволили сохранить высокую производительность, а математический анализ групповых сцен — распознавать сложные взаимодействия без использования GPU. При этом команды честно задокументировали ограничения системы и предложили конкретные пути их устранения, что говорит о зрелом системном мышлении.
Мы рассматриваем эти прототипы как доказательный концепт для промышленной системы видеоаналитики и планируем использовать отдельные компоненты в наших внутренних разработках».
В итоге проект вышел за рамки учебного задания: команда не только реализовала рабочий прототип, но и предложила архитектуру, которую можно масштабировать и использовать в реальных задачах видеоаналитики.



