Kinect for windows sensor does not start when using remote WMI
KINECTで取得したデータを保存するアプリケーションを多数のクライアントに配布して実行してみたら正常に動作しなかったという投稿です。
具体的には以下の様な現象が起こっています。
- KINECTのデータを取得するためのアプリケーションを作成した
- Windows 8.1のマシンにアプリケーションを配布し、 WMIアーキテクチャを利用してWindows 7のマシンからリモート実行する
- アプリケーションが実行されていることは確認できたけど、データが保存されていない
- kinectsensor.openが実行されてもsensor.IsAvailableがfalseのまま変わらない
Kinect for windows SDKはユーザセッションがないと動作しない
実は関連する投稿がいくつかあります。
- Calling Kinect SDK APIs from a Windows service is not possible/supported
- Access Kinect v2 from a Windows Service
- Sensor does not Open successfully under windows service
Our API in v2.0 does not support being called from a Service. Sorry.
つまりユーザセッションがない場合はKINECT SDK(と言うかKINECT Service)を使ってKINECTを動作させることはできない、ということです。
クライアントに配布したKINECTアプリケーションを実行するといえば、先日発表されたMicrosoft Cube SDKのDeploy Toolには配布したExeファイルを実行・制御する機能があると記載されていました。
Microsoft Cube SDKが公開されました - ハードコイルド・ワンダーランド
これはどうやって実現しているのか気になるところです(KINECTのデータを受け取るだけでSDKを利用していないのかもしれませんが)が、現状ではリモートデスクトップ接続などでクライアントに接続した状態でしかKINECTv2を動作させる術はありませんでした。