Американский язык жестов (ASL) — это визуальный язык, используемый глухими и слабослышащими людьми для общения. Способность распознавать буквы ASL необходима для эффективного общения и находит применение в таких областях, как вспомогательные технологии, образование и доступность. В последние годы достижения в области компьютерного зрения и глубокого обучения позволили разработать модели распознавания букв ASL. В этом посте я рассмотрю использование сверточной нейронной сети (CNN) для распознавания букв ASL и обсужу ее производительность и потенциальные приложения.
Американский язык жестов (ASL) — это полный и естественный язык, используемый глухими и слабослышащими людьми для общения друг с другом и со слышащими людьми, понимающими язык жестов. Это визуальный язык, который использует комбинацию жестов рук, мимики и языка тела для передачи смысла.
В этом проекте используется набор данных ASL Alphabet, представляющий собой набор изображений алфавитов американского языка жестов. Набор данных содержит 87 000 обучающих изображений размером 200x200 пикселей и 29 классов, включая 26 букв A-Z, ПРОБЕЛ, УДАЛЕНИЕ и НИЧЕГО. Дополнительные три класса особенно полезны для приложений реального времени и классификации. Набор тестовых данных содержит 29 изображений, чтобы стимулировать использование реальных тестовых изображений.
Используя этот набор данных, этот проект направлен на разработку модели CNN, которая может точно распознавать буквы ASL и способствовать развитию вспомогательных технологий и доступности для глухих и слабослышащих. Вы можете узнать больше, перейдя по этой ссылке: https://www.kaggle.com/datasets/grassknoted/asl-alphabet
Сверточные нейронные сети (CNN) — это тип архитектуры глубокого обучения, которая, как было показано, исключительно хорошо справляется с задачами классификации изображений. CNN могут автоматически изучать функции из входных данных и использовать их для точных прогнозов, что делает их подходящим выбором для распознавания букв ASL.
В контексте распознавания букв ASL CNN могут анализировать пространственные отношения между пикселями изображения и фиксировать важные закономерности и вариации жестов рук. Например, CNN может научиться распознавать форму руки, положение пальцев и ориентацию ладони, которые являются важными характеристиками для идентификации различных букв ASL.
Кроме того, CNN могут обрабатывать изменения условий освещения, позы и фоновых помех, которые являются общими проблемами при распознавании букв ASL. Используя несколько слоев свертки и объединения, CNN могут извлекать иерархические представления входного изображения и делать надежные прогнозы, даже если входные данные зашумлены или искажены.
В целом, способность CNN изучать сложные функции из изображений и делать точные прогнозы на основе этих функций делает их естественным выбором для распознавания букв ASL. Используя возможности CNN, этот проект направлен на разработку высокопроизводительной модели распознавания букв ASL, которая может улучшить доступность и общение для глухих и слабослышащих людей.
Архитектура сети CNN для проекта распознавания букв ASL состоит из нескольких уровней. Модель начинается со слоя Rescaling, который масштабирует значения пикселей входного изображения до диапазона [0,1], чтобы сделать процесс обучения более эффективным.
Далее идут три сверточных слоя с постепенно увеличивающимися размерами фильтров 32, 64 и 128 соответственно. Эти слои извлекают важные функции из входного изображения, применяя к входному изображению набор фильтров. Фильтры скользят по изображению и вычисляют скалярные произведения между весами фильтров и значениями пикселей в принимающем поле. Результатом каждого сверточного слоя является набор карт признаков, которые представляют различные аспекты входного изображения.
После каждого сверточного слоя следует слой максимального объединения, который уменьшает пространственный размер карт объектов, принимая максимальное значение в скользящем окне. Эта операция помогает снизить вычислительную сложность модели и повысить ее трансляционную инвариантность.
Затем выходные данные третьего слоя максимального объединения объединяются в одномерный вектор и проходят через два плотных слоя с 1024 и 512 нейронами соответственно. Эти слои выполняют задачу классификации, сопоставляя признаки высокого уровня, извлеченные сверточными слоями, с выходными классами (т. е. 29 букв ASL). Последний плотный слой содержит 29 нейронов, что соответствует количеству классов в наборе данных.
Модель использует функцию активации Rectified Linear Unit (ReLU) для всех сверточных и плотных слоев, кроме выходного слоя, который использует функцию активации Softmax для преобразования необработанных логитов в вероятности классов.
В целом, эта архитектура CNN предназначена для захвата основных характеристик букв ASL и их точной классификации. Модель имеет более 70 миллионов параметров, что делает ее глубокой и мощной сетью, способной изучать сложные закономерности в данных.
Модель, использующая вышеуказанную архитектуру, имеет точность 0,97 на обучающем наборе и точность 0,98 на тестовом наборе. Давайте посмотрим на данные, которые были неправильно классифицированы.
Я могу четко сказать, что, несмотря на то, что модель выдает приличную точность, в моей реализации модели есть недостатки. Глядя на изображения, большинство неправильно классифицированных примеров могут четко определить разницу между предсказанной меткой и истинной меткой. Это может указывать на то, что модель также учитывает фон, положение руки и условия освещения. Чтобы решить эту проблему, можно использовать различные методы, такие как увеличение данных, регуляризация и настройка гиперпараметров, чтобы улучшить производительность модели. Кроме того, может быть полезным изучение других архитектур CNN, таких как более глубокие или более широкие сети, или использование трансферного обучения с предварительно обученными моделями. Крайне важно выявить и устранить эти недостатки, чтобы повысить точность модели и сделать ее более надежной для реальных приложений.
В заключение, используя данные изображений и алгоритмы глубокого обучения, мы можем разработать точные и эффективные модели, которые могут интерпретировать жесты языка жестов и преобразовывать их в текст или речь. Хотя могут возникнуть проблемы, которые необходимо преодолеть с точки зрения улучшения производительности модели и решения таких проблем, как переоснащение, дальнейшее развитие этой модели может привести к созданию более надежных и эффективных систем распознавания ASL.
Гитхаб: https://github.com/JinhongHuo114/26_letter_ASL_recognizer