先日、Microsoft Research(MSR)で研究員を務める矢谷浩司氏に取材する機会がありました。

 同氏はユーザー・インタフェース(UI)やインタラクション分野の研究者でして、大ヒットとなったMicrosoft社のモーション入力装置「Kinect」がMSRで誕生した経緯や、Kinectを応用した現在のMSRでの研究などについて、先日、来日された際、お話を伺うことができました。

 詳細は、2012年4月30日号の日経エレクトロニクス 特集記事・第3部で「Kinect誕生秘話:スケルトン認識のアルゴリズムはいかにして生まれたか」としてまとめてありますので、そちらをご一読いただければと思いますが、今回はそれらMSRの研究の中でも、特にKinect応用研究の一つ「KinectFusion」をご紹介したいと思います。

 正直、KinectFusionのデモを見た際は、非常に驚きました。

 筆者は、Kinectに関して本欄(旧NEブログ)で下記のように書いておりました。2011年2月の記事です。

「今回のKinectの大ヒット,そして距離画像が容易に利用できるという条件が整ったことで,MSRのコンピュータ・ビジョン,そしてUI関連の研究力が一気に花開くのでは。そんな気がしています。Kinect向けのユーザー姿勢の認識技術は,MSR CambridgeのAndrew Blake氏のグループが手掛けたようですが,これ以外にもまだまだ応用できる研究成果が眠っていることでしょう」同記事へのリンク

 矢谷氏のお話をお聞きして、フレーム間予測を一切廃した、毎フレームでの画像認識(ユーザーの体の部位認識)こそが、Kinectを開発する上でのブレークスルーとなったことなど非常に興味深かったのですが、そうしたKinectが生まれる「前」の研究だけでなく、生まれた「後」の研究にも大いに興味があったわけです。

 Kinectという強力なデバイスの存在が前提となったとき、UI分野でのMSRの研究成果はさらに開花するのだろうと想像しておりましたが、KinectFusionはまさにそんな研究だったのです。

いわば3次元版の「超解像」

 さて、では「KinectFusionとは何か」ですが、手っ取り早く言うと、一時期テレビなどで流行った画像処理技術「超解像」の3次元版のようなものです。

 Kinectは距離画像センサですので、当然、そのままでも3次元座標が取得できるわけですが、それはあくまで距離「画像」であり、あくまで単一の視点からの、限られた画角内の距離情報が得られるだけです。被写体の裏面の3次元形状や手前の物体に遮られた奥の物体の形状などは取得できない(オクルージョン)わけです。よくKinect関連のデモで、Kinectで取得した距離画像を3次元CGとして表示するものがありますが、CGを横に回転させると、側面や裏側がスカスカなのはそういうわけです。

 これに対しKinectFusionは、複数の視点からの距離画像を逐次的に合成し、蓄積することで、単一の距離画像では部分的に欠落する3次元情報を補う技術です。イメージ的には、視点の違いにより3次元再構成が可能になる「運動視差」を、距離画像と組み合わせているような形でしょうか。一般に距離画像センサからの情報には距離方向の情報に雑音が載っていて、本来は滑らかである物体の表面が凸凹になったりしますが、KinectFusionでは、こうした凹凸も、カメラ(Kinect)を被写体の周りでフリーハンドでグルグルと動かしていくことで、凸凹な3次元モデルの表面が滑らかに高精細化されていきます。

 しかも、これらの後処理はGPGPUで実装されており、カメラを動かしているその側で即、対象物や周囲の環境がリアルタイムに3次元(3D)モデル化されていくのです。

 私の拙い説明よりも、デモの動画を見ていただくのが早いでしょう。下記は、KinectFusionが発表された2011年8月のSIGGRAPH 2011でのデモ動画です。

 動画の17秒目くらいから始まるデモが、カメラ自体を動かすことで3次元モデルの領域が次々と増えていく様子を如実に物語っています。

 MSRでは、これ以外にも複数台のKinectを干渉させずに同じ画角内で同時利用できるようにする技術も既に開発済みとか。

複数台のKinectでも干渉しない技術を開発
Kinect自体に微小な機械的振動を与えることで、光が変調され、その変調パターンから自らの照射光のみを取り出せるようになった。上の写真は複数台のKinectにより干渉が起きている様子で、下は同技術により干渉をキャンセルした状態。上の干渉ありの方は、距離画像上の雑音によりスケルトン(腕の方向)が誤認識されているのが分かります。(写真:Microsoft社、2012年4月30日号の特集記事より引用)

 Kinect for Windowsの投入により、メインストリームのWindows系OSでも利用できるようになったKinect。こうしたMSRの先端研究が、手元のKinectで早く体験できるようになることに期待しています。