Всё как в жизни. Адаптация систем распознавания жестовых языков к реальным условиям. data science.. data science. Машинное обучение.. data science. Машинное обучение. нейронные сети.. data science. Машинное обучение. нейронные сети. обработка видео.. data science. Машинное обучение. нейронные сети. обработка видео. распознавание жестов.. data science. Машинное обучение. нейронные сети. обработка видео. распознавание жестов. ржя.. data science. Машинное обучение. нейронные сети. обработка видео. распознавание жестов. ржя. русский жестовый язык.
Всё как в жизни. Адаптация систем распознавания жестовых языков к реальным условиям - 1

Всем привет! Ранее мы уже писали о том, как собрали самый большой и разнородный открытый датасет русского жестового языка, как выбили первое место в мире на бенчмарке американского жестового языка и какие существуют подходы для перевода жестовой речи. Эта статья посвящена специализированным стратегиям обучения нейросетей для задачи распознавания изолированного жестового языка. Пайплайн обучения был создан с учётом особенностей домена жестовых языков и позволил нам получить state-of-the-art метрики на популярных датасетах.

Введение

Системы распознавания жестового языка предназначены для облегчения общения между слышащими и глухими; они могут применяться в социальных учреждениях, таких как больницы, школы, вокзалы и аэропорты. 

Существуют два типа задачи распознавания жестового языка: распознавание изолированного жестового языка (то есть на уровне отдельных жестов) и распознавание непрерывного жестового языка (на уровне предложений). В своей работе мы сфокусировались на более фундаментальной из двух задач — на распознавании изолированной жестовой речи. Это значит, что каждое видео, подаваемое на вход модели, содержит только один жест, переводом которого является одно слово.

Многие существующие решения по распознаванию изолированных жестовых языков показывают высокие метрики на датасетах, записанных в стерильных студийных условиях: однородный свет и фон, отсутствие отвлекающих факторов, высокое качество видео и FullHD-разрешение. Однако, чтобы система распознавания жестового языка была действительно полезной, она должна уметь работать в условиях реального мира, где пользователи могут показывать жесты с разной скоростью, в кадре могут присутствовать посторонние люди, а камеры не всегда пишут видео в высоком разрешении и HD-качестве. Для этой цели мы разработали универсальный пайплайн обучения, который позволяет модели лучше адаптироваться к сложностям распознавания жестового языка в реальных условиях. В пайплайн входят:

  1. Аугментации видео для обработки разной скорости показа жестов;

  2. Аугментации кадров видео, позволяющие имитировать низкое качество;

  3. Дополнительная регрессионная голова для предсказания границ жеста;

  4. Новый 1D IoU-сбалансированный классификационный лосс.

Благодаря разработанному пайплайну мы добились значительного улучшения метрик по сравнению с базовым решением, а также получили state-of-the-art результаты на бенчмарках WLASL и Slovo.

Стратегии обучений моделей для распознавания жестовых языков

Большинство статей, посвящённых распознаванию жестовой речи, предлагают решения либо на архитектурном уровне, добавляя в модель новые блоки (например, блок корреляции), либо на уровне данных, фокусируясь на усилении существующих датасетов (например, объединяя китайский и немецкий жестовые языки). 

Мы же, напротив, сосредоточили внимание на разработке эффективного пайплайна обучения, который способен улучшить качество модели без значительных изменений архитектуры или датасета. Этот пайплайн универсален; его можно использовать для любой модели распознавания изолированного жестового языка, получающей на вход RGB-видео и предсказывающей на выходе классификационную оценку. Каждый из компонентов пайплайна был добавлен с учётом особенностей нашей задачи и позволяет решить определённую проблему, связанную с распознаванием жестового языка. 

Рассмотрим подробнее, из чего состоит наш пайплайн и какую задачу решает каждый из его компонентов.

Видео аугментации

Рисунок 1. Пример работы видео аугментаций

Рисунок 1. Пример работы видео аугментаций

Разные люди могут показывать одни и те же жесты с разной скоростью в зависимости от уровня владения жестовым языком, темперамента и настроения. Поэтому, чтобы обучить модель распознавать жест независимо от скорости показа, мы добавили в пайплайн обучения видео аугментации Speed Up и Slow Down, призванные ускорить или замедлить видео. Для этого мы семплируем каждый N-ный кадр в видео, чтобы ускорить его в N раз, либо повторяем каждый N-ный кадр, чтобы в N раз замедлить. Хотя существуют более сложные методы, например, интерполяция или нейросетевые подходы, мы выбрали более быстрый и простой способ. При использовании сложных техник, таких как бикубическая интерполяция, рука может дублироваться и выглядеть размыто на соседних кадрах, а это затруднит распознавание. Нейросети, восстанавливающие промежуточные положения, могут неконтролируемо искажать смысл жеста. Выше на рисунке 1 (модификации a и b) приведены примеры ускорения и замедления в два раза.

Кроме этого, скорость показа в пределах одного жеста тоже не всегда однородна: какие-то компоненты жеста могут быть сложнее других и потому требовать больше времени. Чтобы учесть этот фактор, мы добавили видео аугментации Random Add и Random Drop, изменяющие скорость видео лишь частично: на определённых случайно выбранных участках. На рисунке 1 приведены примеры, когда из последовательности удаляется один кадр (модификация c) либо дублируются два кадра (модификация d). Благодаря этой аугментации модель учится правильно распознавать жест, даже если отдельные его компоненты показаны с разной скоростью. 

Рисунок 2. Пошаговая схема аугментации Random Boundary Shift

Рисунок 2. Пошаговая схема аугментации Random Boundary Shift

С временны́м измерением видео связана ещё одна проблема: во время инференса система обрабатывает последовательность кадров с помощью окна определённой длины, и некоторые жесты могут не попасть в окно целиком. Поэтому мы также добавили аугментацию Random Boundary Shift, случайно сдвигающую границы жеста в пределах заданного интервала. Таким образом из видео может удалиться часть кадров, содержащих жест, или могут добавиться кадры без жеста.

Иллюстрацию работы аугментации Random Boundary Shift можно увидеть на рисунке 2. Исходные границы жеста сдвигаются на случайное количество кадров (в нашем примере — на один кадр влево). Впоследствии кадры будут семплироваться скользящим окном из нового полученного интервала, куда добавился один кадр без жеста, а последний кадр с жестом не вошёл. Эта аугментация позволяет модели научиться распознавать жест, даже если он не полностью захвачен окном при семплировании кадров.

Аугментации изображений

Чтобы корректно работать в реальных условиях, модель должна быть устойчива к разному фону, людям в кадре и качеству изображения. Здесь могут помочь аугментации на уровне отдельных кадров видео. Чтобы имитировать низкое качество изображения, мы добавили случайный шум и аугментацию Sharpness, а для разнообразия цветовых характеристик на видео — Color Jitter. У большинства жестов не меняется значение в зависимости от того, какой рукой он показывается, поэтому мы добавили горизонтальный Flip, чтобы сымитировать ситуацию, когда жест показывается другой рукой. Однако в русском жестовом языке есть часть жестов, которые показывают только строго определенной рукой (например, «сердце», «печень»). Мы отобрали незеркалируемые жесты в датасете и добавили их в список исключений, чтобы горизонтальный Flip к ним не применялся.

Мы также добавили аугментации CutMix и MixUp, которые работают не с отдельными видеофрагментами, а между сэмплами внутри батча. CutMix подразумевает вырезание и вставку фрагмента из одного изображения в другое, а MixUp — смешивание двух изображений по альфа-каналу с одновременным смешиванием их меток. В наших экспериментах эти методы сильно улучшили способности моделей к обобщению.

Sign Boundary Regression Head

Как отмечают авторы в статье, использование дополнительных задач при обучении может улучшить перформанс на основной задаче, так как бэкбон модели учится выделять более разнородные и информативные признаки. Поэтому мы решили добавить в пайплайн дополнительную регрессионную голову для предсказания временны́х границ жеста на видео. Это позволяет модели больше фокусироваться на фреймах, содержащих жест. Регрессионная голова предсказывает начало и конец жеста на видео, имплицитно добавляя в модель понимание длины и скорости показа жеста. Для обучения регрессионной головы мы использовали Huber-лосс, соединяющий преимущества MSE- и MAE-лоссов: Huber-лосс менее чувствителен к выбросам в данных, чем MSE-лосс, однако более чувствителен к данным, незначительно отличающимся от ground-truth, чем MAE-лосс.

1D IoU-balanced classification loss

Рисунок 3. Пример работы 1D IoU-сбалансированного лосса

Рисунок 3. Пример работы 1D IoU-сбалансированного лосса

Обычные классификационные лоссы типа кросс-энтропии обладают следующим ограничением: они не учитывают информацию о временны́х границах объекта на видео. Чтобы добавить в модель информацию об относительном расположении жеста в окне, мы используем IoU-сбалансированный классификационный лосс. Для подсчёта IoU длина пересечения жеста и окна делится на длину всего окна.

На рисунке 3 приведён пример работы IoU-сбалансированного классификационного лосса. После того, как к исходным границам жеста на этапе видео аугментаций был применён случайный сдвиг Random Boundary Shift, внутри новых границ мы семплируем кадры скользящим окном размера N (на рисунке для простоты N равен трём кадрам). После этого количество попавших в окно кадров, содержащих жест (выделены зелёным на рисунке) делится на общее количество кадров в окне (опять три в нашем примере). Так мы получаем IoU-коэффициент, который умножаем на предсказанный классификационный скор. Взвешенную IoU-коэффициентом классификационную оценку мы передаём в функцию кросс-энтропии и считаем итоговый IoU-сбалансированный классификационный лосс.

Датасеты

В своих экспериментах мы использовали три крупных бенчмарка жестовых языков: WLASL, AUTSL и Slovo.

  • WLASL — датасет американского жестового языка, состоящий из 21 тысячи видео на две тысячи жестов. Каждое видео содержит только один жест, каждый жест показан минимум тремя людьми на разных диалектах. Записан в студии с однотонным фоном. 

  • AUTSL — датасет турецкого жестового языка, содержащий 38 тысяч видео. Записан в разных локациях: в помещении и на улице, с разным фоном и освещением. Всего содержит 226 жестов турецкого жестового языка, записанных 43 людьми. 

  • Slovo — самый крупный и разнородный по субъектам открытый датасет русского жестового языка (РЖЯ), был разработан нашей командой (о чём мы, кстати, уже писали на Хабре). Он содержит 20400 видео с тысячей жестов, записанных 194 людьми. Имеет разметку начала и конца жеста.

Дополнительно мы также решили расширить публичный датасет Slovo, добавив в него 30600 видео из нашего закрытого датасета РЖЯ. Расширенный датасет, содержащий 51 тысячу видео, мы назвали SlovoExt.

Эксперименты и результаты

Для экспериментов мы использовали две трансформерные архитектуры (MViT-S и MViT-B) и одну свёрточную (I3D с бэкбоном ResNet-50). Также в экспериментах мы использовали метод предобучения Maskfeat, основанный на маскировании кадров и последующем восстановлении их структуры.

Эксперименты проводились следующим образом: выбранную модель мы сначала обучали на одном из датасетов без нашего пайплайна (будем называть такой сетап базовым решением), а затем ту же модель обучали с использованием нашего пайплайна, после чего сравнивали полученные метрики. Результаты приведены в таблице ниже. 

Результаты с использованием нашего пайплайна и без него

Результаты с использованием нашего пайплайна и без него

Как видно из результатов, применение нашего пайплайна приводит к росту top-1 accuracy на всех датасетах и для всех используемых моделей независимо от способа предобучения. В среднем значение метрики растет на 3,75%.

Чтобы оценить вклад каждого отдельного элемента пайплайн, мы провели ablation study: последовательно убирали отдельные части пайплайна и замеряли метрику без них. Результаты ниже. 

Влияние каждого из блоков пайплайна

Влияние каждого из блоков пайплайна

Как можно заметить, при «выключении» любого из блоков метрика проседает по сравнению с использованием всего пайплайна целиком. Наибольший вклад при этом создают аугментации для изображений, а наименьший — IoU-сбалансированный классификационный лосс. При удалении отдельных блоков пайплайна метрика может снижаться на 0,05%–4,06% по сравнению с лучшим результатом.

Заключение

В этой статье мы подробно описали наш пайплайн стратегий обучения нейросетей для распознавания изолированного жестового языка. Мы рассказали, как работает и какую проблему решает каждый из компонентов пайплайна, а также поделились результатами экспериментов.

Следите за обновлениями: скоро мы опубликуем код нашего пайплайна в открытом доступе! Более подробное описание экспериментов можно найти в препринте на arXiv.

Авторы

Ссылки

  1. Continuous Sign Language Recognition with Correlation Network

  2. Improving Continuous Sign Language Recognition with Consistency Constraints and Signer Removal

  3. CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features

  4. mixup: Beyond Empirical Risk Minimization

  5. Auxiliary Tasks in Multi-task Learning

  6. Generalized Huber Loss for Robust Learning and its Efficient Minimization for a Robust Statistics

  7. Word-level Deep Sign Language Recognition from Video: A New Large-scale Dataset and Methods Comparison

  8. AUTSL: A Large Scale Multi-modal Turkish Sign Language Dataset and Baseline Methods

  9. Slovo: Russian Sign Language Dataset

  10. MViTv2: Improved Multiscale Vision Transformers for Classification and Detection

  11. Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset

  12. Masked Feature Prediction for Self-Supervised Visual Pre-Training

Также у нашей команды есть телеграм-канал, где мы рассказываем о результатах нашей работы. Подписывайтесь.

Автор: romacckka

Источник

Рейтинг@Mail.ru
Rambler's Top100