Kinect introduction

9,571 views

Published on

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

No Downloads
Views
Total views
9,571
On SlideShare
0
From Embeds
0
Number of Embeds
5,233
Actions
Shares
0
Downloads
58
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Kinect introduction

  1. 1. 初めてのKINECT  +  OpenNI  プログラム Ver.1.1 2012/01/17 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  2. 2. ⾃自⼰己紹介中村  薫株式会社  ゲッシュ  (http://www.geis.co.jp/)• Windows  ⽤用のセキュリティソフトウェアの受託開発• NUIデバイスを利利⽤用したアプリケーション開発• Scrumなどのアジャイルな開発⼿手法を利利⽤用した現場改善• 新⼈人研修やセミナー講師• nakamura.kaoru@geis.co.jp 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. ⾃自⼰己紹介 BP NE http://techon.nikkeibp.co.jp/article/SEMINAR/20111021/199596/KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  5. 5. ⾃自⼰己紹介 http://www.atmarkit.co.jp/fdotnet/special/comparekinect01/comparekinect01_01.htmlKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  6. 6. 免責事項 本スライドの内容による、 いかなる損害も負いません。⾃自⼰己責任の上、ご利利⽤用ください。 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  7. 7. KINECTとは•Microsoft社が発売しているXbox  360ゲーム 機のコントローラー•ゲームを操作する際に、「コントローラーを持 つ必要がない」ことが特⻑⾧長 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  8. 8. KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  9. 9. KINECTの販売台数世界累累計• 60⽇日で800万台•5か⽉月で1,000万台•1年年で1,800万台KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  10. 10. KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  11. 11. KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  12. 12. KINECTセンサーKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  13. 13. 機能•RGBおよび、距離離カメラ•⾳音声および、⾳音声⽅方向の取得•カメラ⾓角度度の変更更•ユーザーおよび、⾻骨格の認識識•ジェスチャーの認識識 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  14. 14. RGBおよび距離離カメラKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  15. 15. ⾳音声および⾳音声⽅方向の取得 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  16. 16. ユーザーおよび⾻骨格の認識識 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.  NUI•KINECTのように、体の⾃自然な動作でコン ピューターを操作することをNUIと呼ぶ•WiiやPlaystaion  Move、iPhoneやiPadな どのインタフェース KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  19. 19.  NUI•NUIとはNatural  User  Interfaceの略略であ り、「ユーザーに⾃自然なインタフェース」で ある•NIと略略される、Natural  Interactionも同 じような意味を持つ 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. ユーザーインタフェースhttp://www.youtube.com/watch?v=HK7x9lKRt8g KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  22. 22. ユーザーインタフェースhttp://www.youtube.com/watch?v=x5-OcU56HOE 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. 遠隔操作http://www.youtube.com/watch?v=bJFut8bzAXQ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  25. 25. 福祉NAIST  Ballpool KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  26. 26. 舞台 http://www.uga-web.com/sb/KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  27. 27. プロジェクション・マッピングhttp://www.youtube.com/watch?v=k8nblUJwqkQ KINECT introduction 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で変わる未来KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  30. 30. さまざまなデバイスへの搭載 http://www.ionroad.com/KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  31. 31. コンピューターの変化 http://www.chrisharrison.net/index.php/Research/OmniTouchKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  32. 32. リアルとバーチャルの融合 http://channel9.msdn.com/coding4fun/kinect/Kinect--3D--Fusion4D KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  33. 33. コンピューター との関わりKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  34. 34. 学ぶものから感じるものへ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  35. 35. アプリケーション 開発環境KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  36. 36. キーワードKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  37. 37. KINECTKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  38. 38. 購⼊入時の注意KINECTのインタフェースはUSBではない。コンピューターに接続する際は、変換アダプタが必要。 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  39. 39. 購⼊入時の注意Xboxとのセットを買うと、USB変換ケーブルが付属していない。コンピューターに接続する場合は、KINECT単体版を購⼊入すること。 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  40. 40. ライセンスKINECTKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  41. 41. Xtion  ProKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  42. 42. Xtion  Pro  LIVEKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  43. 43. Xtion  Pro  LIVEKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  44. 44. 機能•RGBおよび距離離カメラ•ユーザーおよび⾻骨格の認識識•⾳音声の取得•USB接続/バスパワー動作KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  45. 45. ライセンス禁⽌止事項などは無い 商⽤用利利⽤用が可能KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  46. 46. KINECT  for  Windows  SDK• KINECT  for  Windows  SDKはMicrosoft社が 公式にリリースしているKINECT専⽤用のSDK。• 2011年年12⽉月現在はBeta2となっており⾮非商⽤用 限定だが、2012年年の早い時期に商⽤用版がリリー スされるとアナウンスがある。 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  47. 47. OpenNIKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  48. 48. 概要OpenNIとは、KINECTやXtionに搭載されているチップを設計しているPrimeSnese社や、OpenCVのWillow  Garage社などが提供しているライブラリ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  49. 49. 概要⼀一般的にOpenNIという場合は • APIの「OpenNI」 • ミドルウェアの「NITE(ナイト)」 • ドライバの「Sensor」この3つを合わせたものを指す。KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  50. 50. 概要• 正確には、KINECT⽤用のライブラリではない• Xtion⽤用のライブラリ/ドライバセット• KINECTで利利⽤用する際は、オープンソースで 提供されている⾮非公式のドライバを使⽤用する 必要がある • https://github.com/avin2/SensorKinect KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  51. 51. KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  52. 52. 機能•RGBおよび距離離カメラ•ユーザーおよび⾻骨格の認識識•⾳音声の取得•ジェスチャーや⼿手の動きを認識識KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  53. 53. ライセンス• GPL/LGPLのデュアルライセンス• LGPLであれば、商⽤用利利⽤用も可能• ライブラリの改変は、公開の必要がある KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  54. 54. OpenNIの概要KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  55. 55. OpenNIの構成•Context•Generator•MetaData•CapabilityKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  56. 56. Context• OpenNIライブラリの初期化や、デバイ スの初期化を⾏行行う• GeneratorはContextを通してインス タンスが⽣生成される KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  57. 57. Contextクラス名 概要 OpenNIの初期化やノード(デバイス)の初期化Context を⾏行行う KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  58. 58. Generator•デバイスの機能ごとに分かれている•デバイスデータの取得や設定の変更更、 取得などを⾏行行うKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  59. 59. Generator クラス名 概要ImageGenerator RGBカメラのデータの取得や設定を⾏行行うDepthGenerator 距離離カメラのデータの取得や設定を⾏行行う UserGnerator ユーザーの追跡のデータの取得や設定を⾏行行うHandsGenerator ⼿手の追跡や設定を⾏行行うGestureGenerator ジェスチャーの検出や設定を⾏行行う KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  60. 60. Generator クラス名 概要SceneAnalyzer 床の検出や設定を⾏行行うAudioGenerator ⾳音声のデータ取得や設定を⾏行行う IRGenerator ⾚赤外線のデータ取得や設定を⾏行行う Recorder RGBカメラと距離離カメラのデータを記録する Player Recorderで記録したデータを再⽣生する KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  61. 61. MetaData•デバイスの機能ごとに分かれている•データそのものを扱う•Generatorから取得するKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  62. 62. MetaData クラス名 概要ImageMetaData RGBカメラのデータDepthMetaData 距離離カメラのデータSceneMetaData ユーザーや床のデータAudioMetaData ⾳音声のデータ IRMetaData ⾚赤外線のデータ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  63. 63. Capability•付加機能を提供する•ミラー処理理やポーズの検出、⾻骨格検出 などを⾏行行うKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  64. 64. Capability クラス名 概要 視点機能(RGBと距離離カメラの座標を AlternativeViewPoint 合わせる) MirrorCapability ミラー機能PoseDetectionCapability ポーズの検出機能 SkeletonCapability ⾻骨格の検出、追跡機能 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  65. 65. NITEの概要KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  66. 66. NITEの構成•Session•DetectorKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  67. 67. Session•NITEのジェスチャー検出は、セッショ ンという範囲で⾏行行われるKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  68. 68. Session クラス名 概要 SessionManager セッションの開始や終了了を制御するMultiProcessFlowClient マルチプロセスでのデータの受信側 KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  69. 69. Detector•ジェスチャーの検出器KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  70. 70. Detector クラス名 概要XnVWaveDetector ⼿手の左右動作を検出するXnVPushDetector ⼿手の前後動作を検出するXnVCircleDetector ⼿手の円動作を検出する ⼿手の上、下、右、左、前、後ろの各XnVSwipeDetector 動作を検出するXnVSteadyDetector ⼿手の静⽌止を検出する KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  71. 71. Hello  OpenNI!!KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  72. 72. ⼿手を振ると”Hello”と表 ⽰示するアプリ KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  73. 73. ソースコードKINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  74. 74. // see : http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=424 #include <iostream> #include <XnOpenNI.h> #include <XnVNITE.h> // static void XN_CALLBACK_TYPE SessionDetected( const XnChar* strFocus, const XnPoint3D& ptPosition, XnFloat fProgress, void* UserCxt ) { std::cout << "SessionDetected:" << strFocus << "," << fProgress << std::endl; } // Wave static void XN_CALLBACK_TYPE WaveCB( void* pUserCxt ) { std::cout << "Hello OpenNI & NITE World!!" << std::endl; } void main( int argc, char* argv[] ) { // OpenNI xn::Context context; XnStatus ret = context.InitFromXmlFile( "SamplesConfig.xml" ); // NITE XnVSessionManager sessionManager; ret = sessionManager.Initialize( &context, "Wave", "RaiseHand" ); sessionManager.RegisterSession( 0, &SessionStart, 0 , 0 ); // Wave XnVWaveDetector wave; wave.RegisterWave( 0, &WaveCB ); sessionManager.AddListener( &wave ); // while ( true ) { // context.WaitAndUpdateAll(); sessionManager.Update( &context ); } }KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  75. 75. インクルードファイル#include <XnOpenNI.h>#include <XnVNITE.h> KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  76. 76. OpenNIの初期化// OpenNIxn::Context context;XnStatus ret =context.InitFromXmlFile("SamplesConfig.xml"); KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  77. 77. NITEの初期化// NITEXnVSessionManager sessionManager;ret = sessionManager.Initialize( &context, "Wave", "RaiseHand" ); KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  78. 78. セッション遷移を通知する コールバックの設定sessionManager.RegisterSession( 0, &SessionStart, 0 , 0 ); KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  79. 79. セッション開始のコールバック//static void XN_CALLBACK_TYPE SessionDetected(const XnChar* strFocus, const XnPoint3D& ptPosition,XnFloat fProgress, void* UserCxt ){ std::cout << "SessionDetected:" << strFocus << "," << fProgress << std::endl;} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  80. 80. Waveジェスチャーの検出設定 // Wave XnVWaveDetector wave; wave.RegisterWave( 0, &WaveCB ); sessionManager.AddListener( &wave );実際にジェスチャーを検出させてみましょう。セッションの開始にWaveを使っていますので、そのままWaveジェスチャーを検出させてみます。ジェスチャーの検出は、ジェスチャーごとに検出⽤用のクラスが⽤用意されています。今回はWaveを検出させるのでXnVWaveDetectorを使⽤用します。ジェスチャーを検出させるための準備は、⼤大まかに次の四ステップとなります。 1.ジェスチャー検出器を作成する   2.ジェスチャー検出器の設定をする(オプション)   3.ジェスチャーを検出した際のコールバックを設定する   4.セッションマネージャーにジェスチャー検出器を登録する KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  81. 81. Waveジェスチャーの検出// Wavestatic void XN_CALLBACK_TYPE WaveCB( void* pUserCxt ){ std::cout << "Hello OpenNI & NITE World!!" << std::endl;} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  82. 82. メインループ//while ( true ) { // context.WaitAndUpdateAll(); sessionManager.Update( &context );} KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  83. 83. SamplesConfig.xml KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  84. 84. <OpenNI> <Licenses> <License vendor="PrimeSense" key="insert key here"/> </Licenses> <Log writeToConsole="true" writeToFile="false"> <!-- 0 - Verbose, 1 - Info, 2 - Warning, 3 - Error (default) --> <LogLevel value="3"/> <Masks> <Mask name="ALL" on="false"/> </Masks> <Dumps> </Dumps> </Log> <ProductionNodes> <Node type="Depth"> <Configuration> <Mirror on="true"/> </Configuration> </Node> <Node type="Gesture" /> <Node type="Hands" /> </ProductionNodes></OpenNI>KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.
  85. 85. ありがとうございましたmiyagi.hideto@geis.co.jpnakamura.kaoru@geis.co.jp KINECT introduction by Geis Co. Ltd. is licensed under a Creative Commons - - 2.1 License.

×