В лабораторной работе №2 (идентификация лица) сказано: - в FaceTracking.cs: удалим или закомментируем функцию SimplePipeline, класс MyUtilMPipeline и изменим функцию AdvancedPipeline... Класса MyUtilMPipeline нет в проекте вообще; Функции AdvancedPipeline так же нет. Материалов к лабораторной №2 в начале работы (по ссылке открывается та же страница) тоже нет.Это ошибки или используется другая версия примера? |
Применение возможностей Intel Perceptual Computing SDK для расширения границ взаимодействия людей с ограниченными возможностями с внешним миром
Презентацию к лекции можно скачать здесь.
2.1. Введение
В современном мире огромная роль отводится информации. Потребность в информации общества достигла высокого уровня, людям приходится участвовать в непрерывном информационном обмене. Существует необходимость быстрого получения доступа к информации, её обработке, представлении результатов анализа информации. Однако в процессе передачи информации может возникнуть ситуация, что информация по каким-либо причинам не достигает своей цели, то есть имеет место потеря информации. Таким образом, может возникать проблема информационной доступности.
Термин "информационная доступность" означает возможность беспрепятственного получения информации вне зависимости от особенных потребностей пользователя. В качестве особенных потребностей могут выступать особенности используемых аппаратных средств, программных средств или особенностей восприятия пользователя. Информационная среда не всегда предоставляет пользователям возможности беспрепятственного получения информации.
С развитием технологий обработки речи, изображений и видео, взаимодействие человека с компьютером выходит на новый этап. В последние годы человеко-компьютерное взаимодействие было расширено и конечной целью является то, что связь между людьми и машинами должна стать похожа на коммуникацию человека с человеком. Естественные пользовательские интерфейсы могут включать звук, прикосновения, жесты, тактильные взаимодействия. Все сводится к наиболее эффективному использованию человеческие чувства при взаимодействии с машинами.
Но не для всех людей естественное взаимодействие является одинаковым. В этом случае воспринимающим инструменты на основе воспринимающего компьютинга могут стать коммуникативным звеном, обеспечивающим свободное и удобное общение для обеих сторон. Так в случае с людьми с инвалидностью по слуху таким коммуникативным звеном могут стать системы на основе распознавания жестов.
В данной лекции мы рассмотрим, что лежит в основе распознавания образов, какие технологии по распознаванию жестов существуют на сегодняшний день, остановимся на различных методах и алгоритмах, особенностях распознавания жестов языка глухих и систем автоматического сурдоперевода, а также рассмотрим, какие возможности предлагает Intel Perceptual Computing SDK для расширения границ взаимодействия людей с ограниченными возможностями с внешним миром.
2.2. Основы распознавания образов
Распознавание образов (объектов, сигналов, ситуаций, явлений или процессов) - это самая распространенная задача, которую человеку приходится решать практически ежесекундно от первого до последнего дня своего существования. Для этого он использует огромные ресурсы своего мозга, которые оцениваются таким показателем как число нейронов, равное [1,2].
В повседневной деятельности человек постоянно сталкивается с задачами, связанными с принятием решений, обусловленных непрерывно меняющейся окружающей обстановкой. В этом процессе принимают участие органы чувств, с помощью которых человек воспринимает информацию извне; центральная нервная система, осуществляющая отбор, переработку информации и принятие решений; двигательные органы, реализующие принятое решение. Но в основе решений этих задач лежит распознавание образов.
В своей практике люди решают разнообразные задачи по классификации и распознаванию объектов, явлений и ситуаций (мгновенно узнают друг друга, с большой скоростью читают печатные и рукописные тексты, безошибочно водят автомобили в сложном потоке уличного движения, осуществляют отбраковку деталей на конвейере, разгадывают коды, древнюю египетскую клинопись и т.д.).
Большие возможности современной вычислительной техники позволяют в реальном масштабе времени обрабатывать огромное количество информации, что, в свою очередь, делает реальной задачу построения машин для распознавания образов. К настоящему времени сделаны успешные попытки разработки устройств и машинных программ для чтения типографских и машинописных букв, классификации электрокардиограмм, распознавания слов из конечного словаря, произнесенных одним и тем же диктором, а также выделение в речи ключевого слова, произнесенного разными дикторами. Можно назвать еще ряд других применений распознавания образов: идентификация людей по фотографии, по отпечаткам пальцев, по топометрическим данным, диагностика неисправностей в системах, идентификация технологических параметров, обнаружение цели и так далее. Таким образом, распознавание образов (объектов, сигналов, ситуаций, явлений или процессов) - это задача идентификации объекта или определения каких-либо его свойств по его изображению (оптическое распознавание) или аудиозаписи (акустическое распознавание) и другим характеристикам. В данном случаем образом выступает классификационная группировка в системе классификации, объединяющая (выделяющая) определенную группу объектов по некоторому признаку. Образы обладают характерным свойством, проявляющимся в том, что ознакомление с конечным числом явлений из одного и того же множества дает возможность узнавать сколь угодно большое число его представителей [3].
Выделяют три следующих метода распознавания образов: метод перебора, анализ характеристик образа, использование искусственных нейронных сетей.
Метод перебора. В этом случае производится сравнение с базой данных, где для каждого вида объектов представлены всевозможные модификации отображения. Например, для оптического распознавания образов можно применить метод перебора вида объекта под различными углами, масштабами, смещениями, деформациями и т. д. Для букв нужно перебирать шрифт, свойства шрифта и т. д. В случае распознавания звуковых образов, соответственно, происходит сравнение с некоторыми известными шаблонами (например, слово, произнесенное несколькими людьми) [1].
При втором методе производится более глубокий анализ характеристик образа. В случае оптического распознавания это может быть определение различных геометрических характеристик. Звуковой образец в этом случае подвергается частотному, амплитудному анализу и т. д. Но этот метод не пригоден при изменении самого объекта или при низком качестве изображения.
Использование искусственных нейронных сетей (ИНС). В общем случае нейронная сеть представляет собой машину, моделирующую способ обработки мозгом конкретной задачи. В основе идеи использования искусственных нейронных сетей лежит понятие пластичности головного мозга, которая играет самую важную роль в работе нейронов в качестве единиц обработки информации в человеческом мозге. Искусственные нейронные сети используют множество взаимосвязей между элементарными ячейками вычислений - нейронами.
Таким образом, искусственная нейронная сеть - это громадный распределенный процессор, состоящий из элементарных единиц обработки информации, накапливающих экспериментальные знания и представляющих их для последующей обработки. Процедура, используемая для процесса обучения, называется алгоритмом обучения. Эта процедура выстраивает в определенном порядке синаптические веса нейронной сети для обеспечения необходимой структуры взаимосвязей нейронов. Изменение синаптических весов представляет собой традиционный метод настройки нейронных сетей [4].
Использование метода искусственных нейронных сетей требует либо большого количества примеров задачи распознавания при обучении, либо специальной структуры нейронной сети, учитывающей специфику данной задачи. Тем не менее данный метод отличается более высокой эффективностью и производительностью.
Общая структура системы распознавания и этапы в процессе ее разработки можно описать следующей схемой.
Задачи распознавания имеют следующие характерные черты. Это информационные задачи, состоящие из двух этапов:
- преобразование исходных данных к виду, удобному для распознавания;
- собственно распознавание (указание принадлежности объекта определенному классу).
Распознавание решает следующие типы задач:
- распознавание - отнесение предъявленного объекта по его описанию к одному из заданных классов;
- автоматическая классификация - разбиение множества объектов, ситуаций, явлений по их описаниям на систему непересекающихся классов (таксономия, кластерный анализ, самообучение);
- выбор информативного набора признаков при распознавании;
- прогнозирование [2].
2.3. Основы распознавания жестов
Одним из компонентов человеческой речи является жест, который придает ей особую эмоциональность. Для слышащих людей жест - это дополнительное средство выразительности речи, а для людей, лишенных слуха, - основное средство общения [5]. Для начала, разделим два понятия поза руки и жест. Под позой руки понимается ее статическое положение. Жестом же называют телодвижение, преимущественно движение рукой, сопровождающее речь или имеющее значение какого-либо сигнала, знака. Язык жестов в широком смысле бесконечно разнообразен как по форме жестов, так и по их семантике, поэтому полномасштабное распознавание языка жестов представляет собой сложную задачу даже для человеческого интеллекта. На современном уровне развития систем компьютерного зрения задача автоматического распознавания обычно ставится применительно к небольшому набору заранее определенных жестов [3].
В литературе рассматриваются различные методы решения задач распознавания отдельных классов жестов. Все эти методы и подходы могут быть классифицированы по типу используемых входных данных и сенсоров для восприятия руки [6]. Методы и подходы и подходы к распознаванию жестов можно представить в виде следующей классификации:
- захват движения на основе маркеров;
- отслеживание рук с помощью оборудованной перчатки;
- визуальные методы распознавания жестов:
- восстановлении полной модели кисти с 27 степенями свободы по входному изображению;
- построение признакового описания входного изображения руки;
- метрические методы распознавания жестов.
2.3.1. Захват движения на основе маркеров
В основе маркерной системы лежит специальное оборудование. На руку человека прикрепляются датчики; данные движения рук с датчиков фиксируются камерами и поступают в компьютер, где сводятся в единую трёхмерную модель, точно воспроизводящую жесты человека, позже (или в режиме реального времени) на основе модели создаётся анимация жестов человека.
Приведем примеры работ по распознаванию рук на основе цветных маркеров. Так, например, ученые Института информатики общества Макса Планка отслеживали движения руки бейсбольного питчера по цветным маркерам, размещенным на задней стороне перчатке, с помощью четырех камер и стробоскопа (рисунок 2.2). В университете имени Саймона Фрейзера (Канада) использовали перчатки с маркированными цветом кольцами для распознавания (от 6 до 10 кадров) последовательности жестовой азбуки. Кольца соответствуют суставам каждого пальца. Как только определены совместные позиции датчиков, вычисляется поза руки с помощью обратной кинематики.
Другим примером маркерной системы является разработка Масачусецкого Технологического Института. Для построения модели руки на основании изображения было предложено использовать маркеры - разноцветные перчатки. Такой подход во многом упростил задачу и сделал возможным ее решение практически в режиме реального времени, всего лишь с небольшой задержкой (рисунок 2.3) [6, 7].
Рис. 2.3. Демонстрирование работы системы, которая реконструирует руку на основе руки одетой в маркированную перчатку
Подобные системы, основанные на захвате движения по маркерам, ориентированы на точность за счет простоты использования и установки. В свою очередь недостатком систем, основанных на захвате движения по маркерам, является использование навязчивых светоотражающих или цветных маркеров, или светодиодов и дорогих многокамерных установок.
2.3.2. Отслеживание рук с помощью оборудованной перчатки
В основе такого метода отслеживания рук лежат оборудованные перчатки, которые основаны на экзоскелетах, позволяющих повторять биомеханику человеческой руки, и оснащены более чем десятком датчиков (например, акселерометром, сенсорами, передающими тактильные, температурные и вибрационные ощущения, датчиками давления и др.). Информация о движении рук считывается с датчиков и передается на обработку в ПК. Полученная информация затем анализируется и преобразовывается в символы. Данные о характеристиках отдельных жестов используется системой в качестве шаблонов.
Примеры систем с оборудованными перчатками - Data Glove (рисунок 2.4) и Immersion Cyberglove (рисунок 2.5) демонстрируют точный захват 3-D ввода для управления в режиме реального времени. Комплекс Fingual (рисунок 2.6) японских исследователей из Университета Осаки и Университета Шиншу представляет собой специализированную систему, направленную на непосредственное преобразование жестов языка глухонемых в символы.
Не смотря на то что системы, имеющие в основе оборудованные перчатки, обеспечивают высокую точность отслеживания рук и распознавания жестов, имеется также существенные недостатки. Во-первых, системы подобного рода являются дорогостоящими, во-вторых применяющиеся перчатки очень громоздки, что ограничивает в движении.
2.3.3. Визуальные методы распознавания жестов
Визуальные методы распознавания жестов являются наиболее активной и перспективной областью исследований. По сути отслеживание голых рук основано на методах, работающих исключительно с визуальной информацией и не предъявляющих специальных требований к оснащению пользователя дополнительным оборудованием. Выделения контуров и силуэтов являются наиболее распространенными характеристиками, используемыми для идентификации позы руки. Пока эти сигналы являются общими и устойчивы к различным условиям освещения и, исходя из этого, требуют больших вычислительно сложных определяющих алгоритмов, которые ищут многомерные позиции пределов руки [3].
В свою очередь визуальные методы распознавания жестов можно разделить на три большие категории.
К первой относятся методы, которые основаны на восстановлении полной модели кисти с 27 степенями свободы по входному изображению. В данном подходе, рука представляется как соединение составляющих частей, и каждое состояние называется "степенью свободы". Степени свободы определяют позиции и ориентации реального объекта. Моделирование руки с учетом всех ее степеней свободы представляет собой сложную задачу. Поэтому используется упрощенная модель руки с 27 степенями свободы, ставшая неофициальным стандартом (рисунок 2.7). Системы отслеживания руки в пространстве на основе 3D модели руки используют заранее созданные базы данных всех известных конфигураций руки и их визуализации. Каждая конфигурация содержит множество углов наклона суставов и параметры позы руки для описания состояния руки.
Теоретически методы основанные на модели руки с 27 степенями свободы являются наиболее перспективными, так как они подразумевают полное оценивание позы и динамики руки. Основными ограничениями подобных методов являются большая вычислительная сложность и ограниченная точность восстановления модели руки из-за наличия окклюзий, что делает невозможным их применение на практике.
Ко второй категории относятся статистические методы, которые вместо восстановления полной модели руки предлагают построение признакового описания входного изображения и дальнейшую классификацию жестов именно по этому описанию [8].
Решающую роль в методах подобного рода играет выбор подходящих характеристических признаков. Так для статических поз руки, можно использовать геометрические признаки, такие как кончики пальцев, направление пальцев, контур руки, а также негеометрические признаки (цвет кожи, форма, текстура и др.). Однако эти признаки не всегда доступны или адекватны для распознавания из-за взаимного перекрытия элементов руки и/или из-за условий освещения.
Важным моментом в этих подходах является классификатор, который предоставляет возможность разделить (по категориям) различные признаки или информацию, выделенные из "грубых данных", например, изображения или видеопотока.
Рассмотрим пример распознавания статических жестов языка глухих. Особенность этой работы заключается в том, что для распознавания жестов используется только одна видеопоследовательность, полученная с веб-камеры. Полученное с камеры RGB изображение конвертируется в двоичное изображение (binary image). Затем к двоичному изображению применяется техника обнаружения краев (edge detection) (рисунок 2.8). После того, как края обнаружены, необходимо определить кончики пальцев. Для этого предлагается использовать Вейвлет преобразование, позволяющее определить пики. Жест сравнивается с эталонными жестами в базе данных, имея координаты кончиков пальцев и углы между ними (рисунок 2.9).
К третьей категории относятся метрические методы распознавания жестов. Подобные методы предполагают построение некоторой метрики на множестве входных изображений и выполнение классификации за счет сравнения входного изображения с набором эталонов. Так, например, предлагается метрика, характеризующая степень сходства скелетов силуэтов ладони, и выполняется классификация жестов с помощью метода ближайшего соседа.
Несмотря на то, что в литературе достаточно подробно описаны различные алгоритмы и методы распознавания жестов, в целом данная технология находится на начальном уровне и представляет широкую область для дальнейшей работы и проведения исследование. Можно привести несколько сценариев, где технология распознавания жестов будет перспективна:
- управление развлекательными приложениями и системами;
- управление медицинским оборудованием при требованиях стерильности, которые можно удовлетворить за счет минимизации тактильного контакта между оператором и устройством;
- визуализация и моделирование сложных трехмерных данных, удобство работы с которыми ограничено при применении стандартных двухмерных манипуляторов, таких как компьютерная мышь;
- компьютерное распознавание языка глухонемых.
В настоящее время технологии отслеживания рук используются в современных телевизорах. Такие телевизоры улавливают движения человека при помощи инфракрасных датчиков, расположенных около экрана. Они фиксируют движения рук и преобразуют их в понятный для телевизора сигнал. Пока телевизоры понимают лишь несколько жестов. В частности, подъем руки вверх означает включение и выключение телевизора. Для переключения каналов достаточно провести рукой из стороны в сторону. Громкость регулируется круговыми движениями.
Существует и ряд других систем, использующих отслеживание голых рук в диалоговом режиме. Они могут отслеживать приблизительное положение и ориентацию руки, и дополнительные степени свободы для позы. Одним из таких приложений, основанном на распознавании жестов, является Flutter - программное обеспечение, позволяющее управлять процессом воспроизведения аудио и видео при помощи жестов. Программа для определения жестов пользователя пользуется веб-камерой компьютера. Основным минусом подобных систем является то, что в их основе лежит ограниченный набор используемых жестов.