Kinect开发,如何将骨骼节点JointType这一枚举数据实时保存在txt文档里

Kinect开发,如何将骨骼节点JointType这一枚举数据实时保存在txt文档里,第1张

硬件 :电脑 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里进一步处理,得到最后的效果动画。

SDK 安装

kinect 是输入。类似鼠标 即时动态捕捉、影像辨识、麦克风输入、语音辨识

Kinect 是一组传感器的组合,包含一个彩色摄像头,一对深度摄像头(一个用以发射红

外,一个用以接收) ,一组麦克风阵列和底座马达。

彩色摄像头想必大家都已经很熟悉了。深度摄像头是由红外线提供的,返回画面上每个

点的深度值(离 Kinect 的距离,单位是 mm,标称精度约 5mm) 。麦克风阵列其实是数个水平放置的麦克风,因为彼此间有距离,所以可以识别说话人的方向,借此粗略估计是哪个玩家在说话,便于想象的话可以理解为类似声纳图(声音我们不涉及)。

读取彩色数据流,可以获得一张1080p的(19201080);

犹如拍照应用

看SDK自带示例

Color Depth D2D 彩色数据流

和许多输入设备不一样,Kinect 能够产生三维数据,它有红外发射器和摄像头。 Kinect SDK 从红外摄像头获取的红外数据后,对其进行计算处理,然后产生景深影像数据。

深度帧数据中,每个像素占 16 位,即每一个像素占 2 个字节。每一个像素的深度值只占用了 16 个位中的 13 个位。

获取每一个像素的距离很容易,但是要直接使用还需要做一些位 *** 作。如上图所示,深度值存储在第 3 至 15 位中,要获取能够直接使用的深度数据需要向右移位,将游戏者索引(Player Index)位移除

看SDK自带示例

Depth Basics-D2D 深度数据流

05-45米

25个关节点 每个关节点的 3D空间坐标和转向

看SDK自带示例

Body Basics D2D 骨骼数据流

示例:

Color Depth D2D 彩色数据流

Depth Basics-D2D 深度数据流

Coordinate Mapping Basics 扣出人物,置换背景

Body Basics D2D 骨骼数据流

    体感设备是连接到游戏主机上的机器,它可以通过感应器,接收玩家的动作或语音信息,从而可以完成游戏的转换。体感设备突破了传统意义上的游戏模式,让玩家可以丢掉手中的游戏控制手柄。

Kinect的拆开效果图

左边的第一个圆圈装置是红外投射器,中间的是RGB摄影机,最右边的为红外感应器。

     红外投射器不断向外发出红外结构光,就相当于蝙蝠向外发出的声波,红外结构光照到不同距离的地方强度会不一样,如同声波会衰减一样。红外感应器,相当于蝙蝠的耳朵,用来接收反馈的消息,不同强度的结构光会在红外感应器上产生不同强度的感应,这样,Kinect就知道了面前物体的深度信息,将不同深度的物体区别开来。

     Kinect会从上到下扫描你,然后根据你的身高给逐步判断出你的膝盖在哪,手掌在哪,肚子在哪,并把这些相对的位置数据绑定到一个虚拟的骨骼上面,这样,就完成了真人到虚拟人的映射。

以上就是关于Kinect开发,如何将骨骼节点JointType这一枚举数据实时保存在txt文档里全部的内容,包括:Kinect开发,如何将骨骼节点JointType这一枚举数据实时保存在txt文档里、Kinect结合Unity基础使用(一)、微软的kinect体感设备到底是怎样工作的呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10074687.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存