Авторы: Бхавеш Суд, Вишваджит Кумар, Аджит Ядав

Машинное обучение (CSE343, ECE343) Института информационных технологий Индрапрастхи, Дели.

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

Введение

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

Литературное исследование

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

Набор данных

Наш набор данных представляет собой большую базу данных рисованных изображений различных жестов для американских жестовых писем.[4] База данных содержит 27 455 обучающих изображений и 7172 тестовых изображения размером 28x28 каждое. В наших данных у нас есть 784 столбца pixel1, pixel2,…, pixel784, которые представляют собой одно изображение 28X28. Эти изображения содержат матрицы значений пикселей, и каждое значение пикселя находится в диапазоне 0–255. Целевой столбец имеет целые числа от 1 до 26, соответствующие английским алфавитам от A до Z. Наш набор данных не содержит данных для 9 = J и 25 = Z, потому что в языке жестов эти алфавиты нуждаются в движении.

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

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

Методология

Цель состоит в том, чтобы сделать такую ​​модель, чтобы изображение знака правильно преобразовывалось в одну из 26 букв алфавита. Проблема состоит в том, чтобы классифицировать изображения (входные данные) по одной из 26 меток (26 алфавитов английского языка).

1. Логистическая регрессия

Мы начали с одного из основных методов классификации. Мы попытались обучить простую модель логистической регрессии. Логистическая регрессия обучает данные с помощью сигмовидной функции гипотезы и алгоритма градиентного спуска. Мы обучили модель логистической регрессии sklearn для обучения наших данных. Мы устанавливаем поле штрафа параметра равным none, чтобы не было регуляризации. Наша проблема — мультиклассовая классификация. Для многоклассовой классификации в этой модели используется схема «один против остальных». Мы обучили модель на 400 итераций.

1.1 Логистическая регрессия с регуляризацией L2

После обучения логистической регрессии мы обычно пытались добавить некоторый штраф, чтобы уменьшить дисперсию. Итак, мы сначала обучили наши данные с помощью регуляризации L2 (регрессия Риджа). Мы использовали ту же модель линейной регрессии, что и sklearn, но изменили ее параметр штрафа (по умолчанию он равен l2). Мы обучали эти данные также для 400 итераций.

1.2 Логистическая регрессия с регуляризацией L1

После опробования регрессии L2 мы попробовали регуляризацию L1 (регрессия Лассо), поскольку она устойчива к выбросам. На этот раз мы изменили поле штрафа модели логистической регрессии на «l1» и снова обучили обучающие данные для 400 итераций.

2. Дерево решений

Затем мы попытались составить дерево решений для классификации изображений. Дерево решений — это очень прямой, основанный на правилах способ классификации данных. Он создает дерево, рассматривая некоторый столбец как его корень, и начинает классифицировать данные, выбирая какой-либо другой столбец в качестве его дочернего элемента. Мы использовали «DecisionTreeClassifier» от sklearn для обучения наших данных. Он использует индекс GINI (по умолчанию) для измерения примесей и выбирает столбец для корня на его основе. Поскольку мы пробовали чистое дерево решений, мы оставили параметр максимальной глубины дерева как есть (значение по умолчанию НЕТ). Это означает, что узлы расширяются до тех пор, пока все листья не станут чистыми или пока все листья не будут содержать меньше, чем минимальное количество разделенных выборок. После обучения модели на данных поезда мы рассчитали точность нашей модели на тестовых данных.

3. Ансамблирование по модели DT (Random Forest Classifier)

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

3.1 Настройка гиперпараметров радиочастотной модели

На данный момент мы получили наилучшую точность 80% с моделью RF, мы также попытались улучшить точность, настроив ее гиперпараметры. Ниже приведены гиперпараметры и их значения, из которых мы пытались найти наилучшие параметры с помощью поиска по сетке CV: «оценки n»: [80, 100, 120, 200, 300], «критерий»: [«энтропия», «джини». ], «максимальная глубина»: [2, 4, 10, 18, 30]. После выполнения 5 перекрестных проверок сетка Search CV дала следующую комбинацию лучших гиперпараметров, n оценок = 300, максимальная глубина = 30 и критерий как «энтропия». С этими параметрами точность повысилась с 80% до 81,49%.

4. СВМ

Прежде чем перейти к нейронным сетям, мы попробовали SVM, который является классификатором мягкой маржи по норме l2. SVM — это контролируемый алгоритм машинного обучения, который можно использовать как для классификации, так и для регрессии. Для этого мы использовали ядро ​​«RBF» без ограничений на максимальное количество итераций, поскольку SVM всегда сходится. Основное преимущество SVM заключается в том, что он очень эффективен в многомерных пространствах. Мы обучили модель на обученных данных, протестировали на тестовых данных и получили точность 84,88%. Пока что результаты модели SVM в нашей задаче классификации были лучшими.

5. МЛП

Попробовав приведенные выше распространенные алгоритмы машинного обучения, мы решили попробовать искусственные нейронные сети для нашей задачи классификации. Искусственная Нейронная Сеть представляет собой соединение нейронов, повторяющее структуру человеческого мозга. Каждое соединение нейронов передает информацию другому нейрону. Входные данные подаются в первый слой нейронов, который обрабатывает их и передает другому слою нейронов, называемому скрытыми слоями. После обработки информации через несколько слоев скрытых слоев информация передается на конечный выходной слой. Перепробовав множество комбинаций скрытых размеров слоев, решателей, макситеров и функций активации, а также других настроек гиперпараметров, мы создали классификатор MLP со скрытыми размерами слоев (600, 650, 700) с функцией активации «relu» и после обучения и тестирования, модель дала точность 84,54% на тестовых данных. Мы рассчитали матрицу путаницы и нашли взвешенные значения точности, отзыва и оценки F1 для дальнейшего подтверждения, и все эти значения были около 0,85. Таким образом, мы пришли к выводу, что 85% — это лучшее, что мы можем получить от MLP.

6. Си-эн-эн

В отличие от обычных нейронных сетей, в слоях CNN нейроны расположены в трех измерениях: ширина, высота, глубина. Нейроны в слое будут подключены только к небольшой области слоя (размер окна) перед ним, а не ко всем нейронам полносвязным образом. Более того, окончательный выходной слой будет иметь размеры (количество классов), потому что к концу архитектуры CNN мы сократим полное изображение до единого вектора оценок классов. В нашей модели мы использовали три сверточных слоя -2D, за каждым из которых следует максимальный пул, чтобы уменьшить пространственные размеры. Затем мы скомпилировали модель с настроенными параметрами и обучили ее, держа в руках проверочный набор 8:2, чтобы контролировать проблему переобучения. Вот краткое изложение нашей модели CNN.

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

Точность

  1. Логистическая регрессия

    (a) Простая: 65,29 %
    (b)Гребень: 70,65 %< br /> (c) Лассо: 63,30%
  2. Дерево решений: 43,83%
  3. Случайный лес: 81,49%
  4. Машина опорных векторов: 84,88%
  5. Классификатор MLP: 84,53%
  6. Классификатор CNN : 95,50%

Заключение

Анализируя все модели с их точностью и кривой потерь для данных обучения, проверки и тестирования, CNN дала точность набора тестов 95,5%, что достаточно хорошо. Другие модели также давали приличную точность, но не превышали 85% даже после настройки гиперпараметров.

Также в CNN мы попробовали несколько комбинаций различных параметров, и при скорости обучения порядка 0,001 результат сходился очень быстро. В то время как в случае 0,0001 точность падала до 92%. Поэтому мы взяли среднее значение скорости обучения 0,0005 и обучили данные за 20 эпох. Это дало нам хорошую точность и кривую потерь.

Например, мы взяли изображение ниже (рис. 6) в качестве входных данных с камеры в реальном времени и преобразовали его в изображение в градациях серого (рис. 7), которое показано под исходным изображением. Наш код предсказал метку 2 для изображения ниже, которая является меткой для C (поскольку маркировка начинается с 0 для A, 1 для B и 2 для C).

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

Рекомендации

Виктория А. Адевале и доктор Адеджок О.Оламити. Преобразование языка жестов в текст и речь с использованием методов машинного обучения.

Анкит Оджа, Аюш Пандей, Шубхам Маурья, Абхишек Тхакур и доктор Даянанда П. Преобразование языка жестов в текст и речь в режиме реального времени с использованием сверточной нейронной сети. 2014.

Мускан Дхиман. Распознавание языка жестов. 2017.