Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

2,107 views

Published on

マイクロソフト社のKinectセンサーをAIRアプリから利用できるライブラリ「AIRKinect」についてお話しします。
ライブラリの概要と実装方法をお話しします。 また、デモアプリの実演や 「AIRKinect」で開発されたアプリなども紹介します。

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
2,107
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

  1. 1. AIRKinect についてFxUG 勉強会 第166回 in 仙台2012年 04月21日 (水) 徳山禎男
  2. 2. アジェンダ 自己紹介 Kinectとは Kinectの開発環境について AIRKinectとは AIRKinect2.1による開発 AIRKinect事例(動画) AIRKinectをはじめる人は…
  3. 3. 自己紹介
  4. 4. 自己紹介 tokufxughttp://twitter.com/tokufxug/ 徳山 禎男 業務システムWEBアプリ開発者
  5. 5. 自己紹介 よく使用しているテクノロジー Java (Servlet, JSP, Struts) Flex 3, AIR 1.5 FxUG東京勉強会運営メンバー
  6. 6. Kinectとは
  7. 7. Kinectとはマイクロソフト社の家庭用ゲーム機。XBOX360用のモーションセンサーコントローラ。
  8. 8. Kinectとはマイクロソフト社の家庭用ゲーム機。XBOX360用のモーションセンサーコントローラ。 体の動きやジェスチャー、 音声を認識して遊ぶこと が可能。
  9. 9. KinectとはKinectはUSBで接続します。
  10. 10. KinectとはUSB接続が可能なことから、PCやMacに接続して…
  11. 11. KinectとはUSB接続が可能なことから、PCやMacに接続して Kinect用ライブラリを 使ったアプリケーション が開発されました。
  12. 12. Kinectとはこの現象を「Kinectハック」と呼ばれるようになります。
  13. 13. Kinectとはこの現象を「Kinectハック」と呼ばれるようになります。 Kinectハックをきっかけに、 マイクロソフトから、 Windows用ドライバが リリースされます。
  14. 14. Kinect 開発環境についてKinect SDK Beta2対応OS:Windows7 ~(詳細な要件はこちら) Kinect for XBOX ¥14,800-
  15. 15. Kinect 開発環境についてKinect SDK Beta2対応OS:Windows7 ~(詳細な要件はこちら) Kinect for XBOX ¥14,800-商用利用不可非商用可(2016年6月16日まで)
  16. 16. Kinect 開発環境についてOpenNI(OpenNI, Nite, SensorDriver)対応OS:Windows7 ~ Kinect for XBOX ¥14,800-SimpleOpenNIプロジェクトで全て揃うようです。
  17. 17. Kinect 開発環境について商用利用版もあります。
  18. 18. Kinect 開発環境について Windows に対応した Kinect for Window が必要です。
  19. 19. Kinect 開発環境について Windows に対応した Kinect for Window が必要です。価格は¥24,800-マイクロソフトオンラインショップで販売しています。
  20. 20. Kinect 開発環境について Windows に対応した Kinect for Window が必要です。Kinect SDK Version 1対応OS:Windows7 ~
  21. 21. Kinect 開発環境について Windows に対応した Kinect for Window が必要です。Kinect for Windows と Kinect SDKバージョン1によるアプリは商用可。
  22. 22. Kinect 開発環境について Windows に対応した Kinect for Window が必要です。Kinect for XBOX と Kinect SDKバージョン1によるアプリは、商用/非商用どちらとも不可。
  23. 23. Kinect 開発環境について Windows に対応した Kinect for Window が必要です。Kinect for XBOX と Kinect SDKバージョン1によるアプリは、商用/非商用共に不可。
  24. 24. Kinect 開発環境についてMac( Lion, Snow, Leopard )の場合
  25. 25. Kinect 開発環境についてMac( Lion, Snow, Leopard )の場合 Kinect for XBOX ¥14,800-
  26. 26. Kinect 開発環境についてMac( Lion, Snow, Leopard )の場合 Kinect for XBOX ¥14,800-OpenNI, Nite,SensorKinect が必要。
  27. 27. Kinect 開発環境について Windows に対応した Kinect for Window は…
  28. 28. Kinect 開発環境について Windows に対応した Kinect for Window は…Macでは認識しませんでした…。
  29. 29. Kinect 開発環境について Windows に対応した Kinect for Window は…Kinect for XBOX でないと、動作しないようです。
  30. 30. Kinect 開発環境について AIRアプリからKinectセンサーに アクセスするには…?
  31. 31. Kinect 開発環境について AIRKinect
  32. 32. AIRKinectとは
  33. 33. AIRKinectとはAIRアプリケーションからKinectセンサーを利用する為のライブラリ。
  34. 34. AIRKinectとはAIRアプリケーションからKinectセンサーを利用する為のライブラリ。開発元:as3NUI
  35. 35. AIRKinectとはAIR 3 の新機能、ネイティブ拡張 for AIR で開発。
  36. 36. AIRKinectとはAIR 3 の新機能、ネイティブ拡張 for AIR で開発。ライブラリだけでなく、Windows なら Kinect SDK、OpenNIが必要。Mac は、OpenNIのみ。
  37. 37. AIRKinectとはAIR 3 の新機能、ネイティブ拡張 for AIR で開発。ネイティブの実装は意識せず、ActionScriptだけで、Kinectアプリが、作れます。
  38. 38. AIRKinectとはAIRKinectのバージョンについて
  39. 39. AIRKinectとはAIRKinectのバージョンについてAIRKinect version 1.xAIRKibect version 2.x
  40. 40. AIRKinectとはAIRKinectのバージョンについてAIRKinect version 1.xAIRKibect version 2.xバージョンが2つ存在します。
  41. 41. AIRKinectとはAIRKinect version 1.x
  42. 42. AIRKinectとはAIRKinect version 1.x最新版:version 1.7.1はじめにリリースしたバージョン機能: RGBカメラ, 深度カメラ, 骨格追跡
  43. 43. AIRKinectとはAIRKinect version 1.x最新版:version 1.7.1機能拡張用ライブラリも別途提供。
  44. 44. AIRKinectとはAIRKinect version 1.x最新版:version 1.7.1機能拡張: ヒストリー、骨格追跡の保存と再生、 ジェスチャー, 領域判定…etc
  45. 45. AIRKinectとはAIRKinect version 2最新版:version 2.1
  46. 46. AIRKinectとはAIRKinect version 2最新版:version 2.1実装方法が簡単になりました。機能: RGBカメラ, 深度カメラ, 骨格追跡, PointCloud
  47. 47. AIRKinectとはAIRKinect version 2最新版:version 2.1実装方法が簡単になりました。機能: OpenNI for Windowsの対応、 ニアモードの対応(MSオンリー)
  48. 48. AIRKinectとは AIRKinectには、 オーディオ機能が 搭載されていません。
  49. 49. AIRKinectとは 今回は、 AIRKinect2.1を使用した AIRアプリ開発に ついて解説します。
  50. 50. AIRKinect2.1による開発今回使用する開発環境:
  51. 51. AIRKinect2.1による開発今回使用する開発環境: Windows 7 搭載 PC Kinect SDK version 1.0 Flash Builder 4.6 AIR 3.1
  52. 52. AIRKinect2.1による開発今回使用する開発環境: Windows 7 搭載 PC Kinect SDK version 1.0 Flash Builder 4.6 AIR 3.1AIRKinectがSWFバージョン14な為、作成するアプリはAIR3.1以上が必須条件。
  53. 53. AIRKinect2.1による開発準備
  54. 54. AIRKinect2.1による開発準備airkinect-2-coreページにアクセス。
  55. 55. AIRKinect2.1による開発準備airkinect-2-coreページにアクセス。Download の zip をクリック。
  56. 56. AIRKinect2.1による開発準備ZIPフォルダを解凍後、binフォルダにあるairkinect-2-xx.aneを取り出します。 Kinect SDKの方 OpenNIの方
  57. 57. AIRKinect2.1による開発準備ANEファイルがネイティブ拡張for AIR のライブラリファイルです。 Kinect SDKの方 OpenNIの方
  58. 58. AIRKinect2.1による開発準備AIRプロジェクトの作成を行った後、airkinect-2-xx.aneをネイティブ拡張ライブラリとして登録します。
  59. 59. AIRKinect2.1による開発準備リソース→ActionScriptビルドパス→ネイティブエクステンションで「ANEを追加」
  60. 60. AIRKinect2.1による開発準備リソース→ActionScriptビルドのパッケージ→ネイティブエクステンションでパッケージの箇所のチェックボックスにチェックを入れます。
  61. 61. AIRKinect2.1による開発開発
  62. 62. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス
  63. 63. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス RGBカメラの実装
  64. 64. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス RGBカメラの実装 深度カメラの実装
  65. 65. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス RGBカメラの実装 深度カメラの実装 骨格追跡の実装
  66. 66. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス RGBカメラの実装 深度カメラの実装 骨格追跡の実装 マスクモードの実装
  67. 67. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス RGBカメラの実装 深度カメラの実装 骨格追跡の実装 マスクモードの実装 ポイントクラウドの実装
  68. 68. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラス
  69. 69. AIRKinect2.1による開発開発 AIRKinect2.1のコアクラスcom.as3nuinativeExtensions.air.kinect  Kinectクラス  KinectSettingクラス
  70. 70. AIRKinect2.1による開発開発  Kinectクラス
  71. 71. AIRKinect2.1による開発開発  Kinectクラス Kinectセンサーの設定、実行開始、 実行終了、カメラやセンサーから 取得した情報を管理するクラス。
  72. 72. AIRKinect2.1による開発開発  Kinectクラス実装例var kinect:Kinect = Kinect.getDevice(); … … … … … …kinect.addEventListener(…kinect.start(kinectSetting);
  73. 73. AIRKinect2.1による開発開発  KinectSettingクラス
  74. 74. AIRKinect2.1による開発開発  KinectSettingクラス Kinectセンサーの各種モードを 設定する為のクラス。
  75. 75. AIRKinect2.1による開発開発  KinectSettingクラス実装例(RGBカメラ - 320x240)var setting:KinectSetting = new KinectSetting();setting.rgbEnabled = true;setting.rgbResolution = CameraResolution_320_240;
  76. 76. AIRKinect2.1による開発開発実装の流れ
  77. 77. AIRKinect2.1による開発開発実装の流れif (Kinect.isSupported()) { …}
  78. 78. AIRKinect2.1による開発開発実装の流れ// Kinectセンサーの接続有無if (Kinect.isSupported()) { …}
  79. 79. AIRKinect2.1による開発開発実装の流れ// Kinectセンサーの接続有無if (Kinect.isSupported()) { // Kinectの処理を記述…}
  80. 80. AIRKinect2.1による開発開発実装の流れ// Kinectの処理を記述
  81. 81. AIRKinect2.1による開発開発実装の流れ// Kinectの処理を記述var kinect:Kinect = Kinect.getDevice();
  82. 82. AIRKinect2.1による開発開発実装の流れ// Kinectの処理を記述var kinect:Kinect = Kinect.getDevice();kinect.addEventListener( DeviceEvent.STARTED, onStart);kinect.addEventListener( DeviceEvent.STOPPED, onStop);
  83. 83. AIRKinect2.1による開発開発実装の流れvar kinectSetting:KinectSetting = new KinectSetting();// kinectSettingで設定処理を行う。
  84. 84. AIRKinect2.1による開発開発実装の流れvar kinectSetting:KinectSetting = new KinectSetting();// kinectSettingで設定処理を行う。// 必要なイベントを登録後、// kinect開始。kinect.start(kinectSetting);
  85. 85. AIRKinect2.1による開発開発 RGBカメラとは? Kinectの映像カメラから BitmapDataに変換したデータを 取得する機能。 解像度: 160x120, 320x240, 640x480
  86. 86. AIRKinect2.1による開発開発 RGBカメラの実装
  87. 87. AIRKinect2.1による開発開発 RGBカメラの実装Kinectクラスの取得。KinectSettingにRGBカメラモードを設定。解像度も設定する。
  88. 88. AIRKinect2.1による開発開発 RGBカメラの実装KinectクラスにRGBカメラ更新イベントを登録。
  89. 89. AIRKinect2.1による開発開発 RGBカメラの実装KinectクラスにRGBカメラ更新イベントを登録。CameraImageEvent.RGB_IMAGE_UPDATE
  90. 90. AIRKinect2.1による開発開発 RGBカメラの実装Kinectをスタート。
  91. 91. AIRKinect2.1による開発開発 RGBカメラの実装Kinectをスタート。 RGBカメラのデモを行います
  92. 92. AIRKinect2.1による開発開発 深度カメラとは? Kinectの近赤外線カメラから BitmapDataに変換したデータを 取得する機能。 奥行情報をモノクロ階調で 表現。ユーザー認識や ニアモードにも対応。
  93. 93. AIRKinect2.1による開発開発 深度カメラの実装
  94. 94. AIRKinect2.1による開発開発 深度カメラの実装Kinectクラスの取得。KinectSettingに深度カメラモードを設定。解像度も設定する。
  95. 95. AIRKinect2.1による開発開発 深度カメラの実装Kinectクラスに深度カメラ更新イベントを登録。
  96. 96. AIRKinect2.1による開発開発 深度カメラの実装Kinectクラスに深度カメラ更新イベントを登録。CameraImageEvent.DEPTH_IMAGE_UPDATE
  97. 97. AIRKinect2.1による開発開発 深度カメラの実装Kinectをスタート。
  98. 98. AIRKinect2.1による開発開発 深度カメラの実装Kinectをスタート。 深度カメラのデモを行います
  99. 99. AIRKinect2.1による開発開発 骨格追跡とは? Kinectセンサーが認識した 身体の関節部位を推定し、 骨格情報を構築する機能。 AIRKinectが提供する 独自クラスで取得する。
  100. 100. AIRKinect2.1による開発開発 骨格追跡の実装
  101. 101. AIRKinect2.1による開発開発 骨格追跡の実装Kinectクラスの取得。KinectSettingに骨格追跡モードを設定する。
  102. 102. AIRKinect2.1による開発開発 骨格追跡の実装Kinectクラスの取得。ENTER_FRAMEでイベント登録後、Kinectをスタート。
  103. 103. AIRKinect2.1による開発開発 骨格追跡の実装ENTER_FRAME毎に骨格追跡の情報を持つユーザー情報を取得。(Vectorで人数分を一括取得。)
  104. 104. AIRKinect2.1による開発開発 骨格追跡の実装ENTER_FRAME毎に骨格追跡の情報を持つユーザー情報を取得。(Vectorで人数分を一括取得。)Kinect.getDevice().userWithSkeletion
  105. 105. AIRKinect2.1による開発開発 骨格追跡の実装ユーザー情報 = Userクラス
  106. 106. AIRKinect2.1による開発開発 骨格追跡の実装com.as3nui.nativeExtensions .air.kinect.data.User
  107. 107. AIRKinect2.1による開発開発 骨格追跡の実装com.as3nui.nativeExtensions .air.kinect.data.User骨格追跡や位置情報などを 保持するクラス。
  108. 108. AIRKinect2.1による開発開発 骨格追跡の実装com.as3nui.nativeExtensions .air.kinect.data.SkeletonJoint
  109. 109. AIRKinect2.1による開発開発 骨格追跡の実装com.as3nui.nativeExtensions .air.kinect.data.SkeletonJoint骨格部位の名前、位置情報を 保持するクラス。
  110. 110. AIRKinect2.1による開発開発 骨格追跡の実装Userクラスから骨格情報を繰り返し取得。for each(var user:User in Kinect.getDevice().usersWithSkeleton) { // ユーザー情報にある骨格情報を繰り返し取得 for each(var joint:SkeletonJoint in user.skeletonJoints) { // 描画処理を行う。 }}
  111. 111. AIRKinect2.1による開発開発 骨格追跡の実装Userクラスから骨格の各部位を取得することも可能。頭:user.head, 左足:user.leftFoot…
  112. 112. AIRKinect2.1による開発開発 骨格追跡の実装 骨格追跡のデモを行います
  113. 113. AIRKinect2.1による開発開発 マスクモードとは? RGBカメラで取得した画像に、 ユーザー認識した画像だけを、 切り抜く機能。 ニアモードにも対応。
  114. 114. AIRKinect2.1による開発開発 マスクモードの実装
  115. 115. AIRKinect2.1による開発開発 マスクモードの実装Kinectクラスの取得。KinectSettingにユーザーマスクモードを設定。解像度も設定する。
  116. 116. AIRKinect2.1による開発開発 マスクモードの実装KinectクラスにUserのマスクイメージ更新イベントを登録。
  117. 117. AIRKinect2.1による開発開発 マスクモードの実装KinectクラスにUserのマスクイメージ更新イベントを登録。UserEvent.USER_MASK_IMAGE_UPDATE
  118. 118. AIRKinect2.1による開発開発 マスクモードの実装Kinectをスタート。
  119. 119. AIRKinect2.1による開発開発 マスクモードの実装Kinectをスタート。 マスクモードのデモを行います
  120. 120. AIRKinect2.1による開発開発 ポイントクラウドとは? ポイントクラウドとは点群 とも呼ばれ、3次元座標の 集合です。 Kinectから得たRGBカメラ と深度カメラ情報から 解析して、ByteArrayで 返却されます。
  121. 121. AIRKinect2.1による開発開発 ポイントクラウドの実装
  122. 122. AIRKinect2.1による開発開発 ポイントクラウドの実装Kinectクラスの取得。KinectSettingにポイントクラウド使用可とする。解像度も設定する。
  123. 123. AIRKinect2.1による開発開発 ポイントクラウドの実装KinectクラスにPointCloudの更新イベントを登録。
  124. 124. AIRKinect2.1による開発開発 ポイントクラウドの実装KinectクラスにPointCloudの更新イベントを登録。PointCloudEvent.POINT_CLOUD_UPDATE
  125. 125. AIRKinect2.1による開発開発 ポイントクラウドの実装Kinectをスタート。
  126. 126. AIRKinect2.1による開発開発 ポイントクラウドの実装Kinectをスタート。 ポイントクラウドのデモを 行います
  127. 127. AIRKinect2.1による開発開発 ポイントクラウドの実装Kinectをスタート。 ポイントクラウドのデモを 行います
  128. 128. AIRKinect事例(動画)AIRKinect作品 ペイントするアプリKinect + Flash + NatzkeRibbons
  129. 129. AIRKinect事例(動画)AIRKinect作品 ゲームアプリ羽を動かして遊ぶゲームアプリ料理するゲームアプリボクシングゲームアプリヒーローアプリ
  130. 130. AIRKinect事例(動画)AIRKinect作品 as3NUIチームのデモサンタなりきりモンスターなりきり
  131. 131. AIRKinectをはじめる人は…参考ページ as3NUI http://www.as3nui.com/ airkinect-2-core http://as3nui.github.com/airkinect-2-core/
  132. 132. AIRKinectをはじめる人は…参考ページ airkinect-2-examples(source) github https://github.com/AS3NUI/airkinect-2-examples ANE-LAB (Google Code)デモアプリはここにあります。 http://goo.gl/hi8OM
  133. 133. ご清聴ありがとうございました。

×