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







