利用者ゼロの気がするけど、あいかわらずKinectをPharoにつなげています。
先日、大島さんが$1 Gesture RecognizerのSqueak実装を公開されたので、さっそくKinectで利用してジェスチャー認識をさせてみました。
最初のKinectOSCはサンプルだけで実用性に乏しかったのですが、ジェスチャー認識できれば応用も見えてくるかな。
以前の記事に従ってKinectOSCを導入したら(過去に導入してたら最新版に更新する必要あり)、大島さんの$1 Gesture Recognizerを導入します。
MCHttpRepository location: 'http://ss3.gemstone.com/ss/Dollar1’ user: '' password: ''
Dollar1MorphをPharoで試すには、initializeのsketchの初期化部分を以下のように変更する必要があるけど、Kinectで動かすなら特に変更は不要です。(でもせっかくだから変更しましょう)
sketch := ImageMorph withForm: samplePicture.
後はKinectDollar1を導入すればOK。
MCHttpRepository location: 'http://ss3.gemstone.com/ss/KinectDollar1’ user: '' password: ''
ジェスチャー認識のキモ部分は全て大島さんの実装にかかっており、このモーフの仕事は単に骨格の情報からストロークを切り出すことだけなのですが、アドホックな実装なので以下に気をつける必要があります。
- ジェスチャーを認識するのは右手のみ。
- 首よりも前に突き出したときに認識するようになっている。
- ストロークのはじまりと終わりには、1秒程度静止する必要がある。
- ストロークの記録が始まる時は骨格の背景のグレーが少し明るくなる。
- 今のところProtractorには対応してない。
実際の利用はこんな感じです。
- まずは身体を認識させる(緑背景で骨格が表示されればOK)
- 右手を突き出して1秒ほど静止する。
- 背景が明るいグレーになったらジェスチャーを始める。
- 終わったら(気持ち、開始時より長めに)1秒ほど静止する。
- 画面の上に認識結果が表示される(はず)
慣れないと最初はうまく認識できないかもしれません。私自身はジグザグも星も認識されました。
さて、これを何に使うかな。