Назад в библиотеку

Обнаружение руки в режиме реального времени в видеопотоке с помощью признаков Хаара и ADABOOST-классификатора

Автор: Т.Т. Нгуен
Источник: http://www.problem-info.ru/2011-5/12.pdf

Аннотация

Приведен обзор методов обнаружения положения руки на изображении. Предлагается способ обнаружения руки в реальном времени в видеопотоке на основе признаков Хаара и AdaBoost-классификатора. Анализируются результаты работы программной реализации предложенного способа.

Ключевые слова: обнаружение руки, признаки Хаара, AdaBoost.

Введение

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

Методы обнаружения руки на изображении

Существуют различные методы обнаружения руки на изображении. Эти методы можно разделить на две группы: методы на основе внешнего вида руки (Vision-based approach) и методы на основе 3D-модели руки (3D hand model based approach) [1]. В методах на основе внешнего вида руки при моделировании используются двумерные параметры изображения, которые сравниваются с такими же параметрами, выделенными из входного изображения. В методах на основе 3D-модели применяются кинематические 3D-модели руки, с помощью которых можно оценить параметры руки, сравнивая их с двумерными проекциями этих 3D-моделей. В методах первого типа используются такие признаки, как цвет кожи [2-4], образы руки [5, 6], локальные признаки [7, 8], оптический поток [9, 10].

Рисунок 1 - Примеры признаков Хаара

Рисунок 1 - Примеры признаков Хаара: a – множество простых признаков; б – множество расширенных признаков

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

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

Метод обнаружения руки на изображении на основе признаков Хаара и AdaBoost-классификатора (метод Джонса – Виолы)

Метод Джонса – Виолы был разработан для решения задачи обнаружения человеческих лиц на изображении. Главное преимущество этого метода состоит в высокой скорости его выполнения. В [11] показано, что метод Джонса Виолы может обрабатывать до 15 кадр/с, т. е. позволяет работать в реальном времени. В данной работе метод Джонса – Виолы применяется для обнаружения руки и отслеживания ее положения в видеопоследовательности.

Признаки Хаара. Значение признаков Хаара вычисляется по формуле [11]

Формула

где I – интенсивность пикселей; S1 – все пиксели в области черного прямоугольника; S2 – все пиксели в области белого прямоугольника. На рис. 1 показаны простые и расширенные признаки Хаара, используемые в данной работе.

Рисунок 2 - Понятие интегрального изображения

Рисунок 2 - Понятие интегрального изображения: а – интегральное изображение в точке p(x,y); б – вычисление суммы пикселей внутри прямоугольника

Интегральное изображение. Использование интегрального изображения позволяет быстро вычислить значения признаков Хаара независимо от размера изображения. Интегральное изображение P в точке p(x,y) вычисляется как сумма интенсивностей всех точек, находящихся выше и левее нее (рис. 2,а) [11]:

Формула

Таким образом, сумма пикселей внутри прямоугольника D (см. рис. 2,б) может быть вычислена в виде P4 + P1 – P2 – P3 и не зависит от размера изображения.

AdaBoost-классификатор. Видеопоток, получаемый с помощью видеокамеры, представляет собой последовательность кадров. Для каждого кадра вычисляется его интегральное изображение. Затем кадр сканируется окном малого размера (субокном), содержащим признаки Хаара. Для каждого j-го признака соответствующий классификатор определяется формулой [11]

Формула

где x – субокно; ?j – пороговое значение; pj – направление знака неравенства; fj – признак Хаара.

AdaBoost-алгоритм позволяет повысить точность классификации с помощью ряда слабых классификаторов, используя так называемую каскадную классификацию (рис. 3). В результате вычисляется взвешенная комбинация этих слабых классификаторов:

Формула

(N – количество слабых классификаторов; ?i – коэффициент, полученный из тренируемой базы данных; hi – слабый классификатор).

Рисунок 3 - Каскадная классификация в алгоритме AdaBoost

Рисунок 3 - Каскадная классификация в алгоритме AdaBoost

Программная реализация и обсуждение результатов

В данной программной реализации создана база изображений для тренировки AdaBoost-классификатора, содержащая 400 изображений с объектом (рука) (рис. 4) и 500 случайных изображений без объекта (негативные изображения) (рис. 5). Разработан 14-ступенчатый каскадный классификатор для распознавания руки. Для тестирования использовалась база изображений, содержащая 100 изображений размером 640х480 с объектом.

Рисунок 4 - Часть базы позитивных изображений с объектом

Рисунок 4 - Часть базы позитивных изображений с объектом

Рисунок 5 - Часть базы негативных изображений без объекта

Рисунок 5 - Часть базы негативных изображений без объекта

В результате численных экспериментов установлено, что обработка каждого изображения из тестовой выборки выполняется за 50–60 мс (рис. 6). Объект правильно обнаруживается на 99 изображениях из 100.

Рисунок 6 - Обнаружение руки в реальном времени

Рисунок 6 - Обнаружение руки в реальном времени

При работе в реальном времени видеопоток получается с помощью встроенной камеры ноутбука Asus с частотой 15 кадр/с. Размер кадра – 640х480 пикселей. Программа протестирована на ноутбуке Asus с процессором Intel Core Duo 2, видеокартой NVIDIA GEFORCE G621M. Скорость обработки в реальном времени составляет приблизительно 14-15 кадр/с, что является достаточным для отслеживания и распознавания движения объектов.

Выводы

Алгоритм Джонса – Виолы на основе признаков Хаара и AdaBoost позволяет решать задачу обнаружения руки с таким же быстродействием, как и задачу обнаружения человеческих лиц (для которой он первоначально предназначался). Скорость обработки на обычном компьютере достигает 14-15 кадр/с, что является достаточным для работы в режиме реального времени.

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

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

1. ZHOU H., HUANG T. S. Tracking articulated hand motion with Eigen dynamics analysis // Proc. of the Intern. conf. on computer vision, Nice (France), 14–16 Oct. 2003. Washington DC: IEEE Computer Soc., 2003. V. 2. P. 1102–1109.

2. WU Y., HUANG T. S. Non-stationary color tracking for vision-based human computer interaction // IEEE Trans. Neural Networks. 2002. V. 13, N 4. P. 948– 960.

3. MANRESA C., VARONA J., MAS R., PERALES F. J. Hand tracking and gesture recognition for humancomputer interaction // Electron. Lett. Comput. Vision Image Anal. 2005. V. 5, N 3. P. 96–104.

4. MCKENNA S., MORRISON K. A comparison of skin history and trajectory-based representation schemes for the recognition of user-specific gestures // Pattern Recognition. 2004. V. 37. P. 999–1009.

5. CHEN F., FU C., HUANG C. Hand gesture recognition using a real-time tracking method and hidden Markov models // Image Vision Comput. 2003. V. 21, N 8. P. 745–758.

6. NG C. W., RANGANATH S. Gesture recognition via pose classification // Proc. of the 15th Intern. conf. on pattern recognition, Barcelona (Spain), 3–7 Sept. 2000. Washington DC: IEEE Computer Soc., 2000. V. 3. P. 699–704.

7. OKA K., SATO Y., KOIKE H. Real-time fingertip tracking and gesture recognition // Proc. IEEE. Comput. Graphics Appl. 2002. V. 22, N 6. P. 64–71.

8. HUANG C., JENG S. A model-based hand gesture recognition system // Machine Vision Appl. 2001. V. 12, N 5. P. 243–258.

9. CUTLER R., TURK M. View-based interpretation of real-time optical flow for gesture recognition // Proc. of the 3rd IEEE conf. on face and gesture recognition, Nara (Japan), 14–16 Apr. 1998. Washington DC: IEEE Computer Soc., 1998. P. 416–421.

10. LU S., METAXAS D., SAMARAS D., OLIENSIS J. Using multiple cues for hand tracking and model refinement // Proc. of the IEEE conf. on computer vision and pattern recognition, Madison (USA), 16–22 June 2003. Washington DC: IEEE Computer Soc., 2003. P. 443–450.

11. VIOLA P., JONES M. Rapid object detection using a boosted cascade of simple features // Proc. of the IEEE conf. on computer vision and pattern recognition. Washington DC: IEEE Computer Soc., 2001. P. 511–518.