テクノロジー
ARの仕組みを理解できれば、技術力がなくとも現実を拡張できるのか

ARの名前を聞いたことあるけれども、「ARとは何?」「ARで何ができるの?」「ARがいまいち分からない」という方も多いのではないでしょうか?

そこで今回は、入門者向けにARの特徴や簡単な作り方をわかりやすく解説いたします。この記事を読むことでARの知識が身につき、その物凄さが理解できます。

TECH::NOTE(テックノート)は、未経験から最先端のテクノロジー人材へTECH::CAMP(テックキャンプ)、10週間でエンジニア転職実現までサポートを行うTECH::EXPERT(テックエキスパート)、これらのサービスを運営する株式会社divのオウンドメディアです。

ARの仕組み

出典:photo AC

開発していくにあたり、ARの仕組みを理解しましょう。

まずはAR・VR・MRの違いなどについて説明していきます。

AR=拡張現実とは?

ARとはAugmented Reality(アグメンティッド リアリティー)」の略で、Augmented「拡張された」という意味です。

人が知覚する現実環境をコンピュータにより拡張する技術、およびコンピュータにより拡張された現実環境そのものを指す言葉。

引用元:Wikipedia

つまり、ARは現実世界の情報に別の情報を拡張して表現しているものを指します。

VRARMRの違い

AR以外にも「VR」や「MR」という似たようなものがあります。

VRとは?

VRとはVirtual Realityの略で、「仮想現実」といいます。

Virtualは「仮想の」という意味で、

現物・実物(オリジナル)ではないが機能としての本質は同じであるような環境を、ユーザの五感を含む感覚を刺激することにより理工学的に作り出す技術およびその体系。

引用元:Wikipedia

去年発売された、「Play Station VR」が有名で、まさに仮想の世界に没入することができます。

他にも「HTC Vive」や「Oculus Rift」というHMD(ヘッドマウントディスプレイ)というものがあり、Unityを使ってVR開発することが可能です。

▼スマートフォンでVR体験。Unity+Gear VRで手軽にVR開発を始めてみよう!

2017年現在、VR開発を始めるうえでの最大の障壁の1つが機器の高価さです。例えば、Oculus Riftで開発をするにはOculus Riftに加えて「Oculus Ready」と呼ばれるハイエンドのゲーミングPCが必要です。HMDとゲーミングPCの総額はおよそ20万円です。

一方、スマホVRに特化したOculus製HMD「Gear VR」は2017年10月現在、amazonで6390円です。UnityではGear VR向けVRアプリを開発することも可能です。HMD選びに悩んでいる方に、最適な一台です。

MRとは?

MRとはMixed Reality」の略で、「複合現実」といいます。

Mixedはその名の通り、「複合された」という意味で、仮想世界に現実世界の情報を取り入れ、仮想世界と現実世界を複合させて表現することです。

仮想世界を作るVR、現実を拡張するAR、仮想世界と現実世界を複合させるMRとなっています。

AR活用事例

出典:photo AC

ARのゲームといえば、去年、ブームを巻き起こした「ポケモンGOが有名です。

ほとんどの方がAR機能をOFFにしてしまっているかもしれませんが、現実世界にはいないはずのポケモンが現実世界に現れます。

他にも身近にあるARを使ったサービスでは、カメラをかざすと認識したテキストが翻訳される「Google翻訳」やARで手に取るようにわかる 3D宇宙大図鑑(東京書籍)などもあります。

キャペーンでARを活用している例も多くあります。国内だと、スターバックスやグリコ、IKEAなどアーティストとのコラボも増えているようです。
参考URL:https://liginc.co.jp/web/useful/120949

AR技術別仕組み解説

出典:photo AC

ARの仕組みにはいろいろな種類があります。

技術的な特性から、大きくは2つに分けられます。

1つ目は、ロケーションベースAR」というGPSなどから取得可能な位置情報を利用して情報提示を行うものです。


2つ目は、ビジョンベースAR」という画像認識空間認識などの技術を応用して直接目の前にある環境を認識・解析することで情報提示を行うものです。

ビジョンベースARは、さらに二種類に分けられ、1つは「マーカー」と呼ばれる決まった形の図形を認識することによって情報を提示する「マーカー型」、もう1つは、決まった形の図形ではなく現実の環境に実在する物体や空間そのものを認識・識別して、それを基に提示位置を特定し情報を出現させる「マーカーレス型」です。

それでは技術別の詳細を解説していきます

ロケーションベースAR

ARデバイスの位置情報を取得して、それにあった情報を表示させる方法です。
GPSなどによる位置情報だけではなく、磁気センサによる方位(情報を見ようとしている人の向いている向き)や加速度センサによる傾き(視線の仰角や俯角)などと併せて、情報を提示する場所を決めています。

メリットは、位置情報の取得や、向き・傾きなどの取得といった要素技術が、現状利用できるデバイスやプラットフォームでは比較的容易に扱えるようになっているため、基本的なものであれば特別なライブラリなどを別途利用しなくとも、実現可能である点です。

一方デメリットは、今のところ主要な位置情報源をGPSに頼る部分が大きく、付加情報の表示位置の精度的な面でズレが発生する可能性が挙げられます。

最近は、端末に実装されているGPSプロセッサの性能向上や、補正情報の付加などにより誤差は少なくなってきてはいますが、完全にズレの発生を防ぐのは困難です。

ロケーションベースなサービスでは海外のARプラットフォームであるLayerなどが有名です。

ビジョンベースAR

画像認識や空間認識などで情報を取得し、それにあった情報を表示させる方法です。

ビジョンベースARには2つの種類があります。

「マーカー型ビジョンベースAR」と「マーカーレス型ビジョンベースAR」です。

 マーカーとは?

ARを表現するために用いられる画像で、その画像を認識して、情報を拡張します。

マーカーがあれば、ARが表現できますが逆にマーカーがないとARが表現できなくなるという制約があります。

マーカー型ビジョンベースAR

マーカーを読み取り、そこに付加情報を表示させます。

通常マーカー型ARを実現する場合、マーカーの認識と認識したマーカーに対して特定の付加情報を提示する機能を持ったライブラリやエンジンを利用するのが一般的です。

マーカーのパターンがどのようなものである必要があるかは、利用するライブラリなどに依存します。

メリットは、マーカーを置くことで付加情報の提示位置を決めることが可能なため、提示したい場所へ正確に付加情報を提示できることや、
すぐに利用できるOSSのライブラリが公開されていて、比較的取り組みやすい点です。

ライブラリとしては、奈良先端科学技術大学院大学加藤博一氏によって開発された「ARToolKit」が有名で、他に公開されているライブラリもこちらをベースにしたものが多数あります。

デメリットとしては、マーカーを印刷物などで別途準備しておかなければならないことや、マーカー自体を現実の環境に配置する必要があるため、物理的な場所、環境としてマーカーを置くことが難しい(スペースの問題や景観などの側面で)場合には利用できないことなどがあります。

  マーカーレス型ビジョンベースAR

マーカーというものは不要で、現実空間にある物体や、空間を認識して、そこに付加情報を表示させます。

メリットは、特別なマーカーなどを別途用意する必要がなく、物理的なスペースや景観上の問題などでマーカーを配置することが難しい場所や、風景そのものにもピンポイントで付加情報を提示できることです。

オックスフォード大学で研究・開発されているPTAMや、日本国内ではソニーが開発した「SmartAR」などが知られています。

PTAMに関してはモバイル向けのものではありませんが、ソースコードが公開されているので実際に試すこともできます。

デメリットとしては、空間認識や物体の認識では計算量が多くなるのでハードウェアの能力が必要になるのと、細かい要求を満たして精度を保ち、かつ計算量もするとなると、空間認識や物体の認識に関する専門的な知識が少なからず必要となってくることなどが挙げられます。

この点で先述の技術の中では、最も技術的な難易度が高いものといえるでしょう。

例えば、「snow」という犬や猫など様々な姿に変身でき、様々なフィルターを使って小顔にしたり文字を入れたり顔を交換したりできる多機能なアプリです。

首都圏100人の女子大生中約8割が使ったことがあるそうなので、ご存じの方も多いと思います。(出典元:アプリマーケティング研究所

人の顔を認識すると、付加情報を加え、顔を加工してくれます。

 

ARを作るには

出典:photo AC

ARを作るというのは難しそうですが、Unityという「ゲーム開発プラットフォーム」を使って簡単に作ることができます。

実際に、マーカー型ビジョンベースARの体験してみましょう。

Unityを使ったARの作り方

今回は無料でARアプリを作成できるライブラリ「Vuforia」と3Dゲームエンジンの「Unity」を使った開発方法を紹介します。
「Vuforia」とはQualcommが提供するAR制作用のライブラリです。
Unityで使えるARのライブラリはいくつかあります。例えば「AR Toolkit」「metaio」などがよく知られているでしょう。
その中でもVuforiaが特徴的なのは「簡単に使える」点と「ARの幅にとらわれないサンプルが多い」点です。
認識精度が高いことでも知られ、平面のマーカーだけではなく立体のマーカー認識クラウドでの認識カメラからマーカーが離れた際の追従認識など、さまざまな形でARの機能を簡単に実装できます。

https://developer.vuforia.com/

こちらのURLにアクセスしてください。

サイトが開けましたら、Downloadsをクリックしてください。

Vuforia_Developer_Portal__

SDKが選択されていることを確認してから、Download for Unityをクリックして、ダウンロードしてください。

SDK_Download___Vuforia_Developer_Portal_1

Login 画面がでてきますが、まだ登録されてない方は、Create account nowでアカウントを作成してください。

SDK_Download___Vuforia_Developer_Portal_2

登録する情報を記入したら、Registerをクリックし、登録したメールアドレスから登録メールを確認して登録を完了させてください。

再びLogin画面に戻り、メールアドレスとパスワードを記入して、Log inボタンをクリックしてください。

SDK_Download___Vuforia_Developer_Portal_3

Software Licenseという画面が出てくるので、I Agreeをクリックしてください。

SDK_Download___Vuforia_Developer_Portal_4

クリックするとダウンロードが始まります。

ダウンロードが完了しましたら、

「Develop」を選択し、License Manager」になっているか確認し、Add License Key」をクリックする。

License_Manager___Vuforia_Developer_Portal

「Development」を選択してください

License_Manager___Vuforia_Developer_Portal_1

下にスクロールをしていくと、Project Details」が出てきます。

「App Name」「Test」記入して、Next」をクリックしてください。

License_Manager___Vuforia_Developer_Portal_2

チェックを入れ、Confirm」をクリックしてください。

License_Manager___Vuforia_Developer_Portal_3

「License Manger」に追加されます。

License_Manager___Vuforia_Developer_Portal_5

次に、画像を認識させ、ARを表示させるために、画像を登録していきます。

「Target Manager」を選択し、Add Database」をクリックしてください。

Target_Manager___Vuforia_Developer_Portal_1

「Name」「Test」と記入し、Create」をクリックしてください。

Target_Manager___Vuforia_Developer_Portal

「Database」のところに追加されてます。

Target_Manager___Vuforia_Developer_Portal_2

作ったデータベースをクリックしてください。

Target_Manager___Vuforia_Developer_Portal_5

それぞれ選択、記入をし、Add」をクリックしてください。

Target_Manager___Vuforia_Developer_Portal_6

マーカーが追加されてれば、大丈夫です。

Target_Manager___Vuforia_Developer_Portal_7

追加されたマーカーにチェックをつけ、Download Database」をクリックしてください。

Target_Manager___Vuforia_Developer_Portal_8

「Unity Editor」にチェックをつけ、Download」をクリックしてください。

Target_Manager___Vuforia_Developer_Portal_9

ダウンロードが終了しましたら、Unityの新規プロジェクトを開いてください。

WindowAssets->Import Package->Custom Package…で、先ほどダウンロードした2つのファイルをインポートしてください。

以下の項目が追加されます。

Unity_5_5_1f1_Personal__64bit__-_Untitled_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_

「Main Camera」を削除してください。

次に、ProjectビューのVuforia-> Prefabs->ARCameraを選択して、Hierarchyビューにドラッグ&ドロップしてください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__1

次に、先ほどのサイトに戻ります。

「Develop」を選択し、LicenseManager」になっているか確認し、Testをクリックしてください。

License_Manager___Vuforia_Developer_Portal_6

Please copy the license key below into your appの下のグレーのLicense Keyをコピーしてください。

License_Manager___Vuforia_Developer_Portal_7

もう一度Unityに戻ります。

HierarchyビューのARCamera」をクリックすると、Inspectorビューが表示されます。

InspectorビューのOpen Vuforia configurationをクリックしてください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__3

コピーした「License Key」App License Key」に貼り付けしてください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__4

続けて、InspectorビューにあるLoad Test Databaseにチェックをつけてください。

チェックをつけるとActivateが表示されるので、そちらにもチェックをしてください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__5

ProjectビューのVuforia-> Prefabs->ImageTargetを選択して、Hierarchyビューにドラッグ&ドロップしてください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__6

「ImageTarget」を選択し、InspectorビューのImage Target Behavior(Script)」DatabaseImage TargetTestに選択してください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__7

「ImageTarget」子要素として、表示させたいオブジェクトを生成してください。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__9

以上で設定は終了となります。

再生してみましょう。

登録した画像を認識させて、オブジェクトが表示されます。

Unity_5_5_1f1_Personal__64bit__-_Main_unity_-_AR_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1__10

参考サイト:http://qiita.com/hey_cube/items/d12fa91abd6f7826dd78

これが、簡単なARの作り方です。

より本格的に、UnityによるAR開発を学びたい方には書籍「UnityによるARゲーム開発 ―作りながら学ぶオーグメンテッドリアリティ入門」がお勧めです。

UnityによるARゲーム開発 ―作りながら学ぶオーグメンテッドリアリティ入門

本書ではポケモンGOライクなARゲームを、Unityによって開発します。開発したゲームはAndroidでもiPhoneでも遊ぶことができます。巻末にはiOS11で導入されたARKitに関する解説もあるため、ARKitによるiPhone向けAR開発を日本語で学びたい方にもお勧めです。

ARの今後

「スマートグラスのように顔に装着するものではなく、スマートフォンこそが消費者向けARプラットフォームの主流になり、さまざまなAR機能が広く利用されるようになるでしょう」Mark Zuckerberg

引用元:VR・AR市場の今後の動き | TechCrunch Japan

モバイルARが主な原動力となりAR・VRの市場規模が2021年中に1080億ドル(下振れして940億、上振れして1220億ドル)に達するという見方もあり、今後ますます私達の生活と密接に関わっていくでしょう。

まとめ

いかがでしたか?
ARとは?という概要から、仕組みや作り方などをご紹介しました。

将来、ARがないと不便に感じる時代がやってくるほど、ARの将来性は高いです。

これを機に、ARの開発を行ってみてください。

テクノロジースクールTECH::CAMPで
10年後も仕事に困らないスキルを身に着けませんか?

テックキャンプ体験会

TECH::CAMP』はこれからのテクノロジー時代で結果を出せる、次世代のビジネスパーソンを育成するスクールです。以下のような方におすすめです。

  • 今の職場でキャリアアップ、年収アップしたい
  • エンジニア以外の職種でIT業界に転職・就職したい
  • ビジネスパーソンとして総合的にスキルを高めたい

まずは無料体験会に参加してみてください。体験会は月に1000名以上のお申し込みをいただいているため、ご希望の日が埋まることがあります。今すぐのご予約をおすすめします。

体験会について詳しくみる

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

  • カテゴリー