Распознавание языка жестов на видео потоке
,
студент кафедры системного программирования СПбГУ, svetlana. *****@***com
Аннотация
Статья посвящена разработанному алгоритму распознавания языка жестов на видео потоке. Подробно описан этап отслеживания движения на видео, локализация ладони и определения временных отрезков смены жестов. Приведён метод классификации на основе опорных векторов и множество признаков на которых производилась классификация жеста.
Введение
С развитием технологий размеры компьютеров, используемых в повседневной жизни, стремительно уменьшается, это приводит к необходимости разработки нового удобного способа ввода информации. Одним из наиболее заметных направлений развития области является ввод данных через визуальные системы с помощью жестов. Интерес к этому подходу связан, в первую очередь, с природным удобством использования такого интерфейса и богатством новых возможностей, которые он привносит.
На текущий момент существует множество разработок в данной области, тем не менее, нельзя считать эту тему полностью исчерпаной. Хорошие результаты достигнуты в направлениях, использующих дополнительные атрибуты при записи видео, такие как маркерные перчатки [1], дополнительные сенсоры — несколько камер или кинект [2], позволяющие построить карту глубины и в дальнейшем работать с трехмерным изображением. Дополнительная информация повышает точность конечного результата, но увеличивает сложность ввода информации, чего хотелось избежать в текущем исследовании. Другой успешно применяемый подход — использование цепей маркова при классификации жестов [3], даёт хорошие результаты на контрольном наборе из динамических жестов, каждый из которых представляет собой последовательный переход из одного состояния в другое. В работе в качестве итогового множества жестов были выбраны статические жесты, к которым такой подход не применим.
В ходе исследования был разработан алгоритм, позволяющий распознавать жесты на видеопотоке, снятом с одной веб камеры. Важным требованием было минимизировать ограничения на входное видео и записывающие устройства для увеличения простоты использования конечного приложения. Алгоритм был реализован на языке octave с использованием встроенных библиотек компьютерного зрения.
Постановка задачи
Целью данной работы было разработать и реализовать алгоритм, который получает на вход видеопоток, снятый с одной веб камеры, разбивает его на отдельные жесты, каждый из которых классифицирует в рамках выбранного подмножества из азбуки глухонемых. Видео может содержать разнородный фон, шумовое или повторяющееся движение на заднем плане. От требования, что бы в кадр попадала только рука было решено отказаться, в связи с тем, что оно значительно снижало удобство записи входных данных. Итоговым множеством классифицируемых жестов было выбрано подмножество латинской азбуки языка глухонемых состоящее из 6-ти букв.
Алгоритм
Входная информация - видео поток с одной вебкамеры. Видео может содержать разнородный фон и шумовые движения на заднем плане.
1. Предварительная обработка изображения
Каждый кадр переводится в бинарный и с помощью адаптивного алгоритма [4] вычитается фон. На полученой карте движения убирается шум и выделяются компоненты связности для каждой из которых считается вес.
2. Локализация ладони
Для каждой компоненты связности на кадре подсчитывается её вес до тех пор, пока значение не превысит пороговое. Считаем область наибольшей активности движения — ладонью.
На последующих кадрах, в зависимости от того, является ли жест зафиксированным или происходит его смена, область ладони корректируется.
3. Разделение видео на жесты

Рис. 1 Изменение веса наибольшей компоненты от времени
В работе используется адаптивный метод вычитания фона и, как результат, резкие пики на графике постепенно затухают. Возрастание активности движения является началом смены жеста,
а его затухание признак того, что жест устоялся и его можно классифицировать.
4. Классификация жеста
В качестве признаков классификации была выбрана гистограмма направленых градиентов [5], размерность которой была уменьшена с посмощью метода главных компонент [6].
Жест классифицируется с помощью метода опорных векторов [7].
Алгоритм вычитания фона
Принцип, лежащий в основе алгоритмов вычитания фона, состоит в том, что определённый кадр или группа кадров выбирается за эталонный фон. Все последующие кадры сравниваются с ним и, если модуль разницы яркостей для пикселя превосходит порог, то пиксель считается передним планом, иначе — фоном. В работе используется адаптивный метод основанный на смеси нормальных распределений [4].
Фоновое значение для каждого пикселя представлено в виде набора троек
: веса пикселя, математического ожидания и дисперсии, вес — представляет собой меру схожести между значением пикселя и фоном. В дальнейшем, будем называть такую тройку «процессом» пикселя. Такое представление позволяет алгоритму адаптироваться к зашумлённому фону. В текущей работе для каждого пикселя запоминается 5 его процессов, знаяения которых он принимает с течением времени.
На первом кадре видео происходит инициализация модели: [1, c, δ2fix], где c — яркость пикселя, δ2fix — выбранное начальное значение.
Для каждого последующего кадра, для каждого пикселя производится ряд шагов:
1. Измеряется различие между поступившим пикселем и его фоновыми значениями: ![]()
· Если различие меньше порога, то процесс объявляется текущим.
· Если больше, то инициализируется новый процесс и, в зависимости от количества уже созданых процессов, либо добавляется в конец набора, либо заменяется процесс с наименьшим весом. Новый процесс помечается как текущий.
2. Значения текущего процесса обновляются:



Для всех остальных процессов пикселя обновляется только вес:

, где
— выбранные параметры алгоритма, влияющие на скорость адаптации.
3. Пиксель классифицируется как фоновый, если вес превышает выбранный порог и как принадлежащий переднему плану в противном случае.
Метод опорных векторов
Метод опорных векторов является алгоритмом обучения с учителем, т. е. предварительно определён рабор признаков для которых мы знаем предполагаемый результат классификации.
Классификация по этому методу происходит с помощью разделения точек различных классов гиперплоскостью [8],. Таких гиперплоскостей может быть много, поэтому в качестве меры качества выбранной задается «зазор» между классами. Если существует гиперплосость, разделяющая классы с максимальным зазором, то она называется оптимальной разделяющей гиперплоскостью, а соответствующий ей линейный классификатор называется оптимально разделяющим классификатором.
Cтроим разделяющую гиперплоскость, которая имеет вид:
w∗x−b=0,
где w - перпендикуляр к разделяющей гиперплоскости.
Отдельно введём понятие «ошибка классификации» для каждого элемента - ei. Результат классификации, в таком случае, может принимать два значения: yi ∈ {−1, 1}. Согласно такой классификации каждый вектор x должен удовлетворять такому условию:
yi ∗ (w ∗ xi − b) ≥ 1 − ei.
Для нахождения максимально возможного зазора между классами при таком линейном разделении необходимо минимизировать следующую функцию:
.
Заключение
В результате проделанной работы, было написано приложение по распознаванию подмножество латинской азбуки жестов. На вход приложение получает видеопоток с одной вебкамеры, содержащий зашумлённое видео с неоднородным фоном. После обработки, видео разделяется на отдельные жесты, каждый и которых классифицируется в рамках выбранного множества жестов.
Для оценки классификации использовались три метрики: precision,
recall и процент правильно классифицированных жестов:
Procent | Precision | Recall |
89.44% | 0.89142 | 0.96203 |
Работа выполнена при частичной финансовой поддержке РФФИ (грант № -а).
Литература
1. Aran, Oya «Vision based sign language recognition: modeling and recognizing isolated signs with manual and non-manual components», 2008
2. Simon Lang «Sign Language Recognition with Kinect», 2011
3. Jörg Zieren, Karl-friedrich Kraiss «Robust person-independent visual sign language recognition», 2005
4. Chris Stauffer, W. Eric L. Grimson «Learning Patterns of Activity Using Real-Time Tracking», 2000.
5. O. Ludwig, D. Delgado, V. Goncalves, and U. Nunes, 'Trainable «Classifier-Fusion Schemes: An Application To Pedestrian Detection», 2009
6. Karl Pearson «On Lines and Planes of Closest Fit to System of Points in Space», 1901
7. , Я «Теория распознавания образов», 1974
8. Hsu, Chih-Wei; Chang, Chih-Chung; and Lin, Chih-Jen «A Prectical Guide to Support Vect Classification », 2003.
9. , , Zelezny «О распознавании жестов языка глухих », 2010.
10. Г, «Автоматическое распознавание жестов в интеллектуальных системах », 2010.
11. Стокман Дж. С. «Компьютерное зрение », 2006.
12. «Компьютерное зрение », 2004.
13. Tom M. Mitchell «Machine Learning », 1997.
14. Lemeshow, David W. Hosmer «Applied logistic regression », 2000.
15. A. Barr, Edvard A. Feigenbaum «The Handbook of Artifical Intelligence », 1990.
16. Gary Bradski, Adrian Kaehler «Learning OpenCV », 2008.
17. Simon Lang «Sign Language Recognition with Kinect», 2011
18. Navneet Dalal and Bill Triggs «Histograms of Oriented Gradients for Human Detection», 2004



