Kinect for Windows SDK       开发初体验      马宁_aawolf
“下面的内容非常严肃”
八卦一下   Kirsten Price
再重申一遍:“下面的内容非常严肃”
Agend•   什么是 Kinect?•   Kinect历史•   Kinect for Windows SDK简介•   设置Kinect开发环境•   Kinect开发介绍•   Kinect示例
What’s is Kinect?• Kinect是XBox 360的外接体感设备 – 动作捕捉 – 语音识别• Kinect无需借助任何外设进行动作捕捉• 目前只支持人类动作的捕捉• Rare负责软件开发,Range Camera技术  由P...
Kinect History• CodeName:Project Natal  – 2009年E3公布,2010年10月上市• 有史以来销售最快的消费类电子产品  – 截止2011年3月9日,销售超过一千万部• 2011年6月发布Kinect ...
技术指标•   输出视频帧率为30Hz•   8-bit VGA 分辨率(640 × 480 pixels)•   最佳识别区域1.2–3.5 m,扩展区域0.7–6 m•   可视区域 : 水平57° 垂直 43°•   最多跟踪20个人体节点
Kinect for Windows SDK• 非商业授权,商业授权将在下一个版本中  提供• OS:Windows 7• Visual Studio 2010 Express以上版本• 支持C++, C# 和 VB.NET• 主要功能 – R...
Kinect Hardware
Setting Up Your Development            Environment• 硬件 – Kinect Hardware – AC Adapter/ Power Supply• 软件 – Kinect for Windo...
添加引用• 添加引用 – Microsoft.Research.Kinect – Coding4Fun.Kinect.Wpf.dll (可选)• 命名空间 – using Microsoft.Research.Kinect.Nui; – usi...
初始化Runtime  Runtime nui;  nui = new Runtime();  nui.Initialize(RuntimeOptions.UseColor| RuntimeOptions.UseDepth           ...
Camera Fundamentals nui.VideoFrameReady +=         new EventHandler<ImageFrameReadyEventArgs>(nui_VideoFrameReady); void n...
获取Depth信息nui.DepthFrameReady +=          new EventHandler<ImageFrameReadyEventArgs>(nui_DepthFrameReady);nui.DepthStream.O...
Camera Data
Skeletal Tracking Fundamentals (1)• Kinect最多可以  追踪20个骨骼  点• SkeletonFrame  – 骨骼帧• Skeletons  – 骨骼点列表
Skeleton API
Skeletal Tracking Fundamentals (2)nui = new Runtime();nui.Initialize(RuntimeOptions.UseSkeletalTracking);nui.SkeletonFrame...
Working with Depth DataRuntime nui = new Runtime();private void Window_Loaded(object sender, RoutedEventArgs e){//UseDepth...
Sample Project• 光剑• 虚拟试衣间• 超级玛丽
总结• Kinect是一种廉价的动作捕捉设备• 有可能成为鼠标之后计算机交互的新时代• 在专业领域和消费者领域均有机会 – 专业领域发展会快于消费者领域• 如何为好的技术寻找成功的应用场景?
Upcoming SlideShare
Loading in …5
×

Kinect+sdk

982 views
834 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
982
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kinect+sdk

  1. 1. Kinect for Windows SDK 开发初体验 马宁_aawolf
  2. 2. “下面的内容非常严肃”
  3. 3. 八卦一下 Kirsten Price
  4. 4. 再重申一遍:“下面的内容非常严肃”
  5. 5. Agend• 什么是 Kinect?• Kinect历史• Kinect for Windows SDK简介• 设置Kinect开发环境• Kinect开发介绍• Kinect示例
  6. 6. What’s is Kinect?• Kinect是XBox 360的外接体感设备 – 动作捕捉 – 语音识别• Kinect无需借助任何外设进行动作捕捉• 目前只支持人类动作的捕捉• Rare负责软件开发,Range Camera技术 由PrimeSense提供• 同类产品 – 任天堂 Wii – Play Station Move
  7. 7. Kinect History• CodeName:Project Natal – 2009年E3公布,2010年10月上市• 有史以来销售最快的消费类电子产品 – 截止2011年3月9日,销售超过一千万部• 2011年6月发布Kinect for Windows SDK• 动作捕捉的机器学习技术获得2011 MacRobert Award工程创新大奖
  8. 8. 技术指标• 输出视频帧率为30Hz• 8-bit VGA 分辨率(640 × 480 pixels)• 最佳识别区域1.2–3.5 m,扩展区域0.7–6 m• 可视区域 : 水平57° 垂直 43°• 最多跟踪20个人体节点
  9. 9. Kinect for Windows SDK• 非商业授权,商业授权将在下一个版本中 提供• OS:Windows 7• Visual Studio 2010 Express以上版本• 支持C++, C# 和 VB.NET• 主要功能 – Raw sensor streams – Skeletal tracking – Advanced audio capabilities
  10. 10. Kinect Hardware
  11. 11. Setting Up Your Development Environment• 硬件 – Kinect Hardware – AC Adapter/ Power Supply• 软件 – Kinect for Windows SDK http://research.microsoft.com/en- us/um/redmond/projects/kinectsdk/download.aspx – Coding4Fun Kinect Toolkit http://c4fkinect.codeplex.com/
  12. 12. 添加引用• 添加引用 – Microsoft.Research.Kinect – Coding4Fun.Kinect.Wpf.dll (可选)• 命名空间 – using Microsoft.Research.Kinect.Nui; – using Microsoft.Research.Kinect.Audio; – using Coding4Fun.Kinect.Wpf;
  13. 13. 初始化Runtime Runtime nui; nui = new Runtime(); nui.Initialize(RuntimeOptions.UseColor| RuntimeOptions.UseDepth | RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking);• Runtime – 封装一个Kinect sensor的功能• RutimeOptions – 指定Kinect sensore能够使用的功能
  14. 14. Camera Fundamentals nui.VideoFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_VideoFrameReady); void nui_VideoFrameReady(object sender, ImageFrameReadyEventArgs e) { PlanarImage imageData = e.ImageFrame.Image; image1.Source = BitmapSource.Create(imageData.Width, imageData.Height, 96, 96, PixelFormats.Bgr32, null, imageData.Bits, imageData.Width * imageData.BytesPerPixel); //image1.Source = e.ImageFrame.ToBitmapSource(); }• VideoFrameReady事件• ImageFrameReadyEventArgs参数 – ImageFrame.Image属性:PlanarImage – 使用Coding4Fun Kinect Toolkit
  15. 15. 获取Depth信息nui.DepthFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_DepthFrameReady);nui.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240, ImageType.Depth);void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e){ image2.Source = e.ImageFrame.ToBitmapSource();}
  16. 16. Camera Data
  17. 17. Skeletal Tracking Fundamentals (1)• Kinect最多可以 追踪20个骨骼 点• SkeletonFrame – 骨骼帧• Skeletons – 骨骼点列表
  18. 18. Skeleton API
  19. 19. Skeletal Tracking Fundamentals (2)nui = new Runtime();nui.Initialize(RuntimeOptions.UseSkeletalTracking);nui.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady);void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e){SkeletonFrame allSkeletons = e.SkeletonFrame;//get the first tracked skeletonSkeletonData skeleton = (from s in allSkeletons.Skeletons where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();}
  20. 20. Working with Depth DataRuntime nui = new Runtime();private void Window_Loaded(object sender, RoutedEventArgs e){//UseDepthAndPlayerIndex and UseSkeletalTrackingnui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTrackin//register for eventnui.DepthFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_DepthFrame//DepthAndPlayerIndex ImageTypenui.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240,ImageType.DepthAndPlayerIndex);}void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e){}
  21. 21. Sample Project• 光剑• 虚拟试衣间• 超级玛丽
  22. 22. 总结• Kinect是一种廉价的动作捕捉设备• 有可能成为鼠标之后计算机交互的新时代• 在专业领域和消费者领域均有机会 – 专业领域发展会快于消费者领域• 如何为好的技术寻找成功的应用场景?

×