zoukankan      html  css  js  c++  java
  • Kinect的学习笔记发展(一)Kinect引进和应用

    Kinect的学习笔记发展(一)Kinect引进和应用

    zouxy09@qq.com

    http://blog.csdn.net/zouxy09

     

    一、Kinect简单介绍

          Kinectfor Xbox 360,简称 Kinect,是由微软开发,应用于Xbox 360 主机的周边设备。它让玩家不须要手持或踩踏控制器,而是使用语音指令或手势来操作 Xbox360 的系统界面。它也能捕捉玩家全身上下的动作,用身体来进行游戏,带给玩家“免控制器的游戏与娱乐体验”。

    其在2010年11月4日于美国上市,建议售价149美金。

    Kinect在销售前60天内,卖出八百万部,眼下已经申请金氏世界记录,成为全世界销售最快的消费性电子产品。

           2012年2月1日,微软正式公布面向Windows系统的Kinect版本号“Kinect for Windows”,建议售价249美金。而在2012年晚些时候,微软还将公布面向“教育用户”的特别版Kinect。

    (以上来自wiki百科)

    1.1、硬件

           Kinect有三个镜头,中间的镜头是 RGB 彩色摄影机,用来採集彩色图像。左右两边镜头则分别为红外线发射器和红外线CMOS 摄影机所构成的3D结构光深度感应器,用来採集深度数据(场景中物体到摄像头的距离)。

    彩色摄像头最大支持1280*960分辨率成像,红外摄像头最大支持640*480成像。Kinect还搭配了追焦技术,底座马达会随着对焦物体移动跟着转动。Kinect也内建阵列式麦克风,由四个麦克风同一时候收音。比对后消除杂音。并通过其採集声音进行语音识别和声源定位。


    1.2、软件开发环境

    1.2.1、非官方组合

          一開始微软对Xbox 360推出Kinect的时候。并没有在windows的开发包。而因为Kinect强大的功能和相对低廉的价格,geeks们纷纷表示希望能在电脑上用它。

    于是就有多位大牛开发了驱动,眼下我了解到的有三个:

    1)CL NUI Platform

          由NUI的大牛AlexP开发(他开发的其它著名产品包含PS3的windows驱动)。可以这里载。目标平台是windows7,可以获取彩色摄像头,深度传感器以及加速度传感器数据。使用简单方便。

    2)OpenKinect/libfreenect

           由号称第一个破解Kinect的Hector Martin发起,能够到这里下载,目标平台是Linux and Mac,据说有人成功移植到了windows上。由于非常多geek都是Mac的拥趸,所以开发參与者众多,不不过个能够获得数据的driver。geek们还写了其它高级的东西。比方我前面提到的骨骼化。将彩色摄像头作为纹理贴在深度数据上等等,非常吸引人啊。

    3)OpenNI

           OpenNI(opennatural interface开放自然交互)是一个多语言。跨平台的框架,它定义了编写应用程序,并利用其自然交互的API。能够到这里下载

    从名字推断其终极目标大约是实现少数派报告的效果。从眼下放出来的一些demo,恐怕已经超越了这个终极目标。

    它不是专为Kinect开发,但有Kinect的生产商PrimeSense的支持。这个感觉也是眼下相对来说用的比較多的非官方组合:SensorKinect + NITE + OpenNI;当中SensorKinect是Kinect的驱动。NITE是PrimeSense提供的中间件,能够分析Kinect读取的资料,输出人体动作等等。

    1.2.2、微软官方SDK

           Kinect体感游戏在Xbox 360 上获得非常好的评价,可是对于 Windows 平台上的开发却一直仅仅能使用非官方的解决方式(上面所说),比如NKinect 配合CL NUI SDK;可是微软最终在2011 年 6 月推出了 Kinect forWindows SDK Beta,特别是能够使用 C# 与.NETFramework 4.0 来进行开发。Kinect for Windows SDK主要是针对Windows7设计。内含驱动程序、丰富的原始感測数据流程式开发接口、自然用户接口、安装文件以及參考例程。Kinect for Windows SDK可让使用C++、C#或VisualBasic语言搭配MicrosoftVisualStudio2010工具的程序设计师轻易开发使用。

    眼下最新是V1.6 。

          Kinectfor Windows SDK的下载地址:

    http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx

           Kinect SDK眼下仅仅支持Windows 7,分为x86和x64两个版本号。开发工具方面还须要.NET Framework 4.0和Visual Studio 2010 (最低Express版本号)的支持。这个在后面的开发环境的配置中再做介绍。

    1.2.3、非官方和官方开发包的优缺点

    1)官方SDK:

    长处:

           提供了音频支持、调整倾角的转动电机、在全身跟踪骨骼跟踪方面:非标准姿势检測(相对于OpenNi的投降姿势…)。头部、手、脚、锁骨检測以及关节遮挡等细节上的处理更为仔细(但精度是否更高还不能确定)。

    此外,支持多传感器(多台Kinect);

    缺点:

           微软对非商业使用的限制。

    此外,未提供手势识别和跟踪功能。未实现RGB图像/深度图像的互对齐,仅仅是提供了对个体坐标系的对齐。在全身骨骼跟踪中,SDK仅仅计算了关节的位置,并未得出其旋转角度。从可移植的角度来看,SDK beta仅仅能用于Kinect/Win7平台。而OpenNi还至少支持华硕的WAVI Xtion体感设备。今后支持的硬件平台还可能很多其它。相比較而言SDK beta不支持Unity3D游戏引擎、不支持记录/回放数据写入磁盘、不支持原始红外视频数据流、也不支持像OpenNi一样的角色入场和出场的事件响应机制。

    2)非官方OpenNI/NITE:

    长处:

           可用于商业开发、包括手势识别和跟踪功能、可自己主动对齐深度图像和RGB图像,全身跟踪、关节旋转角度计算、看起来性能较好、已有众多游戏产品应用、支持记录/回放数据写入磁盘、支持原始红外视频数据流、支持角色入场和出场的事件响应机制。支持Primesense和华硕的WAVI Xtion硬件平台和windows、Linux和Mac等软件平台。自带的代码全面支持Unity3D游戏引擎。

    缺点:

           未提供音频功能、不支持调整倾角的转动电机、在全身跟踪骨骼跟踪方面:无法跟踪头部、手、脚和锁骨的旋转动作。须要标准姿势检測(即著名的投降姿势…),关节遮挡等细节上的处理似乎存在算法bug。不能自己主动安装并识别Kinect多机环境。安装过程较为繁琐。特别是NITE还要申请开发证书编码。OpenNi也没有提供可用视频和深度图输入的事件触发机制(但OpenNI提供了类似功能的函数可使用,尽管不是回调函数。可是也非常好用)。

    总结:

           OpenNI最大的优势就是同意跨平台多设备,以及商业应用。

    但从原始数据的採集和预处理技术上看。微软的SDK似乎更稳定一些,况且还提供了不错的骨骼和语音支持。对于部分身体部位识别方面的功能。SDKbeta没有提供局部识别和跟踪,这须要自己的兴许开发(至少在相当一段时期内微软可能都不会提供此类功能)。OpenNi/NITE尽管提供了手势识别和跟踪,然而在全身骨骼姿势识别和跟踪上还要很多其它借鉴微软的产品。

    因此,依照眼下在社区中的表现。SDK beta和OpenNi/NITE孰优孰劣还真无法一下子确定。并且随着越来越多的开发人员增加微软这一方,SDK beta的普及可能会更快。但在更高层次的应用上。对二者的选用往往是须要一定智慧的。

    (这部分參考:http://www.hanyi.name/blog/?p=330

     

    二、Kinect应用开发汇总

          本文(百度文库上面的内容,来源未知)汇总了当前使用Kinect SDK for Windows 开发出的各种各样的应用,点击相应的链接能够看到相应Kinect应用的Demo视频。

     

    虚拟应用

    Kinect试衣镜,这款基于kinect体感技术的奇妙的试衣镜,让客户能够高速的试穿衣服,提高销售效率和企业形象。

    http://v.youku.com/v_show/id_XMjU4MjExNjgw.html

    Kinect自制应用3D试衣间

    http://v.youku.com/v_show/id_XMjg0MDA3MDYw.html

     

    3D建模

    3D摄像机, 用两个KINECT实现3D摄像机的基本效果。

    http://v.youku.com/v_show/id_XMjI3MDQ2MjEy.html

    雕塑工具。立等可取Kinect成街头高速人像雕塑工具,利用Kinect对人体进行3D建模,然后依据人体的3D信息,连接对应的塑模设备,塑造出人体塑像。

    http://v.youku.com/v_show/id_XMjU2Njg2MzE2.html

     

    机械控制

    用Kinect 操控遥控直升机 

     http://v.youku.com/v_show/id_XMjgzOTYxODk2.html

    Kinect Robo,使用Kinect作为机器人的头,通过kinect检測周围环境,并进行3D建模,来指导机器人的行动。

    http://v.youku.com/v_show/id_XMjIzNDMyMjg0.html

    Kinect控制高达机械人

    http://v.youku.com/v_show/id_XMjM3NDUxMjg4.html

     

    虚拟乐器

    空气吉他。通过Kinect手势操作虚拟吉他弹奏音乐。

    http://v.youku.com/v_show/id_XMjI5NjM3NzMy.html

    Kinect弹奏中国古代乐器,通过手势的改变能够演奏出不同中国古代乐器的声音。

    http://v.youku.com/v_show/id_XMjI1MDA4MTM2.html

     

    虚拟娱乐

    Kinect破解“初音”。将体感控制应用到漫画人物——初音上。

    http://v.youku.com/v_show/id_XMjMxNjQ5MzAw.html

    变身奥特曼。捕捉玩家骨架数据。虚拟为奥特曼的形态与之随动,而且附加一些特技效果。

    http://v.youku.com/v_show/id_XMjM1MTY1NDY4.html

    Kinect破解玩光剑,Kinect检測玩家的动作。虚拟出光剑的影像,与之随动。

    http://v.youku.com/v_show/id_XMjI0NTIzOTIw.html

     

    计算机相关应用

    Kinect手势操作浏览器,通过Kinect手势对浏览器进行翻页。下拉,放缩等操作。

    http://v.youku.com/v_show/id_XMjI1MjczMzg4.html

    Air Presenter,让你的演讲从此与众不同。用kinect进行演讲的软件。

    http://v.youku.com/v_show/id_XMjU1MTMyNzky.html

    Kinect多点触摸。使用kinect实现隔空多点触摸,浏览图片、地图等。

    http://v.youku.com/v_show/id_XMjM1MzE2MTY0.html

    Kinect体感控制看片,第四军医大学西京医院骨科的医生们将破解的kinect应用在手术室,在术中。手术者可通过体感控制查看患者的影像资料。大慷慨便了医生手术,降低了手术室的人员流动。

    http://v.youku.com/v_show/id_XMjM2Nzg2NDky.html

     

    虚拟实验

    Kinect蜡笔物理,使用Kinect手势画图。通过体感控制所画图形,并使之具有物理特性。比方重力。吸引力等。

    http://v.youku.com/v_show/id_XMjI4MDMwMzM2.html

    用Kinect控制闪电(特斯拉线圈)

    http://v.youku.com/v_show/id_XMjY5NjE2MzQ0.html

     

    游戏

    Kinect破解玩马克思佩恩

    http://v.youku.com/v_show/id_XMjM2NjYxNDg0.html

    kinect破解玩求生之旅2 体感打僵尸

    http://v.youku.com/v_show/id_XMjM3Mjk5MjQw.html

    Kinect破解玩魔兽世界   

    http://v.youku.com/v_show/id_XMjMzMDM1MzI0.html

    Kinect破解玩街头霸王   

    http://v.youku.com/v_show/id_XMjM4MjkzNjA0.html

    Kinect破解玩超级马里奥兄弟 

    http://v.youku.com/v_show/id_XMjI1NzY1OTM2.html

    Kinect破解玩兵者诡道   

    http://v.youku.com/v_show/id_XMjM0NDk2MDg4.html

    Kinect破解玩 现代战争  

    http://v.youku.com/v_show/id_XMjM1NjU4NjE2.html

     

           一群来自卡内基梅隆的学生使用Kinect的交互特点实现了18个各种各种的有趣的想法。他们只用了两周的时间,从大二学生到研究生不等。让我们来看一下他们实现的奇思妙想吧!

           原文及视频信息链接http://golancourses.net/2011spring/projects/project-3-interaction/

    1. Comic Kinect

          此演示样例主要应用了Kinect的骨架跟踪技术和玩家分段数据,将拳击和脚踢的交互通过可视的漫画效果表现出来。而且同步发出一些拟声效果。

    2. Mario Boo

           当Kinect传感器检測到有人出如今视野内时,会出现一个幽灵保持在人的背后,随着人的运动而运动,而且会依据深度信息的远近而改变自身大小。

    3. Magrathea

           Magrathea使用Kinect依据桌上的不论什么物体动态的产生地形图。摄像头读取桌上物体的不断变化深度信息,能够展现出类似地球地形逐渐进化的过程。

    4. We be Monsters

           从中午舞狮中获取灵感,运用Kinect的骨架跟踪技术,两个人分别同坐自己的四肢操纵虚拟怪兽的四肢和头尾。

    5. Mix&Match Interaction Toy

           使用了Kinect/OpenNI 骨架技术,使得3张卡片组成的人体能够跟玩家随动。而且通过手的滑动更换图片。

    6. Kinect Flock

           作者创建了一个微粒系统。当用户移动时。像棉絮一样的东西会随之涌动,当用户精巧时,则聚集到參与者的深度区域。

    7. roboScan

           roboScan是一个3D模型+扫描仪,将一个Kinect设备固定在一个ABB 4400机械手上。设定好的动作和操作者同一时候控制机器人和摄像机的3D位置。

    Kinect的深度数据用来产生一个精确的外部环境的模型。

    8. Neurospasta

            Neurospasta是一个须要全身投入的自由形态游戏平台。參与者能够控制他们各自基于Kinect的木偶,也能够通过功能设定控制别人的化身。

    9. Will-o-the-Wisp

          这个设计充满了神奇色彩。玩家能够控制一个发光的球体,球体依据玩家手的运动而动。依据深度信息变大或变小。

    10. Balloon Grab

           通过检測手掌张开还是握紧的手势。作者开发了一个基于模拟气球飞行的简易小游戏。

    11. Hand-Tracking Visualization

           该软件使用手势控制音频的可视化效果,结合检測到场景中手距Kinect的深度信息。參与者手的位置。速度以及其它參数被用来创建一个交互式的声音的可视化效果。


            感觉Kinect该应用程序还偶尔字:Kinect该应用程序依赖于你的想象力!


     

  • 相关阅读:
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    linux中的cd ..和cd -命令有什么区别?
    GCC使用
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4581340.html
Copyright © 2011-2022 走看看