由于系统使用Kinect进行识别交互舞蹈,其他数据集的规范和我们有很大的不同,哪怕我们进行手动规范转换,也会存在相当大的空间误差。
所以了解VGB进行姿势录制测试是必要的,csdn上其实有几个兄弟已经写得非常清晰了,我这里对我遇到的坑进行一定的补充。
VGB使用的是随机森林也就是Random Forest Regression算法进行姿态估计
首先使用Kinect Studio进行姿势录制:
录制好的姿势可以打开后进行编辑,将不需要的帧剔除(这步可以跳过其实)
然后打开Visual Gesture Builder对姿势进行编辑
由于本人录制的全部都是连续的姿势,不涉及到离散的姿势。所以默认给出的参数类型是float,这里注意一定不要改变默认参数的类型。
如果自作聪明改成了Bool,那恭喜你会发现标注完后就全部白做了,并且没有办法撤销和更改默认参数的名称。
这里我参考另一个兄弟的博客,新增了一个BOOL类型的项来辅助标注。
还有一项需要注意的,标注的时候需要尽量选择有特征的动作,否则学习出来的动作误差会相当大(你不动也有个五六十的置信值)。
例如标注挥手动作,那么就从手要挥的那一帧开始标注,到这一趟手停算一个循环,分别标注0和1,可以看到自动有一个峰值出现。如果涉及到更加专业的舞步,如果主观认为这个动作不是那么标准,那么就标注相对低一些的值。
最后对整个动作数据集进行build就Ok了,如果感觉误差还是很大,那就检查一下自己有没有标注很多有多义性的动作 并且进行选择性剔除即可。