В лабораторной работе №2 (идентификация лица) сказано: - в FaceTracking.cs: удалим или закомментируем функцию SimplePipeline, класс MyUtilMPipeline и изменим функцию AdvancedPipeline... Класса MyUtilMPipeline нет в проекте вообще; Функции AdvancedPipeline так же нет. Материалов к лабораторной №2 в начале работы (по ссылке открывается та же страница) тоже нет.Это ошибки или используется другая версия примера? |
Применение возможностей Intel Perceptual Computing SDK для расширения границ взаимодействия людей с ограниченными возможностями с внешним миром
2.4. Особенности жестового языка. Системы сурдоперевода и обратного сурдоперевода
Жестовые языки предназначены для коммуникации глухих и слабослышащих людей. Такие языки возникли значительно позже звучащих языков и еще позже стали предметом научного изучения. Язык жестов - это невербальный способ коммуникации глухих и слабослышащих с помощью комбинаций жестов рук, а также сочетания мимики лица, формы глаз, губ и телодвижений. Жест языка глухих представляет собой комбинацию конфигураций пальцев рук (одной или двух), положений рук относительно тела говорящего (с учетом направления движения рук) и сопутствующей мимики, передающей эмоциональную составляющую [9 ].
В настоящее время в каждой стране имеется своя форма жестового языка, а иногда и несколько разных форм. Самым распространенным языком является американский жестовый язык ASL, им пользуются более полумиллиона человек. Следом по распространенности идут испанский и итальянский жестовые языки. Жестовый язык Великобритании отличается от американского жестового языка. Различны жестовые языки Китая и Тайваня. Два разных жестовых языка существуют в Австрии, в Ирландии и некоторых других странах. Многие языки имеют диалекты, вплоть до того, что каждая компактная группа глухих людей и даже каждая семья общаются на своей разновидности языка. Несмотря на национальные и диалектные отличия, знаковые языки для глухих все же имеют общие черты, и глухие люди из разных стран гораздо быстрее начинают понимать друг друга, чем слышащие люди. В 1975 году Всемирная федерация глухих для официальных церемоний приняла международный словарь для глухих, который включает в себя 1500 наиболее легко понимаемых знаков, взятых из различных национальных систем.
Кроме жестовой речи у глухих существует еще и дактильная. Дактильная речь - это особая кинетическая система. Движения рук (жесты) в данном случае обозначают не сами явления окружающего мира (как в искусстве, у индейцев и т. д.), а буквы алфавитов национальных языков. Используя набор дактильных знаков, говорящий следует грамматике словесного языка (русского, английского и т. д.). На рисунках 2.10 и 2.11 представлены американская и русская дактильные азбуки.
Машинный перевод на жестовый язык и с него сталкивается с целым рядом проблем. Прежде всего, это те же проблемы, которые имеют место при любом компьютерном переводе с одного языка на другой: выявление основного понятийного фонда языков, составление достаточно представительных словарей понятий, слов, фразеологических словосочетаний, концептуальный анализ текстов, адекватность перевода. В дополнение к этому существуют и специфические проблемы: пространственный характер жестового языка, значительные различия временных характеристик, недостаточная изученность структуры жестового языка. Все это затрудняет разработку компьютерных переводчиков. В тоже время жестовая речь не содержит пауз между отдельными жестами. Паузами разделяются лишь фразы.
Системы автоматического перевода со звучащих языков на жестовые языки начали разрабатывать около двух десятилетий тому назад, и таких систем существует не так уж много. Большинство автоматических систем, связанных с сурдопереводом, посвящены переводу звучащей речи на жестовый язык и не осуществляют обратного перевода. В настоящее время в России активно проводятся разработки в области создания систем компьютерного сурдоперевода, цель которых - преодоление коммуникационных барьеров между глухими и слышащими гражданами России. Приведем примеры наиболее успешных проектов:
- Электронная обучающая система "Русский жестовый язык" - Разработка Центра "Истина" совместно с творческим коллективом Центрального правления ВОГ.
- RuSLED (Russian Sign Language Education Dictionary) - мультимедийный толковый словарь русского жестового языка. Воскресенский А.Л., ХахалинГ.К, АНО "Колледж управления, права и информационных технологий МЭСИ".
- Электронный словарь digitgestus.com"Русский жестовый язык"
- Анимированный словарь Signing Science Dictionary (SSD) - Vcommunicator® Studio-разработка компании Vcom3D (г. Орландо, Флорида. США).
Современные системы компьютерного перевода речи или текста в жестовый язык основываются на трехчленной модели, предложенной З.М. Шаляпиной, определяющей наличие в ней трех подсистем: анализа исходного текста, трансфера (межъязыковых преобразований) и синтеза жестовой речи. Однако имея прикладной характер, система перевода также должна обеспечивать: 1) загрузку текста; 2) визуализацию результатов перевода с помощью манекена; 3) возможность изменения ее структуры, например, расширение/ изменение словарей. Модель данной системы представлена на рисунке 2.16 и состоит из следующих составных частей:
- Система анализа включает, как правило, следующие этапы:
- графематический анализ;
- морфологический анализ, который также может включать морфемный анализ;
- синтаксический анализ.
- Этап трансфера, который заключается в преобразовании синтаксического и семантического представления исходного текста и семантико-синтаксической информации о переводных эквивалентах в синтактико-семантическое представление выходного;
- Последним этапом перевода на жестовый язык является визуализация полученной жестовой речи. Используются два варианта ее реализации:
- фотосъемка модели, демонстрирующей определенные жесты, и сохранение их в базе данных системы;
- создание для демонстрации жестов виртуального персонажа.
Жестовые языки являются самостоятельными знаковыми системами, отличающимися от звучащих языков, как по грамматическому, так и по семантическому устройству. Это делает невозможным прямое использование многих алгоритмов и программ, разработанных для компьютерной обработки текстов, в частности, для машинного перевода. Поэтому, хотя создатели систем автоматического обратного сурдоперевода с используют те же базовые типы стратегий, что и для звучащих языков (статистический перевод, прямой перевод, трансфер), реализация этих стратегий для жестовых языков представляет собой весьма нетривиальную задачу.
Сложность разработки систем автоматического обратного сурдоперевода связана прежде всего, с преобразованием входного текста из одной модальности (пространственной) в другую (звуковую или графическую). Знаки, реализуемые в жестовом пространстве, обладают значительно большей вариативностью по сравнению со знаками звучащего языка. Теоретически возможное количество вариаций у таких знаков неограниченно, один из способов их задания - построение исчисления, определяющего конечный набор базовых примитивов и правила комбинирования примитивов для построения описаний сложных действий.
Одним из примеров автоматических систем обратного сурдоперевода является разработка ученых азиатской группы Microsoft Research совместно с учёными из Института Компьютерных Технологий при Китайской Академии Наук. Летом 2013 был представлен прототип Kinect Sign Language Translator (рисунок 2.17), который умеет распознавать жесты в реальном времени, а система машинного обучения и понимания шаблонов речи может интерпретировать их смысл. Система может работать в обоих направлениях - для глухих людей переводить речь в набор жестов и наоборот, жесты в написанные и произносимые слова.
2.5. Intel Perceptual Computing SDK расширения границ взаимодействия людей с ограниченными возможностями с внешним миром
CREATIVE Interactive Gesture Camera и Intel Perceptual Computing SDK открывают широкие перспективы для разработки приложений по распознаванию жестов. В тоже время как уже говорилось, что SDK кроме распознавания жестов, в тоже время поддерживает алгоритмы распознавания мимики, что в случае жестового языка может иметь важное значение.
В данном параграфе рассмотрим возможности Intel Perceptual Computing SDK для распознавания жестов русской ручной азбуки глухих. SDK модуль распознавания жестов воспринимает RGB и глубинные изображения, и ИК потоки в качестве входных данных и возвращает распознанные жесты или любые другие промежуточные результаты слежения. Модуль SDK возвращает четыре типа обработанных данных: BLOB, результаты отслеживания геометрических узлов, идентификацию жестов и информационные сообщения. SDK модуль распознавания жестов возвращает позиции следования геометрических узлов и другую полезную информацию, с помощью которой возможна реализация практически всех статичных жестов (без скрещенных пальцев). На основе данных о координатах точек ладони и углов между пальцами мы сможем сравнить жест с предопределенными жестами в базе данных.
Кроме того в настоящее время как часть Intel Perceptual Computing SDK распознаются следующие виды поз:
- открытость (атрибут LABEL_OPEN) и закрытость ладони (атрибут LABEL_CLOSE);
- большой палец вверх (атрибут LABEL_POSE_THUMB_UP) и большой палец вниз (атрибут LABEL_POSE_THUMB_DOWN);
- знак победы (атрибут LABEL_POSE_PEACE);
- большая пятерка (атрибут LABEL_POSE_BIG5).
и следующие виды жестов:
- "Захват" и "Сброс" объекта (рисунок 2.18) - реализуется с использованием атрибута LABEL_OPEN на основе значения открытости от 1 до 100, указывающего уровень открытости ладони и координат кончиков пальцев (например, используя атрибуты LABEL_FINGER_THUMB, LABEL_FINGER_INDEX);
- "Перемещение объекта" (рисунок 2.19);
- "Панорамирование" (рисунок 2.20);
- "Масштабирование" (рисунок 2.21);
- "Помахивание" (атрибут LABEL_HAND_WAVE) (рисунок 2.22);
- "Круг" (атрибут LABEL_HAND_CIRCLE) (рисунок 2.23);
- "Скольжение" (атрибуты LABEL_NAV_SWIPE_LEFT для скольжения влево, LABEL_NAV_SWIPE_RIGHT - право, LABEL_NAV_SWIPE_UP - вверх, и LABEL_NAV_SWIPE_DOWN - вниз).
SDK позволяет определить точки центра ладони, кончиков пальцев и локтя, а также уровень открытости ладони. Пример определения геометрических узлов ладони представлен на рисунке 2.24.
Для получения координат каждого пальца используется функция QueryNodeData. В функции указывается метка геометрического узла, который необходимо получить. Метка состоит из двух частей PXCGesture::GeoNode::LABEL_BODY_HAND_PRIMARY - метка руки и детализирующая метка - PXCGesture::GeoNode::LABEL_FINGER_INDEX.
В примере 2.1 мы получим координаты x и y указательного пальца.
PXCGesture::GeoNode indexNode; Gest->QueryNodeData(0, PXCGesture::GeoNode::LABEL_BODY_HAND_PRIMARY | PXCGesture::GeoNode::LABEL_FINGER_INDEX, &indexNode); wprintf(L"index x=%f\n", indexNode.positionImage.x); wprintf(L"index y=%f\n", indexNode.positionImage.y);2.1.
Аналогично выполняется получения координат других пальцев, изменяется детализирующая метка:
PXCGesture::GeoNode::LABEL_FINGER_THUMB - большой палец; |
PXCGesture::GeoNode::LABEL_FINGER_MIDDLE - средний палец; |
PXCGesture::GeoNode::LABEL_FINGER_RING - безымянный палец; |
PXCGesture::GeoNode::LABEL_FINGER_PINKY - мизинец. |
И координаты центра ладони в примере 2.2:
PXCGesture::GeoNode centr; //центр ладони Gest->QueryNodeData(0, PXCGesture::GeoNode::LABEL_BODY_HAND_PRIMARY | PXCGesture::GeoNode::LABEL_HAND_MIDDLE, ¢r); wprintf(L"centr x=%f\n", centr.positionImage.x); wprintf(L"centr y=%f\n", centr.positionImage.y);2.2.
Уровень открытости и закрытости ладони можно определить и вывести следующим способом (пример 2.3):
PXCGesture::GeoNode open; gest->QueryNodeData(0,PXCGesture::GeoNode::LABEL_BODY_HAND_PRIMARY, &open); wprintf_s(L"Openness: %s (%d%%)\n", open.opennessState==PXCGesture::GeoNode::LABEL_OPEN?L"Open": (open.opennessState==PXCGesture::GeoNode::LABEL_CLOSE?L"CLOSE":L"Unknown"), open.openness); // уровень открытости и закрытости ладони2.3.
Используя данные функции и атрибуты можно создать приложение по распознаванию жестов языка глухих. Но распознавать жесты на основе только положений определенных пальцев следует с осторожностью. Очень часто, когда в жесте участвуют не все пальцы, то программа может не правильно определить, какие именно пальцы участвуют в жесте. Для правильного отображения координат пальцев для начала следует показать всю руку. Для того что программа нашла руку можно использовать предопределённый жест "Большая пятерка". Подробнее этот случай мы рассмотрим на практическом занятии.
Заключение
Появление инновационных технологий обработки речи, жестов и мимики делает возможным реализацию систем для расширения границ взаимодействия людей с ограниченными возможностями с внешним миром. Необходимость разработки таких систем обуславливается острой нехваткой сурдопереводчиков и не уменьшающимся количеством людей с инвалидностью по слуху. Все это объясняет актуальность проведения исследований в этой области и разработки автоматизированных систем обратного сурдоперевода.
Большинство автоматизированных систем, связанных с сурдопереводом, посвящены переводу звучащей речи на жестовый язык и не осуществляют обратного перевода. Поэтому в данная лекция рассматривает возможности воспринимающего компьютинга для решения задач обратного сурдоперевода, а также рассмотрению уже существующих разработок в данной области.
В целом, решение задач, связанных с распознаванием сложных динамических жестов находится на начальном уровне. А разнообразие жестов языка глухих и способность человека к их пониманию столь велики, что проблема их распознавания с помощью компьютера будет оставаться актуальной долгое время и представляет широкую область для проведения исследований.
Контрольные вопросы:
- Что означает термин "информационная доступность"?
- В каких областях применяется распознавание образов?
- Какие существуют методы распознавания образов?
- Назовите основные элементы системы распознавания образов?
- Какие существует методы распознавания жестов?
- В чем заключаются преимущества и недостатки каждого метода?
- Приведите примеры систем, основанных на распознавании и отслеживании жестов.
- Какие позы уже заложены в функционале Intel Perceptual Computing SDK?