人体动作捕捉-简单判断动作快慢

              这是一个很有趣的问题。
              我们是怎么判断一个动作的快慢的呢?
              首先从自然界出发,大多数昆虫对移动的物体特别敏感,而对静止的物体反应迟钝。因为大多数昆虫拥有复眼,光线改变时, 会引起不同的小眼感受刺激,所以他们对移动的物体特别敏感。越多不同小眼受到刺激,可以知道物体移动速度和相对方向。
             人类呢? 人眼在某个视像消失后,仍可使该物像在视网膜上滞留0.1-0.4秒左右。 当下一个视像出现时,人类会根据上一视像进行对比,有参考系(一般认定占面积大的为绝对坐标系),根据物体大小,形状和位置,得知物体的移动速度和相对方向。
             现在我们需要依靠计算机告诉我们记录的人体动作数据背后的动作是快还是慢,幅度是大还是小。
             怎么来?  
           
             参考:
             选择绝对坐标系坐标点研究
             1.首先我们有各个节点的绝对坐标(三维坐标系),可以根据 人体动作捕捉-坐标转换 一文的源代码转化得来。
             2.参考浙大 基于分层曲线简化的运动捕获数据关键帧提取 一文,首先进行骨骼夹角的运算,然后根据骨骼夹角的极大极小值提取候选关键帧,最后进行曲线简化。
               
             
             关于曲线简化,本文暂不涉及。下面为我判断动作快慢的方法。
             1.首先进行骨骼夹角的运算,在根据骨骼夹角的极大极小值提取出来候选关键帧,即将各夹角的出现极大极小值的帧数号记录下来。
             2.由候选关键帧中的帧数号得到无重复元素的并集。答案就出来了,凡是帧数间隔较大的动作快或幅度大,帧数间隔较小的动作慢或幅度小。           
             
             如果想更准确获知动作快慢,那么应该把骨骼块之间的关联,相邻极大极小值之间的落差关系考虑进去。这里仅做一个简单的介绍。
             下面是一个人体动作捕捉数据播放器
             里面附带经过以上步骤以及笔者的方法得到候选关键帧,并由此生成关键帧的几个动作文件。
            
             使用说明:
             打开Acclaim.exe ,首先点击Load Actor,选择*.asf文件,然后点击Load Motion,选择*.amc文件,最后选择播放。 
             注意更换*.amc文件时,点击 |<  回到文件的起点开始播放。         
            

posted on 2009-10-09 12:42  IT 乌吉线  阅读(3185)  评论(7)    收藏  举报

导航