发明名称 一种基于路径的人体运动编辑方法
摘要 本发明公开了一种基于路径的人体运动编辑方法,属于图像处理技术领域。本发明首先讨论了脚支撑约束检测问题并提出了自适应调节脚高度阈值划分支撑脚的算法。根据捕捉数据的运动类型,用户指定的最小约束帧的长度l,l的最大误差η这两方面确定脚踝的高度阈值φ。随后本发明又研究了如何减小编辑后的运动路径与用户指定路径的偏差的方法。经过观察发现正常人走或跑时左右肩膀分别在运动路径的左右两侧,故通过调整运动帧使运动时的双肩在路径的两侧来减小偏差。最后,本发明研究了基于用户指定路径的运动编辑算法。该算法运用向量的平移解决滑步问题减少了计算量,编辑后的运动路径与指定路径的偏差较小,并且编辑后的运动较自然可以满足用户的需求。
申请公布号 CN103077545B 申请公布日期 2015.08.12
申请号 CN201310011446.X 申请日期 2013.01.11
申请人 大连大学 发明人 张强;周东生;张靖超;王玲;李晴
分类号 G06T13/40(2011.01)I 主分类号 G06T13/40(2011.01)I
代理机构 大连东方专利代理有限责任公司 21212 代理人 曲永祚;李洪福
主权项 一种基于路径的人体运动编辑方法,其特征在于:包括以下几步骤S1:自适应调节脚高度阈值划分支撑脚的算法根据捕捉数据的运动类型,用户指定的最小约束帧的长度l,l的最大误差η,这二个参数确定脚踝的高度阈值φ,若某帧脚的高度小于φ,则称此帧为支撑脚;其中l与η的取值范围与三维人体运动捕捉设备有比较紧密的联系,不同的设备一秒钟能捕捉的帧数不同,常见的有30帧/秒,60帧/秒,120帧/秒;CMU人体运动数据库中常见的数据是30帧/秒、120帧/秒且步长一般为80~120帧;正常人的一个步长分为4个阶段,故每个阶段的最小约束帧的长度l的范围为[20,60];脚踝的高度阈值φ的确定方法步骤如下:S11:预处理:计算出左右脚踝在全局坐标系中的坐标,即V<sub>lfoot</sub>,V<sub>rfoot</sub>对应的V<sub>world</sub>;S12:运动类型和用户指定最小支撑脚约束帧的长度求出第一个步长的脚踝高度阈值:不同的运动类型满足不同的支撑脚约束,在一个步长内的支撑脚满足A<sub>con</sub>‑R<sub>con</sub>‑A<sub>con</sub>‑L<sub>con</sub>并结合用户指定的最小支撑脚约束帧的长度l求出脚踝的约束高度为ε,其中为双脚支撑阶段,R<sub>con</sub>为右脚支撑阶段,为左脚支撑阶段;S13:根据上一步求得的步长的高度阈值ε和l允许的误差η求出下一步长的高度阈值ε<sub>2</sub>;S14:重复步骤S13直到最后一步长;S2:根据两帧根节点的弧长确定根节点在新路径上的位置,根据新路径调整原始运动的旋转角度;利用两帧之间根节点的弧长确定原始运动在新路径上的位置,由于两帧之间根节点长度很短,故用欧拉距离近似代替,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>l</mi><mo>&ap;</mo><mi>d</mi><mo>=</mo><mo>|</mo><mo>|</mo><mover><mrow><msub><mi>V</mi><mi>k</mi></msub><mo>-</mo><msub><mi>V</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mo>&RightArrow;</mo></mover><mo>|</mo><mo>|</mo></mrow>]]></math><img file="FDA0000734348120000021.GIF" wi="387" he="90" /></maths>其中V<sub>k</sub>,V<sub>k‑1</sub>为原始运动第k,k‑1个根节点的全局坐标,根据新路径旋转原始运动θ度角;S3:去除滑步S31:判定在新路径上离双肩最邻近的线段新路径是用未去除滑步时根节点在新路径的位置表示;<img file="FDA0000734348120000022.GIF" wi="392" he="86" />表示新路径,<img file="FDA0000734348120000023.GIF" wi="88" he="82" />表示去滑步前第i帧的根节点在地面的投影;<img file="FDA0000734348120000024.GIF" wi="92" he="93" />表示去滑步后第k帧根节点在地面的投影;规定在新路径上到<img file="FDA0000734348120000025.GIF" wi="91" he="92" />最近距离点为去滑步后第k帧对应的在未去滑步的运动序列上的帧;若<img file="FDA0000734348120000026.GIF" wi="93" he="92" />到<img file="FDA0000734348120000027.GIF" wi="88" he="84" />距离最短则线段<img file="FDA0000734348120000028.GIF" wi="168" he="86" />为<img file="FDA0000734348120000029.GIF" wi="80" he="88" />双肩对应的最邻近线段;若运动不满足双肩约束我们调整运动方向使运动满足约束,故编辑后运动的路径不可能与新路径偏移过大,则<img file="FDA00007343481200000219.GIF" wi="89" he="86" />对应的帧,可以近视利用<img file="FDA00007343481200000217.GIF" wi="93" he="81" />前后一个步长内的离<img file="FDA00007343481200000218.GIF" wi="88" he="88" />最近的帧代替,减少了寻找最邻近线段的时间;S32:判断是否满足双肩约束<img file="FDA00007343481200000210.GIF" wi="87" he="97" />的双肩<img file="FDA00007343481200000220.GIF" wi="230" he="108" />对应的最邻近线段为<img file="FDA00007343481200000212.GIF" wi="191" he="94" />向量<img file="FDA00007343481200000213.GIF" wi="376" he="110" />的y值为y<sub>1</sub>,向量<img file="FDA00007343481200000214.GIF" wi="380" he="108" />的y值为y<sub>2</sub>,有以下结论:y<sub>1</sub>*y<sub>2</sub>≤0 双肩<img file="FDA00007343481200000215.GIF" wi="244" he="84" />在路径两侧,y<sub>1</sub>*y<sub>2</sub>&gt;0 双肩<img file="FDA00007343481200000216.GIF" wi="246" he="89" />在路径同一侧;S33:当双肩在路径的同一侧时调整运动方向即调整旋转角θ,调整运动方向只能在L<sub>con</sub>和R<sub>con</sub>阶段进行,具体包含如下步骤:S33.1首先判定运动序列任一帧在去滑步前后运动方向的关系,y<sub>k</sub>≥0 d<sub>k</sub>在新路径方向<img file="FDA0000734348120000031.GIF" wi="172" he="101" />的逆时针方向,y<sub>k</sub>&lt;0 d<sub>k</sub>在新路径方向<img file="FDA0000734348120000032.GIF" wi="164" he="99" />的逆时针方向,其中y<sub>k</sub>是向量<img file="FDA0000734348120000033.GIF" wi="295" he="108" />d<sub>k</sub>是原始运动方向,<img file="FDA0000734348120000034.GIF" wi="173" he="101" />新路径方向;S33.2调整旋转角度;假设y<sub>k</sub>≥0,双肩在路径的同一侧,y<sub>lk</sub>&lt;0,<img file="FDA0000734348120000035.GIF" wi="96" he="84" />在路径的左侧,y<sub>rk</sub>&gt;0,<img file="FDA0000734348120000036.GIF" wi="99" he="92" />在路径的右侧,其中双肩<img file="FDA0000734348120000037.GIF" wi="238" he="84" />对应的最邻近线段为<img file="FDA0000734348120000039.GIF" wi="200" he="94" />y<sub>lk</sub>是向量<img file="FDA00007343481200000310.GIF" wi="366" he="107" />的y值,y<sub>rk</sub>是向量<img file="FDA00007343481200000311.GIF" wi="370" he="105" />的y值,经过去滑步双肩在路径两侧的位置发生的变化y<sub>lk</sub>&gt;0,y<sub>rk</sub>&gt;0,双肩都在路径右侧,y<sub>lk</sub>&lt;0,y<sub>rk</sub>&lt;0,双肩都在路径左侧,进行如下调整旋转角θ,<img file="FDA00007343481200000312.GIF" wi="234" he="66" />当y<sub>lk</sub>&lt;0,y<sub>rk</sub>&lt;0,<img file="FDA00007343481200000313.GIF" wi="235" he="77" />当y<sub>lk</sub>&gt;0,y<sub>rk</sub>&gt;0,若y<sub>k</sub>&lt;0,则,<img file="FDA00007343481200000314.GIF" wi="238" he="77" />当y<sub>lk</sub>&lt;0,y<sub>rk</sub>&lt;0,<img file="FDA00007343481200000315.GIF" wi="233" he="72" />当y<sub>lk</sub>&gt;0,y<sub>rk</sub>&gt;0,其中<img file="FDA00007343481200000316.GIF" wi="152" he="76" />为了保持运动的连续性,<img file="FDA00007343481200000317.GIF" wi="49" he="62" />值不能太大,<img file="FDA00007343481200000318.GIF" wi="61" he="62" />值设定在若干帧内把运动重新调整到满足双肩约束;S4:为了使新运动更靠近用户指定的路径运动我们增加了双肩约束,对不满足双肩约束的我们进行调整,对于双肩都在左侧的我们在旋转原始运动的方向尽量使旋转后的运动方向向右调整。
地址 116622 辽宁省大连市金州新区学府大街10号
您可能感兴趣的专利