ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Kinect Service を使ってみる(1) Kinect Service とは


CodePlexにはいくつかKinectの機能を拡張するライブラリがあります。

  • Kinect の描画を、より簡単に行う Coding4Fun Kinect Toolkit
  • Kinect SDK を使ってジェスチャーやポーズの認識機能を付加する Kinect Toolbox
  • そして、今回の Coding4Fun Kinect Service です

Kinect Service は、KinectのデータをTCPで使ってネットワーク配信するライブラリです。このライブラリを使うと、Kinectが接続されていないPCやデバイスでも、Kinectのデータを利用することができるようになります。
「PCやデバイス」と表現したのは、Kinect Serviceで提供されている機能、サンプルにはWPF用とWindows Phone用があるため、Windows PhoneでもKinectのデータを扱うことができます。

また、ソースも公開されているので、プロトコルを合わせればさまざまな環境、言語に適用することができるでしょう。受信側にはKinect for Windows SDKは必要ないので、SDKがサポートしていないWindows Vista や XPでもKinectのデータを使ったアプリケーションが実装できると考えられます。ただし、扱えるデータはKinectに入力されるデータだけですので、よりSDKに合わせるためには独自に拡張していく必要があるでしょう。


今回、いくつかの環境で試してみたので、WPFWindows Phone、Windows 8 Consumer Previewの メトロ・アプリケーションでの利用を紹介します。なお、メトロ・アプリケーションについては、僕がソースを改造して(今のところ無理やり)動作させています(なんかあっても責任持てません的な意味で...)。

Kinect Serviceの入手

Kinect Serviceはこちらから入手することができます。

環境の入手は、実行ファイルのみのZIPファイル、ソースコード全体のZIPファイル、NuGetでのインストールになります。
今回は、サンプルを使用するので、実行ファイルのみのZIPファイル、ソースコード全体のZIPファイルをダウンロードします。

データ配信の準備

ダウンロードした実行ファイルのZIPファイルを解凍すると、いくつかのフォルダが出てきます。
とりあえずサンプルを動かすので、KinectService\Samples\ の下を見てみましょう。
HostsとClientsの二つのフォルダがあります。Hostsはデータの配信側、Clientsはデータの受信側のサンプルアプリケーションです。


次にデータの配信を行うHostsの下をのぞいてみます。
ConsoleHostとWindowsServiceの二つのフォルダがあります。名称そのまま、コンソールアプリケーションと、Windowsサービスとして動作するアプリケーションです。


お試しなので、ConsoleHostをのぞいてみましょう
たくさんファイルがありますが、Coding4Fun.Kinect.KinectService.ConsoleHost.exeがサンプルの配信アプリケーションです。このアプリケーションをKinectが接続されているPCで実行します。
すると、IPアドレスの一覧が表示され、クライアントの接続を待ちます(ファイヤーウォールの解放画面が出たら、許可してください)。


ここまでで、ホスト(配信側)の準備は完了です。
続いてクライアント(受信側)を見てみましょう。