Kinect センサーで夢と魅力にあふれるアプリを“創造”しよう!:必読! Kinect for Windows 基礎のキソ(3/3 ページ)
「Kinect for Windows センサー」によるアプリケーション開発のための“超”入門。本格的な開発を始める前に絶対に知っておきたい、Kinect for Windows センサーの特長やXbox 360版との違い、開発時の注意点、応用例などをまとめて紹介する。
Kinect センサーAPIを使ったプログラミング
Kinect センサーのAPIは、.NET Framework上で動作するManaged向けAPIと、Visual C++ Nativeプログラミングで利用可能なAPIの2種類が用意されています。
前者のManaged APIは、C#やVisual Basicなどでのプログラミングが可能です。それほど精度を要求されないようなアプリケーションや、とにかく早くKinectアプリケーションを作りたい場合などはManaged APIを、センサーの入力情報を基にした複雑な処理や応答性能を要求されるような場合は、Visual C++向けのNative APIを利用するとよいでしょう。
3次元空間のモノの位置や、人体の各部位の追跡、音声認識など興味深い機能が満載のKinect センサーですが、難しく考えることはありません。“センサーはセンサー”です。センサーのAPIを使うこと自体はそれほど難しくはありません。
Kinect for Windows SDK Sample Browserには全部で9つのサンプルプログラムが入っています。全てのサンプルプログラムは、ソースコードも用意されており、各項目の[Install]ボタンをクリックすると、Visual Studio 2010で開くことが可能なソリューション一式を任意の場所にコピーできます。
本稿では、煩雑さを避けるため、あえてソースコードについては説明していません。まずは、それぞれのサンプルプログラムを「Run Sample」で実行して動作を確認し、ソースコード一式を[Install]してソースコードの中身を確認することが、Kinect センサーを活用したプログラミングに練達する早道だと筆者は考えます。また、筆者のブログ「デバイスとITの架け橋」にも各種Tipsを掲載しているのでそちらも併せてご覧ください。
Kinect センサーの利用に当たっての注意
2011年にリリースされたXbox版 Kinect センサーとKinect for Windows SDK β版の組み合わせの場合、開発したアプリケーションを研究目的やコンセプトデモなどで使用することは可能ですが、商用利用は禁止されています。商用で提供するようなアプリケーションやサービスを開発・提供する場合は、Windows PC専用版である、Kinect for Windows センサーと2012年リリースされたKinect for Windows SDKの正式版を必ずお使いください。
また、各種イベントや展示会などで、Windows 7 PC以外のPCなどにKinect センサーをつないでいたり、Kinect for Windows SDK以外のドライバ・ミドルウェアを使っていたりする事例を見掛けることがありますが、Windows 7(Windows Embedded Standard 7含む)とKinect for Windows SDKの組み合わせ以外でのKinect センサーの使用は、“Kinect センサーの利用ライセンス違反”になってしまいますので、Kinect センサーを使ったアプリを開発したい場合は注意してください。
なお、Kinect for Windows SDKの正式版とXbox版 Kinect センサーの組み合わせ、および、Xbox 360とKinect for Windows センサーの組み合わせによる動作は保証されていません。必ず正しい組み合わせでご利用ください。
Kinect センサーの応用とその可能性
Xbox版のKinect向けSDKがリリースされてから、さまざまな取り組みがなされ、Kinect センサーを活用したデモが各種カンファレンスなどで実演されていたり、一部では既にKinect for Windows センサーを使った商用サービスも開始されていたりする状況です。
実画像に、Kinect センサーで計測した人体の部位のグラフィックスを重ねたAR(Augmented Reality)の実現、マウスやキーボードの代替入力、人体の部位の移動によるロボットや機械などの操作、リハビリテーションへの活用、人体の3次元情報に衣類画像を重ねたバーチャル試着室(関連記事:面倒な試着もラクラクに――Kinect+Surfaceでショッピングが楽しくなる)、物体の3次元位置検知による空間やモノの動きの検知など、その応用例はさまざまです。
どちらかといえば、スケルトン追跡の方に注目が集まっているようですが、深度情報もなかなかの使い勝手があります。例えば、ETロボコンの走行体(LEGO Mindstorms NXT)では従来、ソフトウェア制御状況をトラッキングするために、左右の車輪を駆動するステッピングモータのステップ数をロギングするなどしていましたが、この方法ではタイヤのスリップなどもあり、精度がいまひとつでした。これの代わりにKinect センサーを使えば、深度情報をレーダーのように使って走行体の3次元的な位置を計測でき、従来よりも正確かつ直感的に走行結果の妥当性が検証できます(関連記事:担当者が明かす、ETロボコン計測システム開発“秘話”)。
組み込み制御系の応用を考えると、やはり、人体のスケルトントラッキングよりも深度情報がより応用範囲が広いと筆者は考えます。
いずれにせよ、開発者にとって、人体の部位の追跡と3次元空間内のモノの位置がより簡単に、より直接的に計測可能になったことで、それらの情報を基に本来やりたかったはずの応用側のロジック開発に多くの時間をかけられるようになったといえるでしょう。
Kinect センサーとKinect for Windows SDKを使って、ぜひ、夢のある魅力的なアプリケーションを開発してみてください!
最後に、Xbox版とWindows版のKinect センサーの違いを表にまとめておきます(表1)。
Windows版 | Xbox版 | |
---|---|---|
名称 | Kinect for Windows センサー | Xbox 360 Kinect センサー |
SDK | Kinect for Windows SDK 1.0以上 | Kinect for Windows SDK β版 |
動作プラットフォーム | Windows 7、Windows Embedded Standard 7 | Xbox 360、Windows 7、Windows Embedded Standard 7 |
接続I/F | USB | 専用コネクタでXbox 360に接続 USB変換ケーブルでPCに接続 |
解像度 | カラー画像:640×480 深度画像:320×240 |
同左 |
フレームレート | 最大30fps | 同左 |
計測可能距離 | Defaultモード:0.8〜4m Nearモード:0.4〜4m |
0.8〜4m |
計測領域 | 上下43度、左右57度 | 同左 |
仰角 | −27度〜+27度 | 同左 |
その他 | Kinect for Windows SDK 1.0以上との組み合わせで商用利用可能 | 研究、コンセプトデモなどの利用は可能。商用利用は不可 |
表1 Xbox版とWindows版のKinect センサーの違い |
関連キーワード
Kinect for Windows SDK | Kinect for Xbox 360 | Windows Embedded 関連 | Windows | Kinect for Windows | Windows Embedded | プログラミング | ソフトウェア | Xbox 360 | アプリケーション開発 | Microsoft | ユーザーインタフェース | 組み込み
Windows Embedded コーナー
Copyright © ITmedia, Inc. All Rights Reserved.