狠狠撸

狠狠撸Share a Scribd company logo
関西 Kinect勉強会 #0
     Kinect勉強会
OpenNI関連をちょっと調査
      関連をちょっと
OpenNI関連をちょっと調査



    株式会社ソフトレット
     山崎誠 (@letkun)


                     1
会社案内

?株式会社ソフトレットでは、主に以下のような
 開発行っています。

   WEBアプリケーション(主にPHP)の受託。

   スマフォアプリの受託 (Android、iPhone、iPad)

   自社アプリの企画、開発。




                                      2
ソフトレットの公開アプリ
 ソフトレットの公開アプリ
                iPadアプリ

Androidアプリ




                iPhoneアプリ




Android-ライブ壁紙




                            3
関係無いですが???
関係無いですが???
   いですが

?iPhone版『ぷるぷるアプリ ぷりんちゃん』が
 無事、Appleのレビューを通り公開出来まし
 た!




                            4
はじめに

?関西でのキネクト勉強会おめでとうございます。

?私も7月にKinectセンサーとキネクト本を
 購入して、それからあまり触っていません。

?なので、一緒に勉強していきたいと思います。




                          5
本日お する事
本日お話する事

? 本日は、私の方で調査した以下の内容について
  お話したいと思います。

 ① Kinectセンサー自体の予備知識
 ② OpenNI の概要と、環境作りのお話
 ③ NITEサンプルコードをプチHack




                         6
Kinectセンサー自体の
Kinectセンサー自体の予備知識
      センサー自体

?私はヨドバシカメラで、1. 3万円ほどで
 購入しました。

?ネットで探すと、1.2万円ほどで購入できます。




                        7
Kinectセンサーは単体版を購入しましょう。
Kinectセンサーは単体版を購入しましょう。
      センサー

?XboxとKinectの同梱版を買うと変換ケーブル
 がついていません。




                     ここから先が変換ケーブル
                     で、電源供給の為のACと
                     二股に分かれています。




                              8
Kinectセンサーの
Kinectセンサーの種類
      センサー

?センサーの種類は図の通りです。
 赤外線(Depth)センサーは、TxとRxで2つ。


                  赤外線
                  送信(Tx)
                  送信(Tx)側




赤外線
  (Rx)側
受信(Rx)
受信(Rx)側




                             9
他のセンサーデバイス(Xtion)
  センサーデバイス(Xtion)
? Kinectセンサー以外にも、モーションキャプチャデバイ
  スがあるようです。

? 無論OpenNIで動作するようです。(未確認)




                             10
?動画のように無数の赤外線レーザを照射し
 その歪み具合から深度を取得しているようです。




                      11
「人形(ヒトガタ)」の骨格判別
 人形(ヒトガタ)

?人間の骨格の判別は、人力センサーの
 アルゴリズムのみでは不可能なため
 大勢の人間の形状のパターンを機械学習させ
 そのデータを元に判別しています。




   上記サイトからの引用です。
   http://blogs.wsj.com/tech-europe/2010/11/08/key-kinect-technology-devised-in-cambridge-lab/#

                                                                                                  12
という事
という事で???

?Depth(深度)のセンサーと、人形の骨格のマッ
 チング技術により人型と、距離が判別できる。

 こちらの人が
 遠くに居るのか
 隣の人と同じ距離に
 居るが、身長が小さい
 のか判別ができる。




                            13
OpenNIの概要と環境作りのお話
OpenNIの概要と環境作りのお話
             りのお

?OpenNI とは…
  「Open Natural Interaction 」
 …の略で、つまり直訳すると…
  「自然な相互作用」という事。




                                14
OpenNIはフレームワークです
OpenNIはフレームワークです
? 概念的なS/Wスタックは以下のようなイメージです。

               Aplication

                                      NITEは
                                      OpenNIフレームワークの
      OpenNI                          ミドルウェア
               M/W       M/W   NITE




                Driver




                                                  15
環境構築
?基本的には、以下の「Kinectセンサープログラ
 ミング本」と、ネットの情報を元に構築すれば
 簡単に環境構築できますが、自分がつまづいた
 部分を中心にお話します。




                        16
環境構築に必要なもの3
環境構築に必要なもの3つ
       なもの

? 環境を構築する上で、以下の3つが必要です。

 ① OpenNI
 ② NITE
 ③ Sensorドライバー




                      17
ファイルのダウンロードは一括で
ファイルのダウンロードは一括で
? キネクト本の著者@kaorun55さんが
  OpenNI+NITE+Sensorドライバを
  旧バージョン含めて固めてくれていますので
  これを利用すると手早く出来ます。


  http://d.hatena.ne.jp/kaorun55/20110609/1307611002




               @kaorun55さんありがとうございます m(_ _)m




                                                       18
インストールは簡単です
インストールは簡単です

?ダウンロードした3つのインストールと
 VisualStudio をインストールすれば
 基本的には準備完了です。

?本には、「VisualStudio 2010 Express」と
 ありますが、私は 2008 pro で試しましたが
 無論問題ありませんでした。




                                    19
NITEのインストール時
NITEのインストール時

?NITEのインストール時に license key の
 入力を求められますので、以下のKeyを
 インストールする。

   License key : 「0KOIk2JeIBYClPWVnMoRKn5cdY4=」


?後で定義ファイルを修正しても一応…
 対処できます。
  (原因を特定するのに時間がかかりますが)



                                                  20
サンプルの動作確認の
サンプルの動作確認の前に

?インストールが完了したら、OpenNI/NITEの
 サンプルを動作させたくなるのですが
 その前に、以下の点に注意しましょう。

 – OpenNI、NITEの環境は 「C:?ProgramFiles?…」
   にインストールされるので、これを任意のユーザー
   フォルダへコピーして使うようにする。

 – OpenNI/NITE共に、Dataフォルダの中のXMLファ
   イルを書き換える必要があります。


                                         21
OpenNIのXML
 OpenNIの
? <Root>/OpenNI?Data/SamplesConfig.xml




                                         22
NITEのXML①
 NITEのXML①
? <Root>/Prime Sense/NITE/Data

? 以下のファイルのLicenseタグを確認し、keyが入っていなければ
  FREEのkeyを入れておく。




                                       23
NITEのXML②
 NITEのXML②
? <Root>/Prime Sense/NITE/Data/Sample-User.xml


?以下のように<ProductionNodes>タグ内を
 改変しないと使えません。(私はまりました)




                                                 24
<ProductionNodes>タグ改変後
 ProductionNodes>タグ改変後




                         25
環境構築完了

?ここまでできっと動作するようになると思いま
 す。




                         26
NITEのサンプルの きを少
NITEのサンプルの動きを少しHack

?NITEのサンプリの中で一番シンプルな
 『 Boxes Sample 』のソースファイルの
 動きを追いかけてみました。




                             27
サンプルの描画はGLUTを
サンプルの描画はGLUTを使用

?サンプルでは簡易な描画を行う為に、GLUTを
 使用しています。




                          28
CllBackのシーケンス
CllBackの

?『 Boxes Sample 』の中で
 XnVSelectable狠狠撸r1Dに登録したCB関数の
 CALL順序は以下の通りでした。

    手を振ると????

    ?   SessionStart
    ?   Main狠狠撸r_OnActivate
    ?   Main狠狠撸r_OnPrimaryCreate
    ?   Main狠狠撸r_OnValueChange
    ?   Main狠狠撸r_OnHover




                                     29
まとめ

?OpenNI自体はシンプルなので、比較的アプリ
 ケーションの組み立ては簡単に出来る印象。

?センサー入力、トラッキングよりも、アプリ
 ケーションとしての表現をどうするか?が
 慣れていない方にはネックになると思いました。




                           30
おしまい




ご清聴ありがとうございました。(^o^)/




                        31

More Related Content

20110819 関西 kinect勉強会 初級編