Диссертация (Нагапетян).

advertisement
РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ
На правах рукописи
НАГАПЕТЯН ВААГН ЭДВАРДОВИЧ
МЕТОДЫ РАСПОЗНАВАНИЯ ЖЕСТОВ РУКИ
НА ОСНОВЕ АНАЛИЗА ДАЛЬНОСТНЫХ ИЗОБРАЖЕНИЙ
05.13.17−Теоретические основы информатики
Диссертация на соискание учѐной степени
кандидата физико-математических наук
Научный
руководитель
доктор технических наук,
профессор В.М. Хачумов
Москва - 2013
Оглавление
Введение ....................................................................................................................... 5
Глава 1. Методы распознавания жестов руки в системах человеко-машинного
взаимодействия .......................................................................................................... 12
1.1. Задача распознавания жестов руки ............................................................. 12
1.2. Анализ существующих методов распознавания жестов руки на основе
анализа внешних признаков жеста ....................................................................... 15
1.2.1. Распознавание позиции и ориентации с помощью моментов
изображения ........................................................................................................ 15
1.2.2. Распознавание движений на основе анализа разностей изображений
(MEI) 17
1.2.3. Распознавание конфигурации на основе анализа гистограмм
направлений ......................................................................................................... 18
1.2.4. Распознавание конфигурации и позиции с применением цветных
перчаток ............................................................................................................... 19
1.2.5. Распознавание конфигурации и позиции на основе анализа контура
изображения руки ............................................................................................... 21
1.2.6. Распознавание позиции и конфигурации руки методом случайных
лесов 22
1.2.7. Распознавание жестов руки с применением искусственных
нейронных сетей ................................................................................................. 24
1.2.8. Распознавание жестов руки с применением скрытых моделей
Маркова ................................................................................................................ 25
1.3. Анализ существующих методов распознавания жестов руки на основе
анализа трехмерной модели руки ......................................................................... 27
1.3.1. Распознавание жестов как задача оптимизации .................................... 28
1.3.2. Распознавание жестов на основе ограниченного количества проекций
модели руки ......................................................................................................... 30
1.4. Ручная азбука и язык глухонемых .............................................................. 31
2
1.5. Основные выводы ......................................................................................... 32
Глава 2. Исследование и разработка методов распознавания жестов руки в
дальностных изображениях человека ..................................................................... 36
2.1. Характеристики дальностных изображений ................................................ 36
2.2. Основные определения ................................................................................... 40
2.3. Извлечение изображения руки ...................................................................... 41
2.3.1. Вычисление позиции произвольной точки ладони руки в дальностном
изображении ........................................................................................................ 42
2.3.2. Извлечение изображения руки по позиции ладони .............................. 45
2.4. Распознавание позиций кончиков пальцев и точек соединения пальцев с
ладонью руки .......................................................................................................... 47
2.5. Распознавание конфигурации руки ............................................................... 54
2.5.1. Скелетизация изображения руки посредством планарного
представления дальностного изображения ...................................................... 55
2.5.2. Скелетизация изображения руки посредством пространственного
представления дальностного изображения ...................................................... 63
2.5.3. Построение трехмерного скелета дальностного изображения ............ 65
2.5.4. Сравнение трехмерных скелетов руки ................................................... 67
2.6. Основные выводы ........................................................................................... 74
Глава 3. Разработка методов бесконтактного управления компьютером и
распознавания ручных азбук глухонемых .............................................................. 77
3.1. Человеко-машинное взаимодействие с помощью жестов пальца руки .... 77
3.2. Человеко-машинное взаимодействие в трехмерном пространстве
посредством нескольких пальцев руки ................................................................ 81
3.3. Распознавание жестов глухонемых ............................................................... 85
3.3.1. Распознавание ручной азбуки ASL ......................................................... 85
3.3.2. Распознавание ручной азбуки РРА ......................................................... 89
3
3.4. Человеко-машинное взаимодействие посредством динамических жестов
руки .......................................................................................................................... 97
3.4.1. Бесконтактное рисование посредством динамических жестов руки .. 97
3.4.2. Управление графическим интерфейсом пользователя посредством
заранее определенных жестов руки .................................................................. 99
3.5. Оценка качества распознавания предложенных методов......................... 102
3.6. Основные выводы ......................................................................................... 105
Заключение .............................................................................................................. 106
Литература ............................................................................................................... 108
4
Введение
Актуальность исследования. Создание естественных, легких в управлении
человеко-машинных
интерфейсов
для
различных
приложений
является
актуальной научной задачей. В настоящее время проводится довольно много
исследований по созданию методов распознавания образов, позволяющих
бесконтактно взаимодействовать с компьютером посредством жестов рук. К
ним можно отнести работы ряда ученых: Алфимцев А.Н., 2008; Оикономидис
И. (Oikonomidis I.), 2011; Шаои Ч. (Shaowei C.), 2011; Марака М. (Maraqa M.),
2012; Пижу Н. (Pugeault N.), 2011; Шотон Д. (Shotton J.), 2011; Ван Р.У. (Wang
R.Y.), 2009; Сана А. (Sanna A.), 2012 и др. На основе разработанных методов
созданы немногочисленные практические приложения, наиболее значимые из
которых:
1) программные
библиотеки
Kinect
SDK
(Microsoft),
OpenNI/NITE
(PrimeSense), PMD SDK и SoftKinetic IISU для распознавания ключевых
точек тела человека посредством применения трехмерных сенсоров;
2) сенсоры компаний LeapMotion, SoftKinetic для распознавания ключевых
точек руки человека;
3) компьютерные приложения Flutter, PointGrab HGRS, XTR3D, EyeSight PC
для управления компьютером посредством простых жестов рук.
Несмотря на отдельные успехи, качество разработанных алгоритмов
распознавания жестов рук и пальцев, как динамических, так и статических, с
использованием цветных видеокамер и трехмерных сенсоров все еще остается
недостаточным для построения практических систем человеко-машинного
взаимодействия. Главными недостатками существующих методов являются
чувствительность к изменениям освещения, потребность обучения системы для
каждого оператора, невысокое качество распознавания жестов и небольшая
скорость распознавания.
5
Таким образом, актуальной является задача создания новых моделей,
методов и алгоритмов распознавания жестов руки, которые могут быть
использованы для создания систем бесконтактного человеко-машинного
взаимодействия.
Цель диссертационной работы. Целью диссертационной работы является
исследование и разработка методов распознавания статических и динамических
жестов
руки, которые могут быть использованы
для бесконтактного
взаимодействия человека с компьютером. Средством достижения цели служит
решение следующих основных задач:
 Анализ существующих методов отслеживания и распознавания жестов
руки, а также бесконтактного человеко-машинного взаимодействия;
 Исследование
и
разработка
методов
описания,
извлечения
и
распознавания конфигураций руки;
 Разработка новых методов распознавания позиций кончиков пальцев на
основе анализа дальностного изображения руки для управления
компьютерными системами;
 Разработка методов распознавания динамических жестов руки на основе
анализа траектории движения ладони;
 Разработка методов распознавания символов распространенных ручных
азбук в режиме реального времени.
На защиту выносятся следующие новые научные результаты:
1. Метод извлечения изображения руки из дальностного изображения
человека на основе анализа связанности точек изображения в трехмерном
пространстве, со сложностью O(n) , где n - количество точек исходного
изображения.
2. Метод распознавания позиции кончиков пальцев и точек соединения
пальцев с ладонью руки на основе анализа контура изображения руки, со
сложностью O(n) , где n - количество точек изображения руки.
6
3. Метод
скелетизации
дальностного
изображения,
основанный
на
непрерывном скелетном представлении бинарного изображения, поиске
граничных точек фигуры и создании диаграммы Вороного для этих точек.
4. Метод распознавания статических и динамических жестов рук и пальцев
руки ручных азбук глухонемых.
Научная новизна. Научная новизна заключается в построении новых методов
и алгоритмов, обеспечивающих решение задач распознавания статических и
динамических жестов руки по дальностным изображениям человека, создании
на их основе естественных человеко-машинных интерфейсов.
1. Предложен новый метод скелетизации дальностного изображения,
обеспечивающий, по сравнению с алгоритмами вычисления двумерного
скелета,
построение
вычислительную
более
сложность
информативного
относительно
графа
алгоритмов
и
меньшую
вычисления
трехмерного криволинейного скелета, оцениваемую как O(n log n) , где n
- число вершин многоугольника аппроксимирующего контур фигуры.
2. Предложена новая мера оценки расстояния между двумя трехмерными
скелетами, для которой выполняются все аксиомы метрики, за
исключением неравенства треугольника.
3. Разработан и исследован метод распознавания конфигураций руки на
основе предложенной меры с обучением по одному прецеденту, который
отличается от известных методов высокой надежностью и низкой
вычислительной сложностью - O(n  wm 2 ) , где n - количество точек в
кадре видеоряда, w - число эталонных жестов, m - максимальное
количество вершин многоугольника аппроксимирующего контур фигуры
руки.
4. Исследован и разработан метод поиска ключевых точек руки по
дальностным изображениям на основе анализа контура фигуры руки,
позволяющий в реальном времени распознавать позиции кончиков
7
пальцев и точек соединения пальцев с ладонью руки, независимо от
количества и направления пальцев.
5. Исследованы и разработаны новые методы распознавания статических и
динамических жестов Русской ручной азбуки (РРА) и Американской
ручной азбуки (ASL- American Sign Language).
Методы исследования. В работе используются методы теории графов,
вычислительной геометрии, математического анализа, теории распознавания
образов.
Работа
разработанные
несет
методы
теоретико-экспериментальный
реализованы
в
виде
характер.
компьютерных
Все
программ,
большинство из которых опубликованы во всемирной сети в свободном
доступе.
Обоснованность и достоверность результатов. Полученные в диссертации
результаты
обоснованы
использованием
математических
методов
алгебры
Достоверность
подтверждается
строгих
матриц,
и
апробированных
компьютерной
вычислительным
графики.
экспериментом
и
имитационным моделированием, проведенным с использованием реальных
исходных данных, а также путѐм сопоставления результатов, полученных в
процессе работы над диссертацией, с доступными в открытой печати
результатами.
Теоретическая значимость. Теоретическая значимость работы состоит в
разработке методов и алгоритмов извлечения и распознавания жестов руки,
обеспечивающих лучшее на сегодняшний день качество человеко-машинного
взаимодействия.
Практическая значимость. На основе разработанных методов созданы
программные приложения, позволяющие управлять курсором компьютера
посредством жестов пальца, взаимодействовать с компьютером посредством
нескольких пальцев руки, переводить жесты глухонемых в текстовый вид,
управлять компьютером с помощью заранее назначенных динамических жестов
руки. Разработанные алгоритмы сравнения объектов могут быть использованы
8
для распознавания различных целевых объектов по дальностным изображениям
в реальном времени.
Апробация работы. Результаты работы докладывались и обсуждались на
следующих научных конференциях и семинарах:
 XII
международная
«Фундаментальные
и
научно-практическая
прикладные
исследования,
конференция
разработка
и
применение высоких технологий в промышленности» (Санкт-Петербург,
2011 год);
 2-ая всероссийская конференция молодых ученых с международным
участием «Теория и практика системного анализа» (г. Рыбинск, 16-19
май 2012);
 Международная молодежная конференция «Информационные системы и
технологии» (г. Москва, 5-6 сентября, 2012);
 9-ая Международная конференция «Интеллектуализация обработки
информации» (Республка Черногория, г. Будва,. 16-22 сентября 2012);
 Научная сессия НИЯУ МИФИ-2013 (г. Москва, 2013 год);
 Информационно-телекоммуникационные технологии и математическое
моделирование высокотехнологичных систем (г. Москва, 2013 год);
 XVII ежегодная молодежная научно-практическая конференция SIT-2013
«Наукоемкие
информационные
технологии»
(Переславль-Залесский,
апрель 2013 г.);
 16-ая
Всероссийская
конференция
«Математические
методы
распознавания образов 2013» (Казань, октябрь 2013 г.);
 23я Международная Конференция по Компьютерной Графике и Зрению
ГрафиКон'2013 (Владивосток, сентябрь 2013 г.);
 10-ая Международная научно-техническая конференция «Интерактивные
системы: проблемы человеко-компьютерного взаимодействия / ИС-2013»
(Ульяновск, сентябрь 2013 г.).
9
Публикации. Основные результаты диссертационной работы изложены в 12
печатных работах, в том числе три статьи опубликованы в рецензируемых
изданиях,
рекомендованных
ВАК
РФ
[1-3],
пять
статей
в
трудах
международных и всероссийских научных конференций [4,5,6,7,8], четыре
работы в виде тезисов докладов [9,10,11,12].
Структура и объем работы. Диссертационная работа состоит из оглавления,
введения, трех глав, заключения и списка литературы. Содержание работы
изложено на 117 страницах. Список литературы включает 93 наименований.
Текст работы иллюстрируется 50 рисунками и 10 таблицами.
Содержание работы
Во введении обоснована актуальность темы диссертационной работы,
приведены цель и методы исследования, сформулирована теоретическая и
практическая значимость работы, представлены выносимые на защиту научные
результаты.
В первой главе содержится общая постановка задачи распознавания
жестов руки, рассматриваются методы бесконтактного человеко-машинного
взаимодействия на основе жестов рук и пальцев руки, методы распознавания
статических и динамических жестов руки, даются необходимые определения.
Во
второй
главе
рассматриваются
характеристики
дальностных
изображений, даются дополнительные определения, предлагаются методы
преобразования дальностного изображения в полутоновое и бинарное
изображения.
Доказывается,
что
при
преобразовании
дальностного
изображения руки в бинарное, связанность точек фигуры руки не нарушается.
Предлагаются алгоритмы извлечения изображения руки, поиска позиций
кончиков пальцев руки, распознавания конфигурации руки на основе сравнения
трехмерных скелетов руки. Доказывается, что для введенной меры оценки
расстояния между двумя скелетами выполняются все аксиомы метрики, за
исключением неравенства треугольника.
10
В третьей главе описываются разработанные методы человекомашинного взаимодействия, которые позволяют: управлять курсором мыши
посредством жестов пальца руки, взаимодействовать с трехмерными моделями
объектов посредством нескольких пальцев, распознавать и переводить в
текстовый вид жесты ручных азбук русского и американского языков, рисовать
на экране компьютера посредством динамических жестов руки и управлять
графическим интерфейсом посредством заранее определенных динамических
жестов руки.
В заключении сформулированы основные результаты работы.
11
Глава 1. Методы распознавания жестов руки в системах
человеко-машинного взаимодействия
1.1. Задача распознавания жестов руки
Человеко-машинное взаимодействие (Human-computer interaction - HCI) –
это междисциплинарное научное направление, изучающее взаимодействие
между людьми и машинами. Предметом HCI является изучение, планирование
и разработка методов взаимодействия человека с машиной, где в роли машины
может выступать персональный компьютер, компьютерная система больших
масштабов, система управления процессами и т.д. [13]. Под взаимодействием
понимается любая коммуникация между человеком и машиной. Одним из
методов HCI, получившим широкое распространение в последние годы,
является взаимодействие, основанное на жестах человека [14, 15, 16].
Жесты – это различные телодвижения, являющиеся невербальным
способом передачи информации. Движение пальцев, рук, головы, плеч, мимика
лица: все перечисленные являются жестами. С помощью жестов человек может
передать самостоятельную информационную единицу, дополнить словесный
ряд, передать чувства и пр. Обычно жесты подразделяются на статические
(воспринимаемые
одномоментно)
и
динамические
(воспринимаемые
в
некоторый период времени) жесты, имеющие определенную интерпретацию в
ручных азбуках и бесконтактных человеко-машинных интерфейсах. В HCI
жесты используются для передачи информации в компьютер, который в
последующем может использоваться для идентификации человека, управления
компьютером, летательным аппаратом, игровым аватаром и т.д. Рассмотрим
основные понятия, которые будут встречаться в данной главе.
В задачах распознавания образов и обработки цифровых изображений
часто применяется функция интенсивности вида
f ( x, y) , зависящая от
целочисленных координат x и y принадлежащих так называемой растровой
решетке W 2 [17]. Пара ( x, y) задает позицию точки изображения в системе
12
координат OXY , началом которой является левый верхний угол решетки.
Функция f ( x, y) обычно задает яркость, освещенность, насыщенность, степень
поглощения и другие спектральные характеристики в точке ( x, y) .
Пусть заданы пространственная точка M с координатами ( x, y, z ) и ее
ортогональная проекция m с координатами ( x, y ) на плоскость наблюдения
z  0.
Под
дальностным
изображением
будем
понимать
цифровое
изображение d ( x, y) , в каждой точке ( x, y ) которого d ( x, y) принимает
неотрицательные целые значения, равные величине расстояния от точки M до
точки m .
Дальностное изображение всегда можно преобразовать во множество
(облако) точек {( x, y, d ( x, y))} в трехмерном пространстве, являющееся
моделью наблюдаемого объекта.
Под конфигурацией руки будем понимать установленное положение
пальцев и кисти руки.
В литературе задачу распознавания жестов руки трактуют по-разному,
как, например, вычисление позиции ладони, плеч и кончиков пальцев руки,
идентификацию конфигурации и траектории движения руки и т.д. В настоящей
работе под задачей распознавания жестов руки будем понимать следующие
три подзадачи:
1. Распознавание позиций ладони и кончиков пальцев руки в трехмерном
пространстве;
2. Распознавание статического жеста руки по эталонным конфигурациям;
3. Распознавание динамических жестов по траектории движения ладони
руки.
Система распознавания жестов руки – это совокупность компьютерных
технологий и математических алгоритмов, которая позволяет решать задачу
распознавания определенной группы жестов руки.
13
Распознавание жестов можно применять в таких областях деятельности
человека, как например:
1. Управление компьютером и бытовыми приборами
a. В
компьютерном
приложении
каждой
конфигурации
руки
сопоставляется определенная команда. Человек показывает жест,
система
распознает
конфигурацию
руки
и
отправляет
соответствующую команду в компьютер.
b. Позиция ладони сопоставляется с позицией курсора мыши на экране.
Движения руки приводят к движениям курсора. Команды нажатия
кнопок мышки сопоставляются с разными конфигурациями руки.
c. Распознанные
позиции
кончиков
пальцев
руки
могут
быть
использованы для управления компьютером или бытовым приборам
одновременно несколькими пальцами руки.
2. Создание естественных человеко-машинных интерфейсов для глухонемых
a. Систему распознавания жестов можно применить для ввода текста в
компьютер с помощью жестов руки, что для глухонемых людей проще
и естественнее, чем ввод текста с помощью клавиатуры компьютера.
b. Систему распознавания жестов можно применить для создания
приложений онлайн связи, когда пропускная способность сети мала и
видеосвязь невозможна. Имея распознанные жесты руки на одном
конце сети, можно показать анимацию этих же жестов, на другом
конце передавая по сети только характеристики показанных жестов.
3. Манипуляция трехмерными моделями объектов
На сегодняшний день, для работы с трехмерными моделями обычно
используют компьютерную мышь, которая не очень удобна для этой
задачи. Имея трехмерные координаты руки и кончиков пальцев руки,
можно создать систему HCI, которая позволит управлять моделями по
всем направлениям трехмерного пространства.
4. Приложения виртуальной реальности
14
Дополнив систему распознавания жестов устройствами, например
стереоскопическими очками, можно создать приложения виртуальной
реальности, где пользователь сможет «дотрагиваться» до виртуальных
объектов.
Приведенный список можно дополнить системами, сопутствующими
реабилитации пациентов [18], игровыми приложениями [19] и т.д. Часть
приведенных приложений уже используется в разных устройствах и
программах [18-20], а часть из них еще находится на этапе исследований.
Существующие методы распознавания жестов руки можно разбить на две
большие категории:
 методы, основанные на анализе внешних признаков жеста;
 методы, основанные на анализе трехмерной модели руки.
Далее рассмотрим проводимые исследования в области распознавания
жестов руки человека.
1.2.
Анализ существующих методов распознавания жестов руки на основе
анализа внешних признаков жеста
Особенностью методов, основанных на анализе внешних признаков
жеста, является анализ только внешнего вида (формы, позиции и т.д.) целевого
объекта. Для распознавания не хранится никакой информации о физических
свойствах рассматриваемого объекта.
Рассмотрим известные работы и методы, посвященные распознаванию
жестов руки человека на основе анализа внешних признаков жеста.
1.2.1. Распознавание позиции и ориентации с помощью моментов
изображения
Обозначим через M 0,0 , M1,0 , M 0,1 и M 2,0 , M1,1, M 0,2 моменты нулевого,
первого и второго порядка изображения с функцией интенсивности f ( x, y) :
1. M 0, 0   f ( x, y) ,
x
y
15
2. M 0,1   y  f ( x, y) , M 1, 0   x  f ( x, y) ,
x
y
x
y
3. M 1,1   x  y  f ( x, y) , M 0, 2   y 2  f ( x, y) , M 2, 0   x 2  f ( x, y) .
x
x
y
y
x
y
При некоторых ограничениях моменты изображения могут быть
использованы для распознавания простых жестов рук и создания на их основе
приложений HCI. Например, в работе [21] рассматривается приложение,
позволяющее управлять игрушечным роботом посредством движений руки, где
ориентация руки определяет направления движения робота (рис. 1.1).
(b)
(a)
Рисунок 1.1 — Управление игрушечным роботом простыми жестами руки
[21]: (a) Прямоугольник показывает распознанное направление, позицию и
размер изображения руки; (b) Игрушечный робот.
Распознавание позиции ( xc , yc ) и ориентации руки  в бинарном изображении
осуществляется посредством вычисления моментов изображения, при условии,
что фон изображения однороден и рука является доминирующим объектом в
изображении:
xc 
M 1, 0
M
, yc  0,1 ,
M 0,0
M 0,0
b  2 (

M 1,1
 xc  yc ) .
M 0, 0
arctan* (b, (a  c))
, где
2
Функция
arctan*
a
M 2, 0
 xc2 ,
M 0,0
удовлетворяет
arctan(i, j )  ( , ] и вычисляется по следующей формуле:
16
c
M 0, 2
 yc2 ,
M 0, 0
условию
arctan(i j )
arctan(i j )  

arctan(i j )  
arctan* (i, j )  
  2
  2

неопределен
Размер
изображения
руки
оценивается
j0
i  0, j  0
i  0, j  0
i  0, j  0
i  0, j  0
i  0, j  0
значениями
l1
и
l2 ,
где
(a  c)  b 2  (a  c) 2
(a  c)  b 2  (a  c) 2
, l2 
. На рисунке 1.1.a для
l1 
2
2
каждого изображения руки приведены соответствующие прямоугольники с
центром ( xc , yc ) и с размером l1  l2 .
1.2.2. Распознавание движений на основе анализа разностей изображений
(MEI)
На практике удовлетворять условиям однородного фона удается не
всегда. Для таких случаев, обычно используется метод, основанный на анализе
центра массы разностей изображений (motion energy image - MEI) руки в кадрах
видеоряда (рис. 1.2) [20].
(a)
(b)
(c)
(d)
Рисунок 1.2 — Управление аватаром в компьютерной игре [21]: (а) и (b) Два
кадра из видеоряда; (c) Разность изображений (а-b); (d) Центр массы (стрела в
(c)) управляет направлением полета аватара в игре.
Использование разностей кадров видеоряда (MEI) позволяет в реальном
времени анализировать движения объекта в видеоряде при стабильном, но
необязательно однородном фоне изображения. На практике данная технология
и ее усовершенствованные виды (например, motion history image - MHI) нашли
17
применение в таких приложениях как интерактивный виртуальный тренер по
аэробике [22-24] и интерактивная комната для рассказа историй [25].
1.2.3. Распознавание конфигурации на основе анализа гистограмм
направлений
В большинстве приложений компьютерного зрения, кроме позиции и
ориентации руки человека, требуется дополнительная информация о ее
конфигурации. Данная задача в работах [26,27] решается анализом, так
называемых
гистограмм
направлений
(orientation
histograms)
и
карт
направлений (orientation maps) изображения, которые менее чувствительны к
изменениям освещения наблюдаемой среды.
Пусть
f ( x, y)
есть
интенсивность
бинарного
или
полутонового
изображения руки. Локальное направление ( x, y) в точке ( x, y) определяется
следующим образом [26]:
( x, y)  arctan*( f ( x, y)  f ( x  1, y), f ( x, y)  f ( x, y  1)) .
Для заданного целого значения N, определяющего количество секторов
направлений, строится вектор  , который показывает количество локальных
360
1
360
1
направлений ( x, y) , находящихся между углами
(i  ) и
(i  ) :
N
2
N
2

360
360 
i 
1, если ( x, y ) 
(i )   
N
2 N , i  1,2,..., N
x, y 
0, в противном случае
Расстояние между двумя изображениями руки определяется как евклидово
расстояние между векторами  этих изображений. На рисунке 1.3 приведены
изображения жестов руки и соответствующих гистограмм направлений при
N=36.
18
Рисунок 1.3 — Жесты руки, карты направлений и гистограммы направлений
[26].
Приведенные жесты и технология распознавания конфигураций руки на основе
гистограмм направлений в работе [26] были использованы в приложении
управления анимационным краном. В работе отмечается, что приложение
работает в реальном времени, нечувствительно к незначительным изменениям
размера руки, но чувствительно к изменениям направления руки. Приложение
требует обучения для каждого оператора.
Данная технология позволяет в режиме реального времени распознавать
конфигурацию руки, если выполняются следующие условия:
1. Рука является доминирующим объектом в изображении;
2. Фон изображения однороден;
3. Жесты выбраны таким образом, что их гистограммы направлений имеют
значимые отличия друг от друга.
1.2.4. Распознавание конфигурации и позиции с применением цветных
перчаток
Для распознавания жестов руки часто применяют цветные перчатки [2832]. Предложенный в работе [28] метод позволяет с помощью одной
видеокамеры в реальном времени распознавать конфигурацию руки и
отслеживать движения ладони в трехмерном пространстве (рис. 1.4).
Используемая перчатка сконструирована из двадцати сегментов десяти разных
цветов. Использование небольшого количества цветов позволяет распознать
19
цвет выбранной точки изображения перчатки при разных освещениях, а
специальное
размещение
цветовых
сегментов
не
позволяет
получить
идентичные изображения при разных конфигурациях руки.
Рисунок 1.4 — Применение цветных перчаток в задаче распознавания
жестов руки [28]: (a) Входное изображение руки; (b) Растровое
изображение руки размером 40 40 ; (c) Похожие изображения руки в базе
данных; (d) Найденная конфигурация.
Распознавание конфигурации руки осуществляется сглаживанием начального
изображения алгоритмом двустороннего размытия (англ. Bilateral filter),
удалением фоновых точек, где фоновые точки классифицируются на основе
модели Гауссовых смесей (англ. Gaussian mixture models) и преобразованием
полученного изображения в растровое изображение меньшего размера (рис.
1.4.b). Полученное растровое изображение сравнивается с хранящимися в базе
данных
18000
эталонными
изображениями,
соответствующими
разным
конфигурациям руки (рис. 1.4.c), где расстояние d (r i , r j ) между растровыми
изображениями r i и r j оценивается с помощью следующей формулы:
~
~
d (r i , r j )  d (r i , r j )  d (r j , r i ) ,
где
~
d (r i , r j ) 
1
2
2
,
min
(
u

x
)

(
v

y
)

| Ci | ( x , y )C ( u ,v )S
i
xy
S xy  {(u, v) | r i ( x, y)  r j (u, v)}, Ci  {( x, y) | r i ( x, y)  фон} .
Данная система нашла применение в задачах управления анимационным
персонажам и распознавания жестов ручной азбуки глухонемых ASL.
20
1.2.5. Распознавание конфигурации и позиции на основе анализа контура
изображения руки
В качестве дескриптора конфигурации руки часто выбирают контур
изображения
руки.
Например,
в
работе
[33]
предлагается
система
распознавания жестов ручной азбуки глухонемых ASL на основе анализа
контура изображения руки. Для облегчения задачи два динамических жеста не
рассматриваются, и часть жестов заменяется новыми. В цветном изображении
руки, удаляются все точки, которые не соответствуют цвету кожи человека.
Полученное изображение преобразовывается в бинарное изображение, после
чего сглаживается фильтром Гаусса. Рука выделяется как связанный
компонент. Контуры руки выделяются с помощью оператора Собеля.
Вычисляется описанный прямоугольник контура руки, центр которого
соответствует началу координат. Дескриптором жеста являются вектор ( xC , yC )
n
1 n
и площадь контура руки, где ( xc , yc )  (  xi ,  yi ) , a ( xi , yi ) представляют
n i 1 i 1
собой координаты точек контура, i  1,2,...,n . Схожесть жестов оценивается
расстоянием Евклида между векторами дескрипторов жестов. В работе
приводится оценка качества распознавания - 90%. Качество распознавания, при
показе жестов разними людьми, не рассматривается.
В работе [34] рассматривается задача распознавания позиции кончиков
пальцев руки на основе анализа контура руки в цветном изображении. Первыми
шагами алгоритма, как и в случае [33], являются удаление фоновых точек,
сглаживание и выделение изображения руки. Имея контур руки, пальцы руки
выделяются посредством анализа локальных изгибов контура. Данный
алгоритм
использовался
для
управления
компьютера.
21
веб
камерой
персонального
1.2.6. Распознавание позиции и конфигурации руки методом случайных
лесов
Алгоритм случайных лесов (англ. randomized decision forests) является
алгоритмом машинного обучения, используемым в задачах классификации,
регрессии и кластеризации. В задачах распознавания жестов данный алгоритм
был использован для распознавания позиций ключевых характеристик тела
человека [35] и классификации конфигурации руки [36]. Именно на этой
технологии основана система распознавания жестов человека, выпущенная
компанией Microsoft в 2010 году. Предложенный метод [35] позволяет
распознавать позиции 20 частей тела (рис. 1.5.a) в том числе позиции ладоней
обеих рук получая на входе одно дальностное изображение человека.
Определение местоположения интересующих точек тела осуществляется с
помощью случайных лесов решений, которые обучаются на выборке
изображений соответствующих 100000 разных поз тела человека. Алгоритм
распознавания состоит из следующих шагов (рис. 1.5.b):
1. Отделение изображения человека в дальностном изображении;
2. Разделение изображения человека на 31 кластер посредством применения
алгоритма случайных лесов;
3. Нахождение позиций интересующих частей тела на основе полученных
кластеров.
(b)
(a)
Рисунок 1.5 — (a) Распознаваемые точки тела человека; (b) Шаги
распознавания [35].
Согласно приведенным данным в [35] данный алгоритм позволяет
распознавать жесты человека со скоростью 200 кадров в секунду при
22
выполнении на платформе Xbox 360. Для обучения трех деревьев с глубиной
равной двадцати на множестве из миллиона изображений и на
суперкомпьютере с процессором из 1000 ядер требуется один день.
В работе [36] случайные леса используются для распознавания
конфигурации руки для множества статических жестов из ручной азбуки ASL.
На рисунке 1.6 показана архитектура разработанной системы.
Рисунок 1.6 — Архитектура системы распознавания конфигурации руки для
множества статических жестов из ручной азбуки ASL [36].
Используя в качестве устройства ввода сенсор Kinect [37] система на входе
получает дальностное и цветное изображения человека. С помощью
программных платформ OpenNI и Nite [38] ищется рука человека, после чего
рука сегментируется как связанный объект в дальностном изображении (рис.
1.6.A). После нормализации изображений руки к ним применяется фильтр
Габора. Полученные изображения преобразовываются в матрицы с размерами
8 8 , которые выступают как дескриптор показанного жеста. Система
обучается с применением алгоритма случайных лесов. Разработанная система
позволяет в реальном времени распознавать 24 жеста ручной азбуки ASL.
Среднее
качество
распознавания
предложенным
алгоритмом
при
тестировании системы на жестах пяти разных людей составляет 75%. При
использовании
только
цветного
изображения
точность
распознавания
составляет 73% и при использовании только дальностного изображения – 69%.
23
1.2.7. Распознавание жестов руки с применением искусственных
нейронных сетей
Искусственные
математическую
нейронные
модель,
сети
построенную
(ИНС)
на
представляют
принципах
собой
организации
и
функционирования биологических нейронных сетей. В задачах распознавания
жестов, ИНС обычно используют как инструмент машинного обучения, где на
вход ИНС передаются характеристики жеста и на выходе получается
распознанный жест. ИНС отличаются между собой структурой и методом
обучения. Наиболее распространенными видами ИНС, используемыми в
задачах распознавания, являются сети прямого распространения (англ. feed
forward neural networks), рекуррентные нейронные сети, самоорганизующиеся
карты Кохонена и т.д. На рисунке 1.7 изображена рекуррентная нейронная сеть,
используемая в работе [39] для распознавания статических жестов руки азбуки
глухонемых Японии. В качестве входного устройства в работе используется
перчатка со встроенными сенсорами, которая возвращает характеристики
показанного жеста (10 точек и 3 угла). Характеристики жеста нормализуются и
передаются на вход нейронной сети. На выходе сеть выдает результат в виде
массива из 42 элементов, которые соответствуют 42 жестам руки. Результаты
распознавания – 71.4% для зарегистрированных пользователей и 47.8% для
незарегистрированных.
24
Рисунок
1.7
—
Рекуррентная
нейронная
сеть,
используемая
для
распознавания статических жестов руки азбуки глухонемых Японии [39].
В работе [40] распознавание 31 конфигураций руки осуществляется
посредством
алгоритма
«нейронный
газ».
Для
обучения
используется
конкурентное обучение Хебба. Утверждается, что качество распознавания 90.45% и скорость – 1.5 секунды. В работе [41] две рекуррентные нейронные
сети используются для распознавания статических жестов арабского жестового
языка. В качестве входного устройства используется видео камера. Для
облегчения задачи распознавания, в предложенной системе применяется
маркированная разными цветами перчатка. Утверждается, что качество
распознавания
-
95.11%
при
использовании
полностью
рекуррентной
нейронной сети, и 89.67%, при использовании ИНС Элмана.
1.2.8. Распознавание жестов руки с применением скрытых моделей
Маркова
Скрытая Марковская модель (СММ) – это статистическая модель,
которая нашла широкое применение как в задачах распознавания речи и
письма, так и в задачах распознавания жестов [42 - 45]. СММ – это множество
состояний, переменных и зависимостей, где каждое состояние имеет
25
вероятностное распределение, среди всех возможных выходных значений.
Обозначим через qt состояние СММ в момент времени t , Ot - наблюдаемую
переменную в момент времени t , P - вероятность. Формально СММ можно
представить как   ( A, B,  ) , где
 A  {aij } является матрицей размером N  N , где N равно количеству
состояний {s1 , s2 ,...,sN } , aij  P(qt 1  s j | qt  si ) ;
 B  {bi (k )}
является
матрицей
размером
N M ,
где
M
число
наблюдаемых переменных {v1 , v2 ,...,vM }, b j (k )  P(Ot  vk | qt  s j ) ;
   { i }- является массивом из N элементов, где  i  P(q1  si ) .
В задачах распознавания жестов, обычно для каждого отдельного жеста руки
создается СММ, которая обучается распознаванию именно этого жеста. На
этапе распознавания каждой модели на вход передаются характеристики
показанного жеста. Вычисляется функция соответствия каждой модели и
переданных характеристик. Распознается жест, для модели которого эта
функция имеет наибольшее значение.
СММ используется для распознавания, как изолированных жестов, так и
непрерывных. Например, в работе [43] СММ используется для распознавания
десяти динамических жестов руки. Качество распознавания составляет 98.94%
для изолированных жестов и 95.7% - для непрерывных. В работе [42] СММ
используется для распознавания предложений ASL, составленных из лексикона
сорока разных слов. Рассматриваются два случая – когда камера установлена на
рабочем столе, и камера установлена на шапке человека.
Качество
распознавания составляет 92%. В работе [44] СММ используется для
распознавания 53 разных жестов руки с качеством распознавания 89.9%.
26
1.3. Анализ существующих методов распознавания жестов руки
на основе анализа трехмерной модели руки
Данная
технология
используется
в
компьютерном
зрении
для
распознавания детальной трехмерной конфигурации руки при наличии на входе
одного или нескольких изображений жеста. Под детальной конфигурацией
понимается позиция и ориентация ладони и ключевых точек пальцев руки в
трехмерном пространстве. На рисунке 1.8.а изображена анатомия руки
человека, где DOF означает степен свободы движения (англ. degrees of
freedom). При построении трехмерной модели руки, обычно создаются точки
артикуляции, которые моделируют суставы руки человека. В зависимости от
конкретной задачи точки артикуляции и их степени свободы движения могут
совпадать или являться подмножеством суставов руки и их степенями свободы
движения.
Рисунок 1.8 — Структура руки человека: (a) 17 точек артикуляции руки с 23
степенями свободы движения [46]; (b) 6 степеней свободы движения кисти.
Особенностью методов распознавания жестов на основе модели является
сравнение проекций трехмерной модели руки с входными изображениями. По
входному двумерному изображению руки, на основе разных гипотез модель
руки приводится в определенную конфигурацию. Трехмерная модель руки
проецируется на плоскость, тем самым, получается двумерное изображение,
которое сравнивается с входным изображением. Если расстояние между
изображениями меньше заданного порога, то жест распознан, в противном
27
случае конфигурация модели руки меняется и заново сравнивается с входным
изображением. Гипотезы, используемые в данных системах разные, но в
большинстве случаев предполагается, что конфигурация руки в каждом кадре
видеоряда
совпадает
или
незначительно
отличается
от
найденной
конфигурации руки в предыдущем кадре. Главным недостатком этих методов
является потребность в больших временных ресурсах. Например, в работе [47]
распознавание жеста в одном кадре требует 15 секунд выполнения, в работе
[48] – 92.5 миллисекунд, в работе [49] – 33 миллисекунд, в работе [50] – 66
миллисекунды при использовании ресурсов графического процессора. Во
многих работах вводятся ограничения на количество точек артикуляции и
разрешаемые движения трехмерной модели руки.
1.3.1. Распознавание жестов как задача оптимизации
В работе [50] задача распознавания жестов руки приводится к задаче
оптимизации поиска параметров, задающих конфигурацию модели руки и
минимизирующих
расстояние
между
входным
изображением
жеста
и
изображением проекции модели руки. Модель руки строится из совокупности
эллиптического цилиндра, сфер и конусов, которые имеют 26 степеней свободы
движения и 27 параметров, задающих конфигурацию руки (рис. 1.9.d).
Рисунок 1.9 — (a) Входное цветное изображение; (b) Входное дальностное
изображение; (c) Отделенное изображение руки; (d) трехмерная модель руки;
(е) Распознанная конфигурация, приложенная к входному изображению [50].
В качестве устройства ввода информации о жестах руки используется
сенсор Kinect [37], позволяющий получать цветное и дальностное изображения
человека со скоростью 30 кадров в секунду. В полученном цветном
28
изображении удаляются все фоновые точки. Оставшиеся точки группируются,
создавая связанные компоненты, из которых в качестве изображения руки
выбирается компонента, имеющая максимальные размеры. Используя позицию
руки в цветном изображении, получают пару дескрипторов входного жеста
O  (os , od ) , где os - цветное изображение руки, а od - дальностное (рис. 1.9.c).
Предполагается, что в каждом кадре видеоряда конфигурация руки совпадает
или незначительно отличается от конфигурации руки, распознанном в
предыдущем
кадре.
Для
каждого
кадра
видеоряда
по
предыдущей
конфигурации руки h и калибровке камеры C, создается проекция модели руки
в виде дальностного изображения rd (h, C ) . Расстояние между входным
изображением O  (os , od ) и конфигурацией руки h оценивается функцией
Е (h, O) ,
где
Е(h, O)  D(O, h, C )  k kc(h) ,
D(O, h, C ) 
 min(| o  r |, d
 (o  r )  
d
s
  (1 
 (o
s
2 (os  rm )
 rm )   (os  rm )
d
M
)

m
).
В приведенных формулах k является фактором нормализации, rm (h, C ) бинарное изображение, пиксель которого принимает значение 1, если значение
соответствующей точки в изображениях od и rd отличается не больше, чем
заданный порог d m .  , d m, d M - являются константами, а функция kc(h)
используется для увеличения расстояния, если конфигурация руки не является
кинематически правдоподобной.
Оптимальная конфигурация руки h для минимизации функции Е (h, O)
определяется посредством метода роя частиц. В работе приводится скорость
распознавания 15 кадров в секунду, при использовании ресурсов графического
процессора.
Достоинством
данного
метода
является
распознавание
детальной
конфигурации руки без начального обучения, но в то же время, чтобы
29
использовать данный подход для распознавания жестов ручной азбуки
глухонемых, требуется начальное обучение.
1.3.2. Распознавание жестов на основе ограниченного количества проекций
модели руки
В большинстве случаев приходится распознавать ограниченное число
жестов. Основываясь на этом, многие исследователи создают проекцию
трехмерной модели руки или же самой руки не во время распознавания, а во
время обучения системы. Например, в работе [51], для каждого из 24 жестов
хранится 15 изображений руки проектируемых из разных углов наблюдения.
Вместе с изображениями хранятся параметры конфигурации трехмерной
модели руки. При показе жеста руки в базе эталонных жестов ищется самый
ближайший жест, используя параметры которого, анимационная модель руки
приводится в соответствующую конфигурацию (рис. 1.10).
Рисунок 1.10 — Воспроизведение распознанных жестов ASL [51].
На вход система получает цветное изображение руки. Распознавание
осуществляется путем удаления фоновых точек, сглаживания изображения
руки посредством фильтра Гаусса и сравнения изображения руки с эталонными
изображениями проекций руки. Для вычисления позиции руки в изображении,
вокруг руки строится сфера. Третья координата - расстояния до камеры,
вычисляется на основе анализа размера входного изображении руки и размера
эталонного изображения проекции руки для данного жеста. Недостатками
данной технологии являются трудность обучения (для каждого жеста
30
необходимо
ручным
образом
собрать
изображения
проекций
руки),
чувствительность к изменениям освещения и ограничение использования
системы одним пользователем.
1.4.
Ручная азбука и язык глухонемых
Согласно данным Всемирной федерации глухих [52] во всем мире живут
примерно 72 миллиона глухих людей, которые в повседневной жизни
общаются между собой на языке жестов. Слова и предложения в жестовом
языке показываются посредством жестов рук, пальцев и мимики лица. Один
жест жестового языка может означать букву, слово и даже выражать чувство.
Ручная азбука (дактильный алфавит, дактилемы) - азбука, используемая
в дактилологии, воспроизводящая посредством пальцев рук орфографическую
форму слова речи. Согласно данным [53] при построении дактильных
алфавитов упор делается на сходство с буквенными обозначениями. В то же
время в состав некоторых алфавитов включаются дактилемы, обозначающие не
буквы, а фонемы.
В отличие от людей, которые стали глухими в результате несчастного
случая или по причинам заболеваний, люди, не слышащие с рождения,
предпочитают жестовый язык обыкновенному тексту. Им легче принять и
показать жесты, чем читать или набрать текст на клавиатуре компьютера или
телефона. Трудность общения также возникает при общении глухого человека
со слышащим, когда слышащий человек не владеет жестовым языком. Для
решения данных проблем проводятся исследования по созданию систем
автоматического сурдоперевода и систем, оснащенных более естественным
человеко-машинным
интерфейсом
для
глухих
людей.
Системы
автоматического сурдоперевода можно разделить на две основные группы:
1. Системы, переводящие естественный язык на язык жестов;
2. Системы, переводящие жестовый язык на естественный язык.
31
Первая группа алгоритмов принимает текст на естественном языке и переводит
его в жестовый язык. Задачи, с которыми сталкиваются эти системы, в
основном связаны анализом семантики и содержания слов и предложений в
обоих языках. Системы второй группы связаны с задачей распознания
показанных жестов с применением разных технологий и аппаратур.
Одной из основных задач, решаемой в настоящей работе, является задача
сурдоперевода
жестов,
используемых
в
ручных
азбуках
русского
и
американского языков. Несмотря на то, что ручная азбука представляет собой
лишь часть жестов, используемых в языке глухонемых, автоматическое
распознавания ручной азбуки открывает путь для создания более естественных
человеко-машинных интерфейсов, убирает ограничения общения, с которыми
сталкиваются глухие люди в повседневной жизни.
1.5.
Основные выводы
В предыдущих разделах были описаны самые значимые работы и
распространенные методы, используемые в задачах распознавания жестов руки
человека. Конечно, применяются и другие методы, например методы,
основанные на использовании конечных автоматов, фильтра Кальмара,
классификации Хаара, Байесовской сети и т.д. В работе [54] распознавание
динамических жестов осуществляется посредством использования нечетких
конечных автоматов. Разработанная система позволяет распознавать 15
динамических жестов руки со скоростью 15 кадров в секунду. В работе [55]
распознавание динамических жестов осуществляется в реальном времени с
помощью метрического классификатора с применением RGB камер и
трехмерных сенсоров. Предложенная система в работе [56] основана на
применении динамической Байесовской сети. Разработанная система позволяет
распознать 10 изолированных жестов с качеством распознавания 99.59%. При
распознавании непрерывных жестов качество распознавания составляет
80.77%. В таблице 1.1 приведены характеристики некоторых методов решения
задачи распознавания жестов руки.
32
Таблица 1.1 — Методы распознавания жестов руки
Метод
Моменты
Устройство
Распознаваемые жесты
ввода
(количество)
Видеокамера
Позиция и ориентация
изображения
Разности
Скорость
Видеокамера
Направление
-
движения
-
руки
Видеокамера
направлений
Ограничения
Раб
ота
руки, размер ладони
изображения
Гистограммы
Качество
Конфигурация руки (5-
-
15)
реальное
Однородный
время
фон
реальное
Стабильный
время
фон
реальное
Обучение
время
каждого
[21]
[21]
для
[26]
[27]
оператора,
однородный
фон
Расстояние
Видеокамера
Позиция и размер руки,
изображений
/ цв. перчатка
конфигурация руки (24)
Расстояние
Видеокамера
конфигурация руки (24)
реальное
-
-
время
0.5 секунд
90%
Обучение
для
[33]
чувствительнос
[34]
контуров
каждого
руки
оператора
Локальные
Видеокамера
изгибы
Позиции
кончиков
[28]
-
180
пальцев руки
кадров
контура руки
в
секунду
ть
к
изменениям
освещения,
расстояние до
камеры
0,5-2
метров
Случайные
3D сенсор
20 частей тела человека
-
леса
кадров
Случайные
3D сенсор +
леса
видеокамера
ИНС
Перчатка
с
конфигурация руки (24)
конфигурация руки (42)
сенсорами
Нейронный
Видеокамера
конфигурация руки (31)
Оператор
200
в
находится
[35]
в
секунду
помещении
75% / 73%
реальное
-
[36]
/ 69%
время
-
[39]
чувствительнос
[40]
71.4%
/
реальное
47.8%
время
90.45%
1.5 секунд
газ
ть
к
изменениям
освещения
Рекуррентная
Видеокамера
нейронная
/ цв. перчатка
конфигурация руки (28)
95% / 89
15 кадров
%
в секунду
-
[41]
-
[43]
сеть
СММ
Стерео
Динамические
жесты
33
98.94%
/
реальное
СММ
видеокамера
(10)
Видеокамера
Динамические
жесты
95.7%
время
92%
10 кадров
чувствительнос
в секунду
ть
(40)
[42]
к
изменениям
освещения
СММ
Трехмерная
3
Динамические
видеокамеры
(53)
Видеокамера
конфигурация руки (26 +
модель руки
3D
жесты
реальное
89.9%
-
[44]
чувствительнос
[47]
время
вращение
15 секунд
-
каждого
ть
жеста)
к
изменениям
освещения
Трехмерная
3D сенсор +
Ключевые
модель руки
Видеокамера
характеристики
15 кадров
-
-
[50]
в секунду
конфигурации руки (26)
Трехмерная
Видеокамера
конфигурация руки (24)
-
модель руки
реальное
Обучение
время
каждого
для
[51]
оператора
Нечеткие
Видеокамера
конечные
Динамические
жесты
15 кадров
90%
-
[54]
реальное
чувствительнос
[56]
время
ть
в секунду
(15)
автоматы
Байесовская
Видеокамера
сеть
Динамические
жесты
(10)
99.59%
80.77%
/
к
изменениям
освещения
Таким образом, по используемым устройствам для ввода информации о
жестах руки, существующие методы можно разделить на 3 основные группы:
1. Методы, основанные на использовании видеокамер,
2. Методы, основанные на использовании специальных перчаток,
оснащенными сенсорами,
3. Методы, основанные на использовании трехмерных сенсоров.
Первая
группа
методов
позволяет
распознавать
статические
и
динамические жесты руки, и в некоторых случаях с точностью распознавания
более 90% [41, 54, 56]. Недостатком этих методов является в основном
чувствительность к изменениям освещения, которую в разных работах
пытаются устранить посредством использования цветных перчаток или
34
созданием однородного фона, что делает человеко-машинное взаимодействие
неудобным и неестественным.
Методы второй группы позволяют с высоким качеством распознавать
позиции ключевых точек руки человека, но взамен требуют одевания
специальных дорогих перчаток. Являются мало распространенными.
Методы третей группы позволяют в реальном времени распознавать
ключевые точки тела человека, являются независимыми от изменения
освещения, но на сегодняшний день не существует готовых решений,
позволяющих
с
динамические
жесты
распознаванию
большой
точностью
распознавать
конфигурации
человека.
Проводимые
исследования
руки
конфигураций
руки
позволили
получить
и
по
качество
распознавания не более 75% [36].
Обзор литературы позволяет сделать следующие основные выводы:
1. Задача
распознавания
распространенной
жестов
аппаратуры
руки
с
остается
использованием
на
широко
сегодняшний
день
нерешенной;
2. Существующие устройства и методы позволяют решать лишь небольшую
часть актуальных задач, например распознавание позиций ладони и
кончиков пальцев руки;
3. Почти все методы, использующие видео камеру, чувствительны к
освещенности, требуют надевания перчаток, или же ставят ограничения
на фон изображений;
4. Трехмерные сенсоры позволяют получить сравнительно стабильные
изображения, но на сегодняшний день нет методов, способных в
реальном
времени
распознавать
позиции
кончиков
пальцев,
конфигурации и динамические жесты руки на основе дальностных
изображений человека.
35
Глава
2.
Исследование
и
разработка
методов
распознавания жестов руки в дальностных изображениях
человека
В главе рассмотрены характеристики дальностных изображений и
предложены новые алгоритмы решения задач распознавания статических и
динамических жестов руки. В качестве устройства ввода информации о жестах
руки выбран трехмерный сенсор, работающий на принципах триангуляции и
структурированного света.
2.1. Характеристики дальностных изображений
На рисунке 2.1 представлен пример дальностного изображения человека в
виде бинарных изображений, полученных посредством спроектированного на
плоскость облака точек, под разными углами наблюдения. Изображения
получены посредством сенсора Asus Xtion Pro Live [57] и программной
библиотеки OpenTK [58]. Можно заметить, что произошло отделение точек
человека от заднего фона (рис. 2.1.a). На рисунке 2.1.(d-e) отчетливо видны
точки, создающие поверхность руки. Заметны неровности поверхности и
контуров
руки,
которые
свойственны
изображении.
36
всем
объектам
в
дальностном
Рисунок 2.1 — (a) Дальностное изображение человека, полученное
посредством
спроектированного
на
плоскость
облака
точек;
(b,c)
Укрупненные изображения человека; (d,e) Укрупненные изображения руки.
Для трехмерных сенсоров (далее сенсор) определено максимальное
целочисленное расстояние M от плоскости наблюдения до сцены. В точках,
расстояние которых больше
M , определяем d ( x, y) =0, таким образом
d ( x, y ) 0,1,..., M . В случае сенсоров Kinect [37] и Asus Xtion Pro Live [57]
M  10000 , что соответствует 10000 мм .
Пусть задано некоторое дальностное изображение d ( x, y) , которое, по
крайней мере, в одной точке принимает значение отличное от нуля. Тогда ему
можно поставить в соответствие полутоновое изображение с функцией
интенсивности p( x, y) , где
d ( x, y ) 

,
p( x, y )  ( B  1) 
M 

(2.1)
где B равно количеству градаций полутонового изображения.
На рисунке 2.2.a приведено полутоновое изображение, полученное на
основе дальностного изображения человека 2.1.а посредством преобразования
(2.1).
37
Рисунок 2.2 —
(a) Полутоновое изображение человека, полученное
посредством преобразования (2.1); (b) Полутоновое изображение человека,
полученное посредством преобразования (2.2).
Как видно на приведенном рисунке, в полутоновом изображении
отсутствует информация о форме лица, одежды и т.д., которая была изначально
в
дальностном
информативного
изображении
(рис.
полутонового
2.1
b,c).
изображения,
Для
получения
предлагается
более
метод
преобразования с использованием гистограмм изображений.
Введем следующие обозначения:
h  (h0 , h1, h2 ,....,hM ) , где hi - количество точек, для которых
d ( x, y)  i , точки, для которых d ( x, y)  0 , игнорируются, причем
h0  0 .
i
 ) , hi   hk ,
Вычислим h  (h0 , h1, h2 ,....,hM
k 0
 ) , hi  B  (1  hi / N )  sg (hi) ,
h  (h0, h1, h2,....,hM
(2.2)
M
0, если a  0
где N   hi , sg (a)  
.
i 0
1, если а  0
В этом случае p( x, y)   hd ( x, y )
 принимает
целые значения от 0 до B  1 и
показывает интенсивность полутонового изображения в каждой точке ( x, y) . На
рисунке 2.2.b представлено полутоновое изображение человека, полученное на
основе дальностного изображения 2.1.а посредством преобразования (2.2). В
38
полутоновом изображении отчетливо видны лицо и изгибы одежды человека,
которые размыты в изображении 2.2.a.
В изображениях 2.1.a и 2.1.b можно заметить неровные контуры объектов
и «тень» на фоне изображения. При наличии перед трехмерным сенсором
объектов, которые заслоняют друг друга, возникает полоса, которая не
отражает свет проектора сенсору. Причиной является схема, содержащая один
проектор, который излучает инфракрасный свет, и сенсор, который получает
отраженный от сцены свет (рис. 2.3).
Рисунок 2.3 — «Тень», полученная в дальностном изображении.
В точках дальностного изображения, соответствующих данной полосе
определяем d ( x, y)  0 .
Таким образом, рассматриваемым трехмерным сенсором присущи
следующие особенности:
1. Наличие расстояния M от плоскости наблюдения до сцены таково,
что в точках, для которых расстояние больше M , d ( x, y)  0 ;
2. Наличие, в случае заслонения объектов, полосы, в точках которой
d ( x, y)  0 ;
3. Наличие у объектов дальностного изображения неровных контуров и
поверхностей;
39
4. Возможность
преобразования
дальностного
изображения
в
использованы
в
полутоновое изображение.
2.2. Основные определения
Введем
основные
определения,
которые
будут
предложенных методах извлечения изображения и распознавания жестов руки.
Пусть имеется бинарное изображение с функцией интенсивности g ( x, y) , где
g ( x, y) принимает значения 0 (для черных точек) и 1 (для белых точек), и
дальностное изображение d ( x, y) .
Назовем точки 4-соседями (далее просто «соседями») изображения
любого типа, если у них отличается только одна из координат и притом только
на 1. Общепринято, что точка (x, y) в бинарном изображении называется
граничной, если у нее есть сосед другого цвета.
Определение
2.1.
Точку
(x, y)
в
бинарном
изображении
назовем
изолированной, если существуют более двух соседей другого цвета:
| g ( x, y)  g ( x  1, y) |  | g ( x, y)  g ( x  1, y) |  | g ( x, y)  g ( x, y  1) |  | g ( x, y)  g ( x, y  1) |  2
Определение 2.2. В бинарном изображении точка ( x, y) называется связанным
соседом точки ( x, y) , если они соседние и одного цвета.
Определение 2.3. Назовем точки ( x0 , y0 ) и ( xn , yn ) связанными во множестве
точек A бинарного изображения, если существует последовательность точек
( x0 , y0 ) , ( x1, y1 ) , …, ( xn , yn ) принадлежащих A , таких, что ( xi 1, yi 1 ) и ( xi , yi )
являются связанными соседями для всех значений i {1,2,...,n} .
Определение 2.4. Множество точек называется связным множеством, если
любые пары его точек (( x, y), ( x, y)) являются связанными в этом множестве.
Определение 2.5. Дискретной фигурой в бинарном изображении назовем
связное
множество,
не
являющееся
подмножеством
другого
связного
множества.
Определение 2.6. Контуром дискретной фигуры бинарного изображения
назовем множество граничных точек данной фигуры.
40
Введем аналогичные понятия для дальностных изображений.
Определение 2.7. В дальностном изображении точку ( x, y) назовем r0 связанным соседом точки ( x, y) , если они соседние и выполняются условия
d ( x, y)  0 ,
d ( x, y)  0 ,
| d ( x, y)  d ( x, y) | r0 ,
где
r0
-
некоторая
фиксированная константа.
Определение 2.8. Назовем точки ( x0 , y0 ) и ( xn , yn ) r0 - связанными во
множестве
точек
A
дальностного
изображения,
если
существует
последовательность точек ( x0 , y0 ) , ( x1, y1 ) , …, ( xn , yn ) принадлежащих A ,
таких, что точки ( xi 1, yi 1 ) и ( xi , yi ) являются r0 -связанными соседями для
всех значений i {1,2,...,n} .
Определение 2.9. Множество точек называется r0 -связным множеством, если
любые пары его точек (( x, y), ( x, y)) являются r0 - связанными в этом
множестве.
Определение 2.10. Дискретной фигурой в дальностном изображении назовем
r0 -связное множество, не являющееся подмножеством другого r0 -связного
множества.
В общем случае в изображении может быть выделено более одной
дискретной фигуры.
2.3. Извлечение изображения руки
Предлагаемый в настоящей работе метод извлечения изображения руки
из дальностного изображения рассматривается как совокупность двух подзадач:
1. Вычисление позиции произвольной точки ладони руки в дальностном
изображении.
2. Извлечение изображения руки по позиции точки ладони.
41
2.3.1.
Вычисление
позиции
произвольной
точки
ладони
руки
в
дальностном изображении
Возможны три разных метода вычисления позиции произвольной точки
ладони руки:
1. Вычисление позиции руки как ключевой точки тела человека [37, 38];
2. Вычисление позиции посредством показа начального жеста [38];
3. Вычисление позиции посредством пороговой обработки.
Как отмечалось в главе 1, на сегодняшний день существуют программные
библиотеки, которые позволяют в реальном времени распознавать 20 ключевых
точек тела человека в дальностном изображении [37, 38]. Указанные
библиотеки могут быть использованы для вычисления позиции ладони руки в
случаях, когда большая часть тела человека находится в области видимости
сенсора.
Вычислить позицию ладони можно посредством показа начального жеста
– движения рукой вперед, встряхивания рукой и т.д. По информации о
начальном жесте, в видеоряде ищется объект, чья траектория движения
совпадает с определенным жестом. Найденный объект распознается как ладонь
руки и отслеживается в следующих кадрах видеоряда. Данная технология
реализована в некоторых программных платформах [38], и может быть
использована для распознавания позиции руки.
При
некоторых ограничениях, пороговая обработка может
быть
использована для распознавания позиции ладони. Ставится ограничение –
жесты руки рассматриваются только в том случае, когда расстояние ладони
руки до сенсора находится в фиксированном диапазоне [r1 , r2 ] . Для каждого
кадра видеоряда выполняются следующие действия:
1. Удаление всех точек, которые не входят в рассматриваемую зону;
2. Поиск дискретных фигур в дальностном изображении;
3. Вычисление центров найденных дискретных фигур;
4. Фильтрация дискретных фигур.
42
Удаление точек (x, y) осуществляется путем сравнения значений d(x, y)
всех точек со значениями r1 , r2 . Если значение d(x, y) точки (x, y) не входит в
диапазон [r1 , r2 ] , то в данной точке d(x, y) обнуляется.
Поиск дискретных фигур осуществляется в два прохода, посредством
модифицированного алгоритма поиска связанных компонент в графе [17]
(алгоритм 2.1).
Алгоритм 2.1 — Алгоритм поиска дискретных фигур в дальностном
изображении
Вход: Дальностное изображение d(x, y) , целое значение r0 .
label := 1;
M := 0;
для всех y:=0 до MaxRow
{
*Обработка строки y*
для всех x:=0 до MaxCol
{
если d(x,y) > 0 то
{
*ищем r0 -связанные помеченные соседи точки (x,y)*
A := Помеченные_соседи(x,y);
если A.пуст(), то
{
М := label;
label := label + 1;
}
в противном случае
{
M := Минимальная_метка(A);
Сохранить_структуру_эквивалентных_меток(М,А);
}
K(x,y) := M;
}
}
}
//На проходе 2 метки, обнаруженные на проходе 1, заменяются
минимальными эквивалентными метками.
для всех y:=0 до MaxRow
{
43
для всех x:=0 до MaxCol
{
если d(x,y) > 0 то
{
K(x,y) := Минимальная_эквивалентная_метка(K[L,P])
}
}
}
Выход: Маркированный двумерный массив K.
Во время первого прохода все точки изображения помечаются
временными метками, где метки представляют собой цифровые значения.
Параллельно создается множество эквивалентных меток. Например, на рисунке
2.4 метки 2 и 3 являются эквивалентными. Во втором проходе все временные
метки меняются на метку с минимальным значением из числа эквивалентных
меток. Например, на рисунке 2.4 метка 3 поменяется на метку 2. После второго
прохода, множество точек, помеченных эквивалентными метками, будет
представлять собой дискретную фигуру в заданном дальностном изображении.
Например, на рисунке 2.4 множество точек, помоченных меткой ―1‖ и меткой
―2‖ являются дискретными фигурами.
Рисунок 2.4 — Пример маркировки точек дискретных фигур в дальностном
изображении при выборе r0  5 . Слева направо показаны соответственно
дальностное изображение; маркировка после первого прохода и маркировка
после второго прохода.
Обозначим через K ( x, y) метку точки ( x, y) в изображении d(x, y) .
Следующим шагом алгоритма является вычисление центров найденных
дискретных фигур. Центры вычисляются отдельно для каждой дискретной
фигуры посредством моментов. Пусть C – дискретная фигура в изображении
44
d(x, y) , точки которого были маркированы меткой c. Определим моменты
нулевого и первого порядка M 0,0 , M 0,1 , M 1,0 фигуры C следующим образом:
M 0,0   I ( x, y ) ,
M 0,1    y  I ( x, y ) ,
x y
M1,0    x  I ( x, y) ,
x y
где
x y
 1, если K ( x, y )  c
.
I ( x, y )  
0, в противном случае
В этом случае центр фигуры C будет представлять собой точку ( xc , yc ) , где
M 
M 
xc   1,0  , yc   0,1  .
 M 0,0 
 M 0,0 
Следующим
шагом
алгоритма
является
фильтрация
найденных
дискретных фигур. Из всех фигур удаляются:
1) фигуры, размер которых слишком мал, чтобы быть изображением ладони
человека;
2) фигуры, центры которых не меняют расположения в течение времени.
Примечание:
для
отслеживания
местоположения
центров
рассматривается фиксированное число предыдущих кадров видеоряда.
Распознанные центры дискретных фигур, выбираются как позиции ладони.
В зависимости от конкретной задачи, для вычисления позиции ладони
руки применяется один из приведенных методов. Далее будем предполагать,
что позиция ладони известна.
2.3.2. Извлечение изображения руки по позиции ладони
n
Обозначим через dist (a, b) расстояние между точками a, b  R .
Пусть имеется распознанная точка ладони ( xc , yc ) в дальностном
изображении d ( x, y) . Рассмотрим модель наблюдаемого объекта в виде
множества пространственных точек {( x, y, d ( x, y))}.
45
1. Создается

сфера

C
,
 d ( xc , yc ) 

где
вокруг
C
точки
-
( xc , yc , d ( xc , yc ))
некоторая
константа,
с
радиусом
зависящая
от
характеристик конкретного сенсора (в экспериментах С=80000).
2. Помечаются все точки ( x, y) дальностного изображения, для которых
( x, y, d ( x, y)) не входят в построенную сферу, т.е. отвечающие условию
dist ( ( x, y, d ( x, y)), ( xc , yc , d ( xc , yc )) )   .
3. Помечаются все точки ( x, y) дальностного изображения, которые не
являются r0 -связанными с распознанной точкой ладони ( xc , yc ) во
множестве непомеченных точек.
4. На базе исходного изображения создается новое дальностное
изображение с размером (2  1)  (2  1) , причем, в помеченных
точках определяется d ( x, y)  0 .
Извлечение изображения руки осуществляется за время, оцениваемое
O(n) , где n - число точек исходного изображения.
На рисунке 2.5.а показаны дальностное изображение человека в виде
полутонового изображения, распознанная точка ладони и сфера вокруг этой
точки. На рисунке 2.5.b показано выделенное изображение руки. Заметим, что в
приведенном изображении рука находится довольно близко к лицу человека и
закрывает часть лица, что не является помехой для извлечения изображения
руки.
Рисунок 2.5 — (a) Дальностное изображение человека, распознанная точка
ладони и сфера вокруг найденной точки; (b) Извлеченное изображение руки.
46
Теорема 2.1. Множество точек {( x, y) | d ( x, y)  0} , полученных алгоритмом
извлечения изображения руки, является единственной дискретной фигурой
(далее фигурой) в извлеченном дальностном изображении.
Доказательство.
Обозначим
A  {( x, y) | d ( x, y)  0}.
Для
доказательства
теоремы необходимо и достаточно доказать, что
1. Множество A является r0 - связанным;
2. Множество
A
не
является
подмножеством
другого
r0 -связного
множества.
Пусть  ( x0 , y0 ) , ( x0 , y0 )  A 
( x0 , y0 ) и ( x0 , y0 )
являются r0
связанными с точкой (  1,   1) . Отсюда следует, что  ( x0 , y0 ) , ( x1, y1 ) , …,
 , ym
 )  A, таких, что ( xi 1, yi 1 ) и ( xi , yi ) ,
( xn , yn ) и ( x0 , y0 ) , ( x1 , y1 ) ,…, ( xm
( xj 1, yj 1 ) и ( xj , yj ) являются r0 -связанными соседями для всех значений
 , ym
 ) = (  1,   1) .
i {1,2,...,n} , j {1,2,...,m} , ( xn , yn ) = ( xm
Рассмотрим последовательность точек ( x0 , y0 ) , ( x1, y1 ) , …, ( xn , yn ) ,
 1, ym
 1 ) , ( xm
  2 , ym
  2 ) ,…, ( x0 , y0 ) . Согласно определению 2.8 точки ( x0 , y0 )
( xm
и ( x0 , y0 ) являются r0 связанными, что в свою очередь означает, что множество
A является r0 - связанным.
Не существование другого r0 -связанного множества в извлеченном
изображении следует из условий определения 2.7. Теорема доказана.
Далее предполагается, что имеется извлеченное дальностное изображение
руки.
2.4.
Распознавание
позиций
кончиков
пальцев
и
точек
соединения пальцев с ладонью руки
Представим
дальностное
изображения
руки
в
виде
бинарного
изображения с функцией интенсивности g ( x, y) , где
g ( x, y)  1  sg (d ( x, y)) .
47
(2.3)
На
рисунке
2.6.a
приведено
бинарное
изображение,
полученное
из
дальностного изображения (рис. 2.5.b) посредством преобразования (2.3).
Рисунок 2.6 — (a) Бинарное изображение руки; (b) Удаление изолированной
точки приводит к появлению новой изолированной точки; (c) Необходимость
предварительного сглаживания. В левом углу показана начальная точка, а в
правом – результат вычисления точек контура руки.
Теорема 2.2. При преобразовании извлеченного дальностного изображения
руки d ( x, y) в бинарное изображение с функцией интенсивности g ( x, y)
посредством формулы (2.3), множество черных точек полученных в бинарном
изображении является дискретной фигурой и совпадает с дискретной фигурой
руки в дальностном изображении.
Доказательство. Обозначим через F дискретную фигуру в изображении
d ( x, y) , а через
F  множество черных точек в изображении
Необходимо и достаточно показать, что
1. ( x, y)  F  ( x, y)  F  .
2. F  является связанным множеством.
48
g ( x, y) .
Пусть
( x, y)  F  d ( x, y)  0  sg (d ( x, y)) 1 
g ( x, y)  0

( x, y)  F  и наоборот, если ( x, y)  F   g ( x, y)  0  sg (d ( x, y))  1 
d ( x, y)  0  ( x, y)  F , поскольку в изображении d ( x, y) имеется только одна
фигура, а во всех точках, не входящих в эту фигуру d ( x, y)  0 .
Поскольку ( x, y)  F  ( x, y)  F  и
изображении
F
является дискретной фигурой в
d ( x, y) , то для любых точек
последовательность точек
( x0 , y0 ) ,
( x, y), ( x, y)  F 
найдется
( xn , yn )  F , таких что
( x1, y1 ) , …,
( x0 , y0 ) = ( x, y) , ( xn , yn ) = ( x, y) , ( xi 1, yi 1 ) и ( xi , yi ) являются r0 - связанными
соседями для всех значений i {1,2,...,n} в изображении d ( x, y) , что в свою
очередь означает, что ( xi 1, yi 1 ) и ( xi , yi ) являются связанными соседями в
бинарном изображении g ( x, y) , i {1,2,...,n} . Теорема доказана.
Распознавание
позиций
кончиков
пальцев
руки
осуществляется
посредством следующих шагов:
1. Сглаживание бинарного изображения g ( x, y) ;
2. Поиск произвольной граничной точки кисти руки;
3. Вычисление позиций точек контура руки;
4. Анализ изменения расстояний точек контура относительно точки кисти.
Сглаживание изображения руки осуществляется путем удаления всех
изолированных
точек
(см.
определение
2.1).
Заметим,
что
удаление
изолированной точки, может привести к появлению новой изолированной
точки, которая до этого была граничной (рис. 2.6.b). Процесс удаления
продолжается до полного удаления всех изолированных точек.
Граничная точка кисти руки s0  ( x0 , y0 ) выбирается на шаге алгоритма
извлечения изображения руки как граничная точка фигуры руки, которая имеет
r0 - связанного соседа, не входящего в построенную сферу
49
Вычисление позиций точек контура фигуры руки осуществляется
посредством разработанного алгоритма обхода граничных точек фигуры руки
по часовой стрелке (алгоритм 2.2).
Алгоритм 2.2 — Вычисление позиций точек контура фигуры руки
Вход: Бинарное изображение руки
g ( x, y) , распознанная точка кисти
s0  ( x0 , y0 ) .
S := пустой_список(); * список точек контура *
p := s0 ;
повторяем пока S.не_содержит(p)
{
S.добавить(p); *Добовляем точку p в список S*
*/очередь рассмотрения точек:
234
1p5
8 7 6/*
если является_граничной(p.x-1,p.y) и S.не_содержит(p.x-1,p.y)
{ p := (p.x-1,p.y); continue;}
если является_граничной(p.x-1,p.y-1) и S.не_содержит(p.x-1,p.y-1)
{ p := (p.x-1,p.y-1); continue; }
если является_граничной( p.x,p.y-1) и S.не_содержит(p.x,p.y-1)
{ p := (p.x,p.y-1); continue; }
если является_граничной( p.x+1,p.y-1) и S.не_содержит(p.x+1,p.y-1)
{ p := (p.x+1,p.y-1); continue; }
если является_граничной(p.x+1,p.y) и S.не_содержит(p.x+1,p.y)
{ p := (p.x+1,p.y); continue; }
если является_граничной(p.x+1,p.y+1) и S.не_содержит(p.x+1,p.y+1)
{ p := (p.x+1,p.y+1); continue; }
если является_граничной(p.x,p.y+1) и S.не_содержит(p.x,p.y+1)
{ p := (p.x,p.y+1); continue; }
если является_граничной(p.x-1,p.y+1) и S.не_содержит(p.x-1,p.y+1)
{ p := (p.x-1,p.y+1); continue; }
}
Выход: Упорядоченное множество точек контура руки S  {s0 , s1,...,sk } .
Обозначим через
S  {s0 , s1,...,sk }, si  ( xi , yi ), i  0,1,...,k
полученное
упорядоченное множество точек контура фигуры руки (см. пример на рис.
2.7.a).
50
Рисунок 2.7 — (a) Контур фигуры руки; (b) Поведение функции q(i) в точках
контура фигуры руки.
Заметим, что без предварительного сглаживания изображения руки, алгоритм
2.2 может выдать неправильные результаты. Такой пример показан на рисунке
2.6.c.
Рассмотрим дискретную вещественную функцию расстояний (рис. 2.7.b):
q(i )  dist ( ( xi , yi ), ( x0 , y0 )), i  0,1,..., k .
(2.4)
На рисунке 2.7.b. можно заметить, что точки контура руки, находящиеся на
кончиках пальцев руки соответствуют локальным максимумам функции q(i) ,
но не все локальные максимумы являются точками кончиков пальцев руки (рис.
2.8.a).
Рисунок 2.8 — (a) Локальные максимумы функции q(i) , полученные по
причине неровностей контура руки; (b) Функция Q( j ) после сглаженная.
51
Выполним сглаживание функции вида (2.4) методом скользящего окна
посредством следующей формулы:
Q( j ) 
1 j  m 1
 q(i) , j  0,1,...,k  m  1, k  m ,
m i j
(2.5)
где m - количество точек скользящего окна (в программной реализации
алгоритма m =10). Заметим, что функция не сглаживается для последних m
точек, что не влияет на процесс распознавания, так как для всех жестов руки
кончики пальцев находятся довольно далеко от кисти руки и последние m
точек не могут соответствовать кончикам пальцев руки. По этой причине в
последующем эти точки просто не рассматриваются.
Осуществим поиск локальных экстремумов функции (2.5) посредством
функции b(i ) , где
 1, если Q(i  1)  Q(i )  0

b(i )   0, если Q(i  1)  Q(i )  0 , i  2,3,...,k  m , b(1)  1 .
b(i  1), если Q(i  1)  Q(i )

На рисунке 2.9 показана функция b(i ) соответствующая сглаженной функции
Q из рисунка 2.8.b.
Рисунок 2.9 — Поведение функции b(i ) .
Все точки с номерами i , для которых b(i)  1, b(i  1)  0 , являются точками
локальных максимумов, а для которых b(i)  0, b(i  1)  1 - точками локальных
минимумов. В некоторых случаях, в функции b(i ) появляются одиночные
точки экстремумов. Для предотвращения этого, функция b(i ) сглаживается
аналогично (2.5).
52
Обозначим через М1  {m1, m2 ,..,ml } множество значений номеров точек
локальных максимумов и через N1  {n1, n2 ,..,n p } - множество значений
номеров точек локальных минимумов функции Q( j ) , причем l  5 , p  4 , что
определяется естественными ограничениями жеста руки человека.
Имея дальностное изображение
d ( x, y) , точки контура бинарного
изображения руки S  {s0 , s1,...,sk } , множества М 1 и N1 , определим кончики
пальцев руки, как точки с позициями ( xi , yi , d ( xi , yi )) , где ( xi , yi )  smi ,
i  1,2,...,l .
Аналогично точки соединения пальцев с ладонью определим как
( x j , y j , d ( x j , y j )) , где ( x j , y j )  sn j , j  1,2,..., p . Распознанные точки, которые
находятся близко к точке кисти руки, не учитываются.
Разработанный метод позволяет за время, оцениваемое как O(n)
вычислять позиции кончиков пальцев и точек соединения пальцев с ладонью
руки в каждом кадре видеоряда, где n - общее количество точек извлеченного
изображения руки. Результаты предложенного алгоритма для некоторых
жестов руки приведены на рисунке 2.10.
Рисунок 2.10 — Распознанные кончики пальцев руки и точки соединения
пальцев с ладонью.
На рисунке 2.11 приведен интерфейс реализованной программы, которая
позволяет в реальном времени - со скоростью 30 кадров в секунду,
53
распознавать ключевые точки руки человека при работе на персональном
компьютере. Отметим, что данная скорость является максимальной для
выбранного трехмерного сенсора. Время обработки каждого кадра программой
составляет
в
среднем
15
миллисекунд,
что
означает,
что
скорость
распознавания может достичь более 60 кадров в секунду.
Рисунок 2.11 — Интерфейс программы распознавания позиций кончиков
пальцев руки и точек соединения пальцев с ладонью. Демонстрационный
видео ролик программы размешен в [59].
2.5. Распознавание конфигурации руки
Задачей распознавания конфигурации руки является идентификация
показанного
статического
жеста
при
наличии
множества
эталонных
конфигураций руки. Перечислим трудности, с которыми сталкиваются системы
распознавания конфигураций руки:
 Необходимость распознавания жестов в реальном времени;
 Различия в размере ладони/руки у разных людей;
 Особенности жестов, свойственные разным людям;
 Шумы, присутствующие в изображениях руки.
Сравнение дальностных изображений руки предлагается осуществить
посредством скелетного представления дальностного изображения.
54
Скелетное представление позволяет хранить фигуру руки в виде плоского
графа, что значительно уменьшает требования к ресурсам, требуемых для
хранения и сравнения жестов руки. Другим достоинством скелетного
представления является значимая инвариантность к размерам ладони руки.
Преобразовать дальностное изображение руки в скелет можно двумя
разными способами:
1. Посредством планарного представления дальностного изображения.
2. Посредством
пространственного
представления
дальностного
изображения.
2.5.1.
Скелетизация
изображения
руки
посредством
планарного
представления дальностного изображения
Рассмотрим бинарное изображение руки с функцией интенсивности
g ( x, y) , полученное на основе дальностного изображения руки d ( x, y)
посредством преобразования (2.3).
Определение 2.11. Скелетом дискретной фигуры в бинарном изображении
называется связанное множество точек, шириной в один пиксел, которые
равноудалены от граничных пикселей фигуры.
Для
корректного
математического
определения
скелета
фигуры
используют непрерывную модель фигуры, которая является аппроксимацией
дискретной модели, где фигура определяется как связанная замкнутая область
на плоскости, ограниченная конечным числом непересекающихся жордановых
кривых. Жордановой кривой называют образ окружности при непрерывном
инъективном ее отображении в евклидову плоскость, где отображение
считается инъективным, если две различные точки прообраза отображаются в
две различные точки образа [60].
Пусть F есть непрерывная аппроксимация дискретной фигуры, тогда
можно дать следующие определения.
55
Определение 2.12. Пустым кругом радиуса r фигуры F называется замкнутое
множество
Sr ( x0 , y0 )  {( x, y) : dist ((x, y), ( x0 , y0 ))  r}
точек
такое,
что
Sr ( x0 , y0 )  F , r  0 [60].
Определение 2.12. Максимальным пустым кругом называется пустой круг,
который не содержится ни в каком другом пустом круге [60].
Определение 2.13. Скелетом фигуры называется множество центров всех ее
максимальных пустых кругов [60].
Алгоритмы
построения
скелетов
дискретных
фигур
в
бинарном
изображении можно разделить на 4 основные группы:
1. Алгоритмы, основанные на вычисления расстояния точек до границы
фигуры (англ. distance transformation);
2. Алгоритмы, основанные на вычисления диаграммы Вороного;
3. Алгоритмы итеративного истончения (англ. thinning);
4. Алгоритмы, основанные на непрерывном представлении фигуры.
Первая группа алгоритмов работает следующим образом. Для бинарного
изображения генерируется карта расстояний, которая хранит расстояния от
каждой не граничной точки изображения до самой ближайшей граничной
точки. Скелет фигуры определяется локальными экстремумами карты
расстояний (рис. 2.12).
Рисунок 2.12 — (a) Бинарное изображение; (b) Карта расстояний в виде
трехмерного объекта, где третья координата – это расстояние точки до
ближайшей граничной точки; (c) Скелет фигуры [61].
56
Для заданного конечного множество объектов диаграмма Вороного - это
разбиение метрической плоскости на области, в которых находятся эти
объекты, таким образом, что каждому объекту соответствует область
плоскости, образованная точками, которые находятся ближе к этому объекту,
чем к любому другому. Объектом в бинарном изображении может выступать
двумерная точка или линейный отрезок. Для нахождения скелета фигуры на
множестве точечных отрезков, аппроксимирующих границу фигуры, строится
диаграмма Вороного, из которой далее выделяется скелет (рис. 2.13).
Рисунок 2.13 — (a) Бинарное изображение; (b) Диаграмма Вороного для
множества точек, аппроксимирующих границу фигуры; (c) Скелет фигуры
[62].
Нахождение скелета фигуры с помощью истончения – это итеративная
редукция (эрозия) фигуры, напоминающая распространение огня в поле, когда
огонь одновременно начинается по всем краям и равномерно движется к центру
поля [63]. Скелет фигуры, по этой аналогии, представляет собой множество
точек, в которых происходит встреча нескольких огненных фронтов (рис. 2.14).
Рисунок 2.14 — Построение скелета фигуры посредством истончения. Слева
направо показаны начальная фигура и фигура после нескольких итераций
истончения.
57
Четвертая группа алгоритмов, используемых для создания скелетного
представления дискретной фигуры, аппроксимирует дискретную границу
фигуры
непрерывной,
после
чего
создается
геометрический
скелет
непрерывной фигуры. В большинстве случаев, аппроксимация границы
осуществляется посредством многоугольника, а скелет, состоящий из прямых
линий и сегментов парабол [64] или кривых Безье первого и второго порядка
[65], ищется посредством построения обобщенного диаграмма Вороного для
многоугольной фигуры [60,64] (рис. 2.15).
Рисунок 2.15 — Построение скелета фигуры посредством аппроксимации
дискретной
фигуры
непрерывной;
(a)
Дискретная
фигура.
(b)
Аппроксимированная непрерывная граница; (c) Непрерывный скелет; (d)
Непрерывный скелет после «стрижки» [60].
Алгоритмы, основанные на вычислении расстояния точек до границы
фигуры и итеративного истончения, позволяют получить скелет изображения в
виде
нового
бинарного
изображения,
что
ограничивает
возможности
классификации изображений и требует хранения больших данных в базе
эталонных конфигураций руки. Получить непрерывный скелет фигуры можно
посредством диаграмм Вороного или аппроксимацией дискретной фигуры
непрерывной и вычислением скелета непрерывной фигуры. Оба метода
позволяют получить скелет фигуры в виде плоского графа, но первый метод
более чувствителен к неровностям границы фигуры, что можно наблюдать в
[66]. Заметим, что, несмотря на то, что все рассмотренные алгоритмы
предназначены для вычисления средней оси фигуры, при обработке одного
изображения разными алгоритмами, на выходе могут получаться значительно
58
отличающие друг от друга скелеты (рис. 2.13.c и рис. 2.15.c). Например,
существуют разные способы аппроксимации границы дискретной фигуры
посредством непрерывного многоугольника1, откуда следует, что алгоритмы
четвертой группы могут на выходе выдать разные скелеты для одной
дискретной фигуры. Другую особенность геометрических скелетов можно
наблюдать на рисунке 2.15.c, где видны дуги, созданные по причине
неровностей границы дискретной фигуры. Незначительные изменения границы
фигуры могут привести к существенным изменениям скелета фигуры. Это
означает, что задача скелетизации является некорректно поставленной задачей
[67]. Данные задачи решаются методом регуляризации (англ. skeleton pruning) –
поиском приближенных решений, устойчивых к малым изменениям формы
фигуры
[60,
68,
69].
В
случае
непрерывных
скелетов,
результатом
регуляризации обычно является подграф начального скелета, который
называют базовым скелетом фигуры, а процесс удаления дуг, которые не
входят в базовый скелет, называют «стрижкой» скелета. Обозначим через VG
объединение всех максимальных пустых кругов фигуры F , центры которых
лежат на скелете G . VG называется силуэтом скелета G [60].
Определение
2.14.
Базовым
скелетом
фигуры
F
называется
такой
минимальный укороченный подграф G ее скелета G , для силуэта VG  которого
выполнено условие H ( F ,VG )   , где  - заданная положительная величина,
H ( F ,VG ) - хаусдорфово расстояние между фигурой F и силуэтом VG  [60].
На практике для стрижки скелета используют и другие методы, как
например удаление дуг, в центре которых радиусы пустых кругов меньше
заданной величины. Эту величину обычно называют регуляризирующим
параметром. На рисунках 2.15.d показан скелет фигуры после стрижки, с
1
В некоторых работах, как например в [60], для дискретной фигуры определяется минимальный разделяющий
многоугольник, который является единственным для данной фигуры, но даже в этом случае третье условие
корректной задачи [67] не удовлетворяется.
59
регулирующим параметром 1. Можно заметить, что после стрижки в скелете
удаляются все дуги, которые были созданы по причине неровностей границы
фигуры.
Как
отмечалось
выше,
дальностным
изображениям
характерен
значительный шум на границах фигуры (рис. 2.5.b, 2.16.а), по причине чего,
регуляризации скелета с малыми параметрами стрижки недостаточно для
получения скелета руки, инвариантного к данному шуму. На рисунке 2.16
показаны
бинарное
изображение
руки,
начальный
скелет
и
скелеты,
полученные после стрижки с параметрами 1 и 4. Оптимальный параметр
стрижки для бинарных изображений, полученных на основе дальностных
изображений руки, полученный эмпирически, равен значению 5.
Рисунок 2.16 — (a) Бинарное изображение руки; (b) Скелет руки; (c) Скелет
руки после стрижки с регулирующим параметром 1; (d) Скелет руки после
стрижки с регулирующим параметром 4.
Стрижка скелета, конечно, не является единственным методом получения
скелета, инвариантным к малым изменениям границы фигуры. Получить такой
скелет можно также посредством начального сглаживания контура фигуры.
Пусть задан список точек L  { pi }in1 , принадлежащих контуру фигуры,
упорядоченных по часовой стрелке. Алгоритм сглаживания точек контура
осуществляется посредством кривых Безье (алгоритм 2.3).
Алгоритм 2.3 — Сглаживания точек контура руки
Вход: Точки контура { pi }in1 .
Инициализация: i : 1 либо 2 //Произвольно
pi : pi
60
пока i  n  2
{
1
1
1
pi1 : pi  pi 1  pi  2 ;
4
2
4
i : i  2
}
Выход: Сглаженные точки контура руки { pi}in1 .
Результат применения алгоритма на произвольной кривой показан на рисунке
2.17.
Рисунок 2.17 — Сглаживание контура посредством кривой Безье после 1, 2 и
3 итераций.
Данный подход можно применить для скелетизации фигуры посредством
диаграмм Вороного. Используя алгоритмы Suzuki и Abe [70] для бинарного
изображения,
найдем
граничные
точки
руки.
Выполним
фильтрацию
полученных точек контура так, чтобы любые две точки не находились ближе
заданного фиксированного расстояния. Сглаживание точек проведем с
помощью нескольких итераций алгоритма 2.3. Для полученных точек создадим
диаграмму Вороного и затем удалим лишние дуги, получая тем самым скелет
фигуры. Результат применения предложенного алгоритма для бинарного
изображения руки приведен на рисунке 2.18. Можно заметить, что в
полученном скелете руки отсутствуют дуги, создаваемые по причине
неровностей контура фигуры руки.
Таким образом, предлагается преобразовать дальностное изображение в
бинарное, а затем применить один из следующих методов скелетизации
дальностного изображения руки:
61
1. Метод скелетизации посредством поиска граничных точек и создания
диаграммы Вороного для этих точек;
2. Метод скелетизации посредством представления дискретной фигуры в
виде непрерывной фигуры и вычисления скелета этой фигуры.
Оба метода позволяют в реальном времени получать скелет фигуры руки,
инвариантный к шумам в контурах фигуры.
Рисунок 2.18 — (a) Бинарное изображение руки; (b) Выбранные точки
контура; (c) Диаграмма Вороного для сглаженных точек; (d) Скелет руки.
Единственным значимым недостатком данного подхода является потеря
первоначальной информации о жесте руки, во время преобразования
дальностного изображения в бинарное. На рисунке 2.19 показаны дальностное
и бинарное изображения руки со скелетом фигуры руки.
Рисунок 2.19 — (a) Дальностное изображение руки; (b) Бинарное
изображение руки; (c) Скелет руки.
Можно заметить, что в скелете руки не хранится никакой информации о
позиции большого и безымянного пальцев руки. Данный недостаток не имеют
62
трехмерные скелеты, полученные на основе преобразования дальностного
изображения d ( x, y) в облако точек {( x, y, d ( x, y))}.
2.5.2. Скелетизация изображения руки посредством пространственного
представления дальностного изображения
Аналогично двумерным фигурам геометрический скелет трехмерной
фигуры определяется как множество точек равноудаленных от границы
фигуры. Такой скелет обычно называют криволинейным скелетом (англ. curve
skeleton). Поскольку дальностное изображение всегда можно преобразовать в
облако точек в трехмерном пространстве, то целесообразно рассмотреть
статический жест руки как трехмерную фигуру, а скелетное представление
данной фигуры как дескриптор жеста. В литературе существует довольно
много алгоритмов скелетизации трехмерных фигур, например:
1. ROSA – rotational symmetry axis [71];
2. Сужение на базе Лапласа (англ. Laplacian-Based Contraction) [72]
3. L1 median [66];
4. Скелетизация посредством медиально-геодезической функции [73];
5. Скелетизация с применением графов Риба [74] и пр.
Несмотря на активные исследования и актуальность данной задачи в системах
распознавания
жестов
и
восстановления
пространственных
форм,
в
компьютерной графике не существует общепринятого математического
определения криволинейного скелета трехмерной фигуры2. Сама фигура в
рассматриваемых
работах
представляется
посредством
облака
точек,
полигональной сетки и воксельного изображения. По причине отсутствия
строгого
определения
скелета,
трудно
оценить
качество
алгоритма
скелетизации. По этой причине часто для сравнения качества алгоритмов
2
В диссертации [75] исследуется задача разработки общей математической модели криволинейных скелетов.
Дается строгое математическое определение криволинейных скелетов. Данная работа является довольно
новой и еще не нашла широкого применения, но может быть использована для оценки различных алгоритмов
скелетизации.
63
используют визуальную оценку. Несмотря на эти недостатки, существующие
методы скелетизации позволяют получить трехмерный скелет, который
довольно хорошо описывает начальную фигуру (рис. 2.20.a). Предлагаются
методы декомпозиции фигуры на основе криволинейного скелета (рис. 2.20.b),
которые могут быть использованы для распознавания пальцев и ладони
человека.
Рисунок 2.20 — (a) Криволинейный скелет руки полученной посредством
алгоритма [73]; (b) Декомпозиция фигуры руки посредством графа Риба [74].
Большинство из приведенных алгоритмов позволяют получить довольно
качественные скелеты из дальностных изображений руки, но их всех
объединяет один недостаток – высокая вычислительная сложность. Например,
алгоритм скелетизации, предложенный в работе [71] позволяет получить скелет
трехмерной фигуры, состоящий из 10 тысяч точек больше чем за 3 минуты, в
работе [72] время выполнения алгоритма составляет 2 минуты, для такого же
количество точек. В работе [73] в зависимости от сложности трехмерной
фигуры, алгоритм скелетизации может выполняться от одной до 36 минуты, а
алгоритм, предложенный в [76] позволяет вычислять криволинейный скелет
фигуры, состоящий из 100 тысяч точек за одну минуту.
Таким
образом,
несмотря
на
то,
что
криволинейные
скелеты
предоставляют довольно много информации о статическом жесте руки,
вычислительная сложность их получения является весьма высокой, что
препятствует использованию этих алгоритмов в приложениях реального
времени.
64
2.5.3. Построение трехмерного скелета дальностного изображения
Двумерные скелеты изображения руки не хранят информацию о
расстоянии точек руки до сенсора, а криволинейные скелеты трехмерного
представления изображения руки не позволяют получить скелет фигуры в
реальном
времени.
Поэтому
предлагается
новый
метод
скелетизации,
позволяющий в реальном времени вычислить трехмерный скелет фигуры в
дальностном изображении.
Пусть задано дальностное изображение руки d ( x, y) . Построим функцию
d  : R 2  R , интерполирующую d ( x, y) следующим образом: d (a, b)  d ( x, y) ,
где
( x, y)  arg inf dist (( x, y), (a, b) ,
( a, b)  R 2 .
Обозначим
через
G
( x , y )W 2
геометрический скелет фигуры руки в бинарном изображении, которую всегда
можно представить в виде плоского графа G  (V , E ) , где V  R 2 , E  V 2 .
Построим трехмерный скелет G  (V , E) , V '  R3 , E  V 2 посредством
алгоритма 2.4.
Алгоритм 2.4 — Построение трехмерного скелета
d ( x, y) ,
Вход:
интерполирующий
d ( x, y) ;
многоугольник
M,
аппроксимирующий контур фигуры руки; константа  , определяющая
максимальную допустимую длину ребра графа.
Шаг 1. Создаем скелет G  (V , E ) многоугольника M.
Шаг 2. Создаем пустые множества вершин V  и ребер E  .
Шаг 3. Проверяем длину каждого ребра (u, v)  E .
Если dist (u, v)   , то
1. Включаем u  ( xu , yu , d ( xu , yu )) и v  ( xv , yv , d ( xv , yv )) в V  , где
u  ( xu , yu ) , v  ( xv , yv ) .
2. Включаем (u, v) в E  .
иначе
65
 dist (u, v) 
3. Разбиваем ребро (u, v) на 
 равных частей.


4. Включаем полученные вершины и ребра в V  и E  аналогично
пунктам 3.1 и 3.2.
конец если
конец Шаг 3
Выход: Трехмерный скелет G  (V , E) .
Заметим, что алгоритм 2.4 не нарушает связанность графа S  (V , E) и
может
быть
использован
для
восстановления
начального
бинарного
изображения, если вместе с каждой точкой скелета хранить радиальную
функцию – радиус максимальной пустой сферы в данной точке, и хранить
информацию о поверхности фигуры.
Утверждение
составляет
2.1.
Вычислительная
O(n log n) ,
где
n
сложность
-
число
алгоритма
вершин
скелетизации
многоугольника
аппроксимирующего контур фигуры.
Доказательство. Пусть заданы дискретная фигура в дальностном изображении
d ( x, y) и многоугольник с n вершинами, аппроксимирующий контур данной
фигуры.
Предложенный метод скелетизации содержит следующие основные этапы:
1. Вычисление двумерного скелета ~ O(nlogn) [60];
2. Построение трехмерного скелета ~ O(k), где k – количество ребер
двумерного скелета.
Согласно [60] скелет фигуры является подмножеством ее диаграммы
Вороного, количество ребер которого асимптотический можно оценит как
O(n) . Тогда имеет место следующее неравенство: O(nlogn) + O(k)  O(nlogn) +
O(n)  O(nlogn). Утверждение доказано.
На рисунке 2.21 показан построенный трехмерный скелет руки, с разных
сторон наблюдения.
66
Рисунок 2.21 — (a) Трехмерные скелеты дальностного изображения руки; (b)
и (c) Скелеты, с разных сторон наблюдения.
2.5.4. Сравнение трехмерных скелетов руки
После того, как статический жест руки представлен в виде трехмерного
скелета, который в свою очередь является графом, состоящим из множества
трехмерных вершин и дуг, остается найти эффективный алгоритм сравнения
этих графов, который:
1) может работать в реальном времени;
2) будет инвариантным к малым шумам в скелете;
3) позволит сравнить скелеты с разным количеством вершин и дуг.
В литературе существует огромное количество методов сравнения графов,
которые используются в задачах анализа изображений и видео, обработки
документов, биометрической идентификации и пр. Данные методы можно
разделить на три разные категории:
1. Методы сравнения графов на изоморфизм [77];
2. Методы сравнения подграфов на изоморфизм [78, 79, 80];
3. Методы сравнения подграфов на изоморфизм на основе исправления
ошибок [81, 82, 83];
Методы сравнения графов G1  (V1, E1 ) и G2  (V2 , E2 ) на изоморфизм
ищут такое биективное сопоставление
структуру
ребер
графов:
f : V1  V2 , которое не нарушает
(u, v)  E1  ( f (u), f (v))  E2 .
сопоставление найдено, то графы считаются изоморфными.
67
Если
такое
Второй метод сравнения графов применяется в случаях, когда один граф
имеет больше вершин, чем другой. Например, если количество вершин графа
G1 превышает количество вершин G2 , то ищется такое подмножество вершин
V1  V1 , для которого графы (V1, E1 ) и G2 являются изоморфными, где E1
является подмножеством ребер E1 , откуда удалены все ребра, которые имеют
инцидентные вершины, не принадлежащие множеству V1 .
Поскольку при показе одного и того жеста построенные скелеты руки в
кадрах видеоряда могут отличаться друг от друга как количеством дуг, так и
своей структурой, то идентификация жеста на основе алгоритмов сравнения
графов и подграфов на изоморфизм не даст хороших результатов. Для задач
компьютерного зрения, как правило, используются методы третьей категории, в
которых обычно рассматриваются параметризированные графы и ищется
расстояние между двумя графами. Определяется понятие ошибки, которая
строго связана с рассматриваемой задачей, после чего вершины одного графа
сопоставляются с вершинами другого графа. Найденные ошибки во время
сопоставления исправляются, ценой которого является увеличение расстояния
между рассматриваемыми графами. Известно, что алгоритмы сравнения
подграфов на изоморфизм, как с исправлением ошибок, так и без, являются NP
полными [84]. Следовательно, не существует алгоритма, который за
полиномиальное время может сравнить подграфы, как с исправлением ошибок,
так и без, на изоморфизм и найти оптимальное сопоставление вершин графов.
По этой причине, обычно строятся полиномиальные алгоритмы, которые
находят приблизительное сопоставление вершин графов и соответственно
оценивают приблизительное расстояние рассматриваемых графов.
Предложенный в настоящей работе метод сравнения скелетов руки по
своим характеристикам принадлежит третьей группе рассматриваемых методов
сравнения графов. Скелет руки рассматривается как параметризированный
граф G  (V , E ) , где каждая вершина vi V характеризуется координатами
68
( xi , yi , zi ) . Для решения задачи сравнения двух трехмерных скелетов
дальностных изображений предлагается специальный алгоритм, состоящий из
следующих шагов:
1. Нормализация скелетов;
2. Развертка скелетов;
3. Поиск сопоставляемых точек разверток и вычисление расстояний между
ними посредством известного алгоритма DTW (Dynamic Time Warping).
Рассмотрим вершины ( xmax , y1, z1 ) , ( xmin , y2 , z2 ) , ( x3 , ymax , z3 ) , ( x4 , ymin , z4 ) ,
( x5 , y5 , zmin ) V  ,
( x, y, z ) V  .
для
которых
Введем
xmin  x  xmax ,
следующие
ymin  y  ymax ,
обозначения:
zmin  z ,
q x  1 /( xmax  xmin ) ,
q y  1 /( ymax  ymin ) , cx  ( xmax  xmin ) / 2 , c y  ( ymax  ymin ) / 2 .
Нормализованный скелет представим графом G  (V , E) , вершины
v  ( x, y, z) V 
которого
определяются
следующим
образом:
x  qx ( x  cx ) , y  q y ( y  c y ) , z  ( z  zmin ) для всех v  ( x, y, z) V  , при
этом (u, v)  E тогда и только тогда, когда соответствующая дуга (u, v)  E .
Развертка скелета осуществляется по часовой стрелке, начиная с самой
нижней вершины скелета посредством алгоритма 2.5 (рис. 2.22).
Алгоритм 2.5 — Развертка скелета
Вход: Скелет руки S; справочник, хранящий количество соседей каждой
вершины pointsWeight
pointToVisit := вершина скелета S с максимальной ординатой ();
P := пустой_список;
пока pointToVisit != null
{
P.добавить(pointToVisit); *Добавляем pointToVisit в набор вершин P*
pointsWeight[pointToVisit] -= 1;
notConsideredPoints := пустой массив;
69
consideredPoints := пустой массив;
для всех q из pointToVisit.соседи()
{
если pointsWeight[q]>0
{
если P.не_содержит(q)
{ notConsideredPoints.добавить(q);}
иначе
{ consideredPoints.добавить(q);}
}
}
pointToVisit := null;
если notConsideredPoints.не_пуст()
{
pointToVisit := точка массива notConsideredPoints с минимальной
абсциссой;
}
иначе, если consideredPoints.не_пуст()
{
pointToVisit := точка массива (consideredPoints) с минимальной
абсциссой;
}
}
Выход: Упорядоченный набор вершин P.
Результат развертки представляет собой упорядоченное множество
вершин графа {v1, v2 ,...,vn}, где n  2 | E | , которое можно описать в виде
дискретных функций f x , f y , f z , vi  ( f x (i), f y (i), f z (i)) , i  1,2,...,n (рис. 2.22.b2.22.d).
70
Рисунок 2.22 — (а) Развертка скелета, где стрелками показано направление
развертки; (b), (c) и (d) показывают поведение функций
fx , f y и fz
соответственно.
Пусть имеются развертки двух разных скелетов
{v1, v2 ,...,vm}
и
{u1, u2 ,...,un } , где vi  ( xi(v) , yi(v) , zi(v) ), i  1,2,...,m и u j  ( x (ju ) , y (ju ) , z (ju ) ), j  1,2,...,n .
Детализируем шаги алгоритма DTW применительно к решению задачи
сравнения разверток.
Обозначим через
А  Rmn матрицу расстояний между вершинами
разверток на метрике Манхеттена:
аi, j  | xi(v)  x (ju ) |  | yi(v)  y (ju ) |  | zi(v)  z (ju ) | .
(2.8)
Найдем последовательность элементов (ik , jk )hk 1 , h  m , h  n , h  m  n в
матрице А , которая удовлетворяет следующим условиям:
1. (i1, j1)  (1,1) и (ih , jh )  (m, n) ,
2. ( ik 1  ik  1 и jk 1  jk ) или ( ik 1  ik  1 и jk 1  jk  1)
или ( ik 1  ik и jk 1  jk  1), k  1,2,...,h  1,
71
(2.9)
h
3. Сумма значений элементов  а(ik , jk ) минимальна для матрицы А .
k 1
Решить задачу поиска такой последовательности можно посредством
алгоритма динамического программирования за полиномиальное время.
h
Найденное минимальное значение суммы  а(ik , jk ) является мерой сходства
k 1
скелетов.
Утверждение 2.2. Вычислительная сложность сравнения трехмерных скелетов
G  (V , E ) и G  (V , E) составляет O(| E |  | E |) .
Доказательство.
Предложенный
метод
сравнения
скелетов
содержит
следующие основные этапы:
1. Нормализация скелетов ~ O(| V |  | V  |) ;
2. Развертка скелетов ~ O(| E |  | E |) ;
3. Поиск сопоставляемых точек разверток и вычисление расстояний между
ними ~ O(| E |  | E |) .
Поскольку трехмерный скелет, полученный посредством предложенного
алгоритма, является плоским связанным графом, то имеет место теорема
Эйлера:
| V |  Г  | E | 2 , где Г - количество всех граней в графе G 
| V || E |  Г  2  | E | 2 . Аналогичное неравенство выполняется для графа G :
| V  || E | 2 . Таким образом, вычислительная сложность метода сравнения
трехмерных скелетов составляет O(| V |  | V  |) + O(| E |  | E |) + O(| E |  | E |) 
O(| E |  | E |) . Утверждение доказано.
Теорема 2.3. Для введенной меры оценки расстояния между двумя скелетами
выполняются все аксиомы метрики, за исключением неравенства треугольника.
Доказательство. Для доказательства данного утверждения покажем, что
предложенный метод оценки расстояния между двумя скелетами удовлетворяет
аксиомам тождества и симметрии. Затем, приведем пример скелета, для
которого не выполняется аксиома треугольника.
72
Обозначим через  (G1, G2 ) расстояние между скелетами G1 и G2 . Пусть
G1  G2 . Тогда, согласно алгоритму 2.5, развертки скелетов G1 и G2 будут
равны друг другу, из чего следует, что на диагонали матрицы расстояний А
h
будут везде нули. Это означает, что минимальное значение суммы  а(ik , jk ) 
k 1
h
 а( k , k )  0 .
k 1
Пусть  (G1, G2 )  0 . Обозначим P  { p1, p2 ,..., pm } - развертку первого
скелета, и Q  {q1, q2 ,...,qn } - развертку второго скелета. Матрица расстояний
А R mxn будет иметь следующий вид:
  ( p1, q1 )  ( p1, q2 ) ...  ( p1, qn ) 
  ( p , q )  ( p , q ) ...  ( p , q ) 
2 1
2 2
2 n 
А
, где  ( pi , q j ) представляет собой




 ( pm , q1 )  ( pm , q2 ) ...  ( pm , qn )
расстояние точек pi , q j на метрике Манхеттена, i  1,2,...,m , j  1,2,...,n .
h
Пусть  (G1, G2 )   а(ik , jk )  0 есть минимальная сумма значений элементов в
k 1
матрице A, удовлетворяющих условиям (2.9). Согласно первому условию (2.9)
(i1, j1 )  (1,1)   ( p1, q1 )  0  p1  q1 .
Покажем, что (i2 , j2 )  (2,2) . Предположим противное: (i2 , j2 )  (1,2) или
(i2 , j2 )  (2,1) . Если (i2 , j2 )  (1,2)   ( p1, q2 )  0 , тогда p1  q2  q1  q2 , что не
может быть, поскольку любые две соседние точки qi и qi 1 в развертке скелета
представляют собой разные вершины скелета. По этой же причине
(i2 , j2 )  (2,1) . Продолжая данное рассуждение, получим, что
mn
и
pi  qi , i  1,2,...,n , от чего следует, что P  Q . Поскольку, согласно алгоритму
2.5, любые две соседние точки qi и qi 1 в развертке Q , pi и pi 1 в развертке
73
P являются ребрами соответственно в графах G1 и G2 , то кроме вершин, графы
совпадают и ребрами. Таким образом,  (G1, G2 )  0  G1  G2 .
Аксиома симметрии выполняется всегда, поскольку минимальная сумма
h
T
 а(ik , jk ) в матрицах А и А одинакова.
k 1
Неравенство треугольника выполняется не для всех скелетов. Например,
на
рисунке
2.23
приведены
 (G1, G3 )   (G1, G2 )   (G2 , G3 ) ,
три
где
скелета,
 (G1 , G3 )  51,
для
которых
 (G1 , G2 )  1 ,
 (G2 , G3 )  35 . Развертки для данных скелетов имеют соответственно
следующий
вид:
P1  {(2,1,0), (2,2,0), (1,3,0), (2,2,0), (2,3,0), (2,2,0)},
P2  {(2,1,0), (2,2,0), (1,3,0), (2,2,0)} , P3  {(10,2,0), (10,3,0)} . Теорема доказана.
Рисунок 2.23 — Пример скелетов, для которых не выполняется аксиома
треугольника.
Предложенный алгоритм сравнения скелетов руки был применен для
распознавания статических жестов руки, используемых в ручных азбуках
глухонемых ASL (American Sign Language) и РЖЯ (Русский жестовый язык).
Результаты распознавания реализованных систем приведены в главе 3.
2.6. Основные выводы
1. Исследованы методы распознавания позиции руки в дальностном
изображении человека, основанные на вычислении позиции как ключевой
точки
тела
человека,
вычислении
74
позиции
посредством
показа
начального жеста и вычислении позиции посредством пороговой
обработки.
2. Предложен однопроходный алгоритм извлечения изображения руки из
дальностного изображения по известной позиции ладони со сложностью
O(n) , где n - количество точек исходного изображения.
3. Предложен метод вычисления позиций кончиков пальцев и точек
соединения пальцев с ладонью руки, на основе анализа контура
изображения руки со сложностью O(n) , где n - количество точек
извлеченного изображения. Время обработки каждого кадра в среднем
составляет 15 миллисекунд.
4. Исследованы методы скелетизации бинарных изображений и методы
распознавания криволинейных скелетов трехмерных фигур. Предложен
метод скелетизации дальностного изображения со сложностью O(n log n) ,
позволяющий в реальном времени вычислить трехмерный скелет фигуры,
который представляет собой параметризированный плоский граф, где n число
вершин
многоугольника
аппроксимирующего
контуры
дальностного изображения.
5. Предложен
метод
сравнения
трехмерных
скелетов,
включающий
нормализацию скелета; развертку скелета; вычисление меры различия
скелетов посредством применения алгоритма DTW со сложностью
O(m2 ) , где m - максимальное количество ребер сравниваемых скелетов.
6. Сформулированы и доказаны необходимые теоремы, в том числе
доказано, что:
 множество точек {( x, y) | d ( x, y)  0} , полученных алгоритмом
извлечения изображения руки, является единственной дискретной
фигурой в извлеченном дальностном изображении;
 при преобразовании извлеченного дальностного изображения руки
в бинарное изображение, множество черных точек полученных в
75
бинарном изображении является дискретной фигурой и совпадает с
дискретной фигурой руки в дальностном изображении;
 для предложенной меры оценки расстояния между двумя скелетами
выполняются все аксиомы метрики за исключением неравенства
треугольника.
76
Глава 3. Разработка методов бесконтактного управления
компьютером и распознавания ручных азбук глухонемых
На основе разработанных методов распознавания жестов руки созданы и
реализованы
методы
бесконтактного
управления
позволяющие
взаимодействовать с компьютером посредством статических и динамических
жестов пальцев и рук, а также методы распознавания и перевода в текстовый
вид ручных азбук глухонемых РРА и ASL.
3.1. Человеко-машинное взаимодействие с помощью жестов
пальца руки
Одним из существенных ограничений существующих методов HCI [13]
является
необходимость
прикосновения
к
сенсорам
или
физическим
устройствам для управления компьютером. Для преодоления этого ограничения
предлагается метод бесконтактного управления компьютером на основе
распознавания жестов пальца руки.
В результате изучения графических интерфейсов, которыми снабжено
большинство персональных компьютеров, в качестве базовых элементов
управления были выбраны следующие действия:
1) «Движение» по четырем направлениям плоскости,
2) «Щелчок», «нажатие» и «отпускание» в данной точке плоскости.
«Движение» – это перемещение курсора мыши; «щелчок», «нажатие» и
«отпускание» – соответствующие действия левой кнопкой мыши. Для каждого
базового элемента управления был выбран соответствующий жест пальца, не
требующий от человека особой тренировки (рис. 3.1), причем «щелчок» – это
последовательность жестов «нажатия» и «отпускания».
77
Рисунок 3.1 — Выбранные жесты пальца: (а) Движение пальца по четырем
направлениям плоскости; (b) команда нажатия и отпускания в данной точке
плоскости.
Схема разработанного метода приведена на рисунке 3.2.
Дальностное
изображение
Извлечение изображения
руки
Вычисление позиции кончика
пальца руки и центра ладони
Вычисление позиции курсора
Сглаживание позиции
кончика пальца
Перевод жеста руки в команды
щелчок, нажатие и отпускание
Рисунок 3.2 — Схема метода бесконтактного управления компьютером.
Для распознавания жестов, показанных на рис. 3.1, используется
Декартова левая система координат. Начало координат совпадает с верхним
левым углом дальностного изображения. Произвольная точка ладони руки
ищется посредством показа начального жеста [38]. Изображение руки
выделяется
посредством
анализа
r0 -связанности
точек
дальностного
изображения (см. раздел 2.3.2). В качестве точки кончика пальца руки
выбирается точка руки, имеющая минимальную ординату. Этот выбор
обоснован тем, что во всех выбранных жестах (рис. 3.1) кончик пальца руки
имеет наименьшую ординату относительно других точек руки.
Для вычисления центра ладони используется бинарное представление
дальностного изображения руки. За центр ладони принимается центр
78
окружности вписанной в фигуру руки и имеющей максимальный радиус.
Вычисляется эта позиция в один проход посредством карт расстояний (см.
раздел 2.5.1) (рис. 3.3.a).
Рисунок 3.3 — (a) Кончик пальца руки и центр ладони; (b) Интерфейс
программы.
Неровности контура и поверхности изображения руки приводят к
появлению шума в распознанной позиции кончика пальца руки. На величину
шума влияют также выбранные жесты руки соответствующие «нажатию» и
«отпусканию», при выполнении которых, необходимо, чтобы курсор мыши не
менял свою позицию до завершения жеста, хотя позиция кончика пальца во
время выполнения жеста может меняться. Для этого выполним «сглаживание»
координат распознанной позиции кончика пальца руки.
Обозначим через (x k , y k ) распознанную в кадре k позицию кончика
пальца руки и через (xk , yk ) - сглаженную позицию кончика пальца, которая
вычисляется следующим образом:
 x , если | xk  xk 1 | 
,
xk   k 1
 xk  sg ( xk  xk 1 )  , если | xk  xk 1 | 
 y , если | yk  yk 1 | 
,
yk   k 1
 yk  sg ( yk  yk 1 )  , если | yk  yk 1 | 
79
где  есть целочисленная константа. В первом кадре видеоряда (x1 , y1 ) =
(x1, y1 ) .
Для перевода жестов пальца в базовые элементы управления выбран
графический
операционных
посредством
интерфейс
системах
жестов,
настольных
Для
Microsoft.
приведенных
компьютеров,
на
управления
изображении
используемый
курсором
3.1.a,
в
мыши
достаточно
преобразовать координаты кончика пальца в координаты курсора мыши в
каждом кадре видеоряда. Допустим, разрешение дальностного изображения
составляет X1  Y1 , а разрешение экрана пользователя − X 2  Y2 . Если точка
кончика пальца имеет координаты ( x, y) , то курсор мышки получает
координаты ( x, y) , где x  X 2  x / X1 , y  Y2  y /Y1 .
Для перевода жестов, приведенных на рисунке 3.1.b, в базовые элементы
управления, кроме позиции кончика пальца используется позиция центра
ладони. Обозначим через (x0 , y0 ) позицию кончика пальца и (x h , y h ) - позицию
центра ладони в видеокадре d(x, y) . Заранее фиксируются два значения d1 и d 2
причем
d1  d 2 .
Если
для
данного
видеокадра
выполняется
условие
d ( xh , yh )  d ( x0 , y0 )  d 2 , то жест переводится в команду «нажатие», если
d ( xh , yh )  d ( x0 , y0 )  d1 – в команду «отпускание». Если интервал времени
между
указанными
последовательными
командами
меньше
заданного
фиксированного времени T0 , то эти команды переводятся в команду «щелчок».
На основе описанного метода человеко-машинного взаимодействия
реализована
компьютерная
программа,
которая
позволяет
выполнять
стандартные функции мыши компьютера простыми жестами пальца руки.
Программа также дает возможность ввода текста посредством жестов руки,
реализуя
принцип
виртуальной
клавиатуры.
Интерфейс
разработанной
программы показан на рисунке 3.3.b. Видео-демонстрацию программы можно
80
найти в [85]. Скорость работы программы ограничивается скоростью
выбранного сенсора – 30 кадров в секунду.
3.2.
Человеко-машинное
взаимодействие
в
трехмерном
пространстве посредством нескольких пальцев руки
Интерактивная
технология
multi-touch
interaction
(MT)
позволяет
пользователю путем прикосновений управлять графическим интерфейсом
одновременно несколькими пальцами руки [86]. Предложенный в настоящей
работе метод поддерживает MT взаимодействие в трехмерном пространстве
посредством бесконтактных жестов руки и пальцев руки. Поддерживаемые
жесты показаны на рисунке 3.4.
Рисунок 3.4 — Поддерживаемые жесты: «щелчок», «сдвиг вправо», «сдвиг
влево», «уменьшение масштаба», «увеличение масштаба», «вращение».
Как правило, методы MT-взаимодействия состоят из двух частей –
серверной части и клиента. Серверная часть распознает жесты и отправляет
распознанную информацию клиенту. На клиентской части, полученная
информация
используется
для
управления
графическим
интерфейсом
пользователя. Архитектура разработанного алгоритмического и программного
обеспечения приведена на рисунке 3.5.
Рисунок 3.5 — Архитектура MT- взаимодействия.
81
На серверной части поиск позиции произвольной точки ладони руки
осуществляется посредством показа начального жеста. Распознавание и
отслеживание позиций кончиков пальцев руки выполняется посредством
алгоритма 3.1.
Алгоритм 3.1. Распознавание и отслеживание позиций кончиков пальцев
Вход: Дальностное изображение человека - d ( k ) ( x, y) , номер текущего кадра
в видеоряде - k , позиция ладони руки - ( x0 , y0 ) , константа  .
Шаг 1. Выделяется изображение руки посредством анализа r0 -связанности
точек изображения d ( k ) ( x, y) с точкой ( x0 , y0 ) .
Шаг 2. Позиции кончиков пальцев руки { p1( k ) , p2( k ) ,..., pn( kk ) } распознаются
посредством анализа контура фигуры руки.
Шаг 3.
Если k  1
Каждой распознанной точке кончика пальца pi(k ) присваивается
уникальная метка ci( k ) , i  1,2,...,nk .
иначе
M (i)  arg
min
j 1, 2,...., nk 1
dist ( pi( k ) , p (jk 1) ), i  1,2,...,nk .
Для всех i  1,2,...,nk
( k 1)
если dist ( pi( k ) , pM
(i ) )  
Точке pi(k ) присваивается метка распознанной в предыдущем
(k )
( k 1)
( k 1)
кадре точки pM
(i ) : ci  cM (i ) .
иначе
Точке pi(k ) присваивается новая уникальная метка ci(k ) .
конец если
конец для всех
82
конец если
Выход: Распознанные точки { p1( k ) , p2( k ) ,..., pn( kk ) } с метками {c1( k ) , c2( k ) ,...,cn( kk ) } .
Количество требуемых шагов для обработки каждого кадра видеоряда
d ( k ) ( x, y) алгоритмом 3.1 составляет O(n) (на шаге 1) + O(n) (на шаге 2) +
O(nk ) (на шаге 3), где n есть количество точек в кадре d ( k ) ( x, y) , nk количество распознанных пальцев. Поскольку nk  5 , то вычислительная
сложность алгоритма 3.1 составит O(n) .
Для передачи сообщений между сервером и клиентом используется
основанный на формате OSC (Open Sound Control format) открытый протокол
TUIO [87], удовлетворяющий требованиям настольных пользовательских
интерфейсов. После вычисления позиций и меток точек кончиков пальцев руки
для кадра видеоряда сервер отправляет полученную информацию клиенту.
Отправляемые сообщения имеют следующий формат:
 /tuio/3Dcur alive s_id0 ... s_idN
 /tuio/3Dcur set s_id0 x0 y0 z0 X0 Y0 Z0 m0
 /tuio/3Dcur set s_id1 x1 y1 z1 X1 Y1 Z1 m1

…
 /tuio/3Dcur set s_idN xN yN zN XN YN ZN mN
 /tuio/2Dcur fseq
f_id
Сообщение «/tuio/3Dcur alive s_id0 ... s_idN» указывает на то, что в
рассматриваемом кадре найдены N  1 объектов с соответствующими метками
s_id0, s_id1, …, s_idN. Сообщение «/tuio/3Dcur set s_id x y z X Y Z m» содержит
позицию (x,y,z) точки с меткой s_id; (X,Y,Z) и m, которые представляют собой
соответственно вектор скорости и величину ускорения и которые вычисляются
посредством анализа фиксированного числа последних кадров видеоряда.
Уникальный идентификатор кадра отправляется посредством сообщения
«/tuio/2Dcur fseq».
83
Отправка сообщений между сервером и клиентом осуществляется
посредством протокола UDP, который позволяет передавать сообщения без
задержек, но допускает потери данных.
Распознавание жестов, приведенных на рисунке 3.4, осуществляется на
клиентской части. Для выполнения определенного жеста пользователь
фиксирует руку и пальцы руки в течение нескольких секунд, определяя тем
самым начало жеста. Визуально это выгладит как «приклеивание» пальцев к
управляемому виртуальному объекту. Затем, выполняется сам жест. Для
завершения жеста пользователь резко тянет руку к себе, тем самым ―отпуская‖
управляемый объект (рис. 3.6).
Рисунок
3.6
—
Интерфейс
программы
управления
трехмерными
виртуальными объектами посредством нескольких пальцев руки: (a)
Желтыми кружочками показаны распознанные позиции кончиков пальцев; (b)
Объекты, после жеста увеличения масштаба (рис. 3.4).
Начало и конец жеста распознаются путем анализа вектора скорости
каждой точки кончика пальца. Распознавание самого жеста осуществляется
посредством анализа траектории движения всех точек пальцев руки. Описание
алгоритма распознавания динамических жестов на основе анализа траектории
движений наблюдаемых точек дано в разделе 3.4.
В настоящей работе TUIO клиент представляет собой пользовательское
приложение, разработанное на языке C# с применением технологии WPF. На
сегодняшний день существует довольно много приложений, поддерживающих
84
протокол TUIO, которые могут быть интегрированы с разработанным TUIO
сервером, тем самым, расширяя возможности предложенного метода HCI,
позволяя управлять настольными компьютерами независимо от операционной
системы [88].
3.3. Распознавание жестов глухонемых
В разделе 1.4 настоящей работы приводится описание жестовых языков
глухонемых, и обосновывается потребность в создании систем сурдоперевода,
позволяющих убрать ограничения общения, с которыми сталкиваются глухие
люди в повседневной жизни. В настоящем разделе приводится решение задачи
распознавания жестов, используемых в ASL и РРА. Поскольку жесты,
используемые в этих азбуках разные, то следует рассматривать их по
отдельности.
3.3.1. Распознавание ручной азбуки ASL
Ручная азбука ASL состоит из 26 жестов пальцев руки, 24 из которых
представляют
собой
статические
жесты
и
характеризуются
только
конфигурацией руки, два – динамические. Кроме буквенных обозначений в
ASL также используются десять статических жестов, для обозначения цифр от
нуля до девяти (рис. 3.7).
Рисунок 3.7 — Ручная азбука ASL и жесты, обозначающие цифры [89].
В настоящей работе, для облегчения задачи классификатора, не
рассматриваются два динамических жеста, соответствующие буквам «J» и «Z».
85
Разработанный
метод
распознавания
включает
этапы
обучения
и
распознавания.
Обучение осуществляется следующим образом – оператор в графическом
интерфейсе пользователя выбирает определенную букву и показывает жест,
соответствующий данной букве. Показанный жест захватывается трехмерным
сенсором. В изображении ищется рука человека, которая впоследствии
извлекается и подвергается скелетизации. Построенный скелет хранится в базе
эталонных жестов. Интерфейс разработанной программы показан на рисунке
3.8. Заметим, что для одной буквы может храниться несколько эталонных
скелетов.
Рисунок 3.8 — Интерфейс программы обучения жестов.
Поиск позиции точки ладони руки осуществляется посредством показа
начального
жеста.
Распознавание
показанных
жестов
осуществляется
алгоритмом 3.2.
Алгоритм 3.2. Распознавание жестов ASL
Вход: Дальностное изображение человека - d ( x, y) , позиция ладони руки
( x0 , y0 ) , эталонные скелеты {S1, S2 ,....,S24}.
Шаг 1. Извлечение фигуры руки F посредством анализа r0 -связанности
точек изображения d ( x, y) с точкой ( x0 , y0 ) .
86
Шаг 2. Построение трехмерного скелета S фигуры руки F .
Шаг 3. Нормализация скелета S .
Шаг 4. Вычисление расстояний  (S , Si ),i  1,2,...,24 посредством введенной
меры (2.8).
Шаг 5. Поиск номера эталонного скелета k , для которого выполняется
следующее условие:  (S , S k )  min{ (S , Si )}, i  1,2,...,24
Выход: Распознанный жест под номером k .
Утверждение 3.1. Вычислительная сложность алгоритма распознавания
статических жестов составляет O(n  wm 2 ) , где n - количество точек в кадре
видеоряда,
m
-
максимальное
количество
вершин
многоугольника
аппроксимирующего контур фигуры руки, w - количество эталонных скелетов.
Доказательство. Алгоритм распознавания статических жестов содержит
следующие основные этапы:
1. Извлечение фигуры руки ~ O(n) , где n есть количество точек в кадре
видеоряда;
2. Построение трехмерного скелета:
1) Поиск многоугольника, аппроксимирующей контр фигуры руки ~
O(n) ;
2) Вычисление трехмерного скелета ~ O(m log m) , где m - количество
вершин многоугольника аппроксимирующего контур фигуры руки
(утверждение 2.1);
3. Вычисление
расстояний
между
скелетами
~
O( wh 2 ) ,
где
h-
максимальное количество ребер сравниваемых скелетов (утверждение
2.2);
Таким образом, вычислительная сложность данного алгоритма составляет
O(n) + O(n) + O(m log m) + O( wh 2 ) . Поскольку, согласно [60] скелет фигуры
является подмножеством ее диаграммы Вороного, то h можно оценить как
87
O(m) , откуда получим, что вычислительная сложность алгоритма 3.2
составляет O(n  wm 2 ) . Утверждение доказано.
Предложенный алгоритм был протестирован на базе изображений жестов
цифр и букв ручной азбуки ASL. Тестовая база содержала 800 изображений
жестов цифр и 1920 изображений жестов букв двух разных людей. Эталонная
база включала 34 скелета, по одному для каждого класса жестов. В таблицах 3.1
и 3.2 приведены характеристики качества распознавания алгоритма, где
точность
распознавания
определяется
как
доля
жестов
действительно
принадлежащих данному классу относительно всех жестов, которые были
отнесены к этому классу. Полнота распознавания определяется как доля
найденных классификатором жестов принадлежащих классу относительно всех
жестов этого класса в тестовой выборке.
Таблица 3.1 − Характеристики качества распознавания жестов букв ASL
Характеристики
качества
распознавания
Тестовая выборка
A B C D E F G H I K L M N O PQ R S T U V W XY
Точность
0.81 0.79 0.87 0.95 0.86 0.97 0.85 1 0.81 1 0.6 0.4 1
Полнота
0.6 0.6 1 0.9 0.9 0.8 0.8 1 0.9 0.9 1 0.3 0.5 0.45 1 1 0.85 1 0.38 0.75 0.85 1 1 1
1 1 1 0.9 0.5 0.5 0.73 0.87 0.77 1 1
Таблица 3.2 − Характеристики качества распознавания жестов цифр ASL
Тестовая выборка
Характеристики
качества распознавания
Точность
Полнота
Из
проведенных
0
1
2
3
4
5
6
7
8
1 0.83 0.83 0.97 0.7
1
0.5
1 0.97
0.55 1 0.88 0.73 0.98 0.98 0.98 0.33 0.9
экспериментов
видно,
что
средняя
9
0.97
0.93
точность
распознавания цифр составила 87.7%, а полнота − 82.6%. Эти же показатели
для распознавания букв составили соответственно 84.08% и 81.2%. При
88
тестировании алгоритма на базе жестов одного человека средняя полнота
распознавания цифр достигла 87.5%, а букв – 84.38%.
Скорость распознавания жестов в программной реализации данного
алгоритма составляет меньше 30 миллисекунд, что позволяет увидеть результат
распознавания жеста сразу же после его показа. Заметим, что скорость
распознавания предложенного алгоритма зависит от объема базы эталонных
жестов. Увеличение объема может привести к потери скорости распознавания.
3.3.2. Распознавание ручной азбуки РРА
В русской ручной азбуке содержится 33 жеста, каждый из которых
соответствует начертанию определенной буквы (рис. 3.9).
Рисунок 3.9 — Русская ручная азбука.
В отличие от ASL, в русской ручной азбуке используется большое число
динамических жестов. Согласно формализации Stokoe [90] каждый жест языка
глухонемых можно представить в виде совокупности пяти компонент:
 TAB – позиция руки или рук,
 DEZ – конфигурация руки или рук,
 ORI – ориентация руки,
 SIG – движение руки, пальца и т.д.,
89
 Выражение лица-тела.
На основе указанной формализации была предложена письменная форма
американского жестового языка и в последующем разработаны системы
обозначений
Hamburg
Notation
System
и
SignWriting
[91],
которые
использовались для документации ASL. В настоящей работе будем опираться
только на концепции, изложенные в этих системах.
В системе SignWriting имеются 261 отдельных конфигураций руки,
причем в РРА используются 26 из них, которые образуют множество
конфигураций S  {s1 , s2 ,...,s26 }, представленное в таблице 3.3.
Таблица 3.3. Конфигурации (формы) руки, используемые в РРА
Обозначение
s1
s2
s3
s4
s5
s6
s7
s8
s9
s10
s11
s12
s13
s14
s15
s16
s17
s18
s19
s20
s21
s22
s23
s24
s25
s26
Конфигурация
руки
Обозначение
Конфигурация
руки
Обозначение
Конфигурация
руки
Можно заметить, что в таблице отсутствуют конфигурации руки, которые
используются при показе жестов Ё и К. В отличие от остальных букв, во время
показа жестов Ё и К конфигурация руки меняется, что существенно затрудняет
процесс анализа. Для облегчения задачи автоматического распознавания
жестов, были введены следующие упрощения:
1. Буква ―Ё‖ не рассматривается, вместо нее используется буква ―Е‖;
2. Жест буквы ―К‖ меняется на новый жест, с конфигурацией s10, но
отсутствием движения.
Эти нововведения не меняют сути РРА и легко могут быть приняты
сообществом.
90
В SignWriting насчитывается более чем
500 разных
движений,
совершаемых во время жестикуляций. В РРА используются всего семь из них,
которые обозначим через M  {m1 , m2 ,...,m7 }. Добавим во множество M
элемент m0 , соответствующий ситуации, когда во время показа жеста позиции
кисти и пальцев руки не меняются (таблица 3.4).
Таблица 3.4. Движения пальцев и кисти руки, используемые в РРА
Обозначение
m0
m1
m2
m3
m4
m5
m6
m7
Движение
Таким образом, любой жест из РРА представляет собой элемент из множества
S  M . Например, буква ―А‖ есть элемент ( s1 , m0 ) , буква ―Ш‖ - ( s21 , m0 ) а
буква ―Щ‖ - ( s21 , m6 ) .
Если обозначить через T * - сегменты видеоряда, в каждом из которых
показывается отдельный жест, то задачу распознавания жестов РРА можно
представить в виде поиска функции
R :T *  S  M ,
которая каждому сегменту из T * сопоставляет элемент из S  M .
Несмотря на простую формулировку, задача является довольно сложной по
некоторым причинам:
1. В ручной азбуке используются жесты, которые трудно отличить даже
человеку, например жесты букв Н и Р, Х и Э, Ч и Ю ;
2. Скорость жестикуляции может отличаться при разных показах жестов;
3. Размер ладони у разных людей существенно отличается;
4. Распознавание жестов необходимо осуществить в реальном времени;
5. Несмотря на правила, каждому человеку свойственны свои особенности
жестов;
6. Как правило, дактилирование (жестикуляция) производится плавно и
слитно, что затрудняет процесс сегментации показанных жестов.
91
Предложенный алгоритм перевода жестового языка глухонемых в
текстовый вид вычисляет ключевые характеристики жеста в каждом кадре
видеоряда, разбивает видеоряд на сегменты, каждый из которых соответствует
отдельно показанному жесту, и распознает сам жест.
Схема разработанного алгоритма представлена на рисунке 3.10.
Начало
Обработка
видеокадра
Рука найдена в
видеокадре
Да
Дальностное
изображение
руки
Ключевые характеристики жеста
в последних n видеокадрах
Вычисление
ключевых
характеристик
руки
Обработка
ключевых
характеристик
Нет
Добавление
символа в
текст
Распознанная
буква
Распознан
новый жест
Да
Конец
Ждем новых
ключевых
характеристик
Нет
Рисунок 3.10 — Схема алгоритма автоматического перевода жестового языка в
текст
Ключевые характеристики жеста – это конфигурация руки и движения
пальцев или руки. Рассмотрим все 10 динамических жестов, используемых для
показа букв Д, Ж, З, Й, Ц,Ч, Щ, Ъ, Ы, Ь. Здесь ключевой движущейся частью
является точка руки, имеющая максимальную ординату. Принята декартовая
система координат, в которой центр координат расположен в левой нижней
точке изображения, ось абсцисс направлена вправо, а ось ординат вверх. Таким
образом, ключевыми характеристиками жеста в каждом кадре видеоряда
являются конфигурация руки и позиция точки руки, имеющей максимальную
ординату.
Вычисление самой верхней точки руки осуществляется в один проход по
дальностному
изображению
руки.
Распознавание
92
конфигурации
руки
осуществляется аналогично распознаванию статических жестов ручной азбуки
ASL – строится база эталонных скелетов, при показе нового жеста вычисляется
скелет руки, который сравнивается с эталонными скелетами посредством
введенной меры.
Следование правилам дактилирования приводит к так называемой задаче
нахождения коартикуляций. Коартикуляция – это артикуляция со слиянием
конечной фазы жеста с начальной фазой следующего жеста. Иными словами,
коартикуляция жестов – это последовательность кадров, которые фиксируют
переходной процесс от одного жеста к другому, определяя тем самым границы
сегментов видеоряда T * .
В работе [92] для сегментирования непрерывных динамических жестов
руки и нахождения коартикуляций используются данные о позиции ладони
руки. Жест считается завершенным, когда ладонь в течение короткого времени
не меняет свою позицию. В работе [93] для сегментирования непрерывных
данных предлагается использовать условные случайные поля. Существуют
также методы, основанные на применении скрытых моделей Маркова,
Марковских моделей максимальной энтропии, стохастических грамматик и т.д.
В случае распознавания жестов РРА алгоритм нахождения коартикуляций
жестов должен удовлетворять следующим требованиям:
1. Сегментация жестов должна осуществляться в реальном времени.
2. Сегментация жестов должна быть устойчивой к шумам в ключевых
характеристиках.
Зная ключевые характеристики жеста руки в каждом кадре видеоряда,
информацию о жестах можно представить в виде функций P(t ) и F (t ) , где:
1. P(t ) W 2 - есть позиция верхней точки руки в кадре t  T ,
2. F (t )  S - есть конфигурация руки в кадре t  T .
T
-
представляет
собой
упорядоченное
множество
отсчетов-кадров
приходящейся на сеанс показа отдельного слова или предложения.
93
Рассмотрим поведение функции F (t ) во время показа слова ―добрый‖
(рис. 3.11).
Рисунок 3.11 — Изменение конфигурации руки во время показа слова
―добрый‖.
Несмотря на то, что во время жестикуляции были показаны шесть букв, на
рисунке 3.11 можно заметить ложно распознанные конфигурации s8 , s17 , s18 .
Причиной этому являются ошибки классификатора из-за изменения формы
руки во время фазового перехода от одного жеста к другому. Например, в
первом кадре видеоряда конфигурация руки распозналась как s15 , хотя рука
имела конфигурацию s5 . Распознанные конфигурации руки s23 , s20 , s17 в кадрах
13-17 являются причиной коартикуляции и не должны влиять на процесс
распознавания жестов.
Для представления показанного слова в текстовом виде необходимо
сегментировать время показа жестов на отрезки, где каждый отрезок
соответствует одной букве, как это показано на рисунке 3.11. Алгоритм
сегментации жестов имеет следующий вид (алгоритм 3.3), где размер h
очереди конфигураций руки выбирается оператором и напрямую зависит от
скорости показа жестов.
94
Алгоритм 3.3. Разбиение видеоряда на сегменты
Вход: Видеоряд дальностных изображений d ( k ) ( x, y), k  1,2,...,m .
Шаг 1. Создается пустая очередь конфигураций руки Q с размером h .
lastHandShape := пустая конфигурация руки.
shapeStart := 0.
i : 1.
Шаг 2. Для каждого кадра d ( k ) ( x, y) :
1. Распознается конфигурация руки hk в изображении d ( k ) ( x, y) .
2. Конфигурация руки hk добавляется в очередь Q.
3. Переменной handShape присваивается конфигурация с максимальной
частотой входа в очередь Q.
4. Если lastHandShape
есть пустая конфигурация руки и очередь Q
заполнена полностью, то
1. lastHandShape := handShape
2. shapeStart := k-h
конец если
5. Если handShape != lastHandShape и очередь Q заполнена полностью, то
1. ti : [shapeStart, k - h] .
2. sti : lastHandSh ape .
3. lastHandShape := handShape.
4. shapeStart := k-h+1.
5. i : i  1.
конец если
конец Шаг 2
Выход:
Сегменты
видеоряда
T *  {t1, t2 ,...,t p } .
Часто
встречающиеся
конфигурации руки {st1 , st 2 ,...,st p } в соответствующих сегментах видеоряда
95
{t1, t2 ,...,t p } .
Количество шагов выполняемых алгоритмом разбиения видеоряда на
сегменты для каждого кадра видеоряда оценивается как O(n  wm 2  h) , где n количество точек в кадре видеоряда, m - максимальное количество вершин
многоугольника аппроксимирующего контуры фигуры руки, w - количество
эталонных конфигураций, h - размер очереди конфигураций руки.
Таким образом, получаются сегменты видеоряда T * . Для распознавания и
приведения
жестов
в
текстовый
вид
каждому
сегменту
видеоряда
сопоставляется элемент из множества S  M .
Рассмотрим сегмент видеоряда ti *  [i  1, i  k ] . Сопоставим ему элемент
( st i , mt i ) , где st i является конфигурацией руки, наиболее часто встречающейся
в кадрах i  1, i  2, ..., i  k , а элемент mt i является эталонным движением,
траектория которого имеет наименьшее расстояние до функции P на сегменте
[i  1, i  k ] . Для оценки расстояний между траекториями, они представляются в
виде разверток, нормализуются и сравниваются между собой посредством
введенной меры (2.8). Распознанный жест добавляется в текст как новая буква.
Интерфейс программы автоматического распознавания и преобразования
жестов РРА приведен на рисунке 3.12.
Рисунок 3.12 —
Интерфейс программы автоматического распознавания
жестов РРА.
96
Результаты распознавания ключевых характеристик жестов РРА приведены в
таблице 3.5 и 3.6.
Таблица 3.5 − Результаты классификатора конфигураций руки в РРА
Показатели качества распознавания
Конфигурации s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26
Точность
1 1 .61 1 .61 .88 .9 .49 .61 0.8 .95 1 1 1 .91 .78 .78 .59 .74 .95 .43 .95 .71 1 1 1
Полнота
.95 .4 .95 .2 .95 .75 .9 .95 .95 0.6 .9 .8 .95 .5 .5 .7 .9 .95 .85 .95 .8 .95 .6 .65 .85 .5
Таблица 3.6 − Результаты классификатора движений пальцев и кисти руки,
используемые в РРА
Показатели качества распознавания
Тип движения
m0
m1
m2
m3
m4
m5
m6
m7
Точность
.86
.95
.86
1
1
1
.95
1
Полнота
.95
.9
.9
.95
.95
.95
1
1
Заметим, что результаты классификатора конфигурации руки, средняя точность
которого составляет 83.4%, а полнота - 76.7%, приведены для отдельного кадра
видеоряда. При распознавании конфигурации руки в нескольких последующих
видеокадрах, результаты классификатора улучшаются.
3.4. Человеко-машинное взаимодействие посредством
динамических жестов руки
В реализованных в настоящей работе методах человеко-машинного
взаимодействия динамические жесты руки используются для управления
графическим интерфейсом пользователя.
3.4.1. Бесконтактное рисование посредством динамических жестов руки
В разработанном методе HCI ладонь и пальцы руки выступают в роли
виртуальной
кисти.
взаимодействующих
с
Количество
компьютером,
97
пользователей,
не
ограничено.
одновременно
Взаимодействие
осуществляется
в
реальном
времени.
Схема
предложенного
метода
представлена на рисунке 3.13.
Предлагаемый метод человеко-машинного взаимодействия основан на
пороговой обработке и поиске дискретных фигур в дальностном изображении
человека. Вводится расстояние r . Во всех кадрах видеоряда, все точки,
расстояние которых до сенсора превышает r , удаляются, a оставшиеся точки
фильтруются.
Дальностное
изображение
Пороговая обработка
Сглаживание и вычисление
центров связанных компонент
Изменение цветов точек экрана, которые соответствуют
точек распознанных связанных компонент
Рисунок 3.13 — Схема алгоритма рисования посредством жестов руки
В конечном итоге остаются только дискретные фигуры, которые
соответствуют
ладони/пальцам
руки.
Оставшиеся
дискретные
фигуры
выступают в роли виртуальной кисти. В разработанной программе цвет кисти
выбирается случайным образом. Изменение размера кисти осуществляется
оператором посредством изменения конфигурации руки или расстояния руки
до сенсора. Интерфейс разработанной программы показан на рисунке 3.14.
Видео-демонстрация программы доступна в [59].
98
Рисунок 3.14 — Интерфейс программы для рисования с помощью жестов
руки: (а) Множество всех распознанных дискретных фигур во всех кадрах
видеоряда; (b) Множество центров всех распознанных дискретных фигур во
всех кадрах видеоряда; (c) и (d) Полутоновые изображения, полученные из
дальностного посредством преобразований (2.1) и (2.2).
3.4.2. Управление графическим интерфейсом пользователя посредством
заранее определенных жестов руки
Решаемая
задача
–
ввод
команды
в
компьютер
посредством
динамических жестов руки. В реализованном методе командой является показ
изображения идентифицированного жеста на экране компьютера. В качестве
эталонных жестов выбраны 12 разных движений руки (рис. 3.15).
Рисунок 3.15 — Выбранные эталонные жесты
В случае динамических жестов задача идентификации усложняется
неопределенностью начала и конца показанного жеста. Обойти эту трудность
можно посредством наложения ограничений на жестикуляцию – началом жеста
определить время, когда расстояние руки до сенсора становится меньше чем
заданное значение r и концом жестикуляции - время, когда расстояние
становится больше чем r .
Идентификация динамического жеста осуществляется в два этапа:
1. Создание эталонных жестов.
2. Сопоставление показанного жеста с эталонными образцами.
Сопоставление жестов осуществляется посредством сравнения разверток
траекторий жестов (рис. 3.16) аналогично введенной меры (2.8).
99
Рисунок 3.16 — (а) Траектория жеста. (b) Изменение координат центра руки
по оси абсцисс (c) Изменение координат центра руки по оси ординат.
Детальный алгоритм распознавания динамических жестов руки на основе
базы разверток эталонных жестов {R1, R2 ,...,Rn } приведен ниже (алгоритм 3.4).
Алгоритм 3.4. Распознавание динамических жестов
Вход: Видеоряд дальностных изображений d (k ) ( x, y), k  1,2,...,m , развертки
эталонных жестов {R1, R2 ,...,Rw}.
Шаг 1. R : пустой список точек.
W : пустой список.
Шаг 2. Для каждого кадра d ( k ) ( x, y), k  1,2,...,m :
Ищется точка ладони руки ( xk , yk ) посредством пороговой обработки
изображения d ( k ) ( x, y) .
Если точка ладони ( xk , yk ) найдена, то
Точка ( xk , yk ) добавляется в список R .
иначе, если список R не пустой
1. Список R нормализуется аналогично нормализации скелета.
2. Вычисляется
расстояния
 ( R, Ri ), i  1,2,...,w
посредством
введенной меры (2.8).
3. Номер распознанного жеста
следующее
k , для которого выполняется
 ( R, Rk )  min{ ( R, Ri )},i  1,2,...,w ,
условие:
добавляется в список W .
4. R := пустой список точек.
100
конец если
конец если
конец Шаг 2
Выход: Список номеров распознанных жестов W .
Вычислительная сложность алгоритма 3.4 для обработки видеоряда из m
кадров составит mO(n  wmh) , где n - есть количество точек кадра, h максимальное число точек в развертке эталонных жестов, w - количество
эталонных жестов.
Интерфейс реализованной программы показан на рисунке 3.17.
Рисунок 3.17 — Интерфейс программы распознавания динамических жестов
руки.
Заметим,
что
направление
показа
жеста
влияет
на
результаты
распознавания. Например, если показать цифру «0» по часовой стрелке и
против часовой, то программа примет эти жесты за два разных. Из этого
следует, что направление показа жеста должно быть оговорено заранее.
Предложенный алгоритм распознавания динамических жестов руки был
протестирован на базе жестов двух разных людей. Тестовая база включала 2400
101
жестов двух человек, показывающих цифры от нуля до девяти и две
геометрические фигуры – квадрат и треугольник. В качестве эталонных жестов
из тестовой базы произвольным образом были выбраны 12 образцов, по одному
для каждого класса. В таблице 3.7 приведены характеристики качества
распознавания алгоритма.
Таблица 3.7 – Характеристики качества распознавания
Характеристики
Показатели качества распознавания
качества
распознавания
Тип жеста
Точность
Полнота
Из таблицы
0
1
2
3
4
5
6
7
8
9
∆
□
0.75 0.83 1
1
0.79 0.82 0.81 1
1
0.73 0.88 0.95
0.88 0.98 0.86 0.9 1
0.76 1
1
0.7 0.64 1
0.7
3.7 видно, что средняя точность распознавания составляет
88%, а средняя полнота – 87%, что является приемлемым результатом для
использования предложенного алгоритма во многих системах взаимодействия
человека с машиной. Ошибки классификатора можно объяснить как ошибками
оператора во время жестикуляции, так и схожестью временных рядов
некоторых жестов. Количество шагов, требуемых для сравнения двух жестов с
числом кадров m и n соответственно, оценивается как O(m  n) , что позволяет
распознать жест сразу же после завершения его показа.
3.5. Оценка качества распознавания предложенных методов
Для оценки качества предложенных методов и алгоритмов
распознавания жестов руки, полученные в диссертации результаты, были
сопоставлены с наиболее значимыми результатами, доступными в открытой
печати.
В таблице 3.8 приведены оценочные характеристики методов
распознавания статических жестов руки.
Таблица 3.8 – Характеристики методов распознавания статических жестов
Метод
Предложенный
метод
[33]
Тестовая
выборка
Буквы ASL
Полнота
(%)
81.2
Скорость
(мс)
30
Буквы ASL
90
500
102
Достоинства
Недостатки
1. Обучение по
одному прецеденту
2. Независимость от
освещения
Скорость
распознавания зависит
от количества
поддерживаемых
жестов
1. Обучение для
Обучение по
одному прецеденту
[36]
Буквы ASL
75
33
[40]
31
конфигурац
ий руки
90.45
1500
28
конфигурац
ий руки
42
89
[41]
[39]
Независимость от
освещения
-
67
-
71.4
33
-
каждого оператора
2. Чувствительность к
изменениям освещения
3. Фиксированное
расстояние руки до
камеры
4. Низкая скорость
5. Скорость
распознавания зависит
от количества
поддерживаемых
жестов
Добавление нового
жеста в эталонную базу
требует повторного
обучения случайных
лесов для всех жестов
1. Чувствительность к
изменениям освещения
2. Низкая скорость
Требуется надевание
специальной перчатки
1. Требуется надевание
специальной перчатки
2. Скорость
распознавания зависит
от количества
поддерживаемых
жестов
Предложенный в диссертации метод по скоростным характеристикам
близок к результату работы [36], но превышает его по качеству распознавания.
Полнота распознавания предложенного метода немного уступает результатам,
достигнутым в работах [33], [40] и [41]. В то же время недостатком метода [33]
является необходимость обучения для каждого оператора и требование
фиксированного расстояния между рукой и камерой. Метод [40] имеет
большую вычислительную сложность и не может быть использован в
приложениях реального времени. Метод, описанный в работе [41], требует
надевания специальной перчатки, что вносит существенное неудобство.
Характеристики методов распознавания динамических жестов приведены
в таблице 3.9.
Таблица 3.9 – Характеристики методов распознавания динамических жестов
Метод
Предложенный
метод
Количество
жестов
12
Полнота
(%)
87
Скорость
(мс)
менее 30
103
Достоинства
Недостатки
1. Обучение по
одному
Скорость
распознавания зависит
прецеденту
2.
Независимость
от освещения
[42]
40
92
100
-
[44]
53
89.9
40
[54]
15
90
56
Возможность
распознавания
трехмерных
жестов
-
[56]
10
99.59
33
-
от количества
поддерживаемых
жестов
1. Чувствительность к
изменениям освещения
2. На сцене не должны
находиться предметы,
имеющие цвет кожи
человека
3. Скорость
распознавания зависит
от количества
поддерживаемых
жестов
1. Использование трех
видеокамер и
специальных сенсоров
2. Метод не
инвариантен к позиции
человека
3. Малое количество
жестов в тестовой
выборке
4. Скорость
распознавания зависит
от количества
поддерживаемых
жестов
1. Чувствительность к
изменениям освещения
2. Отсутствие
эксперимента на
разных людей
3. Скорость
распознавания зависит
от количества
поддерживаемых
жестов
1. Чувствительность к
изменениям освещения
2. Отсутствие
эксперимента для
разных людей
Более детальный анализ показывает, что в методе работы [42],
используемом для распознавания динамических жестов языка ASL, требуется
чтобы на сцене не находились предметы, имеющие цвет кожи человека. В
тестовой выборке рассматриваются только предложения, состоящие из
четырех слов, что упрощает задачу классификатора жестов. Несоблюдение
104
данного правила приводит к значительному уменьшению полноты
распознавания. Отметим также, что метод [44] применим только в случаях,
когда позиция человека строго фиксирована, требует настройки специальных
сенсоров и трех видео камер. По качеству распознавания предложенный в
диссертации метод сопоставим с методом работы [54] но превосходит его изза нечувствительности к изменениям освещения и относительно высокой
скорости. Самое высокое качество распознавания достигнуто в работе [56],
что объясняется ограниченностью тестовой выборки. Для тестирования здесь
отобраны десять динамических жестов, из которых одна половина
выполняется двумя руками, а другая – одной рукой. Тестирование
предложенного в диссертации метода на этой же выборке не выявило ни
одной ошибки.
3.6. Основные выводы
1. Предложен метод HCI и реализованы алгоритмы, позволяющие управлять
курсором
мыши
компьютера
посредством
жестов
пальца
руки.
Поддерживаемые управляющие команды – движение пальца по четырем
направлениям плоскости, команда нажатия, отпускания и щелчок в данной
точке плоскости.
2. Предложен и реализован метод человеко-машинного взаимодействия,
позволяющий управлять трехмерными моделями объектов посредством жестов
пальцев руки. В поддерживаемые команды управления входят уменьшение и
увеличение масштаба, вращение и т.д.
3. Разработан и реализован метод, позволяющий распознавать жесты пальцев и
руки, используемые в ручных азбуках глухонемых РРА и ASL. Точность и
полнота распознавания конфигураций руки в обоих случаях составила больше
80 процентов, в случае, когда для каждого эталонного жеста в базе данных
хранится только один скелет.
4. Предложен метод нахождения коартикуляций при непрерывном показе
жестов русской ручной азбуки.
5. Разработан метод распознавания основных динамических жестов руки.
Полнота и точность распознавания 12 жестов превышают 85 процентов.
105
Заключение
В диссертационной работе решена задача распознавания статических и
динамических
жестов
руки,
которые
могут
быть
использованы
для
бесконтактного взаимодействия человека с компьютером. Актуальность задачи
обусловлена ее практической значимостью, большим количеством проводимых
исследований в этой области, и тем, что качество известных алгоритмов
распознавания жестов рук и пальцев, как динамических, так и статических, с
использованием цветных видеокамер и трехмерных сенсоров все еще остается
недостаточным для построения практических систем человеко-машинного
взаимодействия. Получены следующие основные результаты:
1. Выполнена необходимая формализация, разработан и исследован
комплекс методов и алгоритмов для предварительной и специальной обработки
дальностных изображений, в том числе:
1)
однопроходный
алгоритм
извлечения
изображения
руки
из
дальностного изображения по известной позиции ладони со сложностью O(n) ,
где n - количество точек исходного изображения;
2) метод вычисления позиций кончиков пальцев и точек соединения
пальцев с ладонью руки, на основе анализа контура фигуры руки со
сложностью O(n) , где n - количество точек изображения руки;
3) метод скелетизации дальностного изображения со сложностью
O(n log n) , позволяющий в реальном времени вычислить трехмерный скелет
фигуры, который представляет собой плоский граф, где n - число вершин
многоугольника
аппроксимирующего
контуры
фигуры
в
дальностном
изображении;
4) метод сравнения трехмерных скелетов, включающий нормализацию
скелета; развертку скелета; вычисление меры различия скелетов со сложностью
O(m2 ) , где m - максимальное количество ребер сравниваемых скелетов.
106
2. Сформулированы и доказаны необходимые теоремы и утверждения, в
том числе доказано, что:
1)
множество
точек
{( x, y) | d ( x, y)  0} ,
полученных
алгоритмом
извлечения изображения руки, является единственной дискретной фигурой в
извлеченном дальностном изображении;
2) при преобразовании извлеченного дальностного изображения руки в
бинарное изображение, множество черных точек полученных в бинарном
изображении является дискретной фигурой и совпадает с дискретной фигурой
руки в дальностном изображении;
3) для предложенной меры оценки расстояния между двумя скелетами
выполняются все аксиомы метрики за исключением неравенства треугольника.
3. Разработаны алгоритмы распознавания ручных азбук глухонемых РРА
и ASL. Точность и полнота распознавания конфигураций руки в обоих случаях
составила больше 80%.
4. Разработаны методы распознавания динамических жестов руки и
поиска коартикуляций жестов при непрерывном показе жестов русской ручной
азбуки за время, оцениваемое как
O(n  wm 2  k ) , посредством анализа
ключевых характеристик последних k дальностных изображений руки, где nколичество точек в кадре видеоряда, m - максимальное количество вершин
многоугольника аппроксимирующего контур фигуры руки, w - количество
эталонных конфигураций. Качество и полнота распознавания превышают 85%.
5. Разработан метод и реализована программная система бесконтактного
человеко-машинного взаимодействия, позволяющая в реальном времени
управлять курсором мыши компьютера посредством жестов пальца руки,
управлять трехмерными моделями объектов посредством нескольких пальцев
руки.
107
Большая часть разработанных методов распознавания жестов руки
опубликована в виде программ на веб узле [59] с количеством пользователей
более 5000 человек.
Литература
1. Нагапетян В.Э. Обнаружение пальцев руки в дальностных изображениях //
Искусственный интеллект и принятие решений, №1, 2012. — с. 90-95
2. Нагапетян В.Э. Распознавание жестов ручной азбуки ASL // Вестник
Российского университета дружбы народов. Серия: математика, информатика,
физика, №2. М.: 2013. — с. 105-113
3. Нагапетян В.Э, Хачумов В.М. Автоматическое преобразование жестов
русской ручной азбуки в текстовый вид // Искусственный интеллект и принятие
решений, №3, 2013. — с. 59-66
4. Нагапетян В.Э. Человеко-машинное взаимодействие с помощью жестов
пальца
руки
//
XII
международная
научно-практическая
конференция
"Фундаментальные и прикладные исследования, разработка и применение
высоких технологий в промышленности". Сборник статей. В 3 томах. Т.3, часть
1. Санкт-Петербург: 2011. — с. 122-125
5. Нагапетян В.Э. Распознавание простейших жестов и положения руки в
пространстве
//
2-ая
всероссийская
конференция
молодых
ученых
с
международным участием "Теория и практика системного анализа", (г.
Рыбинск, 16-19 май 2012). Сборник трудов. В 2 томах. Т.1. — Рыбинск: 2012. —
с.153-158
6. Нагапетян В.Э., Хачумов В.М. Распознавание жестов руки по дальностным
изображениям // 9-ая
Международная конференция «Интеллектуализация
обработки информации» (Республка Черногория, г. Будва,. 16-22 сентября
2012). Сборник докладов. М.: 2012. — с. 445-447
7. Нагапетян В.Э. Распознавание динамических жестов руки посредством
обработки дальностных изображений человека // 23-я Международная
Конференция по Компьютерной Графике и Зрению, ГрафиКон’2013 (16–20
108
сентября, 2013 Владивосток, Россия). Труды конференции. — Владивосток:
2013. — с. 118-121
8. Nahapetyan V.E., Human-computer multi-touch interaction using depth sensors //
Interactive Systems: Problems of Human - Computer Interaction. Collection of
scientific papers. − Ulyanovsk: USTU, 2013. — p. 225-232
9. Нагапетян В.Э., Система распознавания динамических жестов человека //
Международная молодежная конференция «Информационные системы и
технологии» (г. Москва, 5-6 сентября, 2012). Сборник тезисов. М.: 2012. — с.
90-91
10. Нагапетян В.Э. Сурдоперевод на основе автоматического анализа
геометрического скелета руки // НАУЧНАЯ СЕССИЯ НИЯУ МИФИ-2013.
Аннотации докладов. В 3 томах. Т.2. Интеллектуальные системы и технологии.
М.: НИЯУ МИФИ, 2013. — с. 334
11. Нагапетян В.Э. Построение скелетов объектов дальностного изображения //
Информационно-телекоммуникационные
технологии
и
Математическое
Моделирование Высокотехнологических Системах. М: 2013. — с. 130-132
12. Нагапетян В.Э. Распознавание жестов ручных азбук глухонемых // 16-ая
Международная
конференция
«Математические
методы
распознавания
образов» (г. Казань,. 6-12 октября 2013). Тезисы докладов. — М.: 2013. — с. 63
13. Dix A., Finlay J., Abowd G.D., Beale R. Human-Computer Interaction. — Third
Edition, Pearson Education Limited: 2004. — p. 857
14. Jiangqin W., Wen G. A Fast Sign Word Recognition Method for Chinese Sign
Language // In Proceedings of the Third International Conference on Advances in
Multimodal Interfaces (ICMI '00). — Springer-Verlag, London, 2000. — p. 599-606
15. Leap Motion Controller. URL: https://www.leapmotion.com/ (дата обращения:
22.10.2013)
16. Sanna A., Lamberti F., Paravati G., Henao R., Eduardo A., Manuri F. A KinectBased Natural Interface for Quadrotor Control // Intelligent Technologies for
Interactive Entertainment, Volume 78. Springer Berlin Heidelberg, 2012. — p. 48-56
109
17. Шапиро Л., Стокман Дж. Компьютерное зрение; пер. С англ. — М.: Бином.
Лаборатория знаний, 2009. — с.752
18. Kinect Rehabilitation with Biofeedback. URL: http://www.virtual-realityrehabilitation.com (дата обращения: 22.10.2013)
19. Controller-free gaming with Xbox 360 + Kinect. URL: http://www.xbox.com/enUS/kinect (дата обращения: 22.10.2013)
20.
Samsung
Smart
TV
2013
with
Smart
Interaction.
URL:
http://www.samsung.com/us/2013-smart-tv (дата обращения: 22.10.2013)
21. Freeman W.T., Anderson D.B., Beardsley P., Dodge C.N., Roth M., Weissman
C.D., Yerazunis W.S., Kage H., Kyuma K., Miyake Y., Tanaka K.I. Computer vision
for interactive computer graphics // Computer Graphics and Applications, IEEE ,
vol.18, no.3, 1998. — p. 42 - 53
22.
Interactive
Virtual
Aerobics
Trainer.
URL:
http://www.cse.ohio-
state.edu/~jwdavis/CVL/Research/VirtualAerobics/aerobics.html (дата обращения:
22.10.2013)
23. Davis J., Bobick A. A Robust Human-Silhouette Extraction Technique for
Interactive Virtual Environments // In Lecture Notes in Artificial Intelligence
Heidelberg: Springer-Verlag, 1998. — p. 12-25
24. Davis J., Bobick A. The Representation and Recognition of Action Using
Temporal Templates // IEEE Conference on Computer Vision and Pattern
Recognition, 1997. — p. 928-934
25. Bobick A., Intille S., Davis J., Baird F., Pinhanez C., Campbell L., Ivanov Y.,
Schutte A., Wilson A. The Kidsroom: A Perceptually-Based Interactive and
Immersive Story Environment // Presence: Teleoperators and Virtual Environments,
8(4), 1999. — p. 367-391
26. Freeman W.T., Roth M. Orientation Histograms for Hand Gesture Recognition //
In International Workshop on Automatic Face and Gesture Recognition, 1994. — p.
296 – 301
110
27. Zhou H., Lin D.J., Huang T.S. Static hand gesture recognition based on local
orientation histogram feature distribution model // in Proc. Conference on Computer
Vision and Pattern Recognition Workshop, vol. 10, 2004. — p. 161–169.
28. Wang R.Y., Popovi´c J. Real-time hand-tracking with a color glove // ACM
Trans. Graph., Volume 28, Number 3, ACM: 2009. — p. 63:1 – 63:8
29. Theobalt C., Albrecht I., Haber J., Magnor M., Seidel. Pitching a baseball –
tracking highspeed motion with multi-exposure images // ACM Transactions on
Graphics 23, 3, 2004. — p. 540–547.
30. Dorner B. Chasing the Colour Glove: Visual Hand Tracking // Master’s thesis,
Simon Fraser University, 1994
31. Lamberti L., Camastra F. Real-Time Hand Gesture Recognition Using a Color
Glove // Image Analysis and Processing – ICIAP 2011, 16th International
Conference, Ravenna, Italy, September 14-16, 2011, Proceedings, Part I. Springer
Berlin Heidelberg: 2011. — p. 365-373
32. Lathuiliere F., Herve J.Y. Visual tracking of hand posture with occlusion
handling // Pattern Recognition, Proceedings. 15th International Conference on,
volume 3. 2000. — p. 1129-1133
33. Pansare J.R., Gawande S.H., Ingle M. Real-Time Static Hand Gesture
Recognition for American Sign Language (ASL) in Complex Background // Journal
of Signal and Information Processing, Volume 3, Number 3, 2012. — p. 364-367
34. Shaowei C, Jiro T. Hand gesture for taking self-portrait // Proceedings of the 14th
international conference on Human-computer interaction: interaction techniques and
environments - Part 2, Springer-Verlag: 2011. — p. 238-247
35. Shotton J., Fitzgibbon A., Cook M., Sharp T., Finocchio M., Moore R., Kipman
A., Blake A. Real-Time Human Pose Recognition in Parts from Single Depth Images
// In Proc. CVPR, 2011. — p. 1297 – 1304
36. Pugeault N., Bowden R. Spelling It Out: Real-Time ASL Fingerspelling
Recognition // In Proceedings of the 1st IEEE Workshop on Consumer Depth
Cameras for Computer Vision, jointly with ICCV'2011, 2011. — p. 1114-1119
111
37.
Microsoft
Kinect
for
Windows.
URL:
http://www.microsoft.com/en-
us/kinectforwindows/ (дата обращения: 22.10.2013)
38.
OpenNI:
The
standard
framework
for
3D
sensing.
URL:
http://www.openni.org/openni-sdk (дата обращения: 22.10.2013)
39. Murakami K., Taguchi H. Gesture Recognition using Recurrent Neural Networks
// ACM Proceedings of the SIGCHI conference on Human factors in computing
systems: Reaching through technology (CHI '91), 1999. — p. 237-242
40. Stergiopoulou E., Papamarkos N. Hand gesture recognition using a neural
network shape fitting technique // Elsevier Engineering Applications of Artificial
Intelligence, vol. 22(8), 2009. — p. 1141–1158
41. Maraqa M., Al-Zboun F., Dhyabat M., Zitar R.A. Recognition of Arabic Sign
Language (ArSL) Using Recurrent Neural Networks // Journal of Intelligent Learning
Systems and Applications, volume 4, 2012. — p. 41-52
42. Starner T., Weaver J., Pentland A. Real-Time American Sign Language
Recognition Using Desk and Wearable Computer Based Video // IEEE transactions
on pattern analysis and machine intelligence, vol. 20, no. 12, 1998. — p. 1371 –
1375.
43. Elmezain M. Al-Hamadi A., Appenrodt J., Michaelis B. A Hidden Markov
Model-based continuous gesture recognition system for hand motion trajectory //
Pattern Recognition, ICPR 2008. 19th International Conference on, 2008. — p. 1-4
44. Vogler C., Metaxas D. ASL Recognition Based on a coupling between HMMs
and 3D Motion Analysis. Computer Vision, Sixth International Conference on, 1998.
— p. 363-369
45. Lee H.K., Kim J.H. An HMM-based threshold model approach for gesture
recognition // IEEE transactions on pattern analysis and machine intelligence, vol. 21,
no. 10, 1999. — p. 961-973
46. Napier J. Hands. New York: Pantheon Books, 1980.
112
47. Athitsos V., Sclaroff S. Estimating 3D hand pose from a cluttered image. in Proc.
IEEE Computer Society Conference on Computer Vision and Pattern Recognition,
2003.
48. Imai A., Shimada N., Shirai Y. 3-D hand posture recognition by training contour
variation. in Proc. 6th IEEE International Conference on Automatic Face and Gesture
Recognition, 2004, pp. 895–900.
49. Stenger B., Mendonça P. R. S., Cipolla R. Model-Based 3D Tracking of an
Articulated Hand // Computer Vision and Pattern Recognition, 2001. CVPR 2001.
Proceedings of the 2001 IEEE Computer Society Conference on, volume 2, 2001. —
p. 310-315
50. Oikonomidis I., Kyriazis N., Argyros A.A. Efficient Model-based 3D Tracking of
Hand Articulations using Kinect. In BMVC 2011. BMVA, 2011.
51. Tomasi C., Petrov S., Sastry A. 3D tracking = classification + interpolation. in
Proc. International Conference on Computer Vision, 2003. — p. 1441–1448.
52. World Federation of the Deaf. URL: http://wfdeaf.org/faq
53. Зайцева Г.Л. Жестовая речь. Дактилология: Учеб. для студ. высш. учеб.
заведений. М.: Гуманит. изд. центр ВЛАДОС. - 2000. - 192 с.
54. Алфимцев А.Н. Разработка и исследование методов захвата, отслеживания и
распознания динамических жестов. // Диссертация на соискание ученой степени
кандидата технических наук, МГТУ им. Н.Э. Баумана, 2008.
55.
Куракин
А.В.
компьютерного
Распознавание
зрения
на
основе
динамических
медиального
жестов
в
представления
системе
формы
изображений. // Диссертация на соискание ученой степени кандидата
технических
наук.
(государственный
Московский
университет).
физико-технический
Факультет
Управления
и
институт
Прикладной
Математики, 2012.
56. Suk H., Sin B.K., Lee S.W. Hand gesture recognition based on dynamic Bayesian
network framework // Journal Pattern Recognition, volume 43, number 9, Elsevier
Science Inc.: 2010. — p. 3059-3072
113
57. OpenNI-compliant 3D depth sensors. URL: http://www.openni.org/3d-sensors/.
(дата обращения: 22.10.2013)
58. OpenTK: The Open Toolkit Library. URL: http://www.opentk.com/ (дата
обращения: 22.10.2013)
59. TipTep — Humanizing of digital environment. URL: http://tiptep.com
/index.php/research (дата обращения: 22.10.2013)
60. Местецкий Л.М. Непрерывная морфология бинарных изображений: фигуры,
скелеты, циркуляры. – M.: Физматлит, 2009. — 288с.
61. Palagyi K., Skeletonization and its applications. URL: http://www.inf.uszeged.hu/~palagyi/skel/skel.html (дата обращения: 22.10.2013)
62. Fabbri R., Estrozi L.F, Costa F. On Voronoi Diagrams and Medial Axes // Journal
of Mathematical Imaging and Vision, volume 17. Kluwer Academic: 2012. — p. 2740
63. Nemeth G., Palagyi K. Fully Parallel Thinning Algorithms Based on Ronse's
Sufficient Conditions for Topology Preservation // In Progress in Combinatorial
Image Analysis, 2009. — p. 183-194
64. Lee D. Medial axis transformation of a planar shape // IEEE Trans. Pat. Anal.
Mach. Int. PAMI-4(4), 1982. — p. 363-369
65. Местецкий Л. Скелет многоугольной фигуры – представление плоским
прямолинейным графом // Труды 20-ой Международной Конференция по
Компьютерной Графике и Зрении, ГрафиКон’2010, Санкт-Петербург, Россия.
2010 — с.222-229
66.
Hand
skeleton
recognition
via
Kinect,
demo
video.
URL:
http://www.youtube.com/watch?v=YcCadQAlsaU (дата обращения: 22.10.2013)
67. Тихонов А. Н., Арсенин В. Я. Методы решения некорректных задач - М.:
Наука, 1974, c. 224
68. Регуляризация скелета по Тихонову. URL: http://wiki.technicalvision.ru
/index.php/Регуляризация_скелета_по_Тихонову (дата обращения: 22.10.2013)
114
69. Xiang B., Longin J.L., Wen-Yu L., Skeleton Pruning by Contour Partitioning
with Discrete Curve Evolution // IEEE Transactions, volume 29, issue 3. 2007 — p.
449-462
70. Suzuki S., Abe K. Topological Structural Analysis of Digitized Binary Images by
Border Following // Computer vision, graphics, and image processing, number 30.
1985. — p. 32-46
71. Tagliasacchi А., Zhang Х., Cohen-or D. Curve Skeleton Extraction from
Incomplete Point Cloud // ACM Transactions on Graphics (Special Issue of
SIGGRAPH), volume 28, number 3, article 71. 2009 — pages 9
72. Cao J., Tagliasacchi A., Olson M., Zhang H., Su Z. Point Cloud Skeletons via
Laplacian-Based Contraction // Proc. of IEEE Conf. on Shape Modeling and
Applications. 2010 — p. 187-197
73. Tamal D.K., Jian S. Defining and computing curve-skeletons with medial
geodesic function // Proceedings of the fourth Eurographics symposium on Geometry
processing (SGP '06), Eurographics Association: 2006. — p. 143-152
74. Stefano B., Bimbo A.D., Pala P. 3D Mesh decomposition using Reeb graphs //
Image Vision Comput., volume 27, number 10. 2009. — p. 1540 -1554
75. Хромов Д.В. Модели и алгоритмы построения криволинейных скелетов
пространственных форм. Диссертация на соискание ученой степени кандидата
физико-математических наук, Москва, 2013.
76. Huang H., Wu S., Cohen-Or D., Gong M., Zhang H., Li G., Chenа B. L1-Medial
Skeleton of Point Cloud // ACM Transactions on Graphics, Proceedings of
SIGGRAPH 2013, volume 32, issue 4. 2013. — p.8
77. Read R.C., Corneil D.G. The Graph Isomorphism Disease // Journal of Graph
Theory, vol. 1. 1977. — p. 339-363.
78. Bunke Х., Shearer K. A Graph Distance Metric Based on the Maximal Common
Subgraph // Pattern Recogn. Lett., volume 19, number 3-4. Elsevier Science Inc.:
1998. — p.255-529
115
79. Ghahraman D.E., Wong A.K.C., Au T. Graph monomorphism algorithms //
Trans. Syst. Man Cybern., volume 10. 1980. — p. 189 – 197.
80. Ullman J.R., An algorithm for subgraph isomorphism // J. Assoc. Comput. Mach.,
volume 23. 1976. — p. 31-42
81. Robles-kelly A., Hancock E.R. Graph edit distance from spectral seriation // IEEE
Transactions on Pattern Analysis and Machine Intelligence, volume 27. 2005. — p.
365-378
82. Eshera M.A., Fu K. S. A similarity measure between attributed relational graphs
for image analysis // In Proc. 7th Int. Conf. Pattern Recognition. 1984 — p. 75-77
83. Cho M., Lee J., Lee K.M. Reweighted random walks for graph matching //
Proceedings of the 11th European conference on Computer vision: Part V. SpringerVerlag: 2010. — p. 492-505
84. Garey M.R., Johnson D.S. Computers and Intractability: A Guide to the Theory
of NP-Completeness. Freeman:1979. — p.340
85. TipTep Mouse via Kinect. URL: http://www.youtube.com/watch?v=yESF_
2aHDhY
86.
Multi-Touch
terminology.
URL:
http://wiki.nuigroup.com/MultiTouch_Terminology
87. Kaltenbrunner M., Bovermann T., Bencina R., Costanza E. TUIO - A Protocol for
Table-Top Tangible User Interfaces // Proceedings of the 6th International Workshop
on Gesture in Human-Computer Interaction and Simulation (GW 2005), Vannes,
France. 2005.
88. Software Implementing TUIO. URL: http://www.tuio.org/?software
89. ASL University: Fingerspelling. URL: http://lifeprint.com/asl101/fingerspelling/
90. Stokoe, William C. Sign Language Structure: An Outline of the Visual
Communication Systems of the American Deaf, Studies in linguistics // Occasional
papers (No. 8). Buffalo: Dept. of Anthropology and Linguistics, University of
Buffalo: 1960 — p.91
91. ISWA 2010 - Международный алфавит глухонемых. URL:
http://www.signbank.org/iswa/ (дата обращения: 22.10.2013)
92. Bhuyan M.K., Ghosh D., Bora P.K. Continuous Hand Gesture Segmentation and
Co-articulation Detection // 5th Indian Conference, ICVGIP 2006, Madurai, India,
116
December 13-16, 2006. Proceedings. Springer Berlin Heidelberg: 2006. — p. 564575
93. Lafferty J.D., McCallum A., Pereira F.C.N. Conditional Random Fields:
Probabilistic Models for Segmenting and Labeling Sequence Data. In Proceedings of
the Eighteenth International Conference on Machine Learning (ICML '01), San
Francisco, CA, USA. Morgan Kaufmann Publishers Inc.: 2001 — p. 282-289.
117
Download