Приложение для онлайн перевода с русского жестового языка
Цель проекта: Создание инновационного программного обеспечения, способного в реальном времени переводить жесты русского жестового языка (РЖЯ) в текст или речь, преодолевая коммуникационные барьеры между слабослышащими и слышащими людьми.
Краткое описание:
Проект представляет собой веб- и десктоп-приложение, использующее современные технологии машинного обучения и компьютерного зрения для распознавания жестов. Приложение анализирует видеопоток с камеры, выделяет ключевые точки тела, рук и лица с помощью библиотеки MediaPipe, а затем классифицирует жесты с использованием гибридной нейронной сети. Решение отличается высокой точностью на тестовом наборе данных и способностью работать в реальном времени, что делает его практичным инструментом для повседневного использования.
Почему это важно?
Социальная значимость: Около 200 тыс. глухонемых людей в России сталкиваются с трудностями в общении, образовании и трудоустройстве.
Технологический прорыв: Проект объединяет методы обработки видео и оптимизирован для работы на различных устройствах.
Универсальность: Приложение может быть внедрено в медицинских учреждениях, банках, аэропортах и других общественных местах.
Перевод жестов в текст: Обеспечение возможности для людей, говорящих на русском языке, понимать жесты, переводя их в текст.
Социальная интеграция: Переводчик способствует более эффективному общению между людьми с различными способностями, что помогает создавать инклюзивное общество.
1. Обработка видеопотока
• Обработка видеопотока жестов: Приложение может обрабатывать видеопоток в реальном времени. Это включает:
– Захват видео с камеры устройства пользователя.
– Отправка видеопотока на обработку нейронной сети.
• Безопасность передачи данных: Обеспечение безопасного обмена данными между приложением и нейронной сетью с использованием протоколов шифрования.
2. Обучение нейронной модели
Предобработка данных включает несколько критически важных этапов.Сначала применяется маскирование для исключения пустых кадров и случайного маскирования 25% значимых кадров в качестве метода аугментации. Затем происходит нормализация координат для каждой группы точек (губы, левая рука, правая рука, поза) с использованием предварительно вычисленных средних значений и стандартных отклонений.
Ядро модели состоит из нескольких специализированных слоев. Слой «CustomEmbedding» преобразует нормализованные координаты точек в векторные представления, учитывая важность разных групп точек через обучаемые веса и добавляя позиционное кодирование для сохранения информации о временной последовательности. Далее данные проходят через серию слоев, включая полносвязные слои с нормализацией и активацией ELU, глубинные свертки 1D для анализа временных паттернов, и двунаправленные LSTM-слои для учета долгосрочных зависимостей в последовательностях жестов. Использование GlobalAveragePooling1D вместо традиционного Flatten позволяет уменьшить количество параметров модели без потери значимой информации.
Для обучения модели применяется функция потерь CategoricalCrossentropy с механизмом сглаживания меток (label smoothing), что помогает предотвратить переобучение. Оптимизатор AdamW с L2-регуляризацией и clipping'ом градиентов обеспечивает стабильный процесс обучения.
3. Создание пользовательского интерфейса
• Реализация интерфейса: Разработка интерфейса с использованием выбранных технологий позволяет создать минималистичный дизайн.
• Интеграция с нейронной сетью: Реализация функционала, который позволяет приложению взаимодействовать с нейронной сетью для обработки жестов и отображения результатов.
Разработка велась на платформе Kaggle на языке Python. Данные обрабатывались благодаря библиотекам Pandas, Numpy. Ключевые точки рук, тела и лица выделялись с помощью библиотек OpenCV и Mediapipe. Обучение нейронной модели происходило с использованием Tensorflow и PyTorch. Веб- и десктоп- приложения были разработаны за счет мультиплатформенного фреймворка Kivy и веб фреймворка FastAPI.
Работа вносит вклад в развитие технологий взаимодействия и открывает направления для дальнейших исследований:
1. Улучшение обработки динамических жестов;
2. Интеграция с мультимодальными данными(видео + аудио);
3. Доработку мобильного приложения для распознавания жестов.
В рамках выполнения ВКР была проделана работа, которая позволила достигнуть поставленных целей.
Социальная полезность:
1. Инклюзия и доступность: Переводчик способствует интеграции людей с нарушениями слуха в общество, облегчая им общение с окружающими. Это особенно важно в образовательных учреждениях, на рабочих местах и в общественных местах.
2. Образование: Упрощение доступа к образовательным ресурсам для глухих и слабослышащих людей. Переводчик может помочь в учебном процессе, позволяя учащимся лучше понимать материал.
Экономическая полезность:
1.Упрощение трудоустройства для людей с нарушениями слуха: Переводчик может помочь в процессе собеседований и на рабочем месте, улучшая коммуникацию между сотрудниками.
2. Повышение эффективности: Автоматизированный переводчик может ускорить процессы общения и взаимодействия, что приведет к повышению общей эффективности работы организаций.
Стилистическое единство всех функциональных блоков присутствует и соответствует социальной задаче проекта.
Разработанное программное обеспечение является кроссплатформенным и поддерживает работу на следующих операционных системах: Windows, Linux, macOS(десктоп-приложение).
Учитывая выбранный ранее набор визуальных данных, лучшим решением для выполнения поставленной задачи было написать гибридную нейросетевую архитектуру, сочетающую в себе элементы сверточных сетей (CNN) и рекуррентных (RNN) сетей, а также механизмы внимания и нормализации.
Это будет гибридная модель с элементами:
Сверточных сетей (DepthwiseConv1D) – для извлечения пространственных признаков;
Рекуррентных сетей (BiLSTM) – для учета временных зависимостей;
Механизма внимания (через маскирование) – для работы с пропущенными кадрами;
Нормализации (BatchNorm, LayerNorm) – для стабилизации обучения;
Регуляризации (Dropout, L2, Label Smoothing) – для борьбы с переобучением.
Разработанная модель будет предназначаться для распознавания жестового языка на основе временных последовательностей ключевых точек (лицо, руки, поза). Кроме этого, модель через маскирование сможет обрабатывать пропущенные кадры, учитывать динамику жестов благодаря LSTM. Благодаря нормализации и регуляризации будет производится эффективное обучение модели. Кроме этого, модель способна эффективно работать с зашумленными данными и вариациями в выполнении жестов разными людьми.
Существуют готовые программные решения для русского жестового языка. Среди практических реализаций можно выделить:
1. Приложение «Сурдофон»;
Приложение является автоматизированным сурдопереводчком, распознает речь собеседника и переводит её на русский жестовый язык, но нет возможности перевода жестов в слова.
2. Мобильное приложение «Аватар РЖЯ»;
Компьютерный переводчик для перевода текста и жестов в видео на русский жестовый язык. Не реализован перевод с русского жестового языка на обычный русский язык.
3. Мобильное приложение «Адаптис».
Приложение предоставляет видеосвязь с профессиональными переводчиками РЖЯ онлайн без выходных, но отсутствует онлайн перевод с русского жестового языка в слова.
Таким образом, несмотря на разнообразие методов, разработка универсального и точного распознавателя РЖЯ остается актуальной задачей, требующей создания открытых датасетов и адаптации современных алгоритмов. Мною не было найдено готового переводчика с русского жестового языка в слова.
При реализации десктоп- и веб- версий приложения акцент был сделан на простоту. Использован крупный шрифт при переводе, область перевода расположена в нижней части интерфейса, в случае отсутствия жестов в кадре в качестве перевода стоит прочерк.
При тестировании людьми было отмечено, что сразу понятно, как использовать данное программное обеспечение и необходимости в специальной документации или обучении не выявлено. Таким образом, можно говорить об удобстве использования и простоте данного ПО.