Robust Hand Gesture Recognition Algorithm for Simple Mouse Control

Vivek Veeriah J. and Swaminathan P. L.

Перевод: Лупашевский В.А.

 

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

 

1 Вступление

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

Некоторые методы распознавания жестов рук уже существуют и большинство из них основаны на скрытых моделях Маркова, Fuzzy Logic, нейронных сетях и т.д. [1], [2], [3]. Эти методы обеспечивают точное распознавание жестов рук, но вычислительные затраты, необходимые для достижения этой цели довольно высоки. Таким образом, эти методы не являются достаточно стабильными, в режиме реального времени. Чтобы преодолеть эти проблемы, был разработан надежный метод для распознавания простых жестов, которые использует исключительно методы простой сегментации.

 

2 Обзор источников литературы

Исследователями было разработано множество методов для контроля перемещениями мыши, используя камеру реального времени. Большинство из них не достаточно производительны для внедрения в системы реального времени, а также они используют двусмысленные методы для совершения события нажатия мыши [4].

Pandit et al. разработал hardware метод для определения жестов. От пользователя требуется носить специальные перчатки с маркерами, которые используются для анализа жестов руки. Подход, разработанный Chu-Feng Lien [5] использует кончики пальцев для совершения действий мышью. Другой подход использован Erdemом, он использует отслеживание пальцев для контроля мыши, а клик мыши производится, когда рука проходит через установленную область [6]. Метод попроще был разработан Parkом. Действие нажатия мыши производится при продолжении отслеживании концов пальцев [4]. Paul et al, использует совершенно другой метод для осуществления клика. Используется движение большого пальца для осуществления события нажатия, в это время движения руки передвигает курсор мыши. [4], [6].

3 Теоретическая часть

Написание данной работы было вдохновлено работами Asanterabi Malima et al и Park [4], [7]. Они разработали систему подсчета пальцев для контроля за движением робота. Алгоритм сегментации из данных работ был адаптирован, а также был улучшен алгоритм распознавания, так что он может применяться в системах реального времени. Процесс распознавания жестов может быть разбит на три задачи: 1) Сегментация рук, 2) Удаление шума, 3) Распознавание.

А. Распознавание руки

Быстрое определение руки является самой сложной задачей в постройке системы взаимодействия, основанной на жестах. Существует несколько методов для определения: по внешности, по форме, по цвету, по глубине и по контексту. В задачах, подобных распознаванию лица, внешность – очень хороший индикатор [7]. Т.к. данная работа фокусируется, в основном, на распознавании жестов, предполагается, что рука занимает большую часть на изображении. Исходя из этого, будет проще сегментировать руку, используя техники сегментации предложенные Albiol et all [2]. Данный метод тесно связан с восприятием человека, т.к. наши глаза могут легко распознать оттенок кожи по заднему плану. Он классифицирует шумные объекты, такие как кожа; Поэтому удаление шума из сегментированного изображения абсолютно необходимо. Разрешение изображения изменено на фиксированное перед выполнением процесса распознавания. В нашем случае, образы были изменены до 640 на 480, т.к. это является разрешением используемой камеры.

В. Удаление шума

Как уже упоминалось в предыдущем разделе, некоторые части заднего плана также будут сегментированы, и они негативно влияют на процесс распознавания. Таким образом, чтобы получить идеальные результаты необходимо удалить эти нежелательные шумы. Для того, чтобы получить лучшее распознавание руки, нужно удалить шумные пиксели из изображения. Мы используем алгоритм морфологии изображения, осуществляющий эрозию изображения и его растяжение для устранения шума [4], [6].

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

Математически, эрозия может быть определена как,

Математически, дилатация может быть определена как,

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

С. Распознавание жестов

Процесс распознавания выполняется только для простых жестов руки, которые должны управлять движением мыши и осуществлять события кликов. Таким образом, это приложение не требует сложных и софистических моделей Маркова, и нейронных сетей. В цитированных выше работах [4], [7] процесс распознавания было осуществлен с помощью сегментирования изображения, но в нашей работе, используется другая техника определения жестов.

Во-первых, самый большой контур извлекается из изображения. В этом случае, несомненно, он будет содержать руку. Затем рассчитываются координаты центра руки. Размер руки определяется при помощи рисования окружности и увеличении его радиуса от центра координат. Увеличение радиуса окружности прекращается когда встречается первый черный пиксель. Такой подход даст приблизительную оценку размера руки. Для определения кончиков пальцев применяется алгоритм «Выпуклая оболочка». Данный алгоритм используется для решения задачи нахождения самого большого полигона, включая все вершины. Используя особенности данного алгоритма, представляется возможным определение кончиков пальцев. Помимо этого, данный алгоритм используется для определения сгибается палец или нет. Для этого радиус окружности умножается на два и проверяется расстояние от центра окружности до пикселя, полученных из алгоритма «Выпуклая оболочка». Если расстояние больше чем радиус руки, тогда палец является не согнутым. В добавок, если две или более точки интереса существуют в результате, самая длинная вершина представляет указательный палец, а жест нажатия (клика) является положительным, когда количество результатов вершины равно двум или более [4]. Иногда может получится так, что в результате применения алгоритма «Выпуклая оболочка» результатом является количество точек равное более одной. Для устранения этого, должна быть выполнена проверка являются они ложными или нет.

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

 

Сегментация цвета кожи

Выделение контура

Результат алгоритма «Выпуклая оболочка»

 

 

4 Контроль мышью

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

А. Левое и двойное нажатие

Для совершения данного действия две вершины должны быть больше зоны порогового значения, которое было рассчитано в предыдущей части. Двойное нажатие происходит, когда большой палец движется от 0 до 90 градусов и обратно в два раза быстрей [2].

B. Правое нажатие

Если удерживать руку в позе для левого клика в течении 3 секунд, происходит событие правого нажатия.

С. Скроллинг

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

 

5 Экспериментальные результаты

Были протестированы все события мыши, такие как левое нажатие, правое нажатие, двойное нажатие и скроллинг на ОС Ubuntu.

Тестируемая система представляет собой Core i3, 4gb RAM, Ubuntu 12.04 LTS. Очевидно, что производительность была ниже по сравнению с реальной аппаратной мышью. Вместо этого было проведено сравнение времени, необходимого для определения жестов в данном методе и методе, рассмотренном в [2]. Результаты показывают, что данный алгоритм является достаточно производительным для его внедрения в системы реального времени.

 

Метод в [2]

Новый метод

Левый клик

1.10

0.97

Правый клик

4.16

3.19

Скроллинг

4.50

1.72

Двойной клик

2.60

2.77

 

6 Выводы

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

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

 

Список литературы

[1] A. Chaudhary et al., “Intelligent approaches to interact with machines using hand gesture recognition in a natural way: A survey,”International Journal of Computer Science and Engineering Survey (IJCSES), vol. 2, no. 1, Feb 2011.

[2] A. Albiol, L. Torres, and E. J. Delp, “Optimum color spaces for skin detection,” in Proceedings of 2001 Image Processing International Conference, vol. 1, pp. 122-124, 2001.

[3] A. Pandit, D. Dand, S. M. Sabesan, A. Daftery, “A simple wearable hand gesture recognition device using iMEMS,” Soft Computing and Pattern Recognition, 2009. SOCPAR ’09. International Conference, vol. 4, no. 7, pp. 592-597, Dec. 2009.

[4] H. Park, “A method for controlling mouse movement using a real-time camera,” 2012.

[5] C.-F. Lien, “Portable vision-based HCI - A real-time hand mouse system on handheld devices.”

[6] A. Erdem, E. Yardimci, Y. Atalay, and V. Cetin, “Computer vision based mouse,” A. E. Acoustics, Speech, and Signal Proceedings. (ICASS). IEEE International Conference. 2002.

[7] M. V. den Bergh et al., “Combining RGB and ToF cameras for real-time 3D hand gesture interaction.”

[8] P. Kathuria and A. Yoshitaka, Hand gesture recognition by using logical heuristics.

[9] Filter for Unwanted Details in Image. [Online]. Available: http://en.wikipedia.org/wiki/Erosion_(morphology)

[10] Structuring Element Mathematical Morphology. [Online]. Available: http://en.wikipedia.org/wiki/Dilation_(morphology)