发明名称 一种基于运动字串的运动标注方法
摘要 本发明公开了一种基于运动字串的运动标注方法。该方法可对实时采集(由深度摄像机或传统运动捕获设备)的人体运动进行在线标注。首先,我们对原始运动数据建立聚类索引模型,将运动序列转化为运动字串。然后,通过提出的字串匹配算法对不同运动字串进行相似度比较。接着,建立基于层级聚类的运动字串优化模型,在运动识别中对字串匹配效率进行优化。最后,通过滑动时间窗策略对输入的运动进行实时标注。本发明可以获得较高的运动标注识别准确率,并可有效避免时域错位的问题。
申请公布号 CN105261058A 申请公布日期 2016.01.20
申请号 CN201510653466.6 申请日期 2015.10.10
申请人 浙江大学 发明人 肖俊;张翰之;齐天;庄越挺
分类号 G06T13/40(2011.01)I 主分类号 G06T13/40(2011.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 郑海峰
主权项 一种基于运动字串的运动标注方法,其特征在于包括如下步骤:1)对任意给定的三维人体运动数据集进行类别标注与训练样本集划分,对数据集中的全部运动序列中的每个姿态进行旋转、平移对齐处理,使其中心点固定为坐标原点,身体平面前方朝向统一;2)对数据集中全部运动序列包含的所有帧采用k‑means算法进行聚类,共K个聚类类别,聚类中心为C<sub>k</sub>,k=1,2,...,K,以每帧对应的聚类索引编号v∈V={1,2,...,K}作为该帧的标识字符,对于给定运动序列s={f<sub>1</sub>,f<sub>2</sub>,...,f<sub>n</sub>},其中f<sub>i</sub>为运动中的某一帧,n为运动序列总帧数,则该运动序列可由每帧对应的标识字符表示,称为运动字串:A={a<sub>1</sub>,a<sub>2</sub>,...,a<sub>n</sub>},a<sub>i</sub>∈V        (1)3)对给定的两段运动序列,假设其对应的运动字串分别为A和B,对应长度分别为n<sub>A</sub>和n<sub>B</sub>,则其相似度匹配结果可按如下方法计算:首先,按照字典V对应的聚类索引顺序,计算生成一个大小为K×K的对称的权重矩阵W,其中每个元素w<sub>ij</sub>=||C<sub>i</sub>‑C<sub>j</sub>||<sub>2</sub>;随后,若n<sub>A</sub>>n<sub>B</sub>则交换A和B;接着,建立大小为(n<sub>A</sub>+1)×(n<sub>B</sub>+1)的动态规划矩阵D,其初值为:<img file="FDA0000818984600000011.GIF" wi="812" he="182" />最后,按照以下公式对D中其他元素进行计算:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mi>min</mi><mo>(</mo><mrow><msub><mi>D</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mo>)</mo><mo>+</mo><msub><mi>W</mi><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>,</mo><msub><mi>b</mi><mi>j</mi></msub></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000818984600000012.GIF" wi="1109" he="111" /></maths>矩阵D右下角元素<img file="FDA0000818984600000013.GIF" wi="143" he="69" />即为两段运动的相似度。4)对数据库中所有运动字串用自底向上的层级聚类方法进行聚类,采用迭代的方法,每次将最接近的两个聚类合并为一类,直到所有聚类中心之间的两两距离均大于阈值σ,具体的聚类算法描述如下:4.1初始化:对于运动数据库中的每段运动序列,其对应的运动字串为A<sub>i</sub>,i=1,2,...,N,每个字串构成单独的一类<img file="FDA0000818984600000014.GIF" wi="93" he="77" />其聚类中心<img file="FDA0000818984600000015.GIF" wi="70" he="78" />即为A<sub>i</sub>本身;4.2计算距离矩阵M,其中M<sub>i,j</sub>=stringMatch(A<sub>i</sub>,A<sub>j</sub>),这里的stringMatch方法即步骤2)中的相似度计算方法;4.3找到M中距离最小的两段运动字串<img file="FDA0000818984600000021.GIF" wi="84" he="70" />和<img file="FDA0000818984600000022.GIF" wi="95" he="71" />4.4如果M<sub>k1,k2</sub>>σ,则返回现有全部类及其聚类中心,算法终止;否则,合并这两个字串所对应的两类<img file="FDA0000818984600000023.GIF" wi="74" he="78" />和<img file="FDA0000818984600000024.GIF" wi="95" he="70" />生成新类别L′;4.5计算新类L′的中心点:对所有A<sub>i</sub>∈L′,计算D<sub>i</sub>=max(stringMatch(A<sub>i</sub>,A<sub>j</sub>)),<img file="FDA0000818984600000025.GIF" wi="203" he="76" />计算i′=argmin<sub>i</sub>D<sub>i</sub>,则中心T<sub>i</sub>=A<sub>i′</sub>;4.6依照步骤4.2更新距离矩阵M,同类字串的距离设为+∞;4.7重复步骤4.3至4.6,直到结束;4.8去掉只有一段运动字串的聚类,以消除部分误差;5)对于输入的运动序列,与步骤4)得到的所有聚类中心字串<img file="FDA0000818984600000026.GIF" wi="72" he="70" />进行比较,按相似度由小到大排序,利用加权投票的方法,以得票最多的类别作为输入运动序列的类别标注;6)利用滑动时间窗口策略,对在线输入的运动序列,以2秒为时间窗长度,0.5秒为时间窗间隔,即每0.5秒将前2秒内的运动序列按步骤1)至步骤5)所述方法获取类别标注,作为实时标注的结果。
地址 310027 浙江省杭州市西湖区浙大路38号