Почему распознавание поз человека ломается на реальных кадрах
Распознавание поз человека в демо-ролике и на реальном объекте — две разные задачи. На тестовом наборе точность оценки позы держится в районе 90%, а на живом потоке с камеры наблюдения падает вдвое: люди перекрывают друг друга, свет меняется в течение дня, а скелет «дрожит» на каждом кадре. Именно здесь ломается большинство внедрений — модель обучена на чистых данных, а эксплуатируется на грязных.
Первая причина — качество обучающих данных. Публичные наборы сняты в студии, с идеальным светом и полным силуэтом в кадре. Реальность даёт контровой свет из окна, тёмную одежду на тёмном фоне, частичные перекрытия и нестандартные ракурсы. Модель, не видевшая таких примеров, уверенно ошибается: путает левую и правую конечности, «приклеивает» сустав к фону, теряет кисти и стопы.
Вторая — проблемы компьютерного зрения, которые не решаются одной архитектурой. Дрожание скелета между кадрами, ложные срабатывания на отражениях и тенях, распад позы при быстром движении. Отдельная головная боль — несколько человек в кадре: без корректной привязки треков скелеты «перескакивают» между людьми, и аналитика считает одного человека за двоих.
Третья — условия эксплуатации. Камера стоит не там, где нужно, угол наклона искажает пропорции, а слабый канал связи роняет кадры. Всё это бьёт по точности оценки позы сильнее, чем сама модель.
Разбираем, как это закрывается: от сбора данных под конкретную площадку до фильтрации треков и калибровки камер.
Что даёт выверенная система распознавания поз человека
Точность оценки ключевых точек
Точность распознавания позы определяется не одной моделью, а связкой: детектор человека, оценка ключевых точек, временная фильтрация. На тестовом наборе мы считаем метрику по каждой точке отдельно — голова и корпус обычно дают отклонение в пределах нескольких пикселей, а кисти и стопы проседают в разы. Если не разделять эти зоны, средняя цифра выглядит прилично, а на практике система путает поднятую руку с наклоном. Раздельная валидация по группам точек сразу показывает, где нужен второй проход по кадру.
Устойчивость к реальным условиям съёмки
Камеры на объекте дают пересвет, перекрытия и людей в кадре больше десяти. Мы добавляем трекинг между кадрами: если точка на секунду потерялась, её положение восстанавливается по траектории, а не скачет. Это убирает до трети ложных срабатываний на сценах с плотным потоком. Отдельно настраиваем порог уверенности — события ниже него не уходят в бизнес-логику, поэтому система не реагирует на случайный силуэт.
Скорость обработки потока
Поток с нескольких камер обрабатывается пакетами, а не по кадру: инференс идёт на ускорителе, декодирование и трекинг — параллельно. На практике это даёт обработку видеопотока в реальном времени без задержки, заметной оператору. Для архивного разбора включается пакетный режим — система проходит сутки записи за минуты, что важно при разборе инцидентов задним числом.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Модель на одной камере | Один ракурс, статичная сцена | Перекрытия ломают оценку |
| Мультикамерная схема | Зал, несколько зон | Нужна синхронизация потоков |
| Пакетная обработка архива | Разбор записей | Не для онлайн-реакции |
Мы работаем на MediaPipe и открытых моделях оценки позы — это даёт контроль над точностью и отсутствие зависимости от одного поставщика. Опишите сценарий съёмки — вернёмся с оценкой и планом.
Как мы выстраиваем проект: от аудита данных до передачи модели
Проект внедрения системы распознавания начинается не с выбора модели, а с разбора задачи: какие позы критичны, в каких условиях снимает камера, что считается ошибкой. От ответов зависит и схема разметки, и требования к железу. Ниже — этапы, которые мы проходим на каждом проекте.
- Аудит задачи и данных. Смотрим, что уже есть: записи с камер, логи, ручные наблюдения. Определяем целевые классы поз, допустимую задержку вывода и условия съёмки — ракурсы, свет, перекрытия. На выходе — технические требования и метрика качества, по которой будем принимать работу.
- Подготовка датасета. Размечаем ключевые точки скелета, чистим кадры, где разметка неоднозначна, балансируем классы. Отдельно собираем сложные случаи: частично перекрытые фигуры, людей в кадре больше одного, нестандартная одежда. Датасет фиксируем версией — чтобы результат был воспроизводим.
- Выбор и обучение модели. Берём за основу актуальную ветку открытой архитектуры оценки позы и дообучаем на данных заказчика. Сравниваем 2–3 варианта по точности на контрольной выборке и по скорости инференса на целевом оборудовании.
- Валидация модели. Проверяем не среднюю точность, а поведение на пограничных позах и в шумных условиях. Считаем долю верных срабатываний по каждому классу отдельно — общая метрика часто скрывает провал на редком, но важном действии.
- Интеграция в контур заказчика. Подключаем модель к видеопотоку или архиву, настраиваем постобработку и сглаживание треков, чтобы система не срабатывала на случайном движении. Прогоняем на реальном потоке в рабочие часы.
- Передача и сопровождение. Отдаём веса, конфигурации, скрипты запуска и документацию по разметке. Обучаем команду заказчика дообучать модель на новых данных без нас.
Каждый этап заканчивается артефактом, который можно проверить: требования, размеченный датасет, отчёт по метрикам, работающий сервис. Это позволяет остановиться на любом шаге и увидеть, что уже сделано. Опишите задачу — вернёмся с оценкой сроков и планом по этапам.
Чем оценка позы по одной камере отличается от многокамерной схемы?
Однокамерная оценка позы восстанавливает скелет по проекции на одну плоскость изображения. Пока человек стоит лицом к камере и не перекрыт, точность по ключевым точкам достаточна для большинства задач: подсчёт повторений, контроль осанки, анализ жестов. Проблема начинается там, где появляется глубина — поворот корпуса, перекрытия в кадре, несколько человек на разных дистанциях. Модель видит плоскую картинку и достраивает третью координату догадкой, поэтому при развороте на 90° ошибка по положению суставов растёт кратно.
Многокамерная схема снимает это ограничение за счёт триангуляции: одна и та же точка скелета находится на нескольких ракурсах, и положение в пространстве вычисляется пересечением лучей. Перекрытия в кадре перестают быть фатальными — если один ракурс закрыт, остальные продолжают давать корректную оценку. Плата за это — калибровка: камеры нужно свести в единую систему координат, синхронизировать по времени и удерживать эту калибровку при перестановках оборудования.
Выбор конфигурации камер — это всегда компромисс между точностью и сложностью развёртывания. Одна камера — быстрый запуск, минимум железа, но жёсткие требования к ракурсу и планировке. Две-три камеры закрывают перекрытия и дают объёмную позу, однако требуют стабильной синхронизации потоков и в разы больше вычислений на инференс. Четыре и более — это уже задача уровня захвата движения, где точность нужна для биомеханики или спортивной аналитики.
На практике мы сначала считаем, какие сценарии критичны: если человек всегда в зоне видимости и не перекрыт, однокамерной оценки хватает. Если в кадре несколько людей, оборудование или свободное перемещение — многокамерная схема окупается устойчивостью результата. Конфигурацию подбираем под геометрию помещения, а не по шаблону: расстановка камер важнее их количества.
Кейс: как система распознавания позы убрала ложные срабатывания
Заказчик — сеть производственных площадок — пришёл с готовой моделью распознавания поз, которая на демо-данных показывала приемлемую точность, но в цеху срабатывала хаотично. Ложные тревоги на перекрытиях и тенях от конвейера доходили до 30-40% от всех событий, операторы перестали реагировать на сигналы, и система фактически не работала. Цена ошибки — не сломанный отчёт, а отключённый контроль опасных зон.
Что показал разбор
Мы начали не с модели, а с данных: разметили записи с реальных камер и сверили их с журналом срабатываний. Выяснилось, что ключевые точки скелета терялись при частичном перекрытии — модель «достраивала» позу по догадке и выдавала уверенность выше реальной. Плюс порог срабатывания был выставлен один на все камеры, хотя ракурсы и освещение различались.
Что изменили
Пересобрали контур: добавили проверку устойчивости ключевых точек по нескольким кадрам, ввели отдельный порог на каждую камеру и калибровку под её ракурс. Спорные кадры уходят на доразметку и попадают в следующий цикл обучения — модель дообучается на данных заказчика, а не на абстрактном наборе.
| Метрика | До | После |
|---|---|---|
| Ложные срабатывания | 30-40% событий | ниже 5% |
| Пропуск опасных поз | 1 из 12 | 1 из 60 |
| Задержка сигнала | 2-3 с | до 0,5 с |
Результат внедрения
Операторы снова доверяют сигналу, контроль опасных зон вернулся в рабочий режим. Отдельно зафиксировали метрики точности по каждой камере — теперь деградацию видно сразу, а не по жалобам смены. Контур дообучения работает на записях заказчика, поэтому новые ракурсы и смена освещения не требуют переписывать систему с нуля.
Для контроля качества разметки и обучения мы опираемся на CVAT — она даёт прозрачный журнал правок, по которому видно, кто и что менял в датасете.
Совместимость, откат и доступы: что обсудить до старта
Перед стартом почти всегда всплывают три вопроса: как система распознавания поз человека встроится в существующий контур, что будет при деградации модели и кто получит доступ к видеопотоку и результатам. Отвечаем на них до первой строки кода — потому что цена ошибки здесь не в переделке интерфейса, а в пересборке всего конвейера обработки.
Что если точность на наших камерах окажется ниже заявленной? Мы фиксируем метрику на ваших записях до начала работ: размечаем контрольную выборку, считаем долю верно определённых ключевых точек и только потом выбираем архитектуру. Если ракурс, освещение или плотность людей в кадре мешают — это видно на этом этапе, а не в проде.
Как устроен откат модели? Каждая версия весов и конфигурации инференса версионируется и хранится как отдельный артефакт. Переключение на предыдущую версию — одна команда, без пересборки сервиса; старая версия остаётся рабочей, пока новая не отработает на теневом потоке.
Что с доступами и безопасностью? Видеопоток и результаты инференса разводятся по разным ролям: оператор видит события, но не сырое видео, администратор управляет моделями, но не выгружает персональные данные. Все обращения к хранилищу логируются.
Можно ли внедрить систему без остановки текущих процессов?
Да. Инференс подключается к копии потока, работает параллельно с существующей логикой и не влияет на неё. Переключение на новую систему — отдельный шаг, который можно откатить в любой момент.
На руки вы получаете:
- конфигурации инференса и правила версионирования моделей;
- схему интеграции системы распознавания с вашими сервисами и очередями;
- политику доступов и безопасности с разграничением ролей;
- регламент отката модели и порядок выката новых версий;
- разметку контрольной выборки и протокол замеров точности;
- передачу документации: описание архитектуры, инструкции по эксплуатации и чеклист приёмки.
Опишите задачу — вернёмся с оценкой и планом: какие данные нужны для замеров, где пройдёт граница интеграции и что попадёт в первую поставку.
Ориентировочные сроки этапов внедрения системы распознавания позы
Сроки в проектах распознавания поз определяет не модель, а данные и инфраструктура: разметка скелетов, калибровка камер, требования к задержке вывода. Ниже — ориентировочные сроки этапов проекта, которые мы уточняем после разбора задачи и пилота на ваших записях.
Этапы частично идут параллельно: разметку можно вести, пока модель учится на уже готовой части выборки, а интеграцию начинать до финального обучения — на промежуточной версии. Поэтому сумма строк не равна общему сроку проекта.
Разброс в сроках даёт не объём кода, а качество исходных данных. Если записи однотипные и люди в кадре не перекрывают друг друга, точность выходит на целевой уровень за считанные итерации; при плотной посадке, слабом свете и нестандартных ракурсах добавляются циклы дообучения и расширение разметки — это честно видно уже на пилоте.
Опишите задачу — вернёмся с оценкой и планом по этапам под ваш сценарий.







