斎藤研・杉本研合同基礎輪講 2014

第2回:デバイス・開発ツール講習(2月17日,2月21日,2月22日)

2週目は,皆さんが研究を進めていく際に使用するデバイスや開発ツールの環境設定と簡単な使い方を紹介します.
具体的には,ARtoolKit,Kinect,Unityが自分のPCで使えるようにしてもらいます.


1.ARToolKit(2月17日)

現実の世界の映像に仮想物体を「上書き」する技術を拡張現実感(Augmented Reality:AR)と言います.
ARはComputer VisionやInteractionの分野でも盛んに研究が行われ,ARを用いたアプリケーションも数多く実用化されています.
ARToolKitはARアプリケーションの作成を簡単に行えるように作られたライブラリです.
ARToolKitを用いることで,カメラで読み込まれたマーカ上に3Dオブジェクトを表示させるアプリケーションを簡単に作ることができます.
下記のサイトがARToolKitについて詳しく説明しています.ARToolKitの仕組みについては輪講中にも触れる予定ですが目を通しておくことを勧めます.
光学ナビ ARToolKitを使った拡張現実感プログラミング

ARToolKitを使ったイノシシの重畳

2.Kinect(2月21日)

KinectはもともとはMicrosoftがXbox360用に発売したコントローラで,プレイヤーの動き・姿勢をリアルタイムに認識し,ゲーム中のキャラクターの動きとリンクさせることができます.
しかし,対象までの距離を測る距離画像センサとしても使え,プレイヤー姿勢推定の技術はそれまでにないものであったため,研究目的でも広く利用されるようになりました.
今回はKinectをPCにつなげ自分で制御できるように(Kinectハッキング,って言います!)してもらい,簡単なプログラミング課題をやってもらいます.
Kinectでできることは主に2つです.

距離情報の取得

Kinectは普通のカメラのようにRGBの情報だけでなく対称物体までの距離(Depth)の情報も取得できます.
距離の情報を用いればカメラから3次元の世界を理解することが容易になります.
多くの場合,3次元空間上の情報は(x, y, z)と(R, G, B)の情報を持った点の集まり(3次元点群)として記述されます.
ここでは,3次元点群処理用のライブラリであるPoint Cloud Library(PCL)をインストールし,Kinectから取得した3次元点群の扱いに慣れてもらいます.

Kinectで撮影したスタンフォードバニーの3次元点群

人物姿勢のトラッキング

Kinectを用いることで,動いている人間の体や各部位をマーカレスにトラッキングできます.
この機能を応用すれば,人の検出やジェスチャーの認識が行えます.
腕を動かして操作する,といったより直感的なインターフェースを作成することも可能です.
ここでは,OpenNIと呼ばれるAPI群をインストールし,Kinectの姿勢推定の機能を体感してもらいます.

Kinectによる人物トラッキングの様子

3.Unity(2月22日)

Unityは統合開発環境を内蔵したゲームエンジンです.
コンピュータゲームやアプリケーションなどのためのインタラクティブな3Dコンテンツが作成できます.
今や全世界でも多くのゲーム等の開発者がUnityを使って多様なコンテンツを作り出しています.
杉本研のIVRC優勝作品であるVirtual Rope SliderもUnityを使って作られています.
ここでは,Unityでの開発環境を整え,Unityを用いてどんなことができるのかを知ってもらおうと思います.