一覧に戻る

3D認識を可能にするSLAMとは?

2017.03.14技術系記事

SLAMという新しいAR技術の解説です。

ARというと画像やマーカーを認識してARコンテンツを表示するものがよく知られています。しかし、次世代のARとしてリアルな世界を解析し、それに合わせてコンテンツを配置するSLAMという技術が台頭してきています。今回はそのSLAMについて紹介します。

SLAMとはSimultaneous localization and mappingの略で、位置とマッピングの同時実行といった意味になります。日本語にすると分かりづらいのですが、誤解を恐れずに言えば「リアルな世界を分析し、ARコンテンツを違和感ないように配置する技術」と言えます。

これまでの多くのARコンテンツは宙に浮かんだ状態で表示されていたかと思います。そしてユーザ自身がARコンテンツの大きさを変えたり、回転させたりして現実空間に合わせた表示に最適化していました。これはとても手間のかかる作業です。

これが自動的に行われるのがSLAMになります。最新のWikitudeでも取り入れられており、例えば次の動画のようにARコンテンツがより現実に即して表示されるようになります。

Wikitude SDK 6: See beyond reality with SLAM (markerless AR)

技術的難易度について

SLAMを実現させるために必要となるのが現実空間の奥行きを把握する技術です。人間の目は左右の視差によって自然と現実世界の物体を把握できます。さらに平面な部分、直角な部分、丸まっているところなどをきちんと識別できるようになっています。しかしコンピュータはそうではありません。カメラには視差情報はなく、すべて平面と同じ扱いになってしまいます。

例えばGoogleのAR技術であるProject Tangoを搭載したデバイスではハードウェアレベルでSLAMが組み込まれています。そしてカメラのレンズを通して現実世界を3Dにマッピングし、情報を適した場所に表示できるようにします。さらにMicrosoftの提供するHoloLensもそうです。

Google Tango Demo Lenovo Tech World 2016

通常は専用のデバイスを使って提供されるのですが、スマートフォンレベルでも計算処理を行うことでSLAMを実現できます。そのためにはカメラを通して入ってくる情報をリアルタイムに解析し、補正を行い続ける必要があります。ただし計算処理が非常に重たくなってしまうので、適度にフィルタリングした上で実用に耐えうる品質にする必要があるでしょう。

利用例

例えばサッカーやマラソン、ゴルフなどの映像において、コースがビジュアル化されたり、映像の中に様々なコンテンツを表示することがあります。それもSLAMの実例の一つになります。他にもゲームであれば現実空間上にバーチャルなアイテムを表示したり、リアルにあるものと組み合わせて対戦したりできます。これまでこうしたARゲームを行おうとすると、専用のマーカーと専用台などが必要でしたが、SLAMを使うことで道具によらず楽しめるようになります。以下の動画はBall Invasionというゲームです。簡易的ですがSLAMを活用したゲームとなっています。

Ball Invasion - First SLAM implementation on iPad2

さらにWikitudeの例のように家具を自分の部屋に配置するような使い方も考えられます。SLAMは特定の画像から特徴点を抽出する方法ではなく、物体そのものを認識する「マーカーレスAR」なので、場所を選ばずに利用できるのが魅力になるでしょう。

「マーカーレスAR」はQRコードに類似した、いわゆる「ARマーカー」 を使わない画像認識型ARを指す用語としても使われる場合がありますが、ここでは「物体認識」や「立体認識」を表しています。Wikitudeではこの機能を「インスタントトラッキング(Instant tracking)」と呼んでいます。


ARは拡張現実と言われ、現実空間をバーチャルな情報で拡張する技術です。これまではマーカー画像や位置情報といった特定の情報を必要としていましたが、SLAMによって全く別なARを実現できるようになるでしょう。それこそまさに現実世界の拡張になるはずです。

SLAMをベースとしたWikitudeインスタントトラッキングは最新のWikitude SDKに組み込まれています。Unity、PhoneGap、TitaniumそしてXamarinで利用可能です。ぜひお試しください。

Wikitude Slam