Распознавание и перевод жестовых языков: обзор подходов
Введение
Всем привет! В статье «Slovo и русский жестовый язык» мы рассказывали, как решаем задачу распознавания изолированных жестов, в статье «Русский жестовый язык: первое место в американском бенчмарке» делились результатами решения, а в статье «GigaChat и русский жестовый язык» речь шла о реализации прототипа общения с генеративной языковой моделью GigaChat. В этой статье речь пойдет о распознавании и переводе жестового языка и передовых подходах для их решениях.
Начнем с введения нескольких понятий:
Глосс — это слово в разговорном языке, которым можно обозначить показываемый жест. Иногда одному жесту может соответствовать несколько глоссов. Так, например, в русском жестовом языке один и тот же жест, в зависимости от контекста, может обозначать «я», «мой», «меня» и т. д.
ISLR, CSLR, SLT. Перевод с жестового языка может осуществляться посредством трех различных задач: распознавание изолированных жестов (ISLR), распознавание непрерывного жестового языка (CSLR) и перевод жестового языка (SLT). Чтобы лучше понимать разницу между ними, посмотрим на таблицу:
Задача | Входные данные | Предсказание модели | Пример предсказания |
Распознавание изолированных жестов (Isolated Sign Language Recognition, ISLR) | Видео, которое содержит только один жест | Глосс, соответствующий жесту на видео | «Я», «приехать», «назад», «в», «Франция» |
Распознавание непрерывного жестового языка (Continuous Sign Language Recognition, CSLR) | Видео, содержащее предложения и фразы на жестовом языке | Представление фраз/предложений в виде последовательности глоссов | «Я», «вернулся», «в», «Франция» |
Перевод жестового языка (Sign Language Translation, SLT) | Видео, содержащее предложения и фразы на жестовом языке | Литературный перевод последовательности глоссов в разговорный язык | «Я вернулся во Францию» |
Визуализация задач распознавания и перевода жестов
CTC (Connectionist Temporal Classification) — функция потерь, определяющая схожесть предсказанной и ground-truth последовательностей с учетом пустых символов и повторений. Подробнее можно почитать здесь.
Метрики, используемые для оценки результатов перевода:
WER (Word Error Rate) — метрика качества машинного перевода; расстояние Левенштейна, деленное на длину последовательности. Учитывает вставки, удаления и замены оцениваемого текста относительно эталонного.
BLEU (Bilingual Evaluation Understudy) — метрика качества машинного перевода с одного естественного языка на другой, основанная на сравнении количества совпадающих слов и словосочетаний (n‑грамм) в тексте перевода в оцениваемом и эталонном (профессиональном человеческом) вариантах.
Данные для обучения моделей распознавания и перевода жестовых языков:
CSL и CSL-Daily — датасеты китайского жестового языка с более чем 20 000 видео и 500 словами / 2 000 уникальными жестами соответственно.
PHOENIX-2014 и PHOENIX-2014T — датасеты немецкого жестового языка, содержащие более 7 000 видео и более 1 000 уникальных жестов.
Обзор подходов к распознаванию и переводу жестовых языков.
Two-Stream Network for Sign Language Recognition and Translation (2022)
Статья | Код
Авторы статьи подчёркивают, что RGB-видео в задаче распознавания жестового языка обладают большой визуальной избыточностью, вследствие чего модели сложнее выделить ключевую информацию, например, о движении рук. Чтобы решить эту проблему, авторы используют двойной визуальный энкодер, обрабатывающий как RGB-видео, так и тепловые карты лэндмарков, полученных при помощи HRNet.
В статье были предложены две конфигурации нейросети: TwoStream-SLR для распознавания жестового языка и TwoStream-SLT для его перевода.
Схематическое изображение архитектур TwoStream-SLR и TwoStream-SLT
TwoStream-SLR
Модель TwoStream-SLR решает задачу Sign2Gloss, то есть каждому видео жестовой речи сопоставляет поглоссовое представление. Предложенная авторами архитектура состоит из следующих блоков:
Архитектура TwoStream-SLR
Dual Visual Encoder и Bidirectional Lateral Connection. Обработка видео и лэндмарков осуществляется с помощью двух отдельных энкодеров. Полученные после применения первых трёх свёрток каждого энкодера карты признаков «обмениваются» информацией посредством их поэлементного сложения.
Sign Pyramid Network. Карты признаков последних двух свёрток каждого энкодера обрабатываются пирамидальной сетью:
Архитектура Sign Pyramid сети
Пирамидальная сеть помогает неглубоким слоям выучить более информативные представления. На выходе из пирамидальной сети также считается дополнительный CTC-лосс для уменьшения возможных ошибок предсказания.
Результаты обработки каждого энкодера объединяются для последующей совместной обработки Joint Head-ом. Оптимизируется он при помощи лосса дистилляции для оптимизации извлечения информации на уровне кадров. CTC лосс при этом отвечает за информацию на уровне последовательности кадров и глоссов. Покадровые предсказания вероятностей глоссов усредняются и передаются в CTC-декодер для генерации итоговой последовательности глоссов.
Общий лосс модели состоит из трёх частей: CTC-лоссы выходов с двух энкодеров и Joint Head-а, CTC-лоссы, примененные к выходам двух пирамидальных сетей, и лосс дистилляции:
TwoStream-SLT
В архитектуру TwoStream-SLT добавляется следующий этап — Gloss2Text: глоссовые представления, полученные на предыдущем шаге, переводятся в текст.
Архитектура TwoStream-SLT
Для решения задачи перевода к архитектуре, рассмотренной выше, добавляется модель перевода — языковой трансформер mBART-large-cc25, предобученный на многоязычном корпусе СС25.
Общий лосс модели TwoStream-SLT состоит из лосса TwoStream-SLR и добавленного к нему лосса перевода и выглядит следующим образом:
Результаты
TwoStream-SLT в настоящий момент является SOTA решением в задаче SLT на датасетах CSL-Daily и PHOENIX-2014T по метрике BLEU-4 (25.79 и 28.95 соответственно).
В результате ablation study удалось определить, что использование двух источников данных улучшает качество распознавания по сравнению с использованием только RGB-видео. Также эксперименты показывают, что добавление каждого нового блока снижает ошибку WER.
Результаты экспериментов по оценке вклада каждого из блоков в финальный результат на датасетах Phoenix-2014 и CSL-Daily. Метрика WER%
A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation (2023)
Статья | Код
Главной мотивацией авторов статьи является преодоление проблемы очень ограниченного количества данных в задаче распознавания жестовых языков. В качестве решения предлагается подход прогрессивного предобучения.
Архитектура
Задача перевода жестового языка, как и в предыдущей статье, разбивается на два этапа:
Sign2Gloss. Визуальный модуль применяется для извлечения визуальных признаков из видео и предсказания глоссов. В качестве энкодера используется S3D, в качестве функции потерь — CTC лосс.
Gloss2Text. Языковой модуль используется для перевода последовательности глоссов в связный текст. Обучение производится с помощью mBART-large-cc25 в качестве модели и кросс-энтропии в качестве функции потерь.
Каждый из этих модулей сначала предобучается на внедоменных данных: визуальный модуль — на Kinetics-400 (action recognition) и WLASL (ISLR), а языковой модуль — на многоязычном корпусе CC25, после чего оба модуля отдельно обучаются на данных жестового языка.
Обученные модули объединяются с помощью специального блока-маппера (перцептрона с двумя скрытыми слоями) и вся модель дообучается целиком.
Схематичное изображение архитектуры. Блок извлечения визуальных признаков соединяется с блоком-»переводчиком» при помощи маппера
Результаты
Подход не является SOTA решением, однако на данный момент занимает второе место в задаче SLT на датасете CSL-Daily.
Эксперименты показали, что прогрессивное предобучение визуального модуля позволяет снизить метрику ошибки WER с 28.06 до 22.45.
Результаты экспериментов с предобучением на разных датасетах. K, WL и S2G означает Kinetics-400, WLASL и Phoenix Sign2Gloss, соответственно
Self-Mutual Distillation Learning for Continuous Sign Language Recognition (2021)
Статья | Код
Авторы отмечают, что задача распознавания жестового языка обычно решается с помощью двух отдельных модулей: визуального и контекстного. Однако, при обучении такой модели end2end возникают проблемы: визуальный модуль ориентируется на ошибку, распространяемую из контекстного модуля, и не способен выучивать эффективные визуальные признаки. Для решения этой проблемы они предлагают обучать сеть в три этапа с использованием CTC-лосса и особого типа дистилляции — Self-Mutual Distillation.
Архитектура
Схематичное изображение поэтапного обучения сети. Каждый из трёх блоков (сверху вниз) изображает этап обучения нейросети
На первых двух этапах визуальный и языковой блоки объединены при помощи классификатора с общими весами, выступая друг для друга учителями (Mutual distillation). Это позволяет языковому блоку не переобучаться и не запоминать конкретную последовательность глоссов, а выучивать каждый глосс по отдельности. Также такое объединение указывает на самодистилляцию (Self-Distillation). Визуальный и языковой блоки обучаются таким образом, чтобы извлечённые признаки оказались близки друг к другу:
На втором и третьем этапах, помимо использования CTC-лосса, авторы определяют границы каждого из ground truth глоссов при помощи метода Gloss Segment Boundary Assignment:
Итерируясь по ground truth и последовательности кадров, для каждого глосса определяют «якорный» кадр, почти наверняка относящийся к нужному глоссу. Далее окно кадров вокруг якорного кадра расширяется на радиус d до тех пор, пока косинусное расстояние между контекстными признаками текущего окна и исходным глоссом не превышает расстояния между контекстными признаками текущего окна и остальными глоссами. Преимуществом такого подхода по сравнению с CTC является его линейное время работы относительно размера ground truth последовательности.
На третьем этапе обучения каждый из двух классификаторов оптимизирует только свои веса, что позволяет языковому блоку выучить информацию об общем контексте в предложении.
Результаты
Добавление алгоритма gloss boundary segmentation и этапа раздельного обучения визуального и контекстного блоков позволяет снизить WER с 21.4 до 21.0. Предложенные нововведения позволили авторам занять пятое место на датасете PHOENIX14-T в задаче перевода жестового языка.
SignBERT+: Hand-model-aware Self-supervised Pre-training for Sign Language Understanding (2023)
Статья
Авторы статьи отмечают, что движения кистей рук, которые несут основную часть информации в задаче распознавания жестовых языков, очень сложно отслеживать, так как руки занимают мало места в кадре, перекрывают друга и двигаются очень быстро.
Для решения этой проблемы авторы предлагают использовать несколько приёмов.
Архитектура
Из сырых RGB данных при помощи сети MANO, основанной на линейном смешивании (Linear Blend Skinning), авторы получают 3D реконструкцию рук (mesh). Для учёта временной составляющей над полученной реконструкцией используются графовые свёрточные сети.
Авторы применяют маскирование кистей для борьбы с шумом в данных при определении точек руки. Для каждой из возможных ошибок предлагается определенный вид маскирования:
неверное положение конкретной точки (или связи между точками) решается маскированием отдельных точек и связей между ними («joint»);
неверная поза руки — маскирование кадра полностью («frame»);
неверное движение, то есть переходы между кадрами в течение нескольких кадров — маскирование серии кадров, то есть клипа («clip»).
Процесс разбивают на предобучение и дообучение для одной из стандартных задач: ISLR, CSLR, SLT. На этапе предобучения используют self-supervised подход: сеть учится восстанавливать положения рук в пространстве после их маскирования. На этапе дообучения к предобученному энкодеру добавляется отдельный блок предсказания для каждой из трёх задач.
Результаты
Использование трех видов маскирования позволяет увеличить top1 точность с 78.1 до 85.23%. Сейчас SignBERT+ занимает второе место на датасете PHOENIX-2014-T в задаче перевода жестового языка.
Improving Continuous Sign Language Recognition with Cross-Lingual Signs (2023)
Статья
В основе статьи лежит наблюдение, что жесты из разных языков могут быть визуально очень похожи.Поэтому авторы предлагают бороться с нехваткой данных, используя датасеты разных жестовых языков: небольшой датасет немецкого жестового языка PHOENIX-2014, выбранный в качестве целевого, расширяется с помощью жестов из большого датасета китайского жестового языка CSL-Daily, отобранных специальным образом. При этом авторы статьи предположили, что для расширения датасета нам неважно, будет ли перевод схожих по движению жестов нести одинаковый смысл: важна именно форма.
Архитектура
Так как оба датасета — и китайский, и немецкий — не содержат точной поглоссовой разметки предложений, используя рассмотренную выше модель TwoStream-SLR авторы сопоставляют каждому видео последовательность глоссов. Каждому полученному глоссу сопоставляются все соответствующие ему мини-клипы из двух датасетов, тем самым конструируя два словаря.
Составление исходных словарей «глосс: список клипов»
Сначала авторы учат модель с общим энкодером и двумя отдельными классификационными головами на двух датасетах таким образом, чтобы внутренние представления визуально похожих жестов были близки.
Обучение мультиязычной модели ISLR
Когда модель обучена, через общий энкодер и «немецкую» классификационную голову прогоняют видео из китайского датасета, получая на выходе распределение вероятностей. Наибольшее значение указывает на немецкий глосс, наиболее близкий к поданному на вход китайскому. Таким образом, каждому китайскому глоссу можно сопоставить наиболее похожий на него немецкий.
Процесс нахождения наилучшего отображения глоссов одного словаря в другой
После нахождения отображения глоссов одного словаря в другой в каждом мини-батче видео случайно семплируются из целевого и добавочного датасетов с преобладанием первого по количеству. Наилучшим соотношением двух наборов данных в батче оказалось соотношение 1 к 0.2.
После составления словаря модель обучается на полученном мультиязычном корпусе с помощью CTC-лосса.
Обучение модели CSLR на мультиязычном корпусе
Результаты
Авторы показали, что мультиязычная модель достигает более низкого значения WER на датасете Phoenix-2014-T в сравнении с моделями, обученными на корпусе одного жестового языка.
Сравнение моноязычных и мультиязычных моделей на датасетe Phoenix-2014. Метрика WER%
Continuous Sign Language Recognition with Correlation Network (2023)
Статья | Код
Авторы статьи отмечают, что в жестовых языках ключевую информацию содержит траектория движения рук, однако современные методы распознавания жестового языка обрабатывают все кадры в видео отдельно, из-за чего информация о движении рук теряется. Чтобы модель могла получить информацию о межкадровом движении на видео, авторы предлагают использовать связку из двух модулей: модуля корреляции (Correlation Module) и модуля идентификации (Identification Module).
Архитектура
Архитектура предлагаемой нейросети CorrNet с дополнительными модулями распознавания и корреляции
Представленная архитектура CorrNet состоит из 2D и 1D свёрточных слоёв, BiLSTM-модели и полносвязного слоя с CTC-лоссом, предсказывающего последовательность глоссов. Корреляционный и идентификационный модули добавляются на этапе выделения признаков с помощью 2D свёрточной сети.
Рассмотрим внимательнее каждый из этих модулей.
Корреляционный модуль. Корреляционный модуль вычисляет карты корреляции между пикселем и его K-окрестностью ближайших соседей на смежных кадрах, что позволяет отслеживать траекторию пикселя от кадра к кадру. Для более точного учёта движения берутся как предыдущий кадр, так и следующий.
Визуализация вычисления корреляции
Визуализация работы корреляционного модуля
Идентификационный модуль. Для распознавания жестового языка важно отслеживать траекторию движения рук и лица, в то время как влияние траекторий фона и визуального шума в кадре должно быть минимизировано. Для этого авторы добавляют идентификационный модуль, позволяющий локализовать наиболее информативные регионы в кадре.
Архитектура модуля идентификации
К входным признакам последовательно применяются свёрточные слои с пошагово увеличивающейся пространственно-временной окрестностью для получения карты внимания, отражающие наиболее информативные регионы в кадре.
Визуализация работы модуля идентификации
Выходы из этих модулей перемножаются для усиления межкадровой корреляции.
Результаты
Предложенная архитектура показывает неплохой результат в задаче распознавания жестового языка: второе место на датасете PHOENIX-2014 и четвертое место на датасете CSL-Daily.
Эксперименты показали, что добавление модулей корреляции и идентификации позволяет снизить WER с 21 до 19.4.
Результаты экспериментов по оценке вклада модулей корреляции и идентификации в финальный результат на датасете Phoenix-2014. Метрика WER%
Заключение
В этой статье мы рассказали про несколько современных подходов для задач распознавания и перевода непрерывного жестового языка. Сейчас мы активно работаем над задачей распознавания русского жестового языка, создаем свой набор данных для решения этой задачи и делимся успехами в нашем телеграм-канале команды RnD CV — подписывайтесь!