Обнаружение букв языка жестов в режиме реального времени с помощью MediaPipe и Keras
Прежде чем мы начнем, если вы уже читали эту статью или ищете следующий раздел статьи, в котором мы объясняем реализацию модели, вы можете найти ссылку на вторую часть статьи ниже:
Язык жестов — это форма общения, используемая в основном слабослышащими или глухими людьми. Этот тип языка на основе жестов позволяет людям легко передавать идеи и мысли, преодолевая барьеры, вызванные проблемами со слухом.
Основной проблемой этой удобной формы общения является незнание языка подавляющим большинством населения мира. Так же, как и любой другой язык, изучение языка жестов требует много времени и усилий, что препятствует его изучению большей частью населения.
Однако очевидное решение этой проблемы присутствует в мире машинного обучения и обнаружения изображений.
Многие большие обучающие наборы данных для языка жестов доступны на 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)
В следующей части этой статьи мы объясним, как реализовать и интегрировать модель, созданную с другими библиотеками обработки изображений, для создания прогнозов языка жестов в реальном времени с камеры вашего компьютера. Вторую статью можно найти по ссылке ниже: