今回から2回にわたり、ARToolKit を使ったAR(拡張現実)システムの構築を解説します。ARToolKitは、実行やカスタマイズが容易なオープンソースのARライブラリです。今回は前提となるARの概要について解説し、ARToolKitのサンプルアプリケーションを動作させてみます。

ARって何?

 ARとはAugmented Realityの略で、日本語では拡張現実(または強化現実)と呼びます。現実の世界に画像や文字、音声など様々な情報を重ね合わせ、空間に関する知識を付加することで人間の知覚・認識を補完する技術です。

 似た技術としてVR(Virtual Reality=仮想現実)があります。これはコンピュータで作成した情報を現実空間のように見せる技術です。現実では体験することが困難なシミュレーションなどに使われます。これに対しARは現実の世界に情報を付加するので、現在の体験を支援する際に利用できるのではないかと期待されています。

 ARという言葉に聞き覚えがなくても、実はAR技術を目にしているかもしれません。何気なく見ているテレビ番組の中にも、ARの処理が使われていたりします。例えば、ゴルフや水泳の番組で、映像に合わせて距離を表すラインが表示されたり、また野球やサッカーで国や地域ごとに広告が置き換えられて表示されたりするのは、このARの技術を利用したものといえるでしょう(図1)。

図1●テレビで利用されているARのイメージ
図1●テレビで利用されているARのイメージ
[画像のクリックで拡大表示]

 ARで使われる要素技術自体は1960年代から研究されていましたが、ここ数年ARという名称で知られるようになりました。その理由の一つがハードウェアの進化です。特に最近のモバイル機器は計算能力の向上に加え、カメラ、GPS、電子コンパス、ジャイロスコープなどAR処理を行う際に使えるセンサーが多く搭載されています。このため、近年ではモバイル機器を用いたARが注目されるとともに、モバイルARを通してAR自体が注目されるようになりました。

ARの方式

 ARでは現実世界の上に付加情報を重ねて表示します。情報を適切な位置に表示するために、ARアプリケーションは現実世界を何らかの形で認識する必要があります。

図2●ARエンジンが認識するマーカー
図2●ARエンジンが認識するマーカー

 ここでは、ARアプリケーションによる現実世界の認識方式について、いくつかご紹介します。まず一つ目は、本記事で紹介する「ARToolKit」でも使われている専用マーカー方式です。この方式は現実世界に配置した物理的なマーカーを、Webカメラなどでマーカーを写し、その情報をもとにAR処理を行います。ARToolKitのARエンジンが認識するマーカーは、正方形の黒いフレームの中にマーカーを識別するためのパターンが描画されたものになります(図2)。

 次に、専用マーカーを必要としないマーカーレス方式もあります。この方式は、専用マーカー方式のような特定のパターンを用意する必要がないのが特徴で、ポスターや人の顔などを登録しておき、これらの情報を基にAR処理を行います。専用マーカー方式と比較してシステム負荷の高さや、環境の違いによる対象物認識率の精度などに課題が残っています。しかし、認識対象の自由度が高く、実用的であるために今後注目されるでしょう。

 また、別のアプローチとして、全く画像を処理せず、センサー情報を使う方式があります。この方式は処理が軽い分モバイル用途に向いています。ここで、モバイル機器を用いたARアプリケーションの例を紹介します。

 現実世界において、実際にあるレストランをモバイル端末のカメラ越しに見てみます。このARアプリケーションを通して見ると、図3のように掲示板に書き込まれたこのレストランのレビューを確認することができます。

図3●モバイル機器を用いたARアプリケーションの例
図3●モバイル機器を用いたARアプリケーションの例
[画像のクリックで拡大表示]

 この「レストランの認識」を行う際に、モバイル機器に搭載されているセンサー類を用います。GPSで緯度と経度を取得し、電子コンパスで方角を認識すると、位置情報からこのモバイル機器を通して、どのレストランを見ているのかをある程度予想できます。GPSを使用するため誤差は発生しますが、暗い場所でも同レベルの処理が期待できるという画像認識を使用しない方式でのメリットもあります。

 このような方式を採用したアプリケーションとしては、iPhoneで動作するセカイカメラや、海外発のLayarといったものがあります。