Kinect10,彩色摄像头为640480,深度摄像头为320240,只能识别两个人的骨骼数据。
Kinect20,彩色为1080P,深度摄像头为512424,能识别六个人的骨骼,并且识别稳定精度高。
两代都有人脸检测,3维重建等功能。20可以看做是10的全面升级。
硬件 :电脑 Kinect20
系统要求: win8/81 4GRAM USB30 I7CPU
项目一参与软件:Kinect SDK 20
Brekel Kinect Pro body 2 付费软件
Autodesk Motionbuilder 2014
Autodesk 3dmax 2014
项目二参与软件:Kinect SDK 20
Brekel Kinect Point Cloud 2 付费软件
Autodesk Maya 2014
Adobe After Effects CS6
AE插件 particular
设计过程:
第一节课老师提到kinect20 ,介绍它可以实现人体骨骼捕捉。我意识到这个机器可以帮我入手互动计课题。
首先是系统和硬件的高要求,win8 *** 作系统和30USB,i7处理器,在台式机上装好系统并安装官方kinect sdk20。然后开始了开发软件的尝试,官方的开发包提供了java和c++的语言包,我选择了Java语言和相对容易入的Processing软件。在processing里借助kinect 20 library可以调出例子,界面实时显示点云、骨骼。
第一次接触Java语言,学习了简单的算法和编译语言,参考网上kinect10的开源语言,借用已有的粒子系统库MS Fluid,试着写一些JAVA,希望能达到实时的粒子互动,但效果不理想,存在的bug无力解决。在两周的尝试后,我决定换一种平台来实现人机互动。谷歌搜索关键词 kinect motion caputure,找到了一款合适软件BREKEL kinect body,这款软件可以作为Autodesk motionbuilder的插件使用,借助这一插件,人可以与虚拟人物进行互动。再通过Autodesk 3dmax建模,创建合适的虚拟人物和场景,并为人物匹配骨骼。3dmax的文件可以以FBX格式文件发送到motionbuilder,发挥各个软件的特长,最终整合到motionbuilder界面,实现与虚拟人物的互动。
在做点云粒子系统时同样遇到了很大了阻力,没能达成实时粒子互动,退一步做到了后期加工的粒子动画。利用brekel point cloud这款软件记录舞者的动作并以alembic格式储存好动态的点云,在autodesk Maya里导入alembic文件,进行初步渲染得到动画文件,在Adobe AfterEffects里进一步处理,得到最后的效果动画。
析:身体以及各个关节点的位置定义了一个姿势。更具体的来说,是某些关节点相对于其他关节点的位置定义了一个姿势。 姿势的类型和复杂度决定了识别算法的复杂度。 通过关节点位置的交叉或者关节点之间的角度都可以进行姿势识别。
通过关节点交叉进行姿势识别就是对关节点进行命中测试。
我们可以确定某一个关节点的位置是否在 UI 界面上某一个可视化元素的有效范围内。我们可以对关节点做同样的测试。 但是需要的工作量要少的多,
因为所有的关节点都是在同一个坐标空间中, 这使得计算相对容易。 例如叉腰动作(hand-on-hip) ,
可以从骨骼追踪的数据获取左右髋关节和左右手的位置。然后计算左手和左髋关节的位置。如果这个距离小于某一个阈值,就认为这两个点相交。那么,这样就变得
简单多了。
但是,由于Kinect的精度问题,但即使通过一些平滑参数设置,从 Kinect
中获取的关节点数据要完全匹配也不太现实。另外,不可能期望用户做出一些连贯一致的动作, 或者保持一个姿势一段时间。 简而言之,
用户运动的精度以及数据的精度使得这种简单计算不适用。 因此, 计算两个点的长度, 并测试长度是否在一个阈值内是唯一的选择。角度原理也与之类似。
当两个关节点比较接近时, 会导致关节点位置精度进一步下降,
这使得使用骨骼追踪引擎判断一个关节点的开始是否是另一个关节点的结束点变得困难。比如,很难将手放在脸的前面,手放在头上,
和手捂住耳朵这几个姿势区分开来。 要摆出一个确切的姿势也很困难, 用户是否会按照程序显示的姿势来做也是一个问题。
一些姿势使用其他方法识别精度会更高。例如,用户伸开双臂和肩膀在一条线上这个姿势,称之为 T
姿势。可以使用节点相交技术,判断手、肘、以及肩膀是否在 Y
轴上处于近乎相同的位置。另一种方法是计算某些关节点连线之间的角度。骨骼追踪引擎能够识别多达20个关节点数据。任何三个关节点就可以组成一个三角形。使用三角几何就可以计算出他们之间的角度。
Kinect 如果你的是XB那个~我只能告诉你~win10貌似才能用20~而且要准备转接线~还有三个驱动~mmd也要有带Kinect 插件的版本才行~顺带~只能捕捉到大体的骨骼部位~像是一些稍微细微的地方~没用
以上就是关于kinect一代和二代的区别全部的内容,包括:kinect一代和二代的区别、Kinect开发,如何将骨骼节点JointType这一枚举数据实时保存在txt文档里、C#编程 人体关节坐标获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)