ARCore2 Augmented Image

2020.08.24

Lab研究員 中木

Lab研究員の中木です。
こんにちは。

前回に引き続き、ARCoreに関する記事を書こうと思います。

Lab_Column_202008_01.PNG

ARCoreってなんぞ? という方は前回の記事をご確認ください。
https://www.ydc.co.jp/column/0002/20200622.html

さて、前回はARCoreのクイックスタートで、「水平面の検出」を試してみました。
今回はAugmented Imagesについて調べてみました。

もくじ

  1. 1.■ Augmented Imagesとは?
  2. 2.■ Augmented Imagesの機能
  3. 3.■ アンカーとして使える画像
  4. 4.■ サンプルプログラムを動かしてみる

■ Augmented Imagesとは?

直訳すると「拡張画像」?(英語は弱々なので間違っていたらごめんなさい)
公式ページの説明には下記のようなことが書かれています。
https://developers.google.com/ar/develop/java/augmented-images

ARCoreAugmented Imagesを使用すると、ポスターや商品パッケージなど、ユーザーの環境にある2次元の画像に反応するARアプリを構築することができます。
参照画像のセットを提供すると、それらの画像が物理的に世界のどこにあるかをARCoreが教えてくれます。

つまり、、、

1. あらかじめアプリに画像を登録しておく

Lab_Column_202008_02.PNG

2. アプリを起動し、登録されている画像と同じ絵をカメラで捉える

Lab_Column_202008_03.PNG

3. 捉えた絵をアンカーとしてARオブジェクト(3Dモデル)を設置できる

Lab_Column_202008_04.PNG

ということです。
Augmented Imagesを使うと、↓こんなことが出来るようになります。

Lab_Column_202008_05.gif

これは、手に持ったパンフレットの表紙をAPPに登録しており、パンフレットの上に3Dの迷路をARオブジェクトとして置いています。迷路の中でボールが動いているのが見えますでしょうか?

■ Augmented Imagesの機能

Augmented Imagesには次のような機能があります。

・壁に掛けられたプリントやテーブル上の雑誌など、所定位置に固定された画像を追跡
 ⇒ 基本機能ですね。

・通過するバス上の広告や、ユーザーが手に持っている平らな物体の画像の追跡
 ⇒ 画面内で対象となる画像が動いても、ちゃんと追跡してくれます。

・追跡している画像の位置、方向、物理的なサイズの見積
 ⇒ ARオブジェクトの角度や大きさ等を自分で頑張って計算する必要がなくなります。

・カメラビューから一時的に外れた画像の追跡
 ⇒ カメラビューに対象画像が復帰する際の動きが、自然な感じになるのでしょうか。

■ アンカーとして使える画像

Augmented Imagesでは、画像をアンカーにすることが出来ます。
しかし、必ずしも全ての画像をアンカーに出来るわけではないようです。

画像をアプリに登録するためのツールThe arcoreimg toolがGoogleから提供されており、このツールを使用して画像をアンカーとすることが出来るか確認することができます。

The arcoreimg toolarcore-android-sdkに含まれており、arcore-android-sdkは下記のURLからダウンロードすることが出来ます。
https://github.com/google-ar/arcore-android-sdk/releases
(実は前回動かしたサンプルと同じプロジェクトです。)

ダウンロードしたファイルを解凍し、tools → arcoreimg とフォルダを移動すると、
Linux / macOS / Windows とOS毎に用意されていることが分かります。

Lab_Column_202008_06.PNG

どのOSでも使い方は同じですが、Windowsの場合は下記のコマンドを実行することで、画像の品質スコアを確認できます。

Lab_Column_202008_07.PNG

上記コマンドで出力される画像の品質スコアが、75以上 必要とのことです。

試しに、先程登場した↓の地球の画像で確認してみましょう。

Lab_Column_202008_08.PNG
Lab_Column_202008_09.PNG

・・・100だそうです。

YDCのロゴはどうでしょうか?

Lab_Column_202008_10.PNG

Lab_Column_202008_11.PNG

・・・点数すら表示されませんでした。
   特徴点が少なすぎるみたいです。
   YDCのロゴを写したら、何かARオブジェクトを表示するようなアプリも
   面白そうだと思ったのですが、Augmented Image だけでは出来ないですね。

トランプのキングとかならどうでしょうか?

Lab_Column_202008_12.png

Lab_Column_202008_13.PNG

・・・25。。。

特徴点の多い画像を用意する必要がありますね。

■ サンプルプログラムを動かしてみる

上でダウンロードしたarcore-android-sdkに、Augmented Imagesのサンプルプログラムも含まれていますので、前回と同様にエミュレーターで実行させてみました。

Lab_Column_202008_14.PNG

samplesフォルダに「augmented_image_java」のプロジェクトがありますので、
これをAndroid Studioで開いて実行します。

Lab_Column_202008_15.PNG

ビルドとエミュレーターへのアプリインストールは成功しましたが、、、、

Lab_Column_202008_16.PNG

エミュレーター上でアプリの起動も出来ているのですが、

カメラが何も写してくれません・・・。

色々と調べて試してみましたが、エミュレーターでは動かすことが出来ませんでした。
では、実機ではどうでしょうか

ARCore に対応した端末は、下記から確認できます。
https://developers.google.com/ar/discover/supported-devices

Pixel 4 で動かしてみたところ・・・

Lab_Column_202008_17.gif

問題なく動きました!
地球の画像をアンカーとして、画像の四隅に額縁が描画されました。

今回の記事は以上です。
前回・今回とサンプルを動かしただけなので、そろそろコードの変更に挑戦したいと思います。

それでは、
最後までお読みいただきありがとうございました。

  • LINE
  • Mail