主权项 |
1.一种基于仿生模式识别的人体运动捕捉数据检索方法,包括将基于C++程序设计语言和OpenGL图形库开发的人体运动捕捉数据检索系统装入计算机和对人体运动捕捉数据库进行构建、初始化的步骤,其特征在于还包括以下步骤:(1)、本方法中的检索条件为一组同类运动片断,选取关键姿态并以数字序号作为标记,并称为检索序列;(2)、针对人体运动数据包括运动检索数据库和检索条件,参照BVH运动数据标准格式,以BVH标准格式中的旋转CHANNEL为特征进行特征提取,并构造特征向量;(3)、基于仿生模式识别理论及其在人体运动捕捉数据中的应用特征,针对检索条件的特征向量,在对应的高维空间中构造“超香肠”神经元人体运动特征覆盖区域,该高维空间的维数与特征向量维数相等;其中,神经元构造方法由如下一组公式实现:<maths num="0001"><![CDATA[<math><mrow><msub><mi>f</mi><mi>HSN</mi></msub><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>=</mo><mi>sgn</mi><mrow><mo>(</mo><msup><mn>2</mn><mrow><mo>-</mo><mfrac><mrow><msup><mi>d</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mover><mrow><msub><mi>X</mi><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub></mrow><mo>‾</mo></mover><mo>)</mo></mrow></mrow><msup><mi>r</mi><mn>2</mn></msup></mfrac></mrow></msup><mo>-</mo><mn>0.5</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中r为神经元半径,d表示高维空间中点X到线段<img file="FDA0000106283060000012.GIF" wi="106" he="51" />的距离,<maths num="0002"><![CDATA[<math><mrow><msup><mi>d</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mover><mrow><msub><mi>X</mi><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub></mrow><mo>‾</mo></mover><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msup><mrow><mo>|</mo><mo>|</mo><mi>X</mi><mo>-</mo><msub><mi>X</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>,</mo></mtd><mtd><mi>q</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><msub><mi>X</mi><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mo><</mo><mn>0</mn><mo>,</mo></mtd></mtr><mtr><mtd><msup><mrow><mo>|</mo><mo>|</mo><mi>X</mi><mo>-</mo><msub><mi>X</mi><mn>2</mn></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>,</mo></mtd><mtd><mi>q</mi><mrow><mo>(</mo><msub><mrow><mi>X</mi><mo>,</mo><mi>X</mi></mrow><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>></mo><mo>|</mo><mo>|</mo><msub><mi>X</mi><mn>1</mn></msub><mo>-</mo><msub><mi>X</mi><mn>2</mn></msub><mo>|</mo><mo>|</mo><mo>,</mo></mtd></mtr><mtr><mtd><msup><mrow><mo>|</mo><mo>|</mo><mi>X</mi><mo>-</mo><msub><mi>X</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mi>q</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>X</mi><mo>,</mo><msub><mi>X</mi><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><mi>q</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><msub><mi>X</mi><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mi>X</mi><mo>-</mo><msub><mi>X</mi><mn>1</mn></msub><mo>)</mo></mrow><mfrac><mrow><mo>(</mo><msub><mi>X</mi><mn>1</mn></msub><mo>-</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mrow><mo>|</mo><mo>|</mo><msub><mi>X</mi><mn>1</mn></msub><mo>-</mo><msub><mi>X</mi><mn>2</mn></msub><mo>|</mo><mo>|</mo></mrow></mfrac></mrow></math>]]></maths>(4)、循环人体运动捕捉数据库,判断库中所有帧所从属的检索条件中的关键姿态类别,并以数字序号作为标记,不从属于任何检索条件中的关键姿态类别的帧以序号0标记;(5)、定义覆盖序列,该序列即为人体运动捕捉数据库中某一个运动中所有帧的从属的标记的排列,覆盖序列的数量等于数据库中运动的数量;(6)、评价覆盖序列与检索序列的相似度,首先对覆盖序列进行简化,简化方法为删除序列中的0元素,合并序列中相邻的相同元素,简化后的覆盖序列称为简化覆盖序列,覆盖序列与检索序列的相似度评价标准为判断检索序列是否是简化覆盖序列的子序列,若是,则认为该人体运动捕捉数据中存在与检索条件类似的运动序列,将该运动添加到检索结果中,否则认为不相似。 |