日本マイクロソフトによるAR的なアプリケーションの実演。手の間の距離に応じた大きさで、両手の中点に地球を表示している。写真右は、日本マイクロソフト デベロッパー&プラットフォーム統括本部 エバンジェリストの川西 裕幸氏。
日本マイクロソフトによるAR的なアプリケーションの実演。手の間の距離に応じた大きさで、両手の中点に地球を表示している。写真右は、日本マイクロソフト デベロッパー&プラットフォーム統括本部 エバンジェリストの川西 裕幸氏。
[画像のクリックで拡大表示]
Kinect for Windows SDKのアーキテクチャ(Microsoft社の資料)
Kinect for Windows SDKのアーキテクチャ(Microsoft社の資料)
[画像のクリックで拡大表示]
OpenNIのアーキテクチャ(PrimeSense社の資料)
OpenNIのアーキテクチャ(PrimeSense社の資料)
[画像のクリックで拡大表示]
Kinect for Windows SDKで座標を認識できる関節。20点ある(Microsoft社の資料)
Kinect for Windows SDKで座標を認識できる関節。20点ある(Microsoft社の資料)
[画像のクリックで拡大表示]

 日本マイクロソフトは、ジェスチャー入力コントローラ「Kinect for Xbox 360」をPCで利用するためのSDK「Kinect for Windows SDK beta」についてセミナー「Tech Fielders セミナー 東京 Kinect for Windows SDK をつかおう!」を開催した。Kinect for Windows SDKはMicrosoft社が2011年6月16日に公開したもの(Tech-On!関連記事)。今回のセミナーでは同社がSDKの概要やサンプル・コード、デモなどを解説したほか、富士ソフトやセカンドファクトリーなどが同SDKの利用例を提示した。

Kinect SDKとOpenNIの違い

 KinectをPCで用いるためのフレークワークとしては、Microsoft社純正のKinect for Windows SDK以外にも、Kinectの距離画像センサーの開発元であるイスラエルPrimeSense社によるオープンソースの「OpenNI」がある。セミナーでは、Kinect for Windows SDKとOpenNIとの違いについて、セカンドファクトリーや日本マイクロソフトなどから説明があった。

 OpenNIではユーザーの各関節の位置(スケルトン)の認識やジェスチャーの認識機能などがコンポーネントとして切り出されており、それぞれがミドルウエアとして流通できるようインタフェースが定義されている。これに対しKinect for Windows SDKの場合、ユーザーのトラッキングなど各種の認識機能はSDKの内部に統合されている。

 またOpenNIの場合、「スワイプ動作などいくつかのジェスチャーの認識機能が標準で用意されている」(セカンドファクトリー)が、Kinect for Windows SDKにはジェスチャー認識機能のたぐいは一切用意されていない。スケルトンの認識やトラッキング機能により、簡易的なモーション・キャプチャとして動作こそすれ、いざユーザーの動作や姿勢から意味のあるコマンドを認識させようとすると、パターン認識のアルゴリズムそのものをスクラッチで実装せざるを得ない状態だ。

 「Kinectはあくまでセンサーに過ぎない。この部分をぜひ開発者の方々に工夫してもらいたい」(日本マイクロソフト)とのことだが、今回のセミナーにSDKの利用者として登壇したセカンドファクトリーからは「標準的なジェスチャーの認識機能は、SDK自体への組み込みを期待したい。今のままではジェスチャー認識機能を実装しようとすると開発負荷が高くなる」との声も聞かれた。

ゲーム機向けの認識機能は降りてくるのか

 そもそも現状のKinect for Windows SDKがかなりプリミティブな機能に留まっているのに対し、Xbox 360では、Microsoft社自身の手により、Kinectによる顔の表情や指の動きの認識までが既に実現されている(Tech-On!関連記事)。今後、こうしたゲーム機向けの高度な認識機能が、PC向けのSDKまでAPIとして降りてくるのかどうかは(関連記事)、現時点ではハッキリしていない。

 PC向けに純正のSDKが出るだけでも大きな進歩であり、スケルトンの認識によるモーション・キャプチャ的な利用方法だけでも、かなりのアプリケーションは期待できそうだ。しかし、仮に将来、Microsoft Researchの研究成果などを盛り込んだ純正のジェスチャー認識APIや顔認識APIなどがPC向けにも出てくるのであれば、外部のデベロッパーは同じものを実装する気は起こらないだろう。ロードマップが未確定だからこそ、今回のSDKは非商用用途に限定しているのだろうが、前述のセカンドファクトリーのコメントにもあるように、パターン認識の専門家でない一般のデベロッパーが認識機能をスクラッチから実装しようとすると、苦労は絶えないようだ。

 なお、ジェスチャー認識の研究では、パターン認識のアルゴリズムとして「HMM(hidden Markov model、隠れマルコフ・モデル)」などの利用が一般的だが、今回のセミナーではそうした話題は聞かれなかった。

(後編はこちら