Augmented Reality オーサリングのための ARToolKit for GEM
平井重行
京都産業大学 理学部 コンピュータ科学科
Augmented Reailty (AR) アプリケーションやシステムの構築には、まだまだ知識や技量を必要としており、インタラクションのデザインやコンテンツ制作のために容易に利用できる制作支援環境はまだ少ない。そこで、ビジュアルプログラミング環境 Max/MSP や PureDtata 上で動作するビデオ・CG 処理環境 GEM に対し、AR 処理のためのライブラリ ARToolKit を組み込んだエクスターナルオブジェクト（プラグイン）
ARToolKit for GEM を実装した。これにより、ARToolKit のビジュアルマーカーの認識処理（三次元位置および方向とマーカーの判別）が容易に行え、C 言語や OpenGL を知らずとも、オーサリング感覚で AR コンテンツの制作ができるようになった。その他の利点も含めて、より柔軟に AR の利用環境が実現できる。本稿では、このビジュアルプログラミング環境 Max/MSP, PureData や GEM、ARToolKit の各々の特徴・利点を説明し、実装した ARToolKit for GEM の機能について述べ、簡単な動作例を挙げる。

ARToolKit for GEM:
For Authuring Augmented Reality Applications
Shigeyuki Hirai
Department of Computer Science, Faculty of Science, Kyoto Sangyo University
To development or make an Augmented Reality (AR) application, it requires various knowledge of technologies andtechniques. There is not so many effective tools or authoring environment for interaction design or content production ofAR. In order to provide effective tool for artists and/or designers of media arts, I implemented a GEM external object
called ARToolKit for GEM, which is based on Max/MSP and PureData, including the ARToolKit library. Max/MSPand PureData are famous visual programming environments for interactive arts. The ARToolKit is a library to construct
AR applications. ARToolKit for GEM gives us an easy way to recognize 3D positions and postures of visual markers,
and enables authoring AR contents without C-language and OpenGL. This paper describes implementation,functionalities and sample applications of ARToolKit for GEM with features of Max/MSP, PureData, GEM,
ARToolKit.

1.

的に優れたオーサリング環境やビジュアルプログラ

はじめにミング環境のツールを利用することで、コンテンツビデオ・CG やサウンドを利用したインタラクテ

制作者やデザイナーが表現のアイデアを考案したり、ィブなシステムやコンテンツ、アート作品等の制作

コンテンツ制作作業の効率化を計るなど、クリエイには、ソフトウェアやハードウェアの高度な知識とティブな作業に集中できるようにするのが一般的で技量が必要とされる。これに対し、インタフェースある。このような目的で利用されるコンテンツ制作

1

環境には、Flash や Director、PureData (PD) [1]、のライブラリである。オープンソースソフトウェア

Max/MSP 等がよく知られている。そして、これらとして開発が進められている。図 1 右は、認識されのツールを利用して制作されるコンテンツはアニメ

たマーカーに立方体を重ね合わせるサンプルアプリ

ーションやムービー、音楽等を中心に、ボタンやセケーションの実行例である。このマーカーは自由にンサを利用してインタラクティブに生成・再生・変デザインしたものを利用でき、様々なマーカーを同化させるものが多かった。

時に認識させることもできる。AR として重ね合わ一方で、Augmented Reality や Mixed Reality

せて描画する物体は OpenGL を用いてプログラミ（以下、AR/MR）のように、コンテンツのユーザ自ングする必要がある。しかし、容易に三次元位置・身がコンピュータ上の情報と同じ画面や同じ空間内方向認識の機能が扱える点は、AR/MR アプリケーでインタラクションできる新たなインタラクションションを開発する上で非常に便利であり、既に様々技術やコンテンツが登場してきている。それらのシな AR/MR 研究で利用されている。

ステムを開発するためのライブラリやツールに関する提案・開発は幾つもなされているものの、それらの技術を利用するための制作支援環境はまだ少ない。
それら環境もそれほど利用されているわけではない
ことから、C/C++等でプログラミングを必要とするなど、まだまだ知識や技量を必要とすることが多い。
筆者はこれまで、PD や Max/MSP 上で動作する
ビ デ オ ・ CG 処 理 環 境

図 1 ARToolKit の動作例

GEM (Graphics

ARToolKit ライブラリが持つ機能と特徴を列挙す

Environment for Multimedia) [2][3]の開発・提供に関ると以下の通りとなる。

わってきている。このプログラミング環境ではカメ・ ビデオキャプチャ機能

ラによるビデオ入力が簡単に扱え、様々な画像処理機能や CG 描画機能がインタプリタ的に利用できる。
そこで、AR/MR 用ライブラリの機能をこの環境でファイルの読み込み・ マーカー（パターン）ファイルの読み込み利用可能にすれば、PD や Max/MSP のサウンド処・ キャプチャ画像からのマーカー認識

理や GEM によるビデオ・CG 処理の機能を有効に（三次元位置・方向の認識と、複数マーカー種利用でき、AR/MR システムを容易に構築できるオ類の判別を同時に実行）ーサリング環境が実現できると考え、AR/MR 向け

・ キャプチャ画像の背景描画

ビジュアルマーカー認識ライブラリとして有名な
ARToolKit[4][5][6][7]を GEM の一機能として実装した。
本稿では、GEM や ARToolKit の基本的な機能を・ キャプチャ画像（背景表示）と描画物体の三次元座標自動合わせ
・ HMD 表示のためのステレオ描画紹介し、実装した ARToolKit for GEM の機能につ・ マーカーにオーバーレイ表示する CG 物体はいて述べて、簡単な利用例を挙げる。

2.

・ カメラパラメータ（キャリブレーションデータ

OpenGL を利用して自由に描画オーサリング環境として利用する
ライブラリとベース環境について

また、ARToolKit の配布パッケーキャリブレーシ
ョンやマーカーデータ作成のためのユーティリティ

2.1 ARToolKitも同梱されている。

ARToolKit はビデオキャプチャ画像から、平面に本研究では、この ARToolKit のライブラリを後述印刷された正方形囲いによるマーカー（図１左参照）の GEM から呼び出せるようにし、ビジュアルプロの三次元位置と方向を認識することができる C 言語

グラミング環境で AR/MR オーサリングを実現する。

2

2.2

Max/MSP および Pure Data (PD)

これは、プログラミング言語を扱えないアーティス

Max は Miller Puckette 氏が開発したライブ音楽

トやデザイナーでも容易に扱える環境であり、編集向けプログラミング言語であり、当初はスクリプトしながら動作させることが可能であるため、「作りな形式の言語だったが、改良と共に GUI によるビジュがら」「調整しながら」コンテンツ制作できることが、アルプログラミング環境へと発展して現在に至って利用される大きな要因となっている。

いる。プログラミングスタイルは、特定の機能を持

本研究では、この「作りながら」「調整しながら」つ様々なオブジェクト（箱）をパッチコード（線）利用できる特徴を活かして AR/MR コンテンツ制作でつなぎ合わせることで、データフローを記述するの実現を目標とするため、オーサリング環境のベー形となっている。現在は、Cycling’74 社の製品であス環境にはこれらのビジュアルプログラミング環境

り、Macintosh 版と Windows 版が存在する。エクを用いる。

スターナルオブジェクトと呼ばれるプラグイン（共2.3

GEM (Graphics Environment for Multimedia)有ライブラリ）により様々な機能拡張が可能となっ

GEM は PD や Max/MSP 上で動作する OpenGLている。なお、MSP は、Max 上でリアルタイム音ベースのビデオ・CG 処理のためのエクスターナル響信号処理を実現する Max オブジェクト群である。

オブジェクト群である。
当初は Mark Danks が SGI

PD は、Miller Puckette 氏が Max/MSP と同等のマシンの Max 向けに開発したものだったが、PD 上機能を持つフリーソフトウェアとして一から開発しで動作するよう移植され、オープンソースのソフト直したもので、オープンソースの開発スタイルを取ウェアとして現在はオランダの IEM がソースコっている。内部処理エンジンは C 言語で書かれていードの管理を行っている。Windows, Macintosh,るが、GUI のインタフェース処理には Tcl/Tk が採Linux で動作する。その Macintosh 上での実行例

用されている。また、Max と同様にエクスターナルを図３に示す。図中の左側のウィンドウが描画ウィオブジェクトにより機能拡張が可能である。

ンドウであり、右半分の後ろのウィンドウが GEM

Windows, Mac OS X, Linux の各プラットフォーオブジェクトが配置された Max プログラムである。
GEM のビデオ・CG 処理機能を列挙すると次のよムで動作する。画面例を図２に示す。

うになる。
・ 基本図形・形状描画（ポリゴン、曲線、球、文字等）
・ モデリングされた形状の描画
・ 照明処理（光源の種類、色など）
・ 図形や形状の操作（平行移動、回転、変形等）
・ 映像や画像データの読み込み
・ 画像処理（フィルタやエフェクタなど）
・ テクスチャマッピング
・ パーティクル処理・ マウスやキーボードなどの操作入力
・ 描画範囲やタイミングの制御

図 2 PureData (PD) の画面例

本研究では、GEM のビデオ・CG 処理に関する豊（サウンド録音および再生の処理）

富な機能を利用して、様々な AR/MR コンテンツのMax/MSP および PD は、インタラクティブアー制作環境を実現することを目指す。

トのライブパフォーマンスやインスタレーションなどのコンテンツ制作において利用されることが多い。

3

図３ GEM の実行例（ティーポットへのテクスチャマッピング）

3.

ARToolKit for GEM の実装

3.1.

GEM エクスターナルオブジェクトある。ARToolKit 独自の機能以外は GEM の機能を利用するほうが、柔軟なコンテンツ制作に対応できると言える。そのため、2.1 節で挙げた ARToolKit

ARToolKit の機能を GEM で利用するには、GEMの主要機能のうち、次の 3 つの機能を ARToolKit

エクスターナルオブジェクトとして実装する必要がfor GEM の主な機能として利用することにした。

あり、そのベース環境である PD および Max/MSP

・ 入力画像からのマーカー認識のエクスターナルオブジェクトとしても実装する必（三次元位置・方向認識、マーカー判別）

要がある。

・ マーカー（パターン）ファイルの読み込み

PD と Max/MSP は共に C 言語で書かれており、・ カメラパラメータ（キャリブレーションデー

エクスターナルオブジェクトのためのプログラミンタ）ファイルの読み込みおよび入力画像の補整

グインタフェースも C の関数であり、ほぼ同様の関これらの機能のみを利用することの利点には、次の数が用意されている。しかし、両者は兄弟的ソフトものが挙げられる。

ウェアであるものの、関数名や個々の処理の呼び出

1. 入力画像のソースが限定されない

し規約に多少の差異があるため、オブジェクト実装

2. 入力画像にあらかじめフィルタをかけるなどの互換性確保には注意が必要である。の前処理が可能となる

一方、GEM は C++で記述されており、継承関係

3. 認識されたマーカーの三次元情報のみを利用も含めたクラスライブラリとしてエクスターナルオ

した様々なアプリケーションに応用可能

ブジェクトのプログラミングインタフェースが提供

1 の入力ソースについては、従来の ARToolKit でされている。PD, Max/MSP の機能を直接用いる箇は必ずビデオカメラからの入力画像を用いなければ所ではそれらの関数をコールする必要があるが、基ならないところ、GEM の画像フレームデータを使

本的には GEM の基底クラス群で多くの差異は隠蔽

うことにすれば、元々の画像のソースがカメラ入力されているので、注意点は少ない。

3.2.

かムービーファイルか、等は関係なくなる。

GEM と ARToolKit の機能の切り分け

2 の前処理についても、コントラストや色相等のARToolKit を GEM 上で利用するにあたり、ビデダイナミックな調整を画像処理で行うことが可能でオキャプチャ機能などは双方に同じ機能ものが幾つある。従来のカメラ接続しての直接入力画像を扱うも存在するため、利用する機能の切り分けが必要でよりは、様々な AR/MR 利用環境に適応できる可能4

性がある。

ンレットへメッセージ入力する仕様とした。出力に3 については、AR として入力画像にオーバーレイ

ついては、画像データと認識マーカーの情報とは全して表示する必要がないアプリケーションも簡単にく別のメッセージということになるため、オブジェ作成できることが利点である。マーカーの三次元認

クトの出力（アウトレット）を２つに分け、右側を識機能のみを用いて三次元入力インタフェースとしマーカー情報、左側を画像データ出力（GEM メッて応用することなどが考えられる。

セージ出力）とした。

3.3.

入出力メッセージ

なお、GEM エクスターナルオブジェクトでは、エクスターナルオブジェクトとしてのARToolKit

画像データを入力として受け付けるオブジェクトをfor GEM の入出力の種類と内容を規定する必要がPixes 系のオブジェクトと呼び、オブジェクト名のある。前節の通り、ビデオキャプチャ機能や背景画接頭辞に pix_ が付くことが慣わしとなっている。

像の描画などは GEM の機能を利用するので、本オ

このことから、ARToolKit for GEM の GEM 環境

ブジェクトで処理を行う必要はない。必要な処理をにおけるオブジェクト名は “pix_artoolkit” とした。

中心に考えれば、主にマーカー認識処理するためのpix_artoolkit の入出力メッセージを Max/MSP 上画像を受け付けるほか、マーカーデータやカメラパで表現した様子を図 4 に示す。

ラメータのファイルを読み込むためのファイル名のメッセージを入力する必要がある。また、マーカー認識に関する画像処理の閾値や、一度認識したマーカーを積極的に連続して認識しようとするモードのほか、様々な設定をリセットするメッセージも入力に必要と考える。出力に関しては、認識結果のマーカー種類とその三次元座標・向きの情報が挙げられるほか、入力画像の認識処理経過画像やその他画像データを出力することが考えられる。
以上から、入出力メッセージをまとめると次のようになる。
【入力】
・ 画像（マーカー認識のための画像）
・ loadcpara（カメラパラメータファイル）・ loadmarker（マーカーのパターンファイル）

図４ ARToolKit for GEM (pix_artoolkit)

・ threshold（画像処理の閾値）の入出力メッセージ・ continuous（連続認識モード On/Off）・ reset（設定のリセット）【出力】・ 画像（マーカー認識途中の処理画像等）

4.

ARToolKit for GEM の実行例

4.1.

マーカー上への CG 物体の描画実装した ARToolKit for GEM による簡単な動作

・ 認識マーカー情報（ID および三次元情報）

例として、マーカー上に CG 物体を重ね合わせて表入力について、画像データは GEM のメッセージ示する例を図５に示す。図中右側が Max/MSP のプとして扱われるので、GEM の規定上、一番左の移ログラム画面、左側が描画ウィンドウである。複数入力（インレット）を利用する必要がある。それ以のマーカーが独立して認識され、各々の座標や方向外は固有メッセージとして区別できるため、特にイの情報が得られていることがわかる。

ンレットを割り当てずとも、画像と同じ一番左のイ5図５ ARToolKit fo GEM の使用例 1（複数マーカーに対する CG 物体描画）

4.2.

複数マーカーを用いたパーティクル
制御

MXRToolkit[8] は Mirxed Reality 環境構築目的の C 言語ライブラリで、オープンソースプロジェク

2 つのマーカーを用いて、片方をパーティクルのトとして開発されている。機能的には ARToolKit

発生源、もう片方をパーティクルの引力場として作とほぼ同じであるが、動作プラットフォームは用させ、パーティクルの流れをマーカー位置でインWindows のみとなっている。

タラクティブに変化させるデモを作成した。その実MRT (Mixed Reality Toolkit)

行中の様子を図６に示す。

[9] もMixed

Reality 環境構築のためのツールキットである。
C++のクラスライブラリとして提供されており、動作プラットフォームは Windows のみである。
OSGAR[10]は、ARToolKit と Open Scene Graphを組み合わせることで、シーングラフ機能を持たせた ARToolKit のライブラリである。CG 空間内に多くの描画物体がある場合には、シーングラフで描画物体同士の関係を管理・描画するほうがよく、そのための機能を提供している。
DWARF[11]は、ネットワーク上で複数の PDA 等を用いて AR 共有空間とコンテンツを開発することを前提に、CORBA ベースの AR 向けフレームワー
クを提供する。現在のところ、言語は

図６ ARToolKit for GEM の使用例 2

C++/Java/Python に対応しているが、CORBA 対応（マーカーでパーティクルを制御する様子）

5.

している言語であればすぐに対応可能となっている。
動作プラットフォームは Linux, Windows, Mac

関連研究

OS X のほか、iPAQ 上の Linux でも動作する。

5.1 AR/MR 関連ライブラリ・ツールキット

5.2 AR/MR 関連のオーサリング環境

本研究では、AR/MR 処理のコアに ARToolKit を

AMIRE (Authoring MIxed REality) [12] は 、利用したが、同様のライブラリは幾つも存在する。

6

ARToolKit をコアにモデルやテクスチャ画像の読み

PiDiP[19] は PDP をベースに画像処理機能やム込み機能やシーングラフ機能等、高レベル API を提ービーの再生機能などを追加した PD エクスターナ

供し、より素早く AR/MR コンテンツのプロトタイ

ルオブジェクト群である。PDP と同様に GPL でソプ構築を実現することを目的にしている。但し、オースコードが公開されており、動作プラットフォーーサリングと名が付いているものの、C++でのプロムも Linux と Mac OS X である。

グラミングを前提にしている。シーングラフ機能に

GridFlow[20] は行列演算機能を利用してビデオ・は、OpenSG やOpenSceneGraph を利用している。

映像処理を行うためのエクスターナルオブジェクト

DART (Designer’s Augmented Reality Toolkit)集で、内部的に Ruby を使用している。ソースコー[13]は、ARToolKit の機能を Macromedia Director

ドは公開されており、動作プラットフォームはの Xtra として実装し、ビヘイビアなどを用意する

Windows, Mac OS X, Linux 上の PD と jMax でことで Director のオーサリング環境で AR コンテある。
その他、Windows の DirectX の機能を利用してンツを制作できるようにしたものである。Lingo にビデオ・ＣＧ処理を行う PD のエクスターナルオブよるプログラミングも可能となっている。
DesignAR[14] は、3D デザインの商用ツール

ジェクト集 Framestein[21]や、Mac OS 9 までのTouch Designer のビジュアルプログラミング機能

Max/MSP で動作するエクスターナルオブジェクトをコアに、MXRToolkit で機能拡張を行い、AR/MR製品の nato 等がある。

コンテンツをオーサリングとして制作できるように6.

したものである。

おわりにインタラクティブな AR/MR コンテンツをオーサ

5.3. Max/MSP, PD 上のビデオ・CG 処理環境
本研究では GEM をベースにオーサリング環境をリング感覚で柔軟にかつ素早く制作できることを目構築しているが、GEM と同様のビデオ・CG 処理環的に、ARToolKit をビジュアルプログラミング環境

境は多数存在する。

上で利用できる ARToolKit for GEM を実装した。

Jitter は 、 Max/MSP の 製 品 開 発 元 で あ る

ここでは、Max/MSP と PureData 上で動作するビ

Cycling’74 が開発したビデオ・CG 処理向けエクスデオ・CG 処理の機能拡張（エクスターナルオブジターナルオブジェクト集である。行列演算エンジンェクト集）GEM の一機能として実装している。こをコアに持つことで画像処理等の処理に向くが、れにより、従来なら C 言語や OpenGL の知識や技OpenGL 等による描画にも対応している。最近の術が必要な AR/MR システム構築に対し、それらがMax/MSP 環境では一番利用されている映像処理環なくとも、Max/MSP や PureData の扱いさえでき境である。Windows 版と Macintosh 版がある。

れば容易に AR アプリケーションが作れることにな

DIPS[15]-[17]は松田らが開発するエクスターナルオる。そして、様々なアイデアのプロトタイピングやブジェクト群で、元々は Java 版の Max 環境である調整作業など、制作に集中できることが予想される。

jMax 上で動作するエクスターナルオブジェクトでしかし、ARToolKit には複数マーカーを一つの物あった。Max/MSP が Java でのエクスターナルオ体や面として認識する機能等もあり、現時点のブジェクト開発をサポートしたので、Max/MSP 版

ARToolKit for GEM ではその機能には対応していに移植された。DIPS3 が最新バージョンである。

ない。今後は未対応の機能を利用できるようにする

PDP (Pure Data Packet)[18] は PD のエクスター

ほか、Jitter 等の他のビデオ・CG 処理環境でもナルオブジェクトであり、行列演算機能をベースにARToolKit が利用できるようにする予定である。こビデオ・画像処理を行う。ソースコードは GPL でれにより、AR コンテンツ制作環境の選択肢を増や公開されている。動作プラットフォームは Linuxし、新たな AR 環境の創出へ協力する予定である。と Mac OS X である。

7

謝辞[10] Enylton Machado Coelho, Blair MacIntyre and本ソフトウェア開発には、ARToolKit 作者である

Simon J. Julier. "Supporting Interaction in

大阪大学加藤博一氏からご助言を頂きました。感謝Augmented Reality in the Presence of Uncertainの意を表します。

Spatial Knowledge", UIST 2005 (2005)[11] DWARF - http://ar.in.tum.de/Chair/ProjectDwarf[12] Dörner R., Geiger C., Haller M., Paelke V.,

参考文献“Authoring Mixed Reality - A Component and[1]Miller S. Puckette: “Pure Data”, Proc. of

Framework-Based

International Computer Music Conference 1997,

International

pp.224-227 (1997)

Computing, (2002)

[2]

[3]

EntertainmentMax”, Proc. of International Computer Musicand Jay David Bolter. "DART: A Toolkit forConference 1996, pp.67-70 (1996)

Rapid Design Exploration of Augmented Reality

Mark Danks: “Real-time Image and Video

Experiences”, UIST'04 (2004)[14] DesignAR-

http://www.mis.atr.jp/~rodney/designAR/index.htm(1997)[15] 松田周: DIPS:Max のためのリアルタイム映Kato, H., Billinghurst, M. “Marker Tracking and像処理オブジェクト群，情報処理学会研究報

HMD Calibration for a video-based Augmented

告, 2000-MUS-36, pp.49-54 (2000)

Reality Conferencing System”, In Proc. of the[16] Matsuda,S, Miyama,C, Ando,D, Rai,T, "DIPS

2nd International Workshop on Augmented

for Linux and Mac OS X", Proc. of theReality (IWAR 99), (1999)

International Computer Music Conference 2002,

Kato, H., Billinghurst, M., Poupyrev, I., Imamoto,(2002).

K., Tachibana, K., “Virtual Object ManipulationonaTable-Top

AREnvironment”,[17] 松田周, 安藤大地, 美山千香士, 酒井由: マIn

ルチメディアプログラミング環境 DIPS2,

Proceedings of the International Symposium on

情報処理学会研究報告, 2003-MUS-51, pp.1-6

Augmented Reality (ISAR2000), pp.111-119,(2003)(2000)[6]onof[13] Blair MacIntyre, Maribeth Gandy, Steven Dow,

Computer Music Conference 1997, pp.220-223[5]Workshop

Proc.

Mark Danks: “The Graphics Environment forProcessing in GEM”, Proc. of International[4]Approach”,[18] PDP

Kato, H., Billinghurst, M., Morinaga, K.,(PureDataPacket)-

http://zwizwa.fartit.com/pd/pdp/overview.htmlTachibana, K., “The Effect of Spatial Cues in[19] PiDiP – http://ydegoyon.free.fr/pidip.html

Augmented Reality Video Conferencing”, In[20] GridFlow - http://gridflow.ca/

proceedings of the 9th International Conference[21] framestein- http://pinktwins.com/disk/framestein/on Human-Computer Interaction, (2001)[7]

ARToolKit - http://artoolkit.sourceforge.net/[8]

MXRToolkit - http://mxrtoolkit.sourceforge.net/[9]

R. Freeman, A. Steed, B. Zhou, "Rapid Scene
Modelling, Registration and Specification for
Mixed Reality Systems", Proceedings of ACM
Virtual Reality Software and Technology, pp.
147-150 (2005)

8