特集:Kinectセンサーの可能性

C#開発者が“Kinectハック”に挑戦してみた

デジタルアドバンテージ 一色 政彦
2011/05/16
Page1 Page2 Page3

■Kinectハックの可能性

 Kinectハックの事例を見ていくと、「Kinectが未来の技術として、どれほど素晴らしいものなのか」が理解できる。ここでは、筆者の心に響いた事例をいくつか紹介しよう。

●Kinectハックの事例1「ガンダム」

 日本人の悲願である『ガンダム』の開発。そのミニチュア版をKinectで実現した強者(つわもの)が現れた。

 ともかく次の映像を見てほしい。Kinectで体の動きを感知して、その入力を「V-Sido」というソフトで処理することで、「ズゴック」のガンプラ・ロボットを動かしている。

[V-Sido] Control the Humanoid Robot by Kinect

●Kinectハックの事例2「疑似試着」

 Kinectで体を認識すれば、簡単にバーチャルな試着が行える。わざわざ服を着替えなくても、試着後の雰囲気を確かめられるのは便利である。

Kinect Fitting Room for Topshop

●Kinectハックの事例3「肉体言語」

 実用性は低いと思われるので「おばかアプリ」の範囲ではあるが、プログラミングをジェスチャで行おうとする試みは面白い。詳しくは、ブログ記事「肉体言語 Tython - 質のないDiary H」を参照してほしい。

肉体言語 Tython 「Hello, World!」

●Kinectハックの事例4「ウルトラセブン」

 子どものころにあこがれた「ウルトラセブン」になりきり、必殺技であるワイドショットやアイスラッガーやエメリウム光線を出せる。絵画的な面を強化してゲームとして売り出したら、子どもが大喜びしそうである。

Kinectでなりきりウルトラセブン!

●Kinectハックの事例5「宇宙図鑑」

 MIX11では、「WorldWide Telescope」という天体観測用のアプリケーションを、Kinectによるジェスチャ入力で操作するというデモが行われた。Kinectの応用ではあるが、純正のKinect SDKを用いているので「Kinectハック」とはいえない。しかし、Kinectの将来性が感じられる使い方だ。

Kinect and WorldWide Telescope Demo

●Microsoft Researchが提言する「NUI」の可能性

 「NUI」という言葉をご存じだろうか?

 NUI(ナチュラル・ユーザー・インターフェイス)とは、「現在のGUI(グラフィカル・ユーザー・インターフェイス)の次に来る」と、Microsoft Researchおよびマイクロソフトが提唱している未来のUIのことである。NUIの世界では、自然で直感的なUIと操作が実現され、ナチュラル・インタラクション(=人間とコンピュータで自然なやり取り)が行える。

 Kinectは、そのNUIを実現する要素技術として期待されている。近未来のコンピューティングにいち早く取り組みたければ、まずはKinectプログラミングを試してみることをお勧めする。

 以上、Kinectハックについてはだいたい理解できただろうか? それでは、KinectハックをC#で実践していくための準備に取りかかろう。

■KinectハックのためのOpenNI環境の準備

 すでにお伝えしたとおり、まもなく純正のKinect SDKが登場する予定である。対応言語は、Visual Basic、C#、C++などのVisual Studio用の言語。ただし、このSDKを活用した成果物は、非商用目的でしか利用できない。

 純正SDKの登場は待ち遠しいが、しかしとても待ちきれないので、本稿では純正以外のKinectハック用ライブラリを使ってKinectプログラミングに挑戦してみる。

●Kinectハック用のライブラリについて

 Kinectハックを扱えるライブラリやドライバは、いままでにさまざまなものが登場しているが、最も有名なのは、Kinectの仕組みの説明でも登場したPrimeSense社がかかわっているオープンソース(LGPL)のKinectハック対応ライブラリ「OpenNI(Open Natural Interaction)」である(OpenNIの組織についても簡単に紹介しておくと、この組織には、ナチュラル・インタラクション・アプリケーションの、市場への導入を加速させようという目的で、PrimeSense社、Willow Garage、Side-kick、ASUSなどの実力派IT企業が参画している)。

 OpenNIフレームワークでは、人間の骨格や動作、音声などを認識して処理でき、NITEミドルウェアと連携することで(「マイクロソフト製のKinectゲームなどでも使われている」といわれる)高度なジェスチャ認識が行える。

●OpenNIの導入手順

 OpenNIを導入するには、下記の手順を行う必要がある。

  1. OpenNIフレームワークのインストール
  2. Kinectドライバのインストール
  3. KinectとPCをUSBケーブルで接続
  4. NITEミドルウェアのインストール

 順を追って実施していこう。

●OpenNIフレームワークのインストール

 まずは、OpenNIフレームワークをダウンロード&インストールしよう。

 下記のリンク先を訪れ、「Windows x86 (32-bit)」など自分の環境にあった項目の[Download]ボタンをクリックすればダウンロードできる。

 ダウンロードした.MSIファイル(筆者の例では「OpenNI-Win32-1.1.0.41-Dev.msi」ファイル)を実行すると、OpenNIフレームワークのセットアップ・ウィザードが立ち上がるので、指示に従ってインストールを進める(インストール先は、デフォルト値のまま、「C:\Program Files\OpenNI\」とする)。

●Kinectドライバのインストール

 次に、Kinectの各種センサー機能にアクセスできる、OpenNI用のWindows向けドライバ(avin2氏がオープンソースで提供)をダウンロードしてインストールしよう。

 下記のリンク先を訪れ、[Download]ボタンをクリックすればKinectドライバをダウンロードできる。

 ダウンロードした.ZIPファイル(筆者の例では「avin2-SensorKinect-28738dc.zip」)を展開して、生成されたフォルダの配下にある「Bin」フォルダを開き、「SensorKinect-Win-OpenSource32-*.*.*.msi」ファイル(筆者の例では「SensorKinect-Win-OpenSource32-5.0.1.msi」)を実行すればよい(なお、筆者は32bit版のWindows 7環境を使った。64bit環境の説明は割愛する)。

 [PrimeSense Sensor KinectMod *.*.*.* for Windows Setup]ウィザードが立ち上がるので、指示に従ってインストールを進める(インストール先は、デフォルト値のまま、「C:\Program Files\PrimeSense\SensorKinect\」とする。途中で[Windows セキュリティ]ダイアログが表示された場合は、[このドライバー ソフトウェアをインストールする]ボタンをクリックする)。

●KinectとPCをUSBケーブルで接続

 Kinect用のドライバをインストールできたので、実際にPCにKinectをつないで、各種センサーがデバイスとして認識されるかを確かめてみよう。

 (Kinectのプラグを電源に接続した状態で)PCのUSBポートにKinectを接続する。すると、次々と3つのデバイス・ドライバ・ソフトウェアが自動的にインストールされる。

 [デバイス マネージャー]を開いて(具体的には、[スタート]メニューの[コンピュータ]の右クリック・メニューから[プロパティ]を選択し、起動したコントロール・パネルのウィンドウの左側ペインに表示される[デバイス マネージャー]クリックして)、実際にKinectセンサーが認識されるかを確認しよう(インストールには数分ほどかかるので注意してほしい)。

 次の画面はその例で、[<コンピュータ名>]−[PrimeSense]の配下には[Kinect Audio]、[Kinect Camera]、[Kinect Kinect Motor]の3種類のKinect関連ハードウェアが正常に認識されている。

Windows PCで認識されたKinect関連ハードウェア1

●NITEミドルウェアのインストール

 最後にNITEミドルウェアをダウンロードしよう。

 下記のリンク先を訪れ、「Windows x86 (32-bit)」など自分の環境にあった項目の[Download]ボタンをクリックすればダウンロードできる。

 ダウンロードした.MSIファイル(筆者の例では「NITE-Win32-1.3.1.5-Dev.msi」ファイル)を実行すると、NITEミドルウェアのセットアップ・ウィザードが立ち上がるので、指示に従ってインストールを進める(インストール先は、デフォルト値のまま、「C:\Program Files\PrimeSense\NITE\」とする)。途中で、「PrimeSense licence key」の入力を要求されるので、「0KOIk2JeIBYClPWVnMoRKn5cdY4=」(誰でも使えるOpenNI用無償キー)を入力する。

 以上でインストールは完了だ。念のため(環境変数などの確実な適用のため)、ここで再起動しておこう。

 それでは、さっそくKinectハックのサンプルを動かしてみよう。


 INDEX
  特集:Kinectセンサーの可能性
  C#開発者が“Kinectハック”に挑戦してみた
    1.Kinectセンサーの概要
  2.Kinectハックの可能性/KinectハックのためのOpenNI環境の準備
    3.Kinectハックのサンプルを動かす/C#+OpenNIフレームワークでKinectハックを試す


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間