2011/03/29

Kinectがやってきた!

先生が Kinect センサーを買ってくれた。うれしすぎる。

Kinect センサとは、昨年11月に発売された Xbox 360 用のゲームデバイスで、カメラと赤外線の奥行きセンサが搭載されているスグレモノだ。



奥行きが測定できるので、たとえば下のような立体写真をいとも簡単に作成できる(→ 作ってみた)。

2010年6月30日作成。
Hartley手法による深度マップ生成プログラムの実行結果。
しかも、従来の画像解析ではオーバヘッドが大きすぎて実現が難しかったリアルタイムでの立体復元も可能。さらに、奥行きの分解能も向上するため、精度に関しても大幅な改善が期待できる。



いざ開封。本体のデザインもなかなか渋い。

ちなみにコネクタのインタフェースは独自規格ではなく、USB だった。このあたりがいかにも Microsoft らしい。

ぼくは Xbox を持っていないので、付属の Kinect アドベンチャーが遊べず少々残念。



逸る気持ちを抑えつつ、パソコンに接続してみた。

Microsoft が公式 SDK をリリースするという噂を風の便りに聞いたのだが、ちょっと情報不足でよく分からなかったため、今回は暫定的に OpenNI で Kinect を試運転する事にした。

このとき参考にしたのが、『OpenNI: WindowsでKinectを使う』というサイト。

ぼくは最初、うっかり Sensor Kinect ドライバの unstable 版を入れてしまい、サンプルプログラム起動時に『プロシージャ エントリ ポイント xnProductionNodeRelease がダイナミック リンク ライブラリ OpenNI.dll から見つかりませんでした。』というエラーメッセージが現れ、途方に暮れた。

開発者の集う掲示板でも指摘されているが、ダウンロードするファイルのバージョンには細心の注意を払う必要があるようだ。いずれにせよ、上記のサイトの手順を正しく踏めば特に問題なく試用できるようになる。



【赤外線センサの威力】

さっそく、奥行きセンサを試してみた。左側が奥行き情報(明るいほど手前)、右側がカメラの映像である。

意味不明な構えのたーせる氏。
壁に掛けられたカレンダーの僅かな奥行きまでしっかりと測定できている事には驚いた。かなりの高精度である。

ここで、ぼくも節電に協力すべく、部屋の電気をすべて消してみた。

カメラが使えないような暗闇でも、ばっちり奥行きが測定できる。
なんと暗闇でも、人物をしっかりと測定できるではないか(まぁ当たり前なんだけど)。

コンピュータビジョンが使えないようなシチュエーションでも人物のトラッキングが可能であるという事は、これまで画像処理の研究者が頭を悩ませていた照明条件における頑健性などを考慮する必要がなくなる事を意味する。

また、ビジョンに頼らずデータを得られるため、視覚障害者用の福祉デバイスとしても活用が期待できる。こんなに魅力的なデバイス、ゲームだけではあまりに勿体無い。



【おまけ】
キックしてみた。背景と人物がはっきり分離されている。