Разработка системы перевода и обработки русского жестового языка
Идея проекта:
Создание доступной системы для автоматического перевода русского жестового языка в текст в реальном времени, чтобы преодолеть коммуникационные барьеры между глухими/слабослышащими людьми и слышащими. Идея основана на интеграции технологий компьютерного зрения и обработки естественного языка. Проект ориентирован на использование обычной веб-камеры, без специального оборудования, для повседневного применения в образовании, здравоохранении и общении.
Краткое описание ИТ-проекта:
Разработано веб-приложение, которое захватывает видеопоток с камеры, сегментирует его и классифицирует жесты с помощью модели Multiscale Vision Transformer v2. Результаты классификации сглаживаются и преобразуются в предложения с использованием языковой модели RuT5-base-multitask.
Система включает базу знаний с 1000 видео жестов для обучения пользователей.
Перечень решаемых задач:
- Повышение цифровой доступности: система может позволить людям с нарушением слуха полноценно взаимодействовать с современными цифровыми сервисами, которые в большинстве случаев пока не поддерживают жестовый язык.
- Содействие социальной интеграции: Решение может способствовать снижению коммуникационных барьеров между глухими и слышащими людьми, облегчить трудоустройство, обучение и повседневное общение.
- Улучшение качества жизни: Приложение откроет новые возможности для получения образования, медицинских и государственных услуг, делая их более доступными и удобными для людей с нарушением слуха.
- Поддержка культурного наследия: Русский жестовый язык - это уникальная лингвистическая система, являющаяся частью культурной идентичности сообщества глухих. Разработка технологий перевода способствует его сохранению и популяризации.
Ключевые функциональные возможности:
- Захват и управление видеопотоком: Пользователь может активировать веб-камеру через интерфейс, запускать/останавливать запись видео. Система требует разрешения на доступ к камере. Видео передается на сервер для обработки без промежуточного хранения на клиенте.
- Распознавание и классификация жестов: Видеопоток сегментируется на фрагменты в 32 кадра. Каждый сегмент предобрабатывается и подается в модель MViTv2 для классификации.
- Генерация связного текста: После удаление шумов, последовательность распознанных жестов преобразуется в предложение с использованием языковой модели RuT5-base-multitask. Результат отображается в чат-подобном интерфейсе на клиенте.
- База знаний для обучения: Доступ к 1000 видео жестов примеров. Поддерживается поиск по ключевым словам и пагинация. Видео отображаются в карточках с предпросмотром и названием.
- Интерфейс и навигация: Присутствует хедер с навигацией между разделами (Переводчик, База знаний, О проекте). Обработка ошибок (логирование в консоль, уведомления пользователю).
Элементы проекта:
Проект состоит из архитектуры клиент-сервер:
- Клиент: CameraBox (управление камерой и записью), KnowledgeBase (поиск и отображение видео), Header (навигация). Используются библиотеки: axios для API-запросов, Intersection Observer для пагинации. Интерфейс адаптивен, с CSS-стилями для визуализации (камера, текстовая область для перевода, карточки видео).
- Сервер: Эндпоинт /take (прием и обработка видео, интеграция моделей), /knowledgelist (список видео с поиском). Модули: предобработка (OpenCV), классификация, постобработка, CORS для кросс-доменных запросов.
- Модели: MViTv2, RuT5-base-multitask.
Платформы:
- Операционная система: Windows 11
- Браузерная платформа: Веб-приложение работает в современных браузерах, таких как Google Chrome, Mozilla Firefox, Яндекс.
- Вычислительная платформа: GPU NVIDIA GeForce RTX 3050 с поддержкой CUDA. CPU Intel Core i5-10500H. 16гб RAM.
- Развертывание: Локальный сервер с Uvicorn. Возможна контейнеризация с Docker для облачного развертывания.
1. Клиентская часть
- React: Для создания динамического пользовательского интерфейса.
- TypeScript: Надстройка над JavaScript для строгой типизации, улучшения надежности кода.
- JavaScript: Основной язык для логики интерфейса.
- Axios: Для HTTP-запросов к backend.
- React Router: Для навигации между страницами.
- CSS: Для стилей компонентов.
- Python: Основной язык для серверной логики, обработки видео и интеграции моделей.
- FastAPI: Асинхронный веб-фреймворк для создания API. Поддержка CORS для кросс-доменных запросов.
- Uvicorn: ASGI-сервер для запуска FastAPI.
- OpenCV: Предобработка видео.
- NumPy: Работа с массивами для тензоров.
- Collections: Буфер для скользящего окна и сглаживание предсказаний.
- Tempfile: Временное хранение загруженных видео.
- PyTorch: Фреймворк для обучения модели.
- ONNX Runtime: Для инференса модели MViTv2 на GPU.
- Hugging Face Transformers: Загрузка и использование модели RuT5-base-multitask для генерации текста.
- Matplotlib: Визуализация результатов обучения.
- Датасет и инструменты: Slovo.
- Git: Система контроля версий для управления исходным кодом.
- Браузерные инструменты: DevTools для отладки и сетевых запросов.
Учитывая социальную актуальность и быстрый прогресс в технологиях ИИ, проект может эволюционировать в полноценный продукт для повседневного использования. Ниже описаны ключевые направления развития:
1. Повышение точности распознавания жестов
- Перспективы включают расширение датасета за счет сбора дополнительных видео от носителей РЖЯ. Дообучение на пользовательских данных через обратную связь. Эксперименты с иными моделями и комбинированные методы.
- Текущая задержка <2 секунд может быть уменьшена до <0.5 секунд за счет добавления облачных GPU.
4. Расширение функционала и интеграция
- Двунаправленный перевод: Добавление модуля синтеза жестов из текста (с использованием анимационных библиотек) для обратного перевода.
- Интеграция с внешними сервисами: Подключение к API социальных сетей (VK, Telegram) для перевода в чатах, образовательным платформам или медицинским системам. Разработка API для сторонних приложений.
- База знаний: Расширение до 10 000+ жестов с интерактивным обучением.
- Переход к облачной архитектуре. Тестирование с участием целевой аудитории для usability-улучшений.
Развитие требует дополнительных ресурсов (данные, финансирование, тестирование), но позволит превратить прототип в инструмент, значительно улучшающий качество жизни глухих и слабослышащих людей.
В рамках проекта была достигнута основная цель — разработана и реализована система перевода и обработки русского жестового языка. Создано веб-приложения, позволяющий в реальном времени захватывать видеопоток с веб-камеры, классифицировать жесты и формировать связный текст на русском языке.
Поставленные задачи выполнены:
-
спроектирована архитектура системы с разделением на клиентскую и серверную части.
-
реализован фронтенд на React и серверная часть на FastAPI.
-
проведено обучение и тестирование модели на датасете Slovo.
-
достигнута точность классификации 64% на тестовой выборке, что является удовлетворительным результатом с учетом ограниченных данных (в среднем всего 5 примеров на жест).
-
обеспечен функционал захвата видеопотока, распознавания жестов, генерации текста и работы с базой знаний.
Проект может служить основой для дальнейших исследований, улучшений и внедрения в различные сервисы.
Актуальность:
Разработанная система актуальна в контексте повышения цифровой доступности для глухих и слабослышащих людей, которых в России насчитывается около 150 тысяч (по данным Всероссийского общества глухих). Отсутствие автоматизированных решений для перевода РЖЯ в текст создает барьеры в образовании, трудоустройстве и социальной коммуникации. Система может решить эту проблему. По данным Минтруда только 5% государственных онлайн-сервисов поддерживают РЖЯ.
Социальная полезность:
- Образование: База знаний поддержиет обучение РЖЯ, предоставляя доступ к материалам для студентов и преподавателей.
-
Коммуникация: Автоматический перевод РЖЯ в текст позволяет общаться без участия сурдопереводчика, что важно в повседневных и не очень ситуациях.
-
Доступность: Кроссплатформенный веб-интерфейс работает на любых устройствах с RGB-камерой, снижая зависимость от специализированного оборудования.
- Снижение затрат: Автоматизация перевода РЖЯ уменьшает потребность в профессиональных сурдопереводчиках, стоимость услуг которых может быть довольно высокой.
Масштабируемость:
Серверная часть, реализованная, поддерживает асинхронную обработку запросов. Для масштабирования возможно внедрение облачных решений, таких как Google Cloud Platform или AWS, для распределения вычислительной нагрузки. Это позволит обрабатывать видеопотоки от множества пользователей одновременно.
Модель MViT v2, используемая для классификации жестов, оптимизирована для работы на GPU с поддержкой CUDA. При необходимости возможно использование более мощных вычислительных ресурсов, таких как серверные GPU, для ускорения обработки видеоданных.
Способность к взаимодействию с другими системами:
Серверная часть обеспечивает стандартизированный интерфейс для взаимодействия с внешними системами. Основные эндпоинты позволяют интегрировать систему с другими приложениями, включая мобильные и веб-платформы. Формат обмена данными JSON упрощает интеграцию с системами, поддерживающими стандартные протоколы HTTP.
Мобильность:
Веб-интерфейс, реализованный на React, доступен через любой современный браузер (Google Chrome, Firefox, Safari) на настольных и мобильных устройствах. Это обеспечивает кроссплатформенность без необходимости установки дополнительного ПО.
Языковая модель RuT5-base-multitask выбрана для преобразование последовательности жестов в текст из-за её адаптации к русскому языку и способности генерировать грамматически корректные предложения. В отличие от других моделей, RuT5 эффективно работает с задачей "assemble", формируя связный текст из ключевых слов. Модель компактна, что позволяет использовать её на локальном сервере.
Алгоритм скользящего окна выбран для сегментации видеопотока, чтобы обеспечить непрерывное распознавание последовательностей жестов. Этот подход позволяет учитывать контекст между соседними сегментами, что важно для РЖЯ, где жесты часто перетекают друг в друга. Эксперименты показали, что окно 32 кадра оптимально: оно дает точность 64% (против 58% для 16 кадров и 62% для 48 кадров). Шаг 12 кадров обеспечивает перекрытие, минимизируя пропуски жестов, но при этом прибавляет нагрузку на сервер. Сглаживание предсказаний устраняет шум (единичные повторения и тд.).
-
Интеграция моделей компьютерного зрения и обработки естественного языка: Система сочетает Multiscale Vision Transformer v2 для классификации жестов и языковую модель RuT5-base-multitask для формирования грамматически корректных предложений из последовательности распознанных жестов.
-
Веб-доступность: Реализация веб-приложения на основе React и FastAPI обеспечивает кроссплатформенный доступ без необходимости установки специализированного ПО, что делает систему удобной для широкого круга пользователей.
-
База знаний: Интеграция базы знаний с 1000 видеофайлов жестов, доступной через веб-интерфейс, предоставляет инструмент для обучения и проверки жестов, что отсутствует в большинстве существующих решений.
-
Скользящее окно: Алгоритм скользящего окна с перекрытием оптимизирован для непрерывного распознавания жестов, что позволяет учитывать контекст между соседними сегментами видео. Этот подход повышает точность распознавания последовательностей жестов.
- Фокус на РЖЯ: В отличие от SignAll, ориентированного на американский жестовый язык, и Google Gesture Recognition, который в основном применяется для универсальных жестов или ASL, данная система разработана специально для РЖЯ.
-
Комбинированный подход: В отличие от систем, использующих только компьютерное зрение, данная разработка сочетает обработку видеопотока и языковую постобработку, что позволяет переводить не только отдельные жесты, но и последовательности в связный текст.