Модель кодировщика-декодера Seq2Seq и модель сверточной 3D-классификации

Команда

Чи Юн Чен, Хосе Гарсия, Цин Чжу.

Код

Гитхаб-репозиторий

Содержание

  • Введение
  • Предварительная обработка
  • Модели и результаты
  • Обсуждение и выводы
  • Ссылка

1. Введение

Почему и что

Хотя на рынке существует множество приложений для языкового перевода, очень немногие из них используют язык жестов. Люди, использующие язык жестов, могут иметь проблемы со слухом или речью или принадлежат к сообществу глухих. Они кажутся меньшинством, но их население составляет 0,5 миллиарда человек во всем мире, которые страдают от нарушения слуха, не говоря уже о том, что мы включаем их родственников, друзей и коллег. Это вполне потенциальный рынок, но мало кто обращает на него внимание.

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

Язык знаков

Языки жестов — это языки, которые используют визуально-жестовую модальность руки, лица и тела человека для передачи сообщения. Поскольку универсального языка жестов не существует, мы сосредоточимся на том, который чаще всего используется носителями английского языка — американском языке жестов (ASL). ASL основан на французском языке жестов и имеет пять функций. К ним относятся:
(1) форма руки,
(2) ориентация ладони,
(3) движение руки,
(4) расположение руки и
(5) Особенности жестов, такие как выражение лица и поза.

Отсутствие письменной формы заставляет людей использовать разные системы представления для записи языка жестов. Нотация жестового языка — это рисунок символов в их «письменной форме», развившийся после 1990-х годов. Глянец — это перевод движения языка жестов. Это может быть слово или смысл предложения. Учитывая особенности языка жестов, большинство переводчиков на рынке ориентированы на Pose-to-Gloss. Что нам нравится делать, так это фокусироваться на преобразовании видео в текст, что является очень сложной задачей.

Данные

How2Sign — это мультимодальный и многопрофильный непрерывный набор данных американского языка жестов с открытым исходным кодом и аннотациями. Все видео имеют выравнивание на уровне предложений.

  • 80 часов видео на жестовом языке и соответствующие английские транскрипции
  • 31 ГБ для обучения, 1,7 ГБ для проверки, 2 ГБ для тестирования

Инструмент, который мы использовали

  • Mediapipe & OpenCV — для обработки видеоданных
  • PyTorch — для сборки модели
  • EC2, AWS — для обучения модели

Алгоритмы

  • Рекуррентные нейронные сети (RNN) – это класс искусственных нейронных сетей, в которых связи между узлами образуют направленный или неориентированный граф вдоль временной последовательности.
  • Сети с долговременной кратковременной памятью (LSTM) — это разновидность RNN, разработанная для того, чтобы избежать проблемы долговременной зависимости. Он состоит из ячейки, входных ворот, выходных ворот и ворот забывания. Ячейка запоминает значения через произвольные промежутки времени, а три ворот регулируют поток информации в ячейку и из нее.

  • Модель последовательность к последовательности (Seq2seq) обычно используется для решения сложных языковых задач и основана на архитектуре кодер-декодер.
  • Ввод и вывод Архитектуры кодировщика-декодера представляют собой последовательности переменной длины. Кодер считывает входную последовательность и суммирует информацию во внутренние векторы состояния или векторы контекста. Начальные состояния декодера инициализируются до конечных состояний кодировщика LSTM.
  • Нейронные сети Convolution 3D широко используются в задачах классификации видео, распознавания действий и распознавания жестов. Предыдущие исследования показывают, что Conv3D эффективно обнаруживает пространственно-временные особенности в последовательности медицинских изображений, коротких клипов и видео. Convolution 3D основан на Convolution 2D, но добавляет одно измерение для представления последовательности или времени. На каждом этапе свертки Conv3D CNN создает карту трехмерных объектов, выходная форма которой представляет собой объемное трехмерное пространство.

После свертки добавляется объединяющий слой в качестве метода понижения дискретизации. Цель слоя объединения состоит в том, чтобы преобразовать тензор, заменив каждый из подтензоров его максимальным значением элемента.

Рабочий процесс

  • Анализ данных
  • Преобразование текстовых данных
  • Видеообработка и преобразование
  • Маркировка
  • Моделирование и обучение
  • Оценка

2. Предварительная обработка

Исследовательский анализ данных

Исходные текстовые данные были помечены в следующей таблице.

После очистки текста, удаления стоп-слов и лемматизации мы оценили наиболее часто используемые слова в наборе данных: иду, хочу, получу, нравится и один. Всего в наборе данных 9546 слов.

В нашем простом анализе настроений мы могли бы сказать, что большая часть контента является позитивным и нейтральным, и очень немногие из них имеют негативный тон. Затем мы анализируем длину каждого предложения. На следующем изображении показано распределение длины предложения. Средняя длина предложения составляет 7,9 слова; стандартное отклонение составляет 5,6 слов. Таким образом, мы знаем, что 75% из 31 165 видео содержат менее 10 слов, и очень немногие содержат большое количество слов в одном предложении.

Обработка видео

Мы использовали MediaPipe для захвата кадров в видео и извлечения ориентиров для ключевых точек. Всего 554 ориентира * 3 (x, y, z) = 1662 ключевых пункта

После этого мы провели простую обработку текста и разметили предложения. Мы токенизировали текст пробелом и добавили начальный токен ‹SOS› и конечный токен ‹EOS› к каждому предложению.

def tokenizer_eng(text):
    return [tok.text.lower() for tok in spacy_en.tokenizer(text]

Затем мы создали наборы слов из словаря в нашем наборе данных, который включает около 9000 слов.

3. Модели и результаты

В проектах есть две модели: одна — модель Encoder-Decoder Seq2Seq, а другая — модель классификации архитектуры Conv3D.

Модель кодировщик-декодер Seq2Seq

В нашем первоначальном дизайне мы извлекли 1662 ключевых точки из видео в качестве входных данных и использовали модель кодировщика-декодера со слоями рекуррентных единиц LSTM для перевода языка жестов из последовательности движений в последовательность на английском языке.

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

Ниже приведен код модели:

В соответствии с результатом функции потерь обучающего набора мы построили кривую обучения модели Encoder-Decoder Seq2Seq и показали, что модели улучшились после обучения.

Однако результаты показывают, что модель не может точно перевести. Ниже приведен пример перевода.

Поскольку результаты seq2seq здесь далеки от идеальных, мы также попробовали другой подход к применению модели классификации. После предыдущего обзора лекций мы предлагаем использовать архитектуру Convolution 3D для распознавания тех пространственно-временных характеристик, которые лучше всего описывают особенности движения языка жестов в видео.

Модель классификации свертки 3D

Предлагаемая нами архитектура Conv3D разработана на основе архитектуры, предложенной Врсковой и др.

Следующая структура определяет архитектуру:

Conv3D: 6 Convolution 3D Layers
BatchNorm3D: 4 Batch normalization 3D layers
MaxPool3D: 5 MaxPool3D layers
Dropout: 5 Dropout layers with 0.5 value
Dense: 4 Linear layers
Activation functions:
    ReLu activation function after every convolution and dense layer
    Sigmoid function at the last layer
Loss function: Binary Categorical Cross Entropy loss function
Metric: Accuracy

Для нашей модели классификации Conv3D мы использовали набор данных How2Sign для обучения модели и добавили видео TikTok из TikTok API для оценки модели. Мы извлекли 981 видео без знаков и 222 видео с жестами, а затем дополнили эти 222 видео 1000 видео на языке жестов от How2Sign. Разрешение видео TikTok составляет 1024x576 и трансформируется в 3 канала. Количество кадров зависит от каждого видео по длине. Нам нужно скомпилировать все видео и подсчитать количество кадров. После преобразования видео мы классифицируем его как использующее язык жестов и не использующее язык жестов, и тестируем модель.

В модели классификации Conv3D результирующие потери во время обучения показывают ожидаемое поведение при обучении с мини-пакетами. При выборе небольшого размера партии график функции потерь будет иметь негладкую форму. Хотя мы видим такое поведение, модель достигла 95% точности в эпоху 17. Из-за вычислительной мощности максимальный размер пакета, которого мы достигли, составил 5.

4. Обсуждение и выводы

Почему перевод в модели Encoder-Decoder Seq2Seq плохой?

1. Вычислительная мощность
Из-за ограничений вычислительной мощности мы смогли обучить эту модель только на 1 GPU и 8-ядерном CPU. Большая вычислительная мощность
позволила бы нам использовать 2 или 4 слоя LSTM и добиться более скрытого представления пространственно-временных особенностей рук, лица и позы.

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

2. Выбор данных

How2Sign обеспечивает как фронтальный, так и боковой вид. Из-за аппаратных ограничений мы выбираем только фронтальную. Более полный ввод данных может дать лучшую точность.

3. Проблема лингвистики

Поскольку мы хотели бы перевести все предложение целиком, мы не можем удалить стоп-слова. Например, я люблю тебя имеет совершенно другое значение с она любит меня. Но если мы удалим все стоп-слова, переводом этих двух предложений станет "Любовь". Для решения этой проблемы требуется более сложное построение модели.

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

4. Сложность модели

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

Что мы можем сделать для улучшения в будущем?

  1. Возможным решением для модели перевода может быть комбинация кодировщика Conv+LSTM и декодера LSTM.
  2. Соответствующая обработка текста и перемаркировка предложения.
  3. Применить относительное кодирование координат ориентиров.
  4. Обучите модель в соответствии с темой предложения.
    How2Sign разделил свой набор данных на 10 тем. Если бы мы могли сначала сузить тему, это могло бы повысить точность наших моделей.
  5. Включите как фронтальный, так и боковой вид набора данных.
  6. Найдите подходящую функцию потерь, чтобы снабжать модели обратной связью и повышать их производительность.
  7. Попробуйте Трансформер вместо LSTM, так как Трансформер может обрабатывать целое предложение, а не слово за словом.
  8. Внедрить BLEU (дублер двуязычной оценки), чтобы оценить качество нашего машинного перевода.

5. Ссылка

  1. Набор данных How2Sign
  2. Дуарте А., Паласкар С., Вентура Л., Гадиярам Д., ДеХаан К., Метце Ф., Торрес Дж., Джиро-и-Нието Х.. How2Sign: крупномасштабный мультимодальный набор данных для непрерывного американского языка жестов. Конференция по компьютерному зрению и распознаванию образов (CVPR), 2021 г., стр. 2735–2744. [Ссылка]
  3. GloVe: глобальные векторы для представления слов
  4. Полное руководство по Spacy Tokenizer с примерами
  5. МедиаПайп Холистик
  6. Обработка жестового языка в GitHub
  7. Понимание сетей LSTM Кристофера Ола.
  8. Врскова Р., Худек Р., Каменчай П. Классификация человеческой деятельности с использованием трехмерной архитектуры CNN. 2022. [Ссылка]
  9. Суцкевер И., Виньялс О., Куок В. Последовательное обучение с помощью нейронных сетей. 2014. [Ссылка]
  10. Багданау Д., Чо К., Бенжио Ю. Нейронный машинный перевод путем совместного обучения выравниванию и переводу. 2016. [Ссылка]
  11. Teather D., Неофициальный API TikTok.[Ссылка]