コラム

Androidで画像認識してみよう!

2016-03-26

RM STAFF

WRITER:

RM STAFF

こんにちは、16卒技術職内定者のBoraです。
はじめてTECH BLOGを書かせていただきます。至らない部分もあると思いますが、よろしくお願いします。

先日、卒業制作展を終えたばかりです。その際にAndroidの画像認識のアプリをつくりました。
今回は、私が使ったAndroid Studio+Vuforiaでの画像認識の方法をまとめてみました。

WEB上にアップロードしてある画像と比較したのち、ひも付けてあるjsonのデータを引っ張ってきます。

やること一覧

だいたいこんなかんじです!
ちなみにAndroid Studioのverは1.4です。

①画像とjsonを準備しよう

画像ですが、今回はjpg(anq_target_02.jpg)を用意しました。認識しやすい画像については後述します。
jsonはtxt形式で用意します。

anq_target.txt {
“description”: “アンケートに答えてね!”,
“URL”: “https://www.XXX.co.jp/”
}

URLを入れておけば、後から任意のWEBページなんかに飛ばす処理も書けますね。

②データベース作成と画像の登録

https://developer.vuforia.com/
にアクセスします。
ユーザー登録がお済みでない方は、まず登録をお願いします。

1. License Keyの作成

Develop > Lisence Manager から Add License Keyをクリック。
今回はアプリケーション名を metaData としました。
入力したら、そのまま Next。
次ページでボックスにチェックを入れて Confirm 。License Key の出来上がりです。

2. データベースの追加

Develop > Target Manager から Add Databaseをクリック。
今回はデータベース名を metaData としました。
Type は Cloud に
プルダウンから MetaDate を選択して Create 。これでデータベースができました。

3. 画像の登録

Develop > Target Manager > metaData から Add Targetをクリック。
Target image File で用意したjpgファイル(anq_target_02.jpg)を指定。
Width は 2
Metadata Packge に用意したjsonのtxt(anq_target_json.txt)を指定。
Name は anq_target_02 としました。
これで Add します。

認識しやすい画像

これが Target の詳細になります。
星が5つ表示されています。星が多い方が認識しやすいと考えてよいと思います。
赤い矢印のリンク(Show Features / Hide Features)をクリックすると、特徴点を確認することができます。
特徴点 = 角 が多いとレートの評価が高くなるので、様子を見ながら画像を編集するのが良いと思います。

③Vuforia SDK、Samplesのダウンロード

下記のSDK「vuforia-sdk-android-5-0-10.zip」とSamples「VuforiaSamples-5-0-10.zip」をダウンロードします。

ダウンロードが終わったら、任意の場所に解凍します。
サイトはまた使用しますので、閉じないでくださいね。

④SDKとSamplesのひも付け

ここからは、SDKフォルダからSamplesフォルダへのコピペが基本になります。

1. libフォルダ

《SDK》vuforia-sdk-android-5-0-10/build/lib をコピー。
《Samples》VuforiaSamples-5-0-10/app/src/main にペースト。jniLibs にリネームします。

2. Vuforia.jar

《SDK》vuforia-sdk-android-5-0-10/build/java/vuforia/Vuforia.jar をコピー。
《Samples》VuforiaSamples-5-0-10/app にペースト。

3. Android Studioを起動
《Samples》VuforiaSamples-5-0-10 を Android Studio にインポート。
はじめは赤線が出ていると思います。

app を右クリック。
Open Module Settings をクリックして・・・
Dependencies を選択。
下部にある +ボタン から 2 File dependency を選択。Vuforia.jar のパスを指定します。

⑤ソースコードを追加

1. License Keyの挿入
サイトに戻ります。
Develop > Lisence Manager > metaDate をクリックすると、License Key が表示されます。


SampleApplicationSession の 347行目の矢印部分に License Key を挿入してください。

2. Access Keyの挿入
Develop > Target Manager > metaDate > Database Access Keys をクリック。
Client Access Keys 以下を使います。

CloudReco の 88行目に Access Keyを
89行目に Secret Key を挿入します。


これで、キーの挿入は終わりです。

3. jsonのトースト表示
jsonの取得の処理を CloudReco に追加します。
今回は、とりあえず Toast で取得を確認。

CloudReco.java
//import群に追加
import android.widget.Toast;
//TargetSearchResult
result = finder.getResult(0);
//の下に追加
String metadata = result.getMetaData();
Toast.makeText(this, metadata, Toast.LENGTH_LONG).show();

以上を追加したら、あとは実行するのみ!

⑥実行

実行したら、メニューリストが表示されると思います。
今回は、Cloud Reco をタップしてください。そして、Start!
用意した画像にかざします。

ちゃんと Toast は表示されましたでしょうか?
今回は Toast で終わりますが、json を取得できることで、その後にいろいろ展開できると思います。
また、今回使用した Vuforia には、 CloudReco 以外にもたくさんの機能があります。
興味のある方は、是非試してみてください!

参考URL
Android StudioでVuforia5のsampleをbuild出来るようにするまで

リッチメディアではプログラミングが好きで、 チーム全体でサービスを開発していきたいという想いを持ったエンジニアを募集しています。 一緒に最高の作品を創り上げていきませんか?<