- ホーム
- コラム
- YDC Labコラム
- ARCore2 Augmented Image

ARCore2 Augmented Image
2020.08.24
Lab研究員 中木
Lab研究員の中木です。
こんにちは。
前回に引き続き、ARCoreに関する記事を書こうと思います。
ARCoreってなんぞ? という方は前回の記事をご確認ください。
https://www.ydc.co.jp/column/0002/20200622.html
さて、前回はARCoreのクイックスタートで、「水平面の検出」を試してみました。
今回は「Augmented Images」について調べてみました。
もくじ
■ Augmented Imagesとは?
直訳すると「拡張画像」?(英語は弱々なので間違っていたらごめんなさい)
公式ページの説明には下記のようなことが書かれています。
https://developers.google.com/ar/develop/java/augmented-images
ARCoreのAugmented Imagesを使用すると、ポスターや商品パッケージなど、ユーザーの環境にある2次元の画像に反応するARアプリを構築することができます。
参照画像のセットを提供すると、それらの画像が物理的に世界のどこにあるかをARCoreが教えてくれます。
つまり、、、
1. あらかじめアプリに画像を登録しておく
2. アプリを起動し、登録されている画像と同じ絵をカメラで捉える
3. 捉えた絵をアンカーとしてARオブジェクト(3Dモデル)を設置できる
ということです。
Augmented Imagesを使うと、↓こんなことが出来るようになります。

これは、手に持ったパンフレットの表紙をAPPに登録しており、パンフレットの上に3Dの迷路をARオブジェクトとして置いています。迷路の中でボールが動いているのが見えますでしょうか?
■ Augmented Imagesの機能
Augmented Imagesには次のような機能があります。
・壁に掛けられたプリントやテーブル上の雑誌など、所定位置に固定された画像を追跡
⇒ 基本機能ですね。
・通過するバス上の広告や、ユーザーが手に持っている平らな物体の画像の追跡
⇒ 画面内で対象となる画像が動いても、ちゃんと追跡してくれます。
・追跡している画像の位置、方向、物理的なサイズの見積
⇒ ARオブジェクトの角度や大きさ等を自分で頑張って計算する必要がなくなります。
・カメラビューから一時的に外れた画像の追跡
⇒ カメラビューに対象画像が復帰する際の動きが、自然な感じになるのでしょうか。
■ アンカーとして使える画像
Augmented Imagesでは、画像をアンカーにすることが出来ます。
しかし、必ずしも全ての画像をアンカーに出来るわけではないようです。
画像をアプリに登録するためのツール「The arcoreimg tool」がGoogleから提供されており、このツールを使用して画像をアンカーとすることが出来るか確認することができます。
「The arcoreimg tool」はarcore-android-sdkに含まれており、arcore-android-sdkは下記のURLからダウンロードすることが出来ます。
https://github.com/google-ar/arcore-android-sdk/releases
(実は前回動かしたサンプルと同じプロジェクトです。)
ダウンロードしたファイルを解凍し、tools → arcoreimg とフォルダを移動すると、
Linux / macOS / Windows とOS毎に用意されていることが分かります。
どのOSでも使い方は同じですが、Windowsの場合は下記のコマンドを実行することで、画像の品質スコアを確認できます。
上記コマンドで出力される画像の品質スコアが、75以上 必要とのことです。
試しに、先程登場した↓の地球の画像で確認してみましょう。
・・・100点だそうです。
YDCのロゴはどうでしょうか?
・・・点数すら表示されませんでした。
特徴点が少なすぎるみたいです。
YDCのロゴを写したら、何かARオブジェクトを表示するようなアプリも
面白そうだと思ったのですが、Augmented Image だけでは出来ないですね。
トランプのキングとかならどうでしょうか?
・・・25点。。。
特徴点の多い画像を用意する必要がありますね。
■ サンプルプログラムを動かしてみる
上でダウンロードしたarcore-android-sdkに、Augmented Imagesのサンプルプログラムも含まれていますので、前回と同様にエミュレーターで実行させてみました。
samplesフォルダに「augmented_image_java」のプロジェクトがありますので、
これをAndroid Studioで開いて実行します。
ビルドとエミュレーターへのアプリインストールは成功しましたが、、、、
エミュレーター上でアプリの起動も出来ているのですが、
カメラが何も写してくれません・・・。
色々と調べて試してみましたが、エミュレーターでは動かすことが出来ませんでした。
では、実機ではどうでしょうか。
ARCore に対応した端末は、下記から確認できます。
https://developers.google.com/ar/discover/supported-devices
Pixel 4 で動かしてみたところ・・・
問題なく動きました!
地球の画像をアンカーとして、画像の四隅に額縁が描画されました。
今回の記事は以上です。
前回・今回とサンプルを動かしただけなので、そろそろコードの変更に挑戦したいと思います。
それでは、
最後までお読みいただきありがとうございました。