Обнаружение букв языка жестов в режиме реального времени с помощью MediaPipe и Keras

Прежде чем мы начнем, если вы уже читали эту статью или ищете следующий раздел статьи, в котором мы объясняем реализацию модели, вы можете найти ссылку на вторую часть статьи ниже:

Распознавание жестового языка с помощью модели изображения Keras VGG19 — Часть 2 | Михир Гаримелла | август 2022 г. | Средний

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

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

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

Многие большие обучающие наборы данных для языка жестов доступны на Kaggle, популярном ресурсе по науке о данных. Тот, который использовался при разработке этой модели, содержит около 3000 изображений каждой из 26 английских букв языка жестов и дополнительный знак «Пробел».

Значимый (ASL) набор данных алфавита жестового языка | Каггл

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

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

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

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

Обратите внимание на инициализацию алгоритма с добавлением переменных, таких как модель vgg19, и сжатие до 27 функций.

Наконец, определение функций потерь и метрик вместе с подгонкой модели к данным создаст нашу систему распознавания жестового языка. Важно распознать команду model.save() в конце оператора из-за продолжительности времени, необходимого для построения модели. Повторное обучение модели для каждого использования может занять несколько часов.

В этом коде есть что распаковать. Давайте рассмотрим его по частям.

Строка 1:

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

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

Строка 2–5:

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

Строка 7:

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

Разработанная модель точно обнаруживает и классифицирует символы жестового языка с точностью около 80%. Вместе с помощью библиотек камер, таких как Open-CV, мы создадим приложение, которое сможет захватывать живые изображения жестов рук и с уверенностью предсказывать, какая буква отображается.

Весь код, используемый в этой статье, находится на моей странице GitHub, ссылка на которую приведена ниже:

mg343/Sign-Language-Detection (github.com)

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

Распознавание жестового языка с помощью модели изображения Keras VGG19 — Часть 2 | Михир Гаримелла | август 2022 г. | Средний