一覧に戻る

近日リリース予定!SDK 8 の新機能のご紹介

2018.06.11技術系記事

6年以上前、2012年4月にWikitude SDKの最初のバージョンをリリースしました。時が経ち、Wikitude SDKのバージョン8がいよいよリリースされます。Wikitude SDK 8にはたくさんのアップデートが含まれます。
Wikitude SDK 8は、SDK 5から提供されたネイティブAPIに重要な変更を施しました。
SDK 8の機能のいくつかは、過去のソフトウェアアーキテクチャの選択を再考し、将来の課題をサポートし、将来のプロジェクトの要件を満たす構造を提供するために、SDKの主要なアルゴリズムを書き直す必要がありました。
この記事では、Wikitude SDK 8の主な変更点や新機能の技術的背景について説明します。

インスタントターゲット - 拡張された現実を永続化する

2017年初頭、Wikitude SDKは開発者に、さまざまなデバイスに対してインスタントトラッキング(マーカーレストラッキング)を使用できるようにした初めてのSDKでした。その後、この機能の一部はARKitとARCore、および、Wikitude SDKのインスタントトラッキング技術を1つのAPIに統合する、SMART機能として利用できるようになりました。
インスタントトラッキングは素晴らしい機能ですが、永続的なものではありません。ユーザーは任意の空間に自由にARオブジェクトを配置できますが、別のセッションを開始する度に最初からやり直さなければなりません。
 
Wikitude SDKのインスタントトラッキングには、初めからビジュアルローカリゼーションの能力が含まれていました。一旦トラッキングが失われたとしても、既にカバーされた領域を検出した場合には、再びトラッキングを開始できます。
SDK 8では、インスタントトラッキングセッションをインスタントターゲットの形式で保存する機能が導入されました。このAPIを使用すると、現在のセッションをシリアル化し、Wikitude SDKの他のトラッカーと同じ方法でターゲットとしてロードすることができます。オブジェクトトラッカーはオブジェクトターゲットを認識し、イメージトラッカーはイメージターゲットを認識し、インスタントトラッカーはインスタントターゲットを認識します。
 
 
インスタントターゲットは、ユーザーがセッション内でトラッキングしたものを3D表示します。実際、情報が格納されるファイル形式は物体認識で使用される、オブジェクトトラッカー用に生成されるオブジェクトターゲットファイル(.wto)と同じです。
内部的な検証では、イメージ、オブジェクト、小さなシーンを良好な結果で認識しました。これはもう、本当に何でもありです。

 

再考されたARエンジン

インスタントターゲットの導入にともない、インスタントトラッキングエンジンが大幅にアップグレードされます。実際には、インスタントトラッキング、オブジェクトトラッキング、およびすべての拡張トラッキングの強化につながる3D SLAMエンジン全体がアップグレードされます。
 
SLAMに関連するものはすべて再考され、改善されました。アルゴリズムは最新世代のSLAMアルゴリズムに更新され、最近の研究から得られた知見が組み込まれています。 ARKitとARCoreはセンサー融合システムを導入していますが、カメラとIMUの詳細な較正を必要としない、ビジョンのみのシステムでもまだ大きな可能性があることがわかりました。もちろん、センサー融合システムは高速の180°回転のような動きではメリットがありますが。
新しい3D SLAMエンジンは、ベンチマークテストにおいてARKitおよびARCoreと比較しても非常に優れたスコアになりました。テストでは、トラッキングエラーがSDK 7.2に比べて最大60%減少することがわかりました。
新しいSLAMエンジンの改善ポイントは次のとおりです。
  • トラッキング精度が向上します。
  • トラッキングは、視差の少ない純粋な横方向の動きに対してより堅牢になります。
  • トラッキングは、より広い領域をカバーすることができます。

強化されたオブジェクトトラッキングによる物体認識の改善

SDK 8では物体認識にも多くの変更が含まれています。初期認識とトラッキングにおける品質と精度は大幅に改善されました。特に360°のトラッキングシナリオでは顕著です。
SDK 8の物体認識は、以前のバージョンと比較して全体的に改善されています。改善の一部は新しい3D SLAMエンジンに起因しますが、SDK 8で導入されたオブジェクトターゲットの新しい記録プロセスによるものもあります。以前は、オブジェクトの動画をアップロードしてオブジェクトターゲットを作成していました。 この方法は多くのお客様にとって適切に機能しましたが、我々はこのアプローチの弱点を特定しました。
  • オブジェクトターゲットの拡張は、オブジェクト全体の新しい動画を制作するのに煩雑であった。
  • 動画のファイルサイズに上限があったため、結果として動画の品質は平均的なものにならざるおえませんでした。
  • オブジェクトによっては、適切な動画を作成することが難しい場合がありました。
SDK 8では、オブジェクトターゲットを作成する別の方法を導入しています。
Studio Managerにオブジェクトの画像をアップロードすることで、SDK 8で利用できるオブジェクトターゲットが作成されます。Studio Managerは、画像をオブジェクトターゲットに変換します。この手法では、結果として得られるオブジェクトターゲットの品質は、動画ベースのアプローチに比べてかなり優れています。
たとえば、動画からオブジェクトターゲットを作成したものと、同じ動画から抽出した静止画像を使用して作成したオブジェクトターゲットを比較すると、新しい画像ベースの変換でより正確なオブジェクトターゲットが生成されます。
正確なオブジェクトのターゲットは明らかに高い精度をもたらします。
ただし、新しい変換方法では、.wtoファイル形式の内部構造を変更する必要がありました。そのため画像ベースの変換を使用して作成された.wtoは、下位互換性がありません。
 
 
新しい画像ベースの変換では、既存のマップに新しい画像を追加してマップを再作成するだけです。一続きのものを使用するよりも、欠けているパーツを追加する方がずっと簡単です。
また、ユーザーからアップロードされる多くのオブジェクトが左右対称で構成されているか、または何らかの対称性があることがわかりました。Wikitude SDKのサンプルアプリケーションで使われている消防車のおもちゃの側面は、ほぼ同じですが、ミラーリングされています。新しい画像ベースの変換が開発されたため、これらのケースを検出して対称の面を正しく識別できます。
さらに、異なる条件下の画像をアップロードすることもできます。明るい背景と暗い背景の条件下で同じオブジェクトの画像を使用する(または、直射日光や曇りの状態でのオブジェクトのパターンを加える)ことで、光条件を変える際の認識の安定性が向上します。

 

シーン認識 - 大規模なオブジェクトやシーンのトラッキング

新しい変換方法を導入した結果として、認識対象となるオブジェクトのサイズがかなり大きくなりました。内部的なテストでは、モニュメント、家のファサード全体、2400平方メートル以上のエリアをカバーする城などのオブジェクトをトラッキングしました。

 
ここまでの内容で、すでにSDK 8がひとつの機能リリース以上のものであると感じているかもしれません。SDK 8では、SDKの多くの部分を再構築し、増大する様々な要件に合わせたアーキテクチャを実現しました。3年以上前のSDK 5と同様に、SDK 8ではもう1つの主要なソフトウェアアーキテクチャが再設計されています。
Wikitude SDKの内部では、私たちが"Universal SDK"と称するライブラリが動作しています。C++のコア機能をラップするプラットフォームとOSに依存しないSDKであり、Wikitude SDKは常にC++コアで構成されていましたが、このアプローチをSDK 8で極限まで引き上げました。

Unity Live Preview

"Universal SDK"の結果、IDE内で直接AR体験をテストするためにUnityのLive Previewを提供できるようになりました。テストのためにあなたのアプリをビルドして、接続されたデバイスに転送する必要はありません。Live Previewは、付属のカメラまたはUnity Remoteを使用して、すべてのトラッカータイプをテストできます。Unity開発者は、この機能をmacOSまたはWindowsマシンで使用できます。

Windowsのサポート

ついに、Wikitude SDKはWindows 10 UWPコンピュータでも動作します。Wikitudeでサポートされているオペレーティングシステムでは、ライブプレビューだけでなくファーストクラスの市民としても活躍します。 ここでもWindows用のWikitude SDKはUniversal C++コアを使用しています。UnityとネイティブAPIを使用したAR体験を構築することで、Unityを習得する必要なく純粋なUWP ARアプリケーションを構築できます。 JavaScript APIとHololensのサポートは今後のリリースで対応が計画されています。Windows Phoneエコシステムのこれまでの展開を考慮して、Windowsサポートの初期リリースでは、Intel™チップを搭載したデバイスのみをサポートすることにしました。MicrosoftとARMが、新しいMicrosoftデバイスにARMベースのチップを搭載するようになってきたので、市場を監視し、ARMベースのデバイスのサポートを追加する計画です。

Wikitude SDK 8 - Endless AR Possibilities

その他の追加機能

すべてのAR体験において、カメラは明らかに重要な役割を果たします。Wikitude SDKを使用すると、デバイス上で利用可能なカメラストリームを制御するいくつかの機能がすでに提供されています。バック/フロントカメラの切替から焦点距離の設定に至るまで、すでにさまざまなバリエーションがあります。 SDK 8では、必要に応じて手動で制御できる2つの追加項目が追加されています。開発者はカメラのどの領域を使用して露出時間を計算し、焦点を合わせるべきかをカメラに知らせることができます。サンプルでは、"tap-to-focus"シナリオでその使用方法を確認できます。
 
また、このリリースではAndroidデベロッパーは何の制限もなくGradle 3(Android Studio 3)を使用できます。

ARの無限の可能性

Wikitude SDK 8は、AR開発者の生活をより良くし、新しいAR体験を創造するのに役立つ大きなステップです。SDK 8のベータ版を発表することを誇りに思っており、今後数週間で安定性とパフォーマンスを引き続き向上させていきます。
ベータ版はこちらからダウンロードできます。SDK 8のリリースが待ち遠しい開発者のみなさまは、ぜひお試しください。