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

  • 1,702 views
Uploaded on

マイクロソフト社のKinectセンサーをAIRアプリから利用できるライブラリ「AIRKinect」についてお話しします。 …

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,702
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
15
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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