Kinect for windows sdk introduction

59,451 views

Published on

Kinect for Windows Introduction

Kinect for windows sdk introduction

  1. 1. 初めての Kinect  for  Windows  SDK  プログラム 株式会社  ゲッシュ Ver.1.2  2012/06/19http://www.microsoft.com/en-us/kinectforwindows/
  2. 2. ⾃自⼰己紹介中村  薫株式会社  ゲッシュ  (http://www.geis.co.jp/)• Windows  ⽤用のセキュリティソフトウェアの受託開発• NUIデバイスを利利⽤用したアプリケーション開発• Scrumなどのアジャイルな開発⼿手法を利利⽤用した現場改善• 新⼈人研修やセミナー講師• nakamura.kaoru@geis.co.jp• @kaorun55 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  3. 3. ⾃自⼰己紹介KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  4. 4. 免責事項 本スライドの内容による、いかなる損害の責任を負いません。⾃自⼰己責任の上、ご利利⽤用ください。 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  5. 5. Kinectとは• Microsoft社が発売しているXbox  360ゲーム機 のコントローラー(Kinect  for  Xbox  360)• ゲームを操作する際に、「コントローラーを持 つ必要がない」ことが特⻑⾧長• 2012年年2⽉月1⽇日にWindows⽤用のKinectの発売を 開始した(Kinect  for  Windows) KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  6. 6. Kinect  for  Xbox  360の 販売台数 世界累累計• 2か⽉月で800万台•5か⽉月で1,000万台•12か⽉月で1,800万台 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  7. 7. Kinect  for  WindowsKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  8. 8. Kinect  for  Windowsとは • 2012年年2⽉月1⽇日(⽶米国時間)に発売され た、Windows  向けのKinect• 実売:¥24,800(249USドル)• 商⽤用利利⽤用に対しての制限はない• 40cmまで認識識可能な「Near  Mode」 を搭載• その他のハードウェア機能は、従来の Kinect  for  Xbox  360と同様 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  9. 9. KinectセンサーKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  10. 10. Kinect  for  Windowsの概要 サイズ(縦x横x⾼高さ) 65  x  280  x  70(mm) 重量量 600g Kinect  センサー(ケーブル1.5m) 同梱物 USB/電源ケーブル(⻑⾧長さ2.8m) Windows  7 対応OS Windows  Embedded  Standard  7 デュアルコアプロセッサ以上(x86,x64) 2.66GHz以上を推奨 ハードウェア要件 2GB以上のRAM USB  2.0ポート(専有) Kinect  for  Windows  SDKソフトウェア開発キット(SDK) http://www.microsoft.com/en-‐‑‒us/kinectforwindows/ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  11. 11. Kinect  fot  Windows  SDK  とは• Kinect  for  Windows  向けのSDK • 2012/06/19  現在  v1.5• 無償で利利⽤用することができる• 商⽤用利利⽤用に対しての制限はない• ランタイム(ユーザー環境)の実⾏行行にはKinect   for  Windows  が必要• 従来のKinect  for  Xbox  360  は、  開発時に限定 して使⽤用することが可能(商⽤用利利⽤用はできない) KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  12. 12. ライブラリの機能• RGBカメラで、ピクセルごとの⾊色が取得できる• 距離離カメラで、ピクセルごとの距離離が取得できる• ⼈人を認識識することができる(最⼤大6⼈人)• ⼈人の⾻骨格を認識識することができる(最⼤大2⼈人) KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  13. 13. ライブラリの機能• ⾳音声を取得することができる• ⾳音源の⽅方向を推定することができる• チルトモーターで、カメラの⾓角度度を調整できる• 複数のKinectを制御することができる(最⼤大4台) KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  14. 14. 付属機能• ⼊入⼒力力した⾳音声から単語を認識識することがで きる(⾳音声認識識)• ⼊入⼒力力した画像データから顔を認識識すること ができる KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  15. 15. RGBカメラKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  16. 16. 距離離カメラDefaulrモード NearモードKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  17. 17. 距離離モードKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  18. 18. ⼈人を認識識するKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  19. 19. ⾻骨格を認識識するDefaulrモード NearモードKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  20. 20. ⾻骨格の認識識KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  21. 21. Seated  モードKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  22. 22. ⾳音源⽅方向を認識識するKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  23. 23. チルトモーターKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  24. 24. 応⽤用利利⽤用KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  25. 25. 顔検出KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  26. 26. 指検出Kinect for Windows SDK Book by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  27. 27. 仮想試着Kinect for Windows SDK Book by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  28. 28. マウスの代替KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  29. 29. ⻑⾧長さを測るKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  30. 30. 背景マスクKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  31. 31. 光学迷彩KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  32. 32. タッチスクリーンKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  33. 33. Kinect  for  Windows  SDK  ⼊入⾨門 v1.5KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  34. 34. 必要なもの• Kinect  for  Windows  SDK• Kinect  for  Windows  Developer  Toolkit • http://www.microsoft.com/en-‐‑‒us/ kinectforwindows/• Kinect  for  Windows • または  Kinect  fot  Xbox  360(開発時のみ) KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  35. 35. 他に使うもの• Windows  7  SP1  32bit• Visual  C#  2010  Express • http://www.microsoft.com/japan/ msdn/vstudio/express/• WPF• Coding4Fun.Kinect  Toolkit • http://c4fkinect.codeplex.com/ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  36. 36. サンプルコード• https://github.com/kaorun55/ KinectSdkIntroduction• サンプルは、順番に機能を追加してい くようになっていますKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  37. 37. インストールhttp://d.hatena.ne.jp/kaorun55/20120201/1328123704 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  38. 38. 1. Kinect  をコンピューターからはずします2. Beta版のアンインストール • Beta版の  Kinect  for  Windows  SDK  がインス トールされている場合は、削除してください3. ここからインストーラをダウンロードします • 32bit版と64bit版ともに同じインストーラで す KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  39. 39. 4. インストーラの通りにインストールします KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  40. 40. 5.Kinect  をコンピューターに接続します KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  41. 41. 6.スタートメニューの「Microsoft  Kinect  SDK   vX.X|Developer  Toolkit  Browser  vX.X」 を起動します KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  42. 42. 7.Kinect  Explorerを起動して、画像が表⽰示さ れればOKです KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  43. 43. プロジェクトの作成http://d.hatena.ne.jp/kaorun55/20120201/1328125693 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  44. 44. 1. プロジェクトを作成します。C#とWPFで 作ります KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  45. 45. 2. Kinect  SDKとKinect  Toolkitを参照に加え ます KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  46. 46. RGBカメラhttp://d.hatena.ne.jp/kaorun55/20120201/1328125693 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  47. 47. RGBカメラの画像を表⽰示するKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  48. 48. MainWindow.xaml <Window x:Class="RgbCamera.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="RgbCamera" Height="521" Width="663" SizeToContent="Manual"> <Grid> <Image Name="imageRgbCamera" Margin="0" Stretch="Uniform" /> </Grid></Window> KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  49. 49. MainWindow.xaml.cs using System;using System.Windows;using Coding4Fun.Kinect.Wpf;using Microsoft.Kinect;namespace RgbCamera{ /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); try { if ( KinectSensor.KinectSensors.Count == 0 ) { throw new Exception( "Kinectが接続されていません" ); } // Kinectインスタンスを取得する KinectSensor kinect = KinectSensor.KinectSensors[0]; KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  50. 50. MainWindow.xaml.cs // Colorを有効にする kinect.ColorFrameReady += new EventHandler<ColorImageFrameReadyEventArgs>( kinect_ColorFrameReady ); kinect.ColorStream.Enable(); // Kinectの動作を開始する kinect.Start(); } catch ( Exception ex ) { MessageBox.Show( ex.Message ); Close(); } } void kinect_ColorFrameReady( object sender, ColorImageFrameReadyEventArgs e ) { imageRgbCamera.Source = e.OpenColorImageFrame().ToBitmapSource(); } }} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  51. 51. 距離離カメラhttp://d.hatena.ne.jp/kaorun55/20120201/1328146583 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  52. 52. 距離離カメラを画像化するKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  53. 53. MainWindow.xaml <Window x:Class="DepthCamera.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="DepthCamera" Height="521" Width="663"> <Grid> <Image Name="imageRgbCamera" Stretch="Uniform" /> <Image Name="imageDepthCamera" Stretch="Uniform" Opacity="0.7" /> </Grid></Window> KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  54. 54. MainWindow.xaml.cs public MainWindow(){ InitializeComponent(); try { if ( KinectSensor.KinectSensors.Count == 0 ) { throw new Exception( "Kinectが接続されていません" ); } // Kinectインスタンスを取得する KinectSensor kinect = KinectSensor.KinectSensors[0]; // Colorを有効にする kinect.ColorFrameReady += new EventHandler<ColorImageFrameReadyEventArgs>( kinect_ColorFrameReady ); kinect.ColorStream.Enable(); // Depthを有効にする kinect.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>( kinect_DepthFrameReady ); kinect.DepthStream.Enable(); // Kinectの動作を開始する kinect.Start(); } catch ( Exception ex ) { MessageBox.Show( ex.Message ); Close(); }} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  55. 55. MainWindow.xaml.cs // RGBカメラのフレーム更新イベントvoid kinect_ColorFrameReady( object sender, ColorImageFrameReadyEventArgs e ){ imageRgbCamera.Source = e.OpenColorImageFrame().ToBitmapSource();}// 距離カメラのフレーム更新イベントvoid kinect_DepthFrameReady( object sender, DepthImageFrameReadyEventArgs e ){ imageDepthCamera.Source = e.OpenDepthImageFrame().ToBitmapSource();} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  56. 56. プレーヤーの認識識http://d.hatena.ne.jp/kaorun55/20120201/1328148344 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  57. 57. さらにプレーヤーをかぶせるKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  58. 58. MainWindow.xaml 前回と同じKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  59. 59. MainWindow.xaml.cs public MainWindow(){ ... // Colorを有効にする kinect.ColorFrameReady += new EventHandler<ColorImageFrameReadyEventArgs>( kinect_ColorFrameReady ); kinect.ColorStream.Enable(); // Depthを有効にする kinect.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>( kinect_DepthFrameReady ); kinect.DepthStream.Enable(); // Skeletonを有効にするとプレーヤーが取得できる kinect.SkeletonStream.Enable(); // Kinectの動作を開始する kinect.Start(); ...} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  60. 60. スケルトン・トラッキングhttp://d.hatena.ne.jp/kaorun55/20120201/1328150079 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  61. 61. スケルトンも描くKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  62. 62. MainWindow.xaml <Window x:Class="SkeletonSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Skeleton" Height="521" Width="663"> <Grid> <Image Name="imageRgbCamera" Stretch="Uniform" /> <Image Name="imageDepthCamera" Stretch="Uniform" Opacity="0.7" /> <Canvas Name="canvas1" /> </Grid></Window> KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  63. 63. MainWindow.xaml.cs KinectSensor kinect;public MainWindow(){ InitializeComponent(); try { if ( KinectSensor.KinectSensors.Count == 0 ) { throw new Exception( "Kinectが接続されていません" ); } // Kinectインスタンスを取得する kinect = KinectSensor.KinectSensors[0]; // すべてのフレーム更新通知をもらう kinect.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>( kinect_AllFramesReady ); // Color,Depth,Skeletonを有効にする kinect.ColorStream.Enable(); kinect.DepthStream.Enable(); kinect.SkeletonStream.Enable(); // Kinectの動作を開始する kinect.Start(); } catch ( Exception ex ) { MessageBox.Show( ex.Message ); Close(); }} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  64. 64. MainWindow.xaml.cs void kinect_AllFramesReady( object sender, AllFramesReadyEventArgs e ){ imageRgbCamera.Source = e.OpenColorImageFrame().ToBitmapSource(); imageDepthCamera.Source = e.OpenDepthImageFrame().ToBitmapSource(); // 骨格位置の表示 ShowSkeleton( e );} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  65. 65. MainWindow.xaml.cs private void ShowSkeleton( AllFramesReadyEventArgs e ){ // キャンバスをクリアする canvas1.Children.Clear(); // スケルトンフレームを取得する SkeletonFrame skeletonFrame = e.OpenSkeletonFrame(); if ( skeletonFrame != null ) { // スケルトンデータを取得する Skeleton[] skeletonData = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo( skeletonData ); // プレーヤーごとのスケルトンを描画する foreach ( var skeleton in skeletonData ) { if ( skeleton.TrackingState == SkeletonTrackingState.Tracked ) { // 骨格を描画する foreach ( Joint joint in skeleton.Joints ) { // 骨格の座標をカラー座標に変換する ColorImagePoint point = kinect.MapSkeletonPointToColor( joint.Position, kinect.ColorStream.Format ); // 円を書く canvas1.Children.Add( new Ellipse() { Margin = new Thickness( point.X, point.Y, 0, 0 ), Fill = new SolidColorBrush( Colors.Black ), Width = 20, Height = 20, } ); } } } } KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  66. 66. こちらもご覧ください http://www.slideshare.net/kaorun55/kinect-introductionKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  67. 67. KINECT  for  Windows  SDK  C#編 http://www.slideshare.net/kaorun55/kinect-for-windows-sdk-c KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  68. 68. KINECT  for  Windows  SDK  C++編 http://www.slideshare.net/kaorun55/kinect-for-windows-sdk-cpp KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.
  69. 69. Enjoy!!  Kinect  Hack!!twitter:@kaorun55 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons 表示 - 非営利 - 改変禁止 2.1 日本 License.

×