Чому розпізнавання жестової мови на базі AI зривається на живому відео
У розпізнаванні жестової мови конвеєр упевнено проходить розмічений запис — і розсипається на першому ж живому діалозі. Річ не в самій моделі: навчальний корпус збирають великими планами, за рівного світла й заздалегідь нарізаними фрагментами. Живе відео знімає всі ці припущення одразу.
Перекриття кистей, тінь, вихід за край кадру — модель оцінки пози втрачає ключові точки. Трекер перестрибує між лівою та правою рукою, координати тремтять від кадру до кадру, і далі конвеєром іде вже не жест, а шум. Помилка на вході не згладжується часовою моделлю, а множиться на неї.
Темпоральна частина — трансформер з CTC-декодуванням — навчена на усередненому темпі. У реальності службові фрази проскакують удвічі швидше, імена показують повільніше, а паузи не збігаються з межами смислових сегментів. Вирівнювання кадрів із символами роз'їжджається, і на виході з'являються пропуски й дублі знаків.
Окрема стаття втрат — розсинхрон відеоряду та мітки часу. Кадри буферизуються й губляться при перевантаженні каналу, годинники камери дрейфують відносно сервера, зміна освітлення змінює контраст між сусідніми фрагментами. Ознаки перестають відповідати моменту зйомки.
На стенді кожен збій виглядає безневинно, на живому потоці вони складаються в обвал точності. Розбираємо, як це закривається.
Що змінюється після впровадження: швидкість, точність, навантаження
Ключова метрика — час від завершення жесту до появи тексту на екрані. Він складається з обробки кадру, проходу по скелетній моделі кисті та накопичення вікна кадрів на часовій моделі.
За живої зйомки зі звичайної камери затримку вдається втримати в межах часток секунди, і глядач читає потік як синхронний переклад, а не як розшифрування постфактум.
Відгук інтерфейсу навмисно відокремлено від самого розпізнавання: текст виводиться послівно, поточний фрагмент підсвічується, а розпізнане речення залишається на екрані, доки набирається наступне.
Це прибирає відчуття уривчастого потоку й дає змогу ухвалювати рішення за неповною фразою, не чекаючи її кінця.
Частка впевнених розпізнавань і відмови моделі
Другий показник — частка впевнених розпізнавань на живому потоці, тобто жестів, де модель видає результат без конфлікту гіпотез.
Відмови тут різних класів: невпевненість на окремому кадрі, розходження жесту з накопиченим контекстом фрази та обрив трекінгу кисті при виході за кадр.
Замість випадкової гіпотези система позначає фрагмент як непрочитаний і просить оператора повторити — частка непомітних помилок падає, а спірні місця видно прямо в інтерфейсі.
Стійкість до завад перевіряємо зміною умов: інший оператор, інший темп жестикуляції, фон, освітлення, зйомка під кутом. Частину розходжень знімає дообучення на короткому записі конкретного диктора — частка впевнених розпізнавань повертається до рівня еталонних записів.
Навантаження на пристрій зйомки кероване: за слабкого пристрою розрахунок переноситься на сервер, і камера лише надсилає кадри, або модель стискається для роботи на місці.
Підсумок впровадження — три вимірювані ефекти: затримка до появи тексту, частка впевнених розпізнавань і клас відмов, який система показує чесно замість вгадування.
Варіанти побудови: потокова модель, гібрид, офлайн-розбір
Схему обирають не за якістю моделі, а за тим, де з'являється відео і коли потрібен результат. Звідси три базові схеми — потокове розпізнавання, офлайн-розбір відео та гібрид з уточненням на сервері.
| Варіант | Коли підходить | Обмеження |
|---|---|---|
| Розбір запису постфактум | Лекції, навчальні завдання, архів: розшифрування потрібне після зйомки | Немає перекладу в реальному часі, чутливість до якості зйомки |
| Потік на пристрої | Живий діалог, сцена без сталого зв'язку, локальна обробка кадрів | Ресурси пристрою обмежені, частина жестів потребує уточнення |
| Гібрид з уточненням на сервері | Переклад у реальному часі з високою точністю | Складніший в експлуатації: синхронізація й контроль затримки |
| Готові бібліотеки ключових точок + власна модель | Швидкий старт і контроль над словником жестів | Бібліотека дає точки, але не сенс — якість тримає власна модель |
| Орендований хмарний сервіс | Перші прогони, поодинокі сесії, власної інфраструктури немає | Залежність від чужого темпу оновлень і обмеження щодо даних |
Коли достатньо розбору запису
Якщо жест не потрібно перекладати в момент показу, модель бачить його цілком і може переперевірити спірні ділянки. Це підходить для розшифрування лекцій, розбору навчальних завдань і обробки архіву. Затримка від кінця запису до результату тут не заважає.
Коли потрібен потік на пристрої
Для живого діалогу кадри обробляються локально, і результат з'являється одразу після жесту — локальна обробка кадрів знімає й питання передавання відео назовні.
Обмеження — ресурси пристрою та словник, який модель розбирає впевнено; рідкісні та злиті жести надійніше уточнювати на сервері, що й дає гібридна схема.
Як відбувається впровадження: від аудиту відео до передавання моделі
Впровадження йде ітераціями: спочатку ми розуміємо, які сценарії зйомки реальні, потім фіксуємо словник жестів — і лише після цього навчаємо модель. Такий порядок не дає навчити розпізнавач на студійному відео, яке не схоже на робочий потік.
Розмітка та словник жестів
- Аудит відеоматеріалів — дивимося записи з цільових камер: світло, ракурс, фон, темп жестикуляції, перекриття. Фіксуємо, які умови модель зобов'язана тримати, а які залишаються поза сферою застосування.
- Узгодження словника — зводимо список жестів із замовником, відсікаємо візуально нерозрізненні пари, домовляємося про нейтральний клас і межі жесту.
- Розмітка жестів — розмічаємо записи за межами й покадрово, спірні фрагменти перевіряємо другим розмітником; розходження розбираємо до навчання, а не після.
Приймання на живому потоці
- Навчання та підбір порогів впевненості — навчаємо часову модель на розмічених послідовностях і підбираємо поріг спрацювання так, щоб пропуски та хибні спрацювання були збалансовані під сценарій.
- Перевірка на живому потоці — проганяємо на реальній камері за цільового освітлення: дивимося затримку видачі, поведінку за швидких переходів і коли в кадрі кілька людей.
- Інтеграція з інтерфейсом — підключаємо розпізнавач до вашого застосунку, віддаємо результат у зрозумілому форматі й залишаємо ручне введення як запасний шлях.
- Приймання рішення та передавання — узгоджуємо метрики, фіксуємо їх на контрольній вибірці, передаємо ваги моделі, розмітку, порядок навчання та інструкцію, навчаємо вашу команду дообучати словник.
Що передаємо на руки: моделі, схеми, регламенти
Передаємо не модель на диску, а комплект, за яким ваша команда експлуатує та розвиває розпізнавання жестової мови без нас. Кожен артефакт розгортається на чистому оточенні й відтворює метрики зі звіту.
- Ваги й конфігурація моделі: контрольні точки навчання, пороги впевненості за класами, згладжування передбачень у часі, умови відмови «жест не розпізнано».
- Схема конвеєра: приймання відеопотоку, виділення кистей і пози, складання часової послідовності, декодування в текст і видача у ваш інтерфейс.
- Словник жестів: класи з еталонними прикладами, розмітка початку й кінця жесту, правила додавання нових класів.
- Політики доступу до відеозаписів: терміни зберігання, ролі, знеособлення або відмова від збереження кадрів, журнал звернень до потоку.
- Інструкція з перенавчання: підготовка розмітки, запуск навчання, відтворюваність прогону, випуск нової версії та відкат на попередню.
- Звіт про якість: метрики на відкладеній вибірці, розбір помилок за класами, перевірка на записах з реальних умов зйомки.
Документація та словник жестів
Описуємо жест так, щоб розмітник додавав нові без нашої допомоги: де починається рух і які варіанти виконання вважаються одним класом. Словник лежить поряд із вагами.
Регламент дообучення та контролю якості
Фіксуємо, хто запускає дообучення, які метрики прийнятні та за якого падіння якості модель іде на повторний прогін. Окремо описано відкат на попередню версію та розбір спірних розпізнавань.
Кейс: живий сурдопереклад у клініці — метрики до і після
Клініка з постійним потоком пацієнтів, які спілкуються жестовою мовою, вела прийом так: звернення реєстрували, чекали вільного перекладача, розмову записували, а розшифрування робили постфактум.
Систему розпізнавання будували на MediaPipe поверх живого відеопотоку з кабінету — з розрахунку, що підказка з'являється в момент жесту, а не наступного дня.
Заміри до впровадження
На старті зняли базові метрики. Частка звернень, закритих без перекладача, — нуль: будь-яка розмова вимагала участі фахівця.
Розшифрування 40-хвилинного прийому за записом займало близько трьох годин, а в ручному протоколі губилося до чверті смислових блоків — про терміни, повторний візит, підготовку до обстеження. Пацієнт суттєву частину інформації отримував письмово й уже після прийому.
Що змінилося на живому потоці
Затримка перекладу на живому потоці — близько секунди: жест розпізнається за кадрами, текст на екрані оновлюється в міру фрази. Частка впевнених розпізнавань, де модель віддає відповідь сама, без залучення людини, — 78%, решта йде перекладачеві з позначкою низької впевненості.
Завдяки цьому 6 із 10 звернень проходять без перекладача, а фахівець підключається лише до складних формулювань.
«Раніше прийом із перекладачем доводилося планувати за кілька днів і підлаштовувати під його графік, — каже керівник відділення. — Тепер підказка йде в ході розмови, а на уточнення ми кличемо перекладача точково».
Відгук замовника став для нас частиною приймання: метрики до і після звіряли за журналом звернень, а не за відчуттями від демонстрації.
Що робити, якщо розпізнавання вже працює, але дає збої?
Збої майже ніколи не живуть у самій моделі — спочатку перевіряємо вхід. Обрізані кисті біля межі кадру, втрата ключових точок за швидкого руху, різний масштаб і ракурс руки між записами дають стрибки передбачень, які легко списати на помилку мережі.
Тому першим кроком аудиту конвеєра ми проганяємо еталонні фрагменти й дивимося, на якому шарі розходиться результат.
Далі — словник жестів. Класи, розмічені різними людьми, розходяться за межами й тривалістю: один жест записано як два, близькі жести склеєно в один.
Помилки розмітки майже не видно в загальній точності, зате видно в матриці помилок — пара класів плутається стабільно, а декодер при цьому видає впевнений, але хибний результат.
Окрема причина — зміщені пороги впевненості. Після зміни камери, освітлення чи фону розподіл оцінок з'їжджає, і жорстко заданий поріг починає або пропускати жести, або спрацьовувати на шум.
Поріг підбираємо заново за кривою помилок на розміченому наборі, а не за одним усередненим показником.
Порядок перевірки йде від входу до виходу: нарізка та синхронізація відео, детекція кистей, ознаки, модель, декодер, постобробка.
Шар детекції ми закриваємо готовими бібліотеками на кшталт MediaPipe, щоб не винаходити заново вирішене, і основну увагу віддаємо ознакам, словнику та логіці згладжування.
Доопрацювання рішення вбудовується в уже працюючий сервіс без його зупинки: нова версія запускається в тіньовому режимі поруч із поточною, порівняння йде на живому трафіку, переклад — частками користувачів, відкат — одним перемиканням. Так правка словника чи порогів не роняє продукт, який уже приносить користь.
Часті питання інженерів: точність, дані, розгортання
Інженери задають на старті ті самі питання: точність на рідкісних жестах, обсяг даних, приватність відео та автономність. Нижче — короткі відповіді на кожне.
Наскільки точно розпізнаються рідкісні та складені жести?
Рідкісні класи провалюються через дисбаланс вибірки: вирівнюємо приклади й додаємо спотворення за ключовими точками. Складений жест збираємо CTC-декодуванням поверх послідовності, і точність у звіті рахуємо за рідкісними класами, а не в середньому за словником.
Скільки записів потрібно для навчання?
Для десятків жестів — сотні повторів на клас, і важливіший розкид: ракурси, світло, темп, різні люди. Плюс записи без жесту, щоб модель упевнено відрізняла «немає знака» від слабкого спрацювання.
Куди йдуть відеозаписи?
Відео не залишає ваш контур. Назовні за потреби передаються лише координати ключових точок — відновити за ними обличчя неможливо, а терміни зберігання й доступ задає ваша політика.
Чи працює система без мережі?
Так: вилучення точок і розбір послідовності йдуть на місці, канал потрібен лише для оновлення моделі. За обриву зв'язку розпізнавання продовжується, а результат досилається пізніше.
Як дообучати на нашому боці?
Нові жести розмічаєте в тому самому інтерфейсі, далі — дообучення на об'єднаній вибірці. Перевіряємо, що старі класи не деградували, версія моделі фіксується, відкат до попередньої залишається можливим.
Обговоримо задачу: складемо схему і повернемося з планом
Щоб оцінка проєкту спиралася на дані, а не на припущення, для старту достатньо матеріалів, які у вас уже є.
- Приклади відео — 10-20 коротких записів із різними людьми, ракурсами, освітленням і фоном: за ними видно реальний розкид даних, а не ідеальний демонстраційний кадр.
- Словник жестів — що система має розрізняти, де допустимі близькі за змістом варіанти, а де помилка критична.
- Сценарії використання — де розпізнавання працює і хто дивиться результат: співробітник на зміні, викладач, відвідувач у сервісному вікні.
- Вимоги до відгуку й точності — яка затримка ще не заважає діалогу і яку частку помилок сценарій витримує без втрати сенсу.
- Обмеження щодо даних — чи можна зберігати відео, чи є заборона на зйомку людей і винесення кадрів за межі вашого контуру.
- Поточний процес — як задачу вирішують зараз, скільки часу це займає і на якому кроці найчастіше ламається.
На дзвінку уточнюємо обсяги словника, спосіб розмітки та те, хто з вашого боку підтверджує якість. У відповідь надсилаємо схему конвеєра: як кадри потрапляють у модель розпізнавання, де проходить фільтрація хибних спрацювань і як результат виводиться користувачеві.
До схеми додаємо етапи робіт, склад артефактів і домовленості щодо приймання — які метрики вважаємо досягнутими і на якому наборі даних перевіряємо.
Опишіть задачу — повернемося з оцінкою та планом впровадження.







