Печать
Родительская категория: Наука
Категория: Лаборатория кинетических интерфейсов
Просмотров: 2955

Резюме

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

Static gestures classification using Convolutional Neural Networks on the example of the Russian Sign Language (RSL) dactyl.

Автор: Поткин О. А. (Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.)

Проект на GitHub: DNN-Gesture-Classifier

1. Введение

Интерфейсы взаимодействия человека и вычислительной техники многообразны по своей реализации и области применения: системы с консольным вводом-выводом, контролеры с жестовым управлением, интерфейсы мозг-компьютер [1] и другие. Системы с использованием ввода данных на базе распознавания пользовательских жестовых команд получили широкую популярность с 2010 года после выхода бесконтактного сенсорного игрового контроллера Kinect от компании Microsoft [2], увеличивают свою долю на рынке по сей день и становятся частью повседневной жизни разных категорий пользователей. Так, например, автопроизводитель Volkswagen представил мультимедиа систему Golf R Touch Gesture Control для управления мультимедиа системой автомобиля при помощи жестовых команд [3], а исследователи из Cybemet Systems Corporation разработали программное обеспечение для персональных компьютеров, позволяющее использовать жестовые команды вместо привычных устройств ввода [4].

Для преобразования жестовых команд в управляющий сигнал необходим механизм классификации жестовых данных, которые, в свою очередь, могут быть получены от различных устройств: специальных перчаток, определяющих координаты суставов [5], а также 2D и 3D видеокамер. Подход с использованием перчаток имеет существенный недостаток – пользователю необходимо носить специальное устройство, подключенное к компьютеру. В свою очередь, подход, основанный на концепции компьютерного зрения с использованием видеокамер, считается более естественным и менее затратным.

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

2. Описание набора данных для обучения классификатора

Для обучения, кросс-валидации и тестирования классификатора разработан набор данных, содержащий в себе 1042 изображений кистей рук в определенной жестовой конфигурации – классе. Всего в наборе данных представлено 10 классов, каждый из которых соответствует определенной дактилеме РЖЯ.

На Рис. 1 представлены образцы изображений каждого из классов набора данных.

Рис 1. Образцы изображений из набора данных. Параметры: номер класса, соответствие дактилемы букве русского алфавита, количество изображений класса.

Изображения выполнены при различных световых условиях, но на небольшом диапазоне расстояний объекта от камеры (0.4 – 0.7 метра).

В Таблице 1 приведены параметры изображения из набора данных.

Таблица 1. Параметры изображения

Параметр Значение
Формат .PNG
Ширина (пиксели) 128
Высота (пиксели) 128
Цветовое пространство RGB
Глубина 3

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

В представленной работе выполнено преобразование цветового пространства RGB в YCbCr для сегментации кожи [6] и применена бинаризация по пороговым значениям (Рис. 2).

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

Заключительный этап предварительной обработки – нормализация. Значения пикселей находится в диапазоне от 1 до 255, но для корректной работы нейронной сети необходимо подать на вход значения от 0 до 1. Для этого выполняется преобразование по формуле (1).

N = P / P_max                         (1)

где N – значение пикселя после нормализации, P – значение нормализуемого пикселя, P_max – максимальное значение диапазона.

Для того, чтобы минимизировать возможность переобучения классификатора [7], набор данных разделен на 3 части:

3. Архитектура нейронной сети и результаты работы классификатора

Архитектура сверточной нейронной сети представлена на Рис. 3.

Рис 3. Архитектура сверточной нейронной сети для классификации дактилем РЖЯ.

Нейронная сеть состоит из следующих слоев:

Нейронная сеть разработана с использованием фреймворка Keras на базе Tensor Flow со следующими значениями гиперпараметров (после процедуры оптимизации): коэффициент обучение 0.0001, размер связки 128, количество эпох 24, тип оптимизатора – Adam.

В результате оптимизации гиперпараметров были получены следующие результаты (Таблица 2).

Таблица 2. Результаты работы классификатора

Выборка Потери (Loss) Точность (Accuracy)
Обучающая 0.1411 0.9369
Кросс-валидация (эпоха 24) 0.2201 0.9461
Тестовая 0.2385 0.9138

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

Рисунок 4. Экспериментальный набор данных.

Результаты работы классификатора с экспериментальными данными представлены в Таблице 3.

Таблица 3. Результаты классификации экспериментальных данных

Номер класса (Значение) Корректность классификации Вероятность, с которой изображение соотнесено к корректному классу
 0 — А  +  1 
 1 — Б  +  0.998
 2 — В  +  0.998
 3 — Г  -  0
 4 — Е  -  0.021 
 5 — И  +  0.94 
 6 — О  +  1 
 7 — П  +  1 
 8 — С  +  1
 9 — Я  +  0.997

4. Вывод

В результате исследования был разработан набор данных, состоящий из более тысячи элементов, относящихся к десяти классам – дактилеммам РЖЯ. Разработаны алгоритмы и процедуры предварительной обработки данных на языке Python 3.5. Спроектирован и разработан классификатор на основе сверточной нейронной сети с использованием фреймворка Keras и TensorFlow, продемонстрировавший точность классификации в 91.4% на тестовом наборе данных и 80% на экспериментальном наборе данных. Представленных результатов точности недостаточно для внедрения данной системы в производство, но она может стать базой для дальнейших исследований в этом направлении.

Литература

[1] Поткин О. А., Иванов В. А. (2014) «Нейрокомпьютерный интерфейс Neurosky: взаимодействие с аппаратной вычислительной платформой Arduino» // 64-я Открытая студенческая научно-техническая конференция. Сборник работ, М.: Университет Машиностроения, с. 151–153.

[2] Википедия. Свободная энциклопедия. «Kinect» // [https://ru.wikipedia.org/wiki/Kinect].

[3] Volkswagen. «Gesture Control: How to make a lot happen with a small gesture» // [http://www.volkswagen.co.uk/technology/comfort-and-convenience/gesture-control].

[4] Charles J. Cohen, Glenn Beach, Gene Foulk (2001) «A Basic Hand Gesture Control System for PC Applications» // Cybemet Systems Corporation.

[5] Laura Dipietro, Angelo M. Sabatini, Paolo Dario (2008) «Survey of Glove-Based Systems and their applications» // IEEE Transactions on systems, Man and Cybernetics, Vol. 38, No. 4, pp 461–482.

[6] Son Lam Phung, Abdesselam Bouzerdoum, and Douglas Chai (2002) «A novel skin color model in YCbCr color space and its application to human face detection» // Visual Information Processing Research Group Edith Cowan University, Westem Australia, IEEE KIP, pp 289–292.

[7] Jason Brownlee (2017) «What is the Difference Between Test and Validation Datasets? » // Machine Learning Process.

[8] Krizhevsky, A., Sutskever, I., Hinton, G.E. (2012) «Imagenet classification with deep convolutional neural networks» // NIPS pp. 1–9.

[9] Geoffrey E. Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever, Ruslan R. Salakhutdinov (2012) «Improving neural networks by preventing co-adaptation of feature detectors» // Department of Computer Science, University of Toronto, pp. 1–18.