Понимание распознавания индийского языка жестов и его методов с упором на современный иерархический подход нейронной сети

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

Итак, приступим!

Пожалуйста, обратитесь к приведенной ниже ссылке, чтобы получить полный текст исследования. Модели в этом посте будут основаны на подходе, используемом в этой статье. Я очень рад сообщить своим читателям, что обсуждаемая здесь исследовательская работа была написана мной и моими товарищами по команде и опубликована в Международном журнале нейронных вычислений и приложений.

Ссылка на исследовательский документ

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

Что такое распознавание жестового языка?

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

Чем отличается индийский язык жестов?

Индийский язык жестов (ISL), в отличие от других языков жестов, представляет собой язык жестов двумя руками, хотя некоторые буквы алфавита (c, i, j, l, o, u, v) требуют представления только одной рукой.

Проблема с распознаванием индийского жестового языка

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

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

Методы распознавания жестового языка

Различные методы были исследованы с целью эффективного распознавания языка жестов с течением времени. Некоторые из наиболее эффективных из них обсуждаются ниже:

Аппаратные методы распознавания

Некоторые методы распознавания языка жестов состоят из двух этапов: определение жеста руки на изображении и классификация по соответствующему алфавиту. Некоторые методы включают устройства отслеживания рук (Leap Motion и Intel Real Sense) и используют алгоритмы машинного обучения, такие как SVM (Support Vector Machines), для классификации жестов. Аппаратные устройства, такие как кинетические датчики (от Microsoft), создают трехмерную модель руки и наблюдают за движениями рук и их ориентацией. Подход на основе перчаток был еще одной техникой, при которой от пользователя требовалось носить специальную перчатку, которая распознавала положение и ориентацию руки. Аппаратные методы могут быть довольно точными, но не могут широко использоваться из-за первоначальной стоимости установки.

Методы распознавания на основе машинного обучения

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

Техника, использованная в исследовательской статье, обсуждаемой в этой публикации, фокусируется на распознавании на основе нейронной сети.

Набор данных

Набор данных был создан вручную из-за отсутствия полного набора данных для ISL, который включал все 26 букв латинского / латинского алфавита. Набор данных включает почти 10 000 изображений для каждой буквы на разном фоне и в разных условиях освещения.

Увеличение данных

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

Подходы к распознаванию индийского жестового языка

Для постановки поставленной задачи были разработаны три подхода, и был проведен сравнительный анализ этих моделей на основе их статистики обучения и результатов.

Предварительно обученные и настроенные модели

Предварительно обученная модель VGG16 использовалась для обучения на наборе данных алфавитов ISL. Обучение проводилось с использованием методов передачи и точной настройки, что позволило установить базовый уровень для сравнения моделей. Последний слой (слой softmax) исходной модели VGG16 был удален, поскольку он был разработан в соответствии с набором данных Imagenet. Затем были добавлены два полностью связанных слоя, за которыми последовал новый слой softmax, имеющий 26 классов, по одному для каждой буквы алфавита.

Модель на основе естественного языка

В рамках этой модели была разработана глубокая сверточная нейронная сеть (DCNN) с 26 классами. Позже выходные данные были переданы в модель на основе английских корпусов для устранения любых ошибок во время классификации из-за шума или ошибки модели. Этот процесс был основан на вероятности появления конкретного слова в английском словаре. Например: если человек делает жест, обозначающий «CAT», и он классифицируется как «CXT», тогда модель может преобразовать этот X в A, основываясь на том факте, что CAT - слово гораздо более частое, и нет такого слова, как CXT. В этой модели учитывались только три лучших показателя точности, предоставленных нейронной сетью.

Иерархическая модель нейронной сети

Чтобы устранить проблему окклюзии функции из-за наличия жестов как одной, так и двумя руками, был принят сегментированный подход. Модель SVM использовалась для классификации изображений на две категории: изображения с одной рукой или двумя руками, таким образом выполняя двоичную классификацию. После этого эти изображения были загружены в соответствующие нейронные сети, разработанные отдельно для функций одной и двух рук.

Модель Архитектура

  1. Извлечение матрицы функций HOG: двоичная классификация выполняется моделью SVM для классификации на изображения, содержащие жесты для одной или двух рук. Перед загрузкой изображений в SVM мы применили к этим изображениям гистограмму ориентированных градиентов (HOG), которая дала нам представление об этих изображениях. HOG - это дескриптор и экстрактор функции, который работает с обнаружением краев на основе градиента и может быть очень полезен для обнаружения черт руки на шумном и темном фоне. Градиенты по осям x и y изображения могут быть очень важны по краям и углам и помогают нам идентифицировать внезапные изменения интенсивности. Чтобы узнать больше о HOG, обратитесь к этой статье.

2. Предварительная обработка данных для SVM: После извлечения функций HOG мы получили матрицу 24339 * 2028, которая довольно велика для передачи в SVM. Таким образом, были выполнены стандартизация и масштабирование, а затем был проведен анализ главных компонентов (PCA), чтобы получить максимум информации из этой огромной матрицы и сжать ее до 1500 функций для каждого изображения. Чтобы узнать больше о PCA, обратитесь к этой статье.

3. SVM для двоичной классификации: особенности основных компонентов, наконец, были введены в модель SVM с линейным ядром. На выходе SVM были показаны два класса: 0 для одной руки и 1 'для жестов двумя руками. Чтобы узнать больше о SVM, прочтите «эту статью. Модель выдала точность 96,79%.

4. Нейронная сеть для функций одной руки: Если на выходе SVM оказывается «0», это означает, что это функция одной руки и, таким образом, передается в сверточную нейронную сеть на основе архитектуры VGG19. Наконец, были добавлены два полностью связанных слоя по 128 узлов каждый, за которыми последовал softmax, имеющий 7 классов, по одному для каждого жеста одной рукой (C, I, J, L, O, U, V).

5. Нейронная сеть для двуручных функций: Если на выходе SVM оказывается «1», это означает, что это функция для двух рук и, таким образом, снова подается в другую сверточную нейронную сеть, основанную на архитектуре VGG19. В конце архитектуры VGG19 были добавлены два полностью связанных слоя с 256 узлами каждый, за которыми последовал слой softmax из 19 классов, по одному для каждого двуручного жеста (A, B, D, E, F, G, H , K, M, N, P, Q, R, S, T, W, X, Y, Z).

Параметры тренировки

Иерархическая модель была обучена примерно на 150 000 изображений. Модель SVM была обучена на функциях PCA, извлеченных из 6085 изображений. Для каждой из нейронных сетей, следующих за SVM, использовался оптимизатор Adam со скоростью обучения 0,0001 в случае одной руки и 0,0005 в случае жестов двумя руками.

Полученные результаты

Результаты всех трех моделей суммированы в следующем подразделе. Однако нас интересует подход иерархической сети, который оказался значительным улучшением по сравнению с существующими архитектурами для распознавания индийского жестового языка. Иерархическая модель обеспечила потерю обучения 0,0016, что соответствует точности обучения 99% и точности проверки 98,52% для категоризации функций, выполняемых одной рукой. Для двуручных функций точность обучения и проверки составила 99 и 97% соответственно.

Сравнительный анализ

Вот табличное сравнение между тремя моделями, обсуждаемыми в исследовательской статье.

Вывод

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

Любые отзывы приветствуются и ценятся - я хотел бы услышать, что вы думаете об этой статье!

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

Независимая редакция, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по обработке данных и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить модели машинного обучения.