ПРИМЕНЕНИЕ РЕКУРРЕНТНЫХ НЕЙРОННЫХ СЕТЕЙ В ПОДСИСТЕМЕ РАСПОЗНАВАНИЯ ЖЕСТОВЫХ ПРЕДЛОЖЕНИЙ ДЛЯ ПРОЕКТА "СУРДОТЕЛЕФОН" - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ПРИМЕНЕНИЕ РЕКУРРЕНТНЫХ НЕЙРОННЫХ СЕТЕЙ В ПОДСИСТЕМЕ РАСПОЗНАВАНИЯ ЖЕСТОВЫХ ПРЕДЛОЖЕНИЙ ДЛЯ ПРОЕКТА "СУРДОТЕЛЕФОН"

Тарасов Г.А. 1, Воронова Л.И. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье рассматривается применение рекуррентных нейронных сетей для разработки подсистемы распознавания жестового языка глухонемых, проводится исследование существующих решений и приводятся результаты эксперимента, в рамках которого была обучена нейронная сеть с использованием библиотеки OpenCV и с ее помощью проведено распознавание простейших жестов из набора данных, созданного авторами статьи для проведения данного эксперимента. Статья выполнена в рамках курсового проекта по дисциплине "Machine Learning. Обучающиеся технические системы".

В последние годы активно разрабатывается широкий спектр технических и программных средств для помощи людям с ограниченными возможностями и облегчения их взаимодействия с окружающим миром и с обществом. Однако же, несмотря на достижения современной науки в этом направлении, жестовый язык остается одной из наименее изученных областей. Современные достижения в области нейронных сетей и глубокого обучения, а также нарастание вычислительных мощностей позволяют расширить возможности для разработки программных и аппаратных решений, облегчающих адаптацию слабослышащих людей в социуме. В частности, одной из ключевых целей в данном направлении является разработка приложения, которое позволяло бы в реальном времени распознавать жестовый язык и переводить его в текстовую или голосовую форму, то есть автоматически осуществлять сурдоперевод. Создаваемая система автоматизированного сурдоперевода должна быть способна не только переводить воспринятый текст (и речевое сообщение) в жестовые высказывания, но и преобразовывать жестовые высказывания в слова и фразы. С последней задачей, как показывает практика, во многих случаях не справляются даже люди-сурдопереводчики [1].

Согласно статистике, на данный момент число свободно говорящих на языке глухонемых оценивается в 250000-500000 человек [2], что существенно ограничивает число людей, с которыми глухонемые могут полноценно общаться. Альтернативный вариант общения при помощи текстовых сообщений слишком медленный, лишенный свободы и простоты использования, присущей устной речи. Кроме того, использование текстовых сообщений может быть непрактичным в случае чрезвычайной ситуации. Таким образом, становится востребованной программа, осуществляющая распознавание жестового языка в реальном времени при помощи видеокамеры, без громоздких вспомогательных аппаратных средств (например, специальных перчаток), необходимых для работы большинства существующих решений.

С точки зрения компьютерного зрения, решение задачи представляет значительные сложности из-за ряда возникающих проблем, таких как:

  • влияние окружения (уровень освещенности, фон, позиция камеры)

  • окклюзия (например случай, когда часть пальцев или даже вся рука находятся вне поля зрения)

  • обнаружение границы жестового знака (момента, когда заканчивается один знак и начинается следующий)

  • ко-артикуляция (случаи, когда на жест влияют предшествующие или последующие жесты)

Существующие решения для перевода жестового языка

В то время как существует некоторое количество решений, позволяющих переводить жестовый язык с достаточно высокой точностью (то есть осуществлять обратный перевод жестового языка), большинство из них требуют устройство захвата 3D-информации, например, перчатки с захватом движений или видеокамеры с дополнительными датчиками Microsoft Kinect, и кроме того, многие из этих решений не поддерживают возможности классификации в реальном времени. Эти особенности сильно ограничивают масштабируемость и возможность практического применения этих разработок. Кроме того, существует ряд решений для перевода устной речи и текста в жестовый язык (прямого перевода), что также в значительной степени облегчает коммуникацию людей с ограниченными возможностями, поскольку предоставляет возможность другим людям ответить слабослышащему в привычной и удобной для него форме.

Сурдофон [3]

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

Рис. 1 - графический интерфейс приложения Сурдофон

Также существует версия программы Сурдофон-ТВ – программное обеспечение для ТВ-студий, предназначенное для автоматического компьютерного сурдоперевода телевизионных передач. Решение Сурдофон-ТВ позволяет редактору новостей и видеомонтажеру ТВ-студии оперативно подготовить видеоряд и субтитры для сопровождения сурдопереводом выпускаемый ТВ-контент. При этом сурдоперевод осуществляется компьютерным аватаром, без участия профессионального сурдопереводчика. Программа Сурдофон проста в использовании, а мобильное приложение может быть установлено бесплатно практически на любой телефон на базе Anrdoid и не требует дополнительного оборудования для использования. Недостатком решения является отсутствие возможности ввода с помощью жестового языка, то есть автоматического обратного сурдоперевода, что затрудняет ее использование глухонемыми пользователями.

Онлайн-словари

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

Яндекс.Разговор [4]

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

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

Сенсорные перчатки для распознавания жестов [5]

В настоящее время существует ряд экспериментальных разработок, позволяющих распознавать жесты с помощью специальных перчаток с сенсорами. Однако в настоящее время ни одна из этих разработок не достигла стадии серийного производства, несмотря на относительно высокое качество распознавание жестового языка. Причиной столь низкой популярности такого подхода может быть громоздкость подобных устройств и неудобство их использования на практике. Кроме того, большинству из них нужно постоянное подключение к персональному компьютеру, например, по Bluetooth [5]. Фотография прототипа устройства SignAloud приведена на рис. 3.

Рис. 3 - прототип перчаток SignAloud для распознавания жестового языка

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

Motionsavvy UNI

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

Распознавание жестового языка с помощью нескольких видеокамер

Существует широкий спектр решений, осуществляющих распознавание жестового языка с помощью данных, полученных с нескольких камер, которые снимают использующего жестовый язык с нескольких разных ракурсов, а также с помощью дополнительных датчиков (например, датчика глубины), в частности, во многих решениях используется камера Microsoft Kinect, оснащенной двумя датчиками глубины, также есть решения на основе камеры Intel Realsense. Например, в одной из наиболее современных разработок в этом направлении, описанной в статье Райана Шротта, главного аналитика Национального Банка Канады [6], используется набор данных, полученный с применением четырех видеокамер и одного датчика глубины.

Рис. 4 - камера Microsoft Kinect

Распознавание жестов затем проводится с помощью различных вычислительных методов, таких как нейронные сети различных классов, метода Марковских случайных полей и других. К достоинствам подобных систем можно отнести наиболее полное получение информации о положении рук, лица и тела говорящего, что в теории позволяет распознать не только сам жест, но также учесть эмоции и позу, несущие значительную часть смысловой нагрузки в жестовом языке. Однако, даже несмотря на очевидную сложность вычислений, громоздкость дополнительного оборудования и неудобство практического использования, при попытке распознать реальный осмысленный поток жестовых знаков, эти системы как правило показывают недостаточно высокую эффективность для какого-либо практического использования. Кроме того, обучение подобных систем существенно затрудняется тем фактом, что один и тот же жест может принимать на видеозаписи различные формы [7], что отображено на рис. 5.

Рис. 5 - различные варианты отображения одного и того же знака

Рекуррентные нейронные сети

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

Рекуррентные нейронные сети (англ. Recurrent neural network; RNN) — вид нейронных сетей, в которых имеется обратная связь, то есть связь от логически более удалённого элемента к менее удалённому. Наличие обратных связей позволяет запоминать и воспроизводить целые последовательности реакций на один стимул. С точки зрения программирования в таких сетях появляется аналог циклического выполнения, а с точки зрения систем — такая сеть эквивалентна конечному автомату. Такой вид нейросетей предоставляет, в теории, широкий спектр возможностей по моделированию биологических нейросетей, однако эти возможности на данный момент плохо изучены, поскольку позволяют строить разнообразные архитектуры, сложные для анализа.

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

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

Рис. 6 - рекуррентная нейронная сеть

Реализация нейронной сети для распознавания жестов

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

Программа написана с использованием высокоуровневого языка программирования общего назначения Python. Кроме встроенных по умолчанию средств, используются библиотека с открытым исходным кодом Numpy, обеспечивающая поддержку многомерных массивов и высокоуровневых математических функций, предназначенных для работы с ними, а также широко используемая библиотека компьютерного зрения с открытым кодом OpenCV. В программе библиотека OpenCV используется для захвата изображения с веб-камеры, затем для проведения предварительной обработки кадра, то есть для удаления фона и определения контуров руки (данная процедура позволяет облегчить восприятие данных нейронной сетью и уменьшить время, затрачиваемое при обучении и классификации). Также используются методы OpenCV с инкапсулированной в них работой нейронной сети, непосредственно связанные с компьютерным зрением.

Обучение нейронной сети

Обучение нейронной сети, используемой в программе, проводилось на тестовом наборе из 25 изображений. Поскольку представленный вариант реализации программы способен распознаватьдо 5 различных жестов, число обучающих образцов было выбрано кратным 5. Обучающий набор был составлен авторами статьи с помощью обычной веб-камеры ноутбука, без использования какого-либо дополнительного оборудования. Для наглядности, в рамках эксперимента было принято решение распознавать жесты, соответствующие цифрам до 1 до 5, по числу пальцев. При этом, явным образом в коде программы число пальцев не анализируется — программа показывает высокую эффективность также при распознавании иных простых жестов.

Рис. 7 - обучающий набор данных для эксперимента

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

Рис. 8 - процесс обучения нейронной сети

Зеленой рамкой обозначена область, которая обрабатывается программой, а красной - область, в которой зафиксирован контур руки. Зеленым силуэтом обозначен результат предварительной обработки изображения. На представленном снимке экрана видно, что еще до обучения программа способна отделить общие очертания руки от фона.

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

Рис. 9 - результат работы программы

Заключение

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

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

Список использованных источников и литературы

  1. Овсянникова Л. А. Проблемы жестового перевода на телевидении // Русский жестовый язык и проблемы перевода: Материалы конференции. — М., 2001

  2. Mitchell, Ross; Young, Travas; Bachleda, Bellamie; Karchmer, Michael (2006). "How Many People Use ASL in the United States?: Why Estimates Need Updating" (PDF). Sign Language Studies (Gallaudet University Press.) 6 (3). ISSN 0302-1475. Retrieved November 27, 2012

  3. Play.Google.com [Электронный ресурс]: Google Play: Приложение "Сурдофон". URL: https://play.google.com/store/apps/details?id=com.surdofon&hl=ru (дата обращения 24.12.2017)

  4. Yandex.ru [Электронный ресурс]: Яндекс: Приложение "Яндекс.Разговор".

URL: https://mobile.yandex.ru/apps/android/talk?testgroup=list (дата обращения 25.12.2017)

  1. Geektimes.ru [Электронный ресурс]: Geektimes: Перчатки SignAloud, перевод жестов в слова. URL: https://geektimes.ru/c ompany/ua-hosting/blog/277108/ (дата обращения 3.1.2018)

  2. Machinelearnings.co [Электронный ресурс]: Ryan Shrott: Sign Language Recognition with HMM’s. URL: https://machinelearnings.co/sign-language-recognition-with-hmms-504b86a2acde (дата обращения 5.1.2018)

  3. Openaccess.Thecvf.com [Электронный ресурс]: Alina Kuznetsova: Real-time sign language recognition using a consumer depth camera.

URL: http://openaccess.thecvf.com/content_iccv_workshops_2013/W02/ papers/Kuznetsova_Real-Time_Sign_Language_2013_ICCV_paper.pdf

  1. Github.com [Электронный ресурс]: Sreenivas Venkobarao: Repositories.

URL: https://github.com/SreenivasVRao

  1. Л.И. Воронова, В.И. Воронов. Machine Learning: Регрессионные методы интеллектуального анализа данных: учебное пособие – М., МТУСИ, 2017 – 81 с.

  2. Воронов В.И., Воронова Л.И. О повышении результативности магистерских программ в условиях инновационной экономики/ Инновационные подходы в науке и образовании: теория, методология, практика. - Изд-во: "Наука и Просвещение, 2017, с.35-44

  3. Гончаренко А.А., Воронова Л.И. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ ИНТЕЛЛЕКТУАЛЬНОЙ СИСТЕМЫ РАСПОЗНАВАНИЯ ЖЕСТОВОГО ЯЗЫКА // Материалы VIII Международной студенческой электронной научной конференции «Студенческий научный форум» URL:http://www.scienceforum.ru/2018/3186/3332 (дата обращения: 25.01.2018).

Просмотров работы: 352