Розалиев В.Л. Rozaliev V.L.
кандидат технических наук, доцент кафедры «Системы автоматизированного проектирования
и поискового конструирования»
Волгоградского государственного технического университета, Россия, г. Волгоград
Орлова Ю.А. Orlova Y.A.
кандидат технических наук, доцент кафедры «Системы автоматизированного проектирования
и поискового конструирования»
Волгоградского государственного технического университета, Россия, г. Волгоград
Шпирко А.А. Shpirko A.A.
магистр Волгоградского государственного технического университета, Россия, г. Волгоград
Дорофеев Н.С. Dorofeev N.S.
магистр Волгоградского государственного технического университета, Россия, г. Волгоград
УДК 004.822:514
АВТОМАТИЗАЦИЯ ПОСТРОЕНИЯ ВЕКТОРНОЙ МОДЕЛИ ТЕЛА ЧЕЛОВЕКА
В работе описан метод, позволяющий на основе данных, получаемых с камеры с сенсором глубины - Microsoft Kinect, строить универсальную векторную модель движения тела человека, с которой могут работать большинство существующих на сегодняшний день анимационных пакетов. Также описывается построение системы преобразований вращений из алгебры кватернионов, предоставляемых сенсором Kinect в алгебру углов Эйлера, которые используются для описания вращения в большинстве форматов, описывающих движение, и доказана их эквивалентность.
Ключевые слова: кватернионы, Kinect, векторная модель, вращение, захват движения.
AUTOMATION OF CONSTRUCTING HUMAN'S BODY VECTOR MODEL
In this paper is described a method, which allows to build universal human's body vector model, compatible to any animation-providing software using 3-D camera Microsoft Kinect with depth-sensor.
Also, a system of conversions quaternion's algebra to Euler angles' algebra was built and their equivalence was proved.
Key words: quaternions, Kinect, vector body, rotation, motion capture.
Введение
На сегодняшний день такая технология, как «захват движения», или motion capture, получила широкое распространение благодаря увеличивающейся мощности и удешевлению вычислительных ресурсов, а также большому вниманию, уделяемому данной теме со стороны ученых и разработчиков программного обеспечения, и растущими потребностями многих сфер в индустрии, где необходимо представление движения человека в цифровом виде [1]. Но одной из самых больших проблем
является все еще дорогостоящее оборудование для захвата движения и целый ряд ограничений на условия съемки и окружающее пространство, накладываемый этим оборудованием. А имеющиеся в распоряжении разработчиков доступные средства не обладают достаточной вычислительной мощностью, чтобы обеспечить режим захвата движения в реальном времени. Формализованное представление о движении человека необходимо во многих сферах промышленности, таких как кинематограф, анимационные студии, область
здравоохранения, охранная деятельность, учебная деятельность [2]. Наиболее полные данные о движении предоставляет так называемая векторная модель тела человека, которая представляет собой формализованные соотношения между основными узлами тела человека, данные о координатах этих узлов относительно друг друга и окружающего пространства с учетом основных антропометрических характеристик. Распознанное движение объекта реального мира необходимо для построения на его основе анимации, повторяющей основные движения оригинала, для создания различного рода симуляторов и тренажеров.
В статье описан метод формализации движения в виде векторной модели тела человека с по-
мощью данных о движении, получаемых с камеры Microsoft Kinect [3].
Формализация движения Для представления формализованного движения был выбран формат BVH, как наиболее распространенный и наиболее полно описывающий структуру человеческого тела. BVH обозначает данные Bio Vision Hierarchical [4]. Этот формат предоставляет возможность представления информации об иерархии каркаса тела человека в добавление к данным о движении. Каждый элемент скелета содержит в себе информацию о смещении и вращении относительно родительского элемента. Вращение представляется в углах Эйлера.
Рис. 1. Иерархическая структура BVH-файла
Для отображения движения в BVH-файле для каждой кости в каждом кадре рассчитывается ее локальная матрица трансформации: M = TRS,
где T, R, S - матрицы перемещения (translation), вращения (rotation), масштабирования (scale) соответственно в координатах родительского элемента.
Чтоб получить глобальную матрицу трансформации для конкретного узла скелета, локальную матрицу необходимо умножить на матрицу трансформации родительского элемента, для которого работает этот же принцип [5].
Глобальную матрицу трансформации для каждого элемента скелета можно рассчитать по формуле:
MLe = П МL» . (1)
¡■=о
Представление движения, получаемого с камеры Microsoft Kinect Kinect предоставляет данные о движении в виде иерархии основных узлов скелета человека, где вращение одних суставов относительно других представлено в виде кватернионов (роль вращающихся векторов выполняют кости скелета), а смещение представлено в виде трехмерных векторов в локальной для каждого узла системе координат: Tn = (x — x y — y z — z )
лок ^ n n—1n J n—1 n n—l'i
Tn - локальное смещение n-го узла относительно
лок
родительского узла, n > 0;
тп =Т~\т'
глоб X локал ¡=0
Tn г - смещение n-го узла относительно глобальной
глоб J
системы координат;
Electrical and data processing facilities and systems. № 2, v. 9, 2013
103
Qzno6
2 0,
2
2
+ e2 sin —)(c os — + e sin —) 2 2 2 1 2
Раскроем скобки и введем новую переменную е:
е е = ее
3 2 1'
где е = ±1, в зависимости от порядка вращения, также знаем, что
е • е = е • е = е • е = —1
3 3 2 2 1 1 '
тогда:
в, в
6>,
™в3 • в2 • в1
Q1Q2Q3 = (cos — cos — cos — - e sin — sin — sin —)
2 2
Л в1 в 3 в 2 . в1 + e1 (cos—3 cos—2 cos—- + e sin — sin — sin —
2
в 3 в
3 cos 22
в, в
2 в
22
2
■ в 3 • в 2 • в1
(4)
+ e2 (cos —3 cos —2 cos — - e sin — sin — sin —)
2
2
в, в^
2 0,
22
2
0, . 0O . 0,
+ e?3 (cos — cos — cos — + e s in — sin — s in —) 2 2 2 2 2 2 В качестве компонентов результирующего кватерниона устанавливаются:
03 в
6
;„в3 в2 • в1-
p0 = (cos — cos—2 cos— - e sin—sin—sin —)
, в3 в2 в, в3 . в2 . в, p1 = (cos—3 cos —cos — + e sin—sin—sin —
00Лоб - кватернион, представляющий вращение в глобальной СК; 0Л"к - кватернион, представляющий вращение в локальной СК (относительно родительского элемента); п - порядковый номер узла в иерархической цепочке скелета тела человека; / - порядковый номер дочернего узла в цепочке, i < п.
Таким образом, любой узел человеческого тела в представлении движения от КтеС; характеризуется вектором смещения Т и кватернионом вращения Q для каждого кадра/
; пД" е N
4 = < 0„ тп / > ; Р е н, (2)
; Т е R3.
Таким образом, чтобы представить получаемое с камеры Kinect движение в формате ВУН, необходимо найти соответствие между кватернионными представлениями углов вращений основных суставов человеческого тела и представлением этих же вращений в углах Эйлера.
Представление вращения, задаваемого кватернионами, в углах Эйлера Для представления вращения, задаваемого кватернионом Qисх, в углах Эйлера, вводятся три единичных, взаимно перпендикулярных вектора е е е где вращение сначала происходит вокруг е затем вокруг е затем вокруг е тогда суммарное вращение будет равно [6]:
в 3 .6 3 в 2 Я3Я2Я1 = (со^^;^ + е3 sln^3-+
(3)
2
2
2
2
2
2
в 3 в 2 в1 в 3 . в 2 . в1ч p2 = (cos—3 cos—2 cos—1 - e sin — sin —sin—) 2 2 2 2 2 2
03 60
6 6 6 p3 = (cos—cos — cos — + e sin — sin — sin —).
; 61
2 2 2 2 2 2' Произведя ряд преобразований, углы поворотов вокруг осей выражаем формулами: 2(РоР3 -еР1Р2)
(5)
tan в3 = -
1 - 2( Р22 + Р32) s i n в 2 = 2(P0P2 + ePlP3 )
tan вх =
2(PoP1 - eP2P3 )
(6)
(7)
1 - 2(p2 + p22) ' Таким образом, представлен алгоритм представления данных, получаемых в виде кватернионов вращения в виде углов Эйлера, что дает возможность формализовать движения в BVH-файле.
Метод построения универсальной векторной модели тела человека на основе данных сенсора Microsoft Kinect Векторная модель тела человека есть формализованное представление движения человека, где в виде векторов представлены кости человеческого скелета, а углам между ними соответствуют углы поворота основных узлов человеческого тела друг относительно друга.
Под универсальностью подразумевается формализация движения в формате, с которым сможет работать широкий круг приложений и анимационных пакетов.
Для построения векторной модели тела человека используется камера с инфракрасным датчиком глубины - Kinect от Microsoft. Эта камера позволяет получать объемное изображение при любых условиях освещенности и без определенных требований к актеру, находящемуся в кадре. С помощью проприетарного программного обеспечения и Kinect SDK можно получить данные о распознанном движении, но эти данные представлены в виде кватернионов вращения. Чтобы получаемые данные можно было формализовать в виде BVH-файла, предлагается следующий метод:
2
22
22
2
Вращение = {
QLeftLeg.quaternion = [w,x,y,z] QLeftArm.quaternion = [w,x,y,z]
QFootLeft.quaternion = [w, x,y,z] }
Смещение http: {
QLeftLeg.position = [x,y,z] QLeftArm.position = [x,y,z]
QFootLeft.position = [x,y,z] }
ПРИМЕР РАБОТЫ СИСТЕМЫ
Определение смещений узлов (Txyz)
относительно родительских узлов
Запись в файл иерархии основных узлов скелета человека в соответствии со спецификацией bvh-формата
Применение ряда преобразований кватернионов в углы Эйлера, учитывая последовательность поворота вокруг осей в bvh-формате
_у
Сохранение вращения в виде углов Эйлера в bvh-файл, с каждым кадром
□
Рис. 2 Рис. 3
Electrical and data processing facilities and systems. № 2, v. 9, 2013 = -105
JOINT rcollar [
OFFSET О 19.651 О
CHANNELS 3 zrotation ^rotation Yrotation =
joint rshldr t
OFFSET -13.869 O.OOO O.OOO CHANNELS 3 Zrotation ^rotation Yrotation
JOINT rForeArn
{
OFFSET О.ООО -19.910 O.OOO CHANNELS 3 Z Г Ot a t i ГЦ ^rotation yrrTilT" гп JOINT rHand
с
OFFSET -O.OOO -15.413 O.OOO CHANNELS 3 zrotation ^rotation Yrotation
End site
[
OFFSET -O.OOO -10.279 O.OOO
J
}
}
JOINT neck t
OFFSET -O.OOO 19.651 O.OOO CHANNELS 3 zrotation jtatiuii Yrotation
JOINT head
{
OFFSET O.OOO 15.183 O.OOO CHANNELS 3 Zrotation ^rotation Yrotation
End site
{
OFFSET O.OOO 10.126 O.OOO
}
MOTION
Frames: loo Frame TiTie:
-20. 345 Э 70.4717 -247.11 -0.7Э0401 -7.18147 34.5553 2.95971 -2.12199 0.123431 1.12611 -1.45Э12 0.117555 1.16063e-0S -7.60332е-08 -3.75953e-OS 2.73911 14.7539 -0.836356 O.S92! -20.4271 70.3037 -247.065 -0.456752 -7.64071 35.0679 2.53315 -2.12577 0.102594 2.05225 -0.442561 O.0373155 -1.5538P-07 -1.22799P-07 -1.35556^-06 2.597 15.265 -0.746635 1.367Г -20.542 70.2391 -247.239 -0.248057 -7.14356 35.1691 1.41917 -3.4017 0.109453 3.25346 0.51S098 -0.0733624 -9.53994e-05 1.29277P-07 6.17545e-07 2.15117 14.6777 -0.653092 1.153Г -20.6613 70.2691 -247.315 0.161541 -7.12637 34.9925 0.17514 -4.52771 0.0542315 5.15545 3.1732 -0.324449 6.46978e-08 2.155e-07 9.S53S8e-07 1.31706 15.3S04 -О.454686 2.45445 -: -20.5319 70.3317 -247.482 0.329125 -6.51941 34.1655 -O.952012 -6.66544 -0.0406088 6.21254 6.29707 -0.645609 1.90575e-07 -1.56644e-07 1.765E-08 0.312919 14.8855 -O.243036 3.3; -21.0352 70.3075 -247.423 -0.146716 -6.86318 33.9307 -0.85306 -S.3011 -0.123145 6.7S403 9.07726 -0.940354 -2.71356e-05 -1.59276e-07 4.71975e-07 O.777543 14.3573 -O.193072 4.< -21.0475 70.39S9 -247.59S -0.0336572 -5.15515 34.0327 -2.93429 -12.1881 -O.44 845 3 7 . 7 1 341 13 . 3 5 3 6 -1.3 0 61 7 - 5 . 3 2 6 08e-08 1.06522e-07 -4.44616e-10 -0.195535 12.809 -0.136408 3 -21.0559 70.6016 -246. 976 0.75 3037 -6.20217 32.97SS -2.80045 -10.5355 -0.317121 6.7451 13.2295 -1.16524 -7.095Q5e-09 9.4623le-05 9.2923e-07 0.146337 15.3393 -0.333607 3.0762: -21.4623 70.396 -246.912 -0.10719 -5.61311 32.4195 -2.37261 -13.3611 -0.396153 5.64945 14.7496 -1.01541 -1.51S74P-07 -5.56513e-05 -1.83416P-06 1.2503 13.6051 -0.456521 1.922Г -21.643 70.402 -246.794 -0.559495 -5.10215 32.0419 -2.31617 -14.5716 -0.45511 4.S0008 13.7592 -0.651526 5.69568e-05 2.94795C-07 -9.030522-07 1.67593 12.3325 -0.46483 1.5051 --21.6064 70.5516 -246.485 -0.640042 -5.03894 32.4464 -2.26136 -14.4793 -0.461565 2.65659 11.5472 -O.173956 1.57181E-07 3.1263E-07 -1.0346e-06 1.94306 11.9632 -0.48901 1.4853; ~
Рис. 4. Построенный BVH-файл
На рисунке 4 представлен фрагмент ВУН-файла, генерируемого системой в режиме реального времени, представляющего собой формализацию движения, выполняемого на рисунках 2 и 3. С каждым кадром получаемые системой данные о движении в виде кватернионов вращения для каждого из 20 основных узлов человеческого тела с помощью приведенных выше преобразований представляются в виде смещений относительно друг друга и вращений относительно родительских элементов, представляемых с помощью углов Эйлера.
В первой части получаемого файла указываются иерархичные взаимоотношения между основными узлами человеческого скелета, во второй части для каждого узла определены вращения вокруг ZYX-осей относительно родительского элемента для конкретного узла.
Заключение
В результате работы был разработан новый метод, позволяющий на основе данных, получаемых с камеры с сенсором глубины, строить универсальную векторную модель движения тела человека, с которой могут работать большинство существующих на сегодняшний день анимационных пакетов, а также построена система преобразований вращений из алгебры кватернионов, предоставляемых сенсором КтеС; в алгебру углов Эйлера, и доказана их эквивалентность.
Список литературы
1. Орлова Ю.А. Обзор современных автоматизированных систем распознавания эмоциональных реакций человека / Ю.А. Орлова, В.Л. Розалиев // Изв. ВолгГТУ. Серия «Актуальные проблемы управления, вычислительной техники и информатики в технических системах». Вып. 10: межвуз. сб. науч. ст. / ВолгГТУ. - 2011. - № 3. - C. 68-72.
2. Развитие системы автоматизированного определения эмоций и возможные сферы применения / А.В. Заболеева-Зотова, Ю.А. Орлова, В.Л. Розалиев, А.С. Бобков // Открытое образование. - 2011. - № 2. - C. 59-62.
3. Применение Kinect на PC /KinectHacks. -[2012]. - [Электронный ресурс]. - Режим доступа: http://kinecthacks .net/.
4. Motion Capture File Formats Explained - [2012]. -[Electronic resourse]. - Режим доступа: http://www.dcs. shef.ac.uk/intranet/research/public/resmes/CS0111 .pdf.
5. Розалиев В.Л. Анализ видеоряда для определения эмоциональных реакций человека / В.Л. Розалиев, А.С. Бобков, О.С. Федоров // Информационные технологии в науке, образовании, телекоммуникации и бизнесе (IT+SF10). Майская сессия (Украина, Крым, Ялта - Гурзуф, 20-30 мая 2010 г.): матер. XXXVII Междунар. конф. и дискуссионного науч. клуба: прилож. к журн. «Открытое образование» / РАН [и др.]. - Б/м, 2010. - C. 79-81.
6. Morgan Kaufmann. Graphics Gems: IV / Morgan Kaufmann. - STD., 2010. - 122 с.