Использование Microsoft Kinect и вычислительных возможностей потоковых процессоров для проведения занятий в виртуальном мире vAcademia

Морозов Михаил Николаевич

к.т.н., профессор,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

morozovmn@volgatech.net

 

Сморкалов Андрей Юрьевич

ассистент кафедры информатики и системного программирования,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

smorkalovay@volgatech.net

 

Богданов Илья Олегович

программист лаборатории систем мультимедиа,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

ilya.o.bogdanov@gmail.com

Аннотация

В данной статье рассматривается применение сенсора Kinect для проведения занятий в трехмерном образовательном виртуальном мире vAcademia. Особое внимание уделено виртуализации лекций, проводимых на основе презентации. Система позволяет захватывать жесты, положение тела и головы преподавателя и преобразовывать их в 3D-анимацию аватара лектора. Также рассматриваются проблемы с точностью захвата, определением поворота, синхронизацией между участниками занятия и необходимостью захвата указки и жестов и предлагаются способы их решения: вычисление точности захвата скелета, определение поворота при помощи цветных маркеров, ограничение неестественных поз скелета и головы и распознавание жестов.

This article discusses the use of Kinect sensor to teaching classes in three-dimensional virtual educational world vAcademia. Special attention is devoted to capturing of presentation-based lectures. The system can capture gestures, body and head pose of the teacher and converts them to 3D-animated lecturer’s avatar. It also discusses the problems with the accuracy of capture, the detection of body rotation, synchronization between the lesson participants and the need to capture pointers and gestures, and suggests ways to address them: the calculation of the accuracy of the capture of the skeleton, the detection of facing using colored markers, limiting the overreach of the skeleton and the head and gesture recognition.

Ключевые слова

Kinect, захват движений, виртуальные образовательные миры, vAcademia,  виртуальность, образование, потоковые процессоры, синхронизация, скелетная анимация, распознавание жестов.

Kinect, motion capture, educational virtual worlds, vAcademia,  virtuality, education, stream processors, synchronization, skeletal animation, gesture recognition.

 

Введение

Виртуальные миры год от года находят все большее применение в сфере образования. На текущий момент, виртуальные миры применяются для обучения в сотнях университетов по всему миру [1], включая такие престижные учебные заведения как Стэнфорд и Кэмбридж. Виртуальные миры позволяют проводить практически любые виды занятий. В отличие от занятий в аудиториях, посетить виртуальное занятие может любой желающий из практически любой точки мира.

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

Одной из проблем обучения в виртуальном мире является проблема перехода от преподавания в аудитории к организации занятий в виртуальном мире [2]. Причиной этого являются как психологические аспекты, так и недостаток навыков по работе с компьютером.

Microsoft Kinect – устройство для захвата движений человека, доступное в свободной продаже по умеренной цене [3]. Устройство включает в себя видеокамеру, камеру глубины и инфрокрасную камеру. Для управления устройством и получения данных с него Microsoft бесплатно предоставляет Kinect SDK.

Применение Kinect для захвата движений преподавателя позволит учителям использовать виртуальные миры как мощное средство обучения, находясь в привычной для себя среде обучения, обеспечит виртуализацию «живых» занятий. Реализация такой системы для виртуального мира vAcademia и является целью данной работы.

Обзор применяемых технологий

Для реализации разрабатываемой системы необходим анализ возможностей устройства Microsoft Kinect, программных средств Microsoft Kinect SDK и Microsoft Face Tracking SDK (для распознавания положения лица и мимики), а также возможностей виртуального мира vAcademia как базовой среды для реализации проекта.

 

Microsoft Kinect

 

Kinect – это горизонтально расположенное устройство с формой параллелепипеда на небольшом круглом основании, которое помещают выше или ниже экрана. Размеры – примерно 23 см в длину и 4 см в высоту. Состоит из двух сенсоров глубины, цветной видеокамеры и микрофонной решетки.

Основой сенсора Kinect является 3D-технология от компании PrimeSense , которая использует структурированный свет, инфракрасные камеры и специализированный процессор для измерения расстояния от камеры до сцены.

Эти измерения производятся по всему полю зрения сенсора. В результате, получается облако точек, состоящее из 307200 измерений расстояний между сенсором и сценой.

Точки проецируются на заданных углах от лазера. Лазерные точки отражаются от объектов сцены и фиксируются инфрокрасной камерой. Объекты сцены, расположенные близко к камере отражаются в точки изображения, которые находятся близко друг к другу, а объекты, расположенные далеко от камеры – отражаются в точки изображения, которые находятся дальше друг от друга.

 

Microsoft Kinect SDK

 

Kinect for Windows Software Development Kit (SDK) – это стартовый набор инструментов, необходимых для начала работы с Kinect. Он рассчитан для ученых, исследователей и энтузиастов, заинтересованных в изучении возможностей естественных пользовательских интерфейсов (англ. NUI – Natural User Interface) с помощью Kinect и связанных технологий [4].

На данный момент платформа Kinect обеспечивает:

·         построение карты глубины помещения и отделение силуэта человека от фона;

·         отслеживание объектов (идентификацию отдельных персон и идентификацию их перемещения);

·         построение виртуального скелета человека;

·         распознавание и отслеживание перемещения отдельных частей тела с предоставлением координат в пространстве;

·         идентификацию простых жестов;

·         считывание и запись видео и фото данных с камер устройства;

·         дистанционное перемещение камер с помощью сервопривода и обеспечение обратной связи с помощью акселерометра.

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

Описание: image

Рис.1. Точки скелета, захватываемые Kinect

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

Для каждого захваченного скелета Kinect предоставляет следующие данные:

1. статус отслеживания скелета (не отслеживается, только позиция, отслеживается)

2. координаты точек скелета в пространстве (в координатной системе Kinect);

3. статус отслеживания каждой точки (не отслеживается, отслеживается предположительно, отслеживается точно).

 

Microfost Face Tracking SDK

 

Microsoft Face Tracking Software Development Kit позволяет создавать приложения, которые могут отслеживать человеческое лицо в реальном времени. Библиотека отслеживания лица Face Tracking анализирует входящие данные с Kinect, распознает позу головы и выражение лица, и предоставляет к этим данным доступ приложениям в реальном времени. Например, эта информация может быть использована чтобы отобразить позицию головы и выражение лица отслеживаемого человека на аватаре в игре или приложении для общения или предоставлять естественный пользовательский интерфейс (англ. natural user interface, NUI) [5].

Face Tracking SDK позволяет получить следующие данные:

·  Двухмерная сетка и точки (2D Mesh and Points, координаты 100 точек на лице) (рис. 2);

·  Трехмерная поза головы (3D Head Pose, повороты, смещения и масштаб лица);

·  Коэффициенты близости к стандартным выражениям лица (Animation Units, коэффициенты 6 выражений лица);

·  Трехмерная модель лица, представленная интерфейсом IFTModel. Модель состоит из 100 полигонов и не может быть использована напрямую в современной 3D-графике.

 

Рис. 2. Точки лица, захватываемые в режиме «2D Mesh and points»

 

Виртуальный образовательный мир vAcademia

 

Виртуальная Академия (vAcademia) [6] – это образовательный трехмерный виртуальный мир, разработанный лабораторией систем мультимедиа Поволжского государственного технологического университета. Главное преимущество vAcademia перед другими образовательными виртуальными мирами – это способность делать 3D-записи занятий (англ. virtcast), что позволяет создавать новый тип контента.

vAcademia обеспечивает широкий набор инструментов для преподавания и совместной учебной деятельности. Для обеспечения поддержки процесса взаимодействия пользователей в vAcademia предназначены специализированные объекты. К ним относятся локации, аватары, интерактивные доски, динамические объекты, чат и средства аудио коммуникации. Также участники могут акцентировать внимание других участников при помощи указки.

Без использования Kinect аватар может лишь выполнять заранее заданные действия, такие как ходьба, сесть\встать, изображать разговор. Но эмоции преподавателя и его движения и обеспечивают эффект присутствия, которого обычно не хватает образовательным виртуальным мирам. Использование Kinect позволяет полностью контролировать аватара, передавать свои эмоции и движения, использовать жесты и указку, тем самым предоставляя комфортную среду как для преподавателя, так и для других участников занятия.

Реализация системы поддержки использования Kinect в виртуальном мире vAcademia

Архитектура системы

 

Для разрабатываемой системы использовалась модульная архитектура (рис. 3). Часть системы, непосредственная взаимодействовавшая с Kinect, была выделена в отдельную DLL-библиотеку «плагин поддержки Kinect». Это решение обусловлено тем, что Kinect не обязателен для работы виртуального мира vAcademia. Поэтому DLL-модуль поддержки Kinect подгружается в память только в случае, если само устройство Kinect подключено к компьютеру пользователя.

Рис. 3. Функциональная схема системы

Связь системы переноса «живых» лекций с другими подсистемами осуществляется через библиотеку поддержки анимированных объектов nanimation, которая осуществляет управление объектами, имеющими скелет, на высоком уровне. Интерфейс управления Kinect реализован с использованием скриптов vAcademia. Скрипты инициируют начало и конец использования Kinect для управления аватаром, осуществляют отображение информации, включающей скелет в 2D и статус распознавания каждой части тела, включают и выключают режим передачи динамического изображения с экрана проектора на виртуальную доску.

Скрипты взаимодействуют с библиотекой поддержки анимированных объектов (nanimation) графического движка через библиотеку исполнения скриптов Script Executing Library. Библиотека поддержки анимированных объектов (nanimation) взаимодействует с плагином поддержки Kinect, получая от него набор ключевых точек скелета захватываемого человека и ориентируя на основе этих данных скелет аватара преподавателя. В vAcademia для реализации скелетной анимации аватаров используется библиотека Cal3D [7]. Она позволяет управлять скелетом аватара, автоматически пересчитывая его полигональную 3D-модель под новое состояние скелета.

 

Плагин поддержки Kinect

 

Плагин поддержки Kinect представляет из себя DLL-библиотеку, обеспечивающую взаимодействие среды vAcademia и контроллера Kinect. В основе плагина класс CKinectPlugin, реализующий интерфейс IKinect.  Несколько вспомогательных классов

В плагине поддержки Кинект используются следующие потоки:

·         Основной поток обеспечивает взаимодействие между другими потоками и внешней программой. Запускается при старте программы и работает до её завершения;

·         Поток получения скелета и цветного изображения, их обработка. Поток запускается при инициализации Kinect и закрывается при деинициализации;

·         Поток получения и обработки глубины. Поток запускается при включении получения видео или включении Face Tracking и закрывается при деинициализации;

·         Поток отслеживания лица. Запускается при включении опции «Лицо и мимика» и закрывается при её отключении.

 

Получение скелета и фильтрация неестественных поз

 

Kinect возвращает данные о всех найденных скелетах в виде координат 20 точек и статусе отслеживания (активно отслеживается, пассивно отслеживается, не отслеживается). Плагин поддержки Kinect подсчитывает количество захваченных скелетов и продолжает работать только если отслеживается ровно один скелет (поскольку иначе нельзя однозначно сопоставить распознанный скелет и аватара преподавателя). Затем происходит сглаживание координат (используется стандартный метод Kinect SDK) и обработка координат. Однако Kinect SDK не возвращает точки идеально движущегося скелета человека, вместо этого предоставляется возможность управлять коэффициентами усреднения координат, предсказания движения, получать данные о корректности точки скелета и т.д. 

При использовании описанного подхода Kinect довольно часто возвращал неестественные позы скелета. Особенно большие искажения были зафиксированы при неблагоприятных для сенсора условиях, например, ярком солнечном свете. Между тем, при передаче движений преподавателя искажения и неестественные позы недопустимы.

Для решения проблем неестественных поз было принято решение ограничить расстояние от устройства Kinect до аватара, на котором работает распознавание. Экспериментальным путем было выяснено, что скелет человека начинает распознаваться без существенных искажений начиная с 1,8 м (с 1,3 м - в сидячем режиме). Вместе с этим было решено зафиксировать положение Kinect на расстоянии 0,5 метра от пола и программно поворачивать устройство в 0 градусов по вертикальной оси, чтобы захватываемый человек оказывался в строго перпендикулярной плоскости.

Кроме того, была введена фильтрация неестественных положений частей тела. Были выделения 5 основных частей тела: руки, ноги, голова. В случае, если проверка на естественное положение имеет отрицательный результат, часть тела считается не распознанной. Соответственно для каждой части тела рассчитывается коэффициент качества распознавания, который позволяет не использовать некорректные положения аватара. Для этого было реализовано ограничение допустимых значений Эйлеровых углов между костями.

Так называемый «сидячий» режим был реализован также с целью избежать артефактов в случае, если расстояния между устройством Kinect и захватываемым человеком недостаточно, чтобы достоверно распознать положение ног. В этом режиме учитываются положение только 10 верхних точек, точки ног и таза игнорируются.

 

Отслеживание поворотов тела

 

Kinect не распознает повороты аватара. В основе работы устройства лежит предположение, что левая рука всегда располагается слева, правая - справа. Если захватываемый человек отворачивается от сенсора на 180 градусов, Kinect путает правую и левую половину тела, возвращая совершенно неестественную позу. Kinect не определяет правильный поворот человека, несмотря на то, что есть возможность получить кватернион поворота всего тела – получаемый поворот далек от реальности. Между тем, возможность частичного поворота очень важна при проведении лекции преподавателем. Поэтому был реализован следующий алгоритм:

1.                       Поворот определяется линейной функцией от положения крайних точек таза. Однако с учетом принципов работы Kinect, его значение корректно в пределах примерно (-110, 110) градусов относительно положения «лицом к Kinect». При более сильном повороте, работа алгоритма сбивается, и рассчитанный поворот не может быть признан корректным.

2.                       Были введены цветные маркеры (2 шт.), которые располагаются на туловище, справа/спереди и слева/спереди. На практике используются маркеры красного и зеленого цветов. Видеопоток, получаемый от устройства Kinect, анализируется с использованием потоковых процессоров. Модель, описанная в [8], была расширена понятием функции-трафарета спроецированной фигуры:

                                                                     (1),

где:  (x,y) – координаты текущего обрабатываемого пикселя,

BR – функция-трафарет спроецированной фигуры,

GRрастеризующее преобразование

С помощью (1) была задана функция количества пикселей спроецированной фигуры SP на растеризованном изображении:

                                                                                    (2),

где:  КП - функция количества пикселей,

SPспроецированная фигура

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

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

 

X

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

Не используется

Значение глубины

Индекс объекта

Рис. 5. Структура информации на один пиксель в буфере глубины

 

Поддержка захвата «живых» лекций

 

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

1.       Перемещение и положение преподавателя относительно реальной доски и виртуальной должны совпадать;

2.       Есть необходимость использовать указку, но Kinect не может её захватить;

3.       Есть необходимость перелистывать слайды, однако это требует взаимодействия с компьютером, что нарушает концепцию передачи занятия в виртуальность, где эти действия преподавателя не будут восприняты адекватно;

4.       Необходимо захватывать и передавать в виртуальный мир изображение презентации, демонстрируемой на проекторе.

Для решения этих проблем были предложены следующие решения:

1. Настройка Kinect должна производиться каждый раз после перемещения экрана проектора или самого устройства Kinect. В режиме настройки преподаватель отмечает левой и правой рукой соответственно правый и левый края экрана, которые захватываются в координатах Kinect (рис. 6). С помощью этого достигается соответствие между перемещением преподавателя у экрана проектора и перемещением аватара преподавателя у виртуальной доски. Виртуальная доска размещается в виртуальном мире с размерами, совпадающими с размерами экрана проектора. Так достигается соответствие как по длине доски, так и по её высоте.

2. Если луч на продолжении руки аватара пересекает поверхность виртуальной доски, то от пальцев руки к точке на доске, на которую показывает преподаватель, в виртуальном мире появляется указка.

Для того, чтобы показать преподавателю, на какую область доски указывает его рука, на доске на конце указки показывается полупрозрачный желтый квадрат. Таким образом, преподаватель знает, куда направлена виртуальная указка своего аватара в любой момент времени.

3. Перелистывание слайдов в Microsoft Power Point происходит с помощью распознавания жестов SwipeLeft и SwipeRight на основе отслеживания контрольных точек скелета аватара на конце обоих рук.

Алгоритм работы распознавания жестов следующий:

A. Периодически происходит проверка контрольных точек скелета на нахождение между опорными точками «центр таза» и «шея».

B. Если контрольные точки скелета находятся между этими опорными точками, то происходит расчет параметров жеста. Если длина взмаха больше заданного минимального значения и она входит в заданные временные рамки, то жест считается распознанным.

C. После распознавания одного жеста на определенный промежуток времени распознавание жестов приостанавливается во избежание ошибочного распознавания жестов.

 

Рис. 6. Процесс настройки Kinect. Идентификация левого края экрана.

4. Захват слайдов презентации, отображаемых на проекторе, осуществляется с помощью инструмента «screen sharing», реализованного на потоковых процессорах [9].

 

Отслеживание положение лица

 

Библиотека Face Tracking позволяет отслеживать различные параметры головы и лица, такие как повороты, выражение лица и т.д. На вход подается кадр цвета, кадр глубины и координаты 2 точек скелета: головы и шеи. На выходе плагин поддержки Кинект возвращает повороты головы относительно тела (в эйлеровых углах), смещения головы (в метрах) и коэффициенты близости к предопределенных выражениям лица - Animation Units (6 чисел с плавающей запятой в диапазоне от -1 до 1).

В связи с тем, что Cal3D для поворота головы используется вращение кости, выраженное в кватернионах, необходимо преобразовать полученные углы Эйлера в кватернион. Чтобы преобразовать 3 угла Эйлера (X, Y, Z) в  кватернион необходимо перемножить 3 кватерниона:

q1 = (sin(X), 0, 0, cos(X))                                                                                                    (3)

q2 = (0, sin(Y), 0, cos(Y))                                                                                                    (4)

q3 = (0, 0, sin(Z), cos(Z))                                                                                                     (5)

q = q1 * q2 *q3                                                                                                                       (6), где:  q – искомый кватернион поворота кости головы,

X, Y, Z – исходные эйлеровы углы  поворота головы,

q1q2q3 – промежуточные повороты, выраженные кватернионом.

При работе с Face Tracking были выявлены следующие проблемы:

1. Face Tracking корректно работает в ограниченном диапазоне расстояний, при выходе из которых получаются неестественные результаты. Для решения этой проблемы данные полученные от Kinect используются только, если Face Tracking завершился успешно. Если Face Tracking не был успешно проведен, то используются данные, полученные при последнем успешном отслеживании. Если же данные не поступают дольше некоторого времени (1 сек.), то используемые данные сбрасываются в 0. Также если по данным скелета человек стоит слишком близко для корректного распознавания, то данные Face Tracking использоваться не будут.

2. Face Tracking также некорректно работает, если поворот головы преподавателя превышает установленные ограничения (20 градусов вокруг оси X, 45 градусов вокруг оси Y и 90 градусов вокруг оси Z), возвращая некорректные углы, что приводит к неестественному положению головы (направленному вниз или слишком запрокинутому). Чтобы этого не допустить диапазон допустимых углов поворота вокруг каждой оси был ограничен (45 градусов вокруг оси X, 45 градусов для оси Y и 60 градусов для оси Z), соответственно если полученные углы превышают заданные ограничения, то углы приводятся к ограничителю.

 

Синхронизация аватара, управляемого Kinect

 

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

Синхронизация аватара, управляемого Kinect, работает на основе использования бинарного состояния, поддерживаемого системой синхронизации vAcademia. Клиент виртуального мира, чей пользователь является владельцем аватара, периодически формирует массив данных, получаемых из плагина поддержки Kinect в следующем формате (см. табл. 1). Этот массив и заносится в качестве бинарного состояния, которое автоматически синхронизируется со всеми другим клиентами виртуального мира.

 

Таблица 1.

Формат бинарного состояния для аватара, управляемого Kinect

Индексы

Тип

Название

0-19

float

Качество отслеживания каждой из ключевых точек (от 0 до 1)

20-263

float

Координаты точек скелета (в координатной системе Kinect)

264

bool

Флаг для индикации того, найден ли скелет

265

bool

Флаг включения сидячего режима

266

bool

Флаг захвата бедер

267

bool

Флаг полного поворота захватываемого пользователя от Kinect

268-335

float

Координаты скелета при предыдущем захвате

336-359

float

Координаты углов доски

360-371

float

Повороты головы в эйлеровых углах

372-383

float

Смещения головы

384-411

float

Коэффициенты Animation Units

412

bool

Флаг успешности захвата лица

413

unsigned char

Количество Animation Units

Таким образом, состояние аватара, управляемого Kinect, составляет 413 байт, при передаче состояния 10 раз в секунду (что достаточно для благоприятного визуального впечатления) будет необходимо передавать 4 килобайта на каждого пользователя, управляемого Kinect, что соответствует 32 килобитам в секунду.

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

В случае, если аватар управляется непосредственно устройством Kinect, то объект аватара в библиотеке поддержки анимации имеет ссылку на экземпляр класса плагина поддержки Kinect как ссылку на интерфейс IKinect. В ином случае, ссылка на интерфейс IKinect в реальности является ссылкой на класс CKinectEmulator. Таким образом, программная система обработки данных Kinect работает абсолютно одинаково как с настоящим устройством Kinect, так и при воспроизведении данных синхронизации.

Анализ и оценка разработки

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

 

Рис. 7. Захват положения рук и ног

 

Рис. 8. Захват положения головы

На основе функциональности системы хорошо себя показали следующие сценарии применения:

1.       Кинект в сидячем режиме захватывает движения репетитора, работающего удаленно (рис. 9).

Рис. 9. Использование Кинект для удаленного репетиторства

2.       Преподаватель ведет занятие на основе слайдов презентации, отображаемых через проектор. Используются цветные маркеры. Преподаватель может перемещаться и поворачиваться около доски, управлять презентацией жестами, использовать руку как указку (рис. 10).

 

Рис. 10. Проведение лекции с использованием цветных маркеров.

3.       Преподаватель ведет занятие на основе слайдов презентации, отображаемых через проектор. Преподаватель стоит за кафедрой, не перемещается, может показывать рукой на слайды, управлять презентацией жестами (рис. 11).

4.       Кинект захватывает лекцию. Преподаватель ведет занятие на основе слайдов презентации, отображаемых через проектор. Преподаватель сидит вполоборота как к аудитории, так и к экрану проектора, может показывать рукой на слайды, управлять презентацией жестами (рис. 12).

 

Использование потоковых процессоров позволило эффективно реализовать передачу содержимого экрана проектора на совместное рабочее пространство в виртуальном мире, а также осуществлять распознавание цветных маркеров на теле преподавателя практически без потери производительности. Подробное сравнение эффективности реализации дискретных вейвлет-преобразований для сжатия динамических изображения на потоковых процессорах и на центральном процессоре приведено в [9]. Замеры влияния включения распознавания цветных маркеров на потоковых процессоров на общую производительность vAcademia, усредненные по 20 различным аппаратным конфигурациям, показали, что производительность изменяется на 0,8%, что является приемлимым результатом.

 

Рис. 11. Проведение лекции стоя за кафедрой (отслеживание лица было отключено).

Рис. 12. Проведение лекции в режиме сидя, вполоборота к аудитории и доске.

Практическое использование показало, что для использования захвата движений и положения лица преподавателя требуется 4-ядерный центральный процессор, для захвата только движений достаточно 2-ядерного процессора. Это объясняется двумя причинами: требовательностью Face Tracking SDK к вычислительным ресурсам центрального процессора, а также неэффективной синхронизацией потоков захвата цвета и глубины внутри Microsoft Kinect SDK, которая не позволяет работать обоим потоком на одном ядре процессора без существенной рассинхронизации получаемым кадров цвета и глубины.

В идеальном случае, 1 ядро используется для обеспечения работы vAcademia, три остальных используется vAcademia эпизодически при необходимости подгрузки ресурсов или перерасчета скелетной анимации. В основном эти три ядра используются следующим образом: одно ядро используется потоком получения видео с устройства Kinect, другое ядро – получения глубины, а третье – потоком работы Face Tracking SDK.

Заключение

Были предложены архитектура системы переноса «живых» лекций в виртуальный мир vAcademia, а также методы решения нескольких важных проблем, связанных с захватом движений преподавателя, таких как, например, проблема некорректной передачи положения скелета преподавателя и отслеживания поворота тела. Были реализованы инструменты проведения лекции на основе презентации с использованием Kinect.

Литература

1.       Сморкалов А.Ю. Реализация образовательных инструментов в виртуальных 3D-средах с использованием потоковых процессоров. // Международный электронный журнал "Образовательные технологии и общество (Educational Technology & Society)" – 2011. - V. 14. - № 3. - С. 409-425 . - ISSN 1436-4522. URL: http://ifets.ieee.org/russian/periodical/journal.html

2.       Mikhail Morozov, Alexey Gerasimov, Mikhail Fominykh, Andrey Smorkalov. Asynchronous Immersive Classes in a 3D Virtual World: Extended Description of vAcademia // Trans. on Comput. Sci. XVIII, LNCS 7848, p. 81-100.

3.       Microsoft, Kinect. URL: http://www.microsoft.com/en-us/kinectforwindows/.        

4.       Microsoft Kinect Software Development Kit. URL: http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

5.       Microsoft Face Tracking Software Development Kit. URL: http://msdn.microsoft.com/en-us/library/jj130970.aspx

6.       Официальная страница образовательного виртуального мира vAcademia. URL: http://vacademia.com

7.       L. Jingtang, Z. Gang, T. Dunming, and X. Junjie "Research of skeletal-based virtual human animation using Cal3D," in 3rd International Conference on System Sci-ence, Engineering Design and Manufacturing Informatization (ICSEM) Chengdu, China, 2012, pp. 269–273.

8.       Сморкалов А.Ю. Математическая и программная модели генерации текстур на графических потоковых процессорах. // Программные системы и вычислительные методы. 2013. № 1. С. 116-128.

9.       Сморкалов, А.Ю., Морозов, М.Н. Поддержка дискретных вейвлет-преобразований для компрессии в системе обработки изображений на потоковых графических процессорах. Сборник материалов Всероссийской научно-практической конференции с международным участием "Информационные технологии в профессиональной деятельности и научной работе". - Йошкар-Ола: МарГТУ, 2010.- С. 91-96.

10.    Быстров Д.А.. Оптимизация сетевого трафика сообщений синхронизации объектов образовательного виртуального мира vAcademia. // Международный электронный журнал "Образовательные технологии и общество (Educational Technology & Society)" – 2011. - V. 14. - № 3. - С. 439-456. - ISSN 1436-4522. URL: http://ifets.ieee.org/russian/periodical/journal.html