いまさら聞けないAR(拡張現実)の基礎知識:モバイルARアプリ開発“超”入門(1)(1/3 ページ)
プログラミング未経験でも手軽にAndroidアプリが作れるApp Inventor。本連載では、App Inventorでアプリを作り、使用しているコンポーネントに関して実際にJavaのAPIと比較して、できることを検証していきます
Webアプリ開発者がモバイルARアプリを作るために
「AR(augmented reality)」という言葉が、ごく一部の研究者や技術者の中でしか知られていなかったものから、徐々に一般への認知が広まりつつある状況が生まれてきています。例えばカーナビのようなものに「AR」と名の付く機能が搭載されたり、携帯型ゲーム機にもARを体験できる機能が付いたりなど、身近な応用例も増えてきています。
一般的になりつつあるとはいえ、では実際に「ARを使ったものを作ってみよう」といって「何から手を付ければいいのか」「どう始めればいいのか」興味はあっても踏み込めていない方が、読者の皆さんの中にもいらっしゃるのではないでしょうか?
かくいう、本連載を担当する筆者の所属する開発チームも、その名前からはちょっとARを想像できないようなSIerに所属しているチームで、しかも、ARに関連の深い技術などを得意としてやっていたわけではない者たちの集まりです(筆者たちのチームについて参考までに書かせていただくと、ほとんどのメンバーがWebの開発メインでやってきた者たちで、ちょっと前まではRuby on Railsなどを使って、ごくごく普通のWebアプリを作っていました)。
この連載では、そんな筆者たちがARに取り組んでみようと思い立ってから実際に試してみた経験を皆さんと共有して、「今からARの世界に踏み込んでみよう」と考えている方たちのハードルを少しでも下げられればと考えています。
これから数回に渡って、特にスマートフォンやタブレットなどのモバイル端末上でのARを利用したアプリの作成手法について解説していきます。すぐに始められることを意識して、ここでは主にオープンソースのライブラリなどを利用した手法を取り上げていく予定です。
まず初回は、ARとはどんなものなのかを簡単に振り返ったうえで、筆者たちのチームがARに取り組むに当たって考えている応用例などを少し話し、今後の連載各回の内容を簡単に紹介します。
そもそも、AR(拡張現実)とは、何なのか?
「AR」とはいったいどんなものなのか。もはや、あまり説明するまでもないかもしれませんが、簡単に復習しておこうと思います。
ARの概念
AR Augmented Realityの日本語訳としては、よく「拡張現実」という言葉が用いられます。もともとの英語「augment」という語感でいえば「意図して何かを増やす」という感覚が近いでしょうか。
WikipediaのARの説明の冒頭を引用すると、「現実環境にコンピュータを用いて情報を付加提示する技術、および情報を付加提示された環境そのものを指す言葉」となっています。
現実世界を補う「何か」を追加することで、目の前にある現実以上の情報を提示する技術や、その技術によって表される環境そのものを含めたものがARと呼ばれるものになるかと思います。
本連載では、特に取り上げませんが、この定義からいえば、視覚的な情報の追加というだけではなく、例えば音声によって聴覚的な情報を提示したり、あるいは匂い/香りのようなもので嗅覚的な情報を提示することもARの範疇の中に含まれるものとしてとらえてもいいかもしれません。
モバイルとの親和性
ARという言葉が身近なものとなった背景には、スマートフォンやタブレットといったモバイルデバイス利用の広がりが大きく貢献していると思います。ARは先に書いた通り、現実の世界に情報を追加していく技術です。その点で、持ち歩けて常にその持ち歩いている人の体験している環境とともにあるモバイルデバイスは、ARを実現するための道具として、とても親和性の高いものといえます。
ARを実現する仕組みを作る側からの視点で見た場合も、ここ数年の間に一般的に利用できるようになってきているモバイルデバイスの多くには、カメラや多様なセンサも搭載されていますし、「コンピュータ」として見たときの能力も向上しているので、現実世界に追加する表現を充実させるのに十分な能力が備わりつつあるといえます。
加えて、Androidなどの汎用的なプラットフォームが載ることによって、デバイスネイティブなものにアクセスするような開発も比較的容易にできるようになってきています。
以降「AR」というときは、特に断りがない限りは、本連載のテーマから、モバイル端末上で利用されるものとします。
技術面で見た3つの主なAR実現方法
さて、本連載では視覚的に情報追加するものを扱うわけですが、一口に視覚的に情報を追加するといっても、技術的にはいくつかの技法があります。この部分についても、復習的になるかと思いますが、それらの技法の違いを簡単に説明しようと思います。まず大きく分けて見た場合、技術的な特性から、2つに分けて考えられます。
1つは、GPSなどから取得可能な位置情報を利用して情報提示を行う「ロケーションベースAR」と呼ばれるもので、もう1つは画像認識・空間認識などの技術を応用して直接目の前にある環境を認識・解析することで情報提示を行う「ビジョンベースAR」と呼ばれるものです。
ビジョンベースARは、さらに大きく2つに分かれます。1つは「マーカー」と呼ばれる決まった形の図形を認識することによって情報を提示する「マーカー型」、もう1つは、決まった形の図形ではなく、現実の環境に実在する物体や空間そのものを認識・識別して、それを基に提示位置を特定し情報を出現させる「マーカーレス型」です。
それぞれの技術的な特徴について、もう少しまとめておきます。
【1】ロケーションベースAR
ロケーションベースARは、先に書いたとおり、GPSなどから取得できる位置情報にひも付けて付加的な情報を表示するものです。GPSなどによる位置情報だけではなく、磁気センサによる方位(情報を見ようとしている人の向いている向き)や加速度センサによる傾き(視線の仰角や俯角)などと併せて、情報を提示する場所を決めています。
メリットとしては、位置情報の取得や、向き・傾きなどの取得といった要素技術が、現状利用できるデバイスやプラットフォームでは比較的容易に扱えるようになっているため、基本的なものであれば、特別なライブラリなどを別途利用しなくとも、実現可能であることが挙げられます。
一方デメリットとしては、今のところ主要な位置情報源をGPSに頼る部分が大きく、付加情報の表示位置の精度的な面でズレが発生する可能性が挙げられます。最近は、端末に実装されているGPSプロセッサの性能向上や、補正情報の付加などにより誤差は少なくなってきてはいますが、完全にズレの発生を防ぐのは困難です。
ただ、今話題の準天頂衛星システムや、Wi-Fiベースのロケーションシステムなどが、日常的に利用できるレベルになれば、この点の解消も進むはずですので、それらの技術や環境整備の進展に期待したいところです。
ロケーションベースなサービスでは海外のARプラットフォームである「Layer」などが有名です。
【2】マーカー型ビジョンベースAR
マーカー型ARは、認識されることによって、付加情報の提示位置を特定し、付加情報の出現キーとなるマーカーを利用します。マーカーは認識の対象となるためのある特定のパターンを持った図形です。
通常、マーカー型ARを実現する場合、マーカーの認識と、認識したマーカーに対して特定の付加情報を提示する機能を持ったライブラリやエンジンを利用するのが一般的です。マーカーのパターンがどのようなものである必要があるかは、利用するライブラリなどに依存します。
メリットとしては、マーカーを置くことで付加情報の提示位置を決めることが可能なため、提示したい場所へ正確に付加情報を提示できることや、すぐに利用できるOSSのライブラリが公開されていて、比較的取り組みやすいことが挙げられます。
ライブラリとしては、奈良先端科学技術大学院大学の加藤博一氏によって開発された「ARToolKit」が有名で、他に公開されているライブラリもこちらをベースにしたものが多数あります。後ほど軽く紹介しますが、本連載で利用する「NyARToolKit」「AndAR」もARToolKitベースのものです。
デメリットとしては、マーカーを印刷物などで別途準備しておかなければならないことや、マーカー自体を現実の環境に配置する必要があるため、物理的な場所、環境としてマーカーを置くことが難しい(スペースの問題や景観などの側面で)場合には利用できないことなどが挙げられます。
【3】 マーカーレス型ビジョンベースAR
マーカーレス型ARは、特定のマーカーなどを利用することなく、現実の環境に存在している物体や、その環境自体を空間的に認識することで付加情報の提示位置を特定し、提示します。
メリットとしては、特別なマーカーなどを別途用意する必要がなく、物理的なスペースや景観上の問題などでマーカーを配置することが難しい場所や、風景そのものにもピンポイントで付加情報を提示できることです。オックスフォード大学で研究・開発されている「PTAM」や、日本国内ではソニーが開発した「SmartAR」などが知られています。PTAMに関してはモバイル向けのものではありませんが、ソースコードが公開されているので、実際に試すこともできます。
デメリットとしては、空間認識や物体の認識では、どうしても計算量が多くなるので、ハードウェア的な能力の要求が高くなるのと、細かい要求を満たして精度を保ち、かつ計算量も気にしながらとなると、空間認識や物体の認識に関する専門的な知識が少なからず必要となってくることなどが挙げられます。
この点で、簡単には手を出しにくいものになっています。いままでの手法の中では、最も技術的な難易度が高いものといえるでしょう。
次ページでは、どんなものにARが使えそうか、現在利用/視聴できる主なARサービスを6つ紹介します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.