第4回 もう議事録不要? 写真から手書き文字を認識するAndroidアプリを作ろう ~環境構築編~|Tech Book Zone Manatee

マナティ

機械学習で遊ぼう! APIサービスやTensorFlowを使ったサンプルレシピ集

第4回 もう議事録不要? 写真から手書き文字を認識するAndroidアプリを作ろう ~環境構築編~

連載第4/5回目では、Google Cloud Vision APIの光学的文字認識(OCR)機能をつかって、カメラで撮影した写真の中に含まれる文字を認識するAndroidアプリ「PhotoOCR」を作成します。まず第4回は、Androidアプリケーションの開発環境の準備と実機での動作確認を行いましょう。

1. はじめに

 最初に、連載第4/5回での対象読者や使用環境、作成するアプリケーションについてまとめます。

第4/5回の対象読者

・IDEをつかったアプリケーション開発経験がある方
・Javaの文法が分かる方
・GitHubが利用できる方

第4/5回での環境

 第4/5回では、以下の環境での開発を前提にして、説明します。

・開発用PC:Microsoft Surface Pro4(Windows10 Pro 64bit)
・モバイル端末:Motorola Moto X Play(Android 6.0.1)

第4/5回で作成するアプリケーションの全体像

 スマートフォンのカメラで写真を撮り、その写真に含まれる文字の情報をテキストデータとして取得できるAndroidアプリケーションを作成します。たとえば、街や駅に掲示されている看板の情報や、手書きの書類などになにが書かれてあるかを文字データとして取得できるので、うまく業務システムに組み込めば、これまで人間が手作業で行っていたことがずいぶん楽になるかもしれません。たとえば、会議で使ったホワイトボードの内容を電子化すれば、ひょっとすると議事録も不要かも?!

図1 サンプルアプリの例

2. Androidアプリケーション開発について

 はじめに、Androidアプリケーションを開発するにあたり、知っておきたいことを説明します。

Androidとは

 Android(アンドロイド)は、Googleによってスマートフォンやタブレットなどの携帯情報端末を主なターゲットとして開発されたOSです。このOS上で動くアプリケーションを「Androidアプリケーション」と呼びます。また、作成したAndroidアプリケーションは「Google Play」を使って世界中に配信できます。現在、Google Playでは、スマートフォンやタブレットで利用できる便利なツール、ゲーム、ヘルスケアや教育など、さまざまなアプリケーションが公開されています。

[Google Play]
https://play.google.com/store/apps

 このGoogle Playには、自分が作成したアプリケーションを登録することができます。登録するには、Googleデベロッパーアカウントが必要です。

 連載第4回では、はじめてAndroidアプリケーションを作成されるJava開発者にむけて、開発環境構築と画像認識APIのOCR機能を使った文字認識アプリを作成します。機械学習APIをうまく使えば、アイデア次第でさまざまなアプリケーションが簡単に作成できます。

 面白いAndroidアプリケーションが開発できたら、どんどん公開して世界中のユーザーに使ってもらうと良いでしょう。ものづくりが好きなエンジニアにとっては、利用者につかってもらえるというのは、なによりも開発の励みになることでしょう。Googleデベロッパーアカウントの詳しい登録手順は、公式サイトにあります。

https://developer.android.com/distribute/googleplay/start.html?hl=ja

図2 Google Play

開発の流れ

 主にAndroidアプリケーションを開発するときは、Googleが提供する統合開発環境「Android Studio」を使います。開発の流れは、以下のようになります。

図3 開発の流れ

 なお、Apache CordovaXamarinなどをつかうとクロスプラットフォーム(iOS/Androidなど)で動作するアプリケーションも開発できます。

3. 開発環境の構築

 それでは、いよいよWindowsマシンでAndroidアプリを開発する環境を準備していきましょう。

3-1 Javaのインストール

 Androidアプリケーションを開発するには、Java Development Kit(JDK)がインストールされている必要があります。次の手順で導入しましょう。

3-1-1 Java Development Kit(JDK)のインストール

 以下のOracle公式サイトから、JDKをダウンロードします。[Accept License Agreement]のラジオボタンを選択し、環境に応じたインストーラーをダウンロードします。今回は、Windows10 Pro(64bit) 環境を使ったので「jdk-8u121-windows-x64.exe」をクリックします。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

図4 JDKのダウンロード

 なお、ダウンロードするファイル名はバージョンによって異なります。

 ダウンロードしたexeファイルをダブルクリックして、インストールします。画面の表示に従い、インストールを進めますが、途中インストールする場所を指定する箇所がありますので、このパスをひかえておきます。

図5 JDKのインストール先
3-1-2 環境変数JAVA_HOMEの設定

 環境変数とは、システムの属性を記録する変数です。Androidアプリを開発するために必要な値を設定します。

 まず、[Windowsメニュー]を右クリックし、[システム]―[システムの詳細設定]を開きます。ここで、ダイアログが表示されるので、[システムのプロパティ]ダイアログで[環境変数]ボタンをクリックします。

図6 環境変数

 新しく環境変数をする画面で、以下の値を設定します。

・変数名:JAVA_HOME
・変数値:<図5で控えたJDKのパス>

 今回は、JDKを「C:\Program Files\Java\jdk1.8.0_121」にインストールしたので、環境変数を次のように指定します。

図7 ユーザー変数の編集

 これで、Javaの設定はすべて完了です。

3-2 Android Studioのインストール

 Androidアプリケーションを開発するには、Googleが提供する「Android Studio」という統合開発環境を使います。Android Studioは無償で利用でき、Windowsだけでなく、Mac OSやLinuxでも開発環境を作ることができます。執筆時の最新版は2.2.3です。Gradleベースのビルドのサポートがされています。次の手順で導入しましょう。

3-2-1 Android Studioのダウンロード

 まず、以下のサイトからインストーラーをダウンロードします。

https://developer.android.com/studio/index.html

図8 Android Studioのダウンロード

 こちらも、バージョンによってファイル名が異なりますが、今回の環境では、「android-studio-bundle-162.3764568-windows.exe」をダウンロードします。

3-2-2 Android Studioのインストール

 ダウンロードした exe ファイルを実行します。セットアップ ウィザードに従い、Android Studio と必要な SDK ツールをインストールします。画面の表示に従い、インストールを進めます。途中インストールするコンポーネントを選択するダイアログが表示されますので、すべてにチェックを入れインストールを進めてください。

図9 Android Studioのインストールコンポーネント選択

 これでAndroidアプリケーションの開発環境が整いました。

4. HelloWorldを試してみよう

 Androidアプリケーションは、「プロジェクト」という単位で開発をします。ここでは、試しに画面にHelloWorldが表示されるサンプルアプリを作成して、開発環境が正しく出来ているかを確認しましょう。

4-1 新しいプロジェクトの作成

 インストールしたAndroid Studioを起動します。はじめに起動するときは、次のように 以前の設定を使うかどうかのダイアログが表示されます。ここでは以前の設定を利用しないため、次のラジオボタンを選択し[OK]ボタンをクリックします。

図10 Android Studioの設定ファイル読み込み

 セットアップウィザードが表示されるので、[Next]ボタンをクリックします。

図11 セットアップウィザード

 インストールタイプを選択する画面が表示されるので、[Standard]を選び、[Next]ボタンをクリックします。

図12 インストールタイプの選択

 確認画面が表示されますので、[Finish]ボタンをクリックします。

 セットアップが完了すると、次の画面が表示されます。ここで、新しいプロジェクトを作成するため、[Start a new Android Studio project]をクリックします。

図13 新しいプロジェクトの作成

 次に、アプリケーションの名前でドメインを指定するダイアログが表示されます。ここでは、アプリケーション名(Application Name)を「HelloWorld」とします。ここで、ドメイン名(Company Domain)を指定するとパッケージ名となります。設定したら[Next]をクリックします。

図14 プロジェクト名の指定

 次に、どの端末でアプリケーションを動かすかを決めます。今回はスマートフォンで確認するため、[Phone and Tablet]を選択します。ここで、Androidのバージョンに応じてAPIを選択します。筆者の環境では、Android6.0.1の端末を利用しますので「API:23」を選び、[Next]ボタンをクリックします。

図15 プロジェクト名の指定

 必要なコンポーネントがセットアップされるので、[Next]ボタンをクリックします。

 次に、アプリケーションの元になるアクティビティを選択します。アクティビティとは、画面を提供するアプリケーションコンポーネントのことです。ここでは空の画面である[Empty Activity]を選び、[Next]ボタンをクリックします。

図16 アクティビティの選択

 次に、アクティビティの名前を聞かれますので、デフォルトのままで[Finish]ボタンをクリックします。これで、アプリケーションの作成が出来ました。

4-2 Android Emulatorで確認しよう

 本稿では基本的にAndroid端末の実機でアプリを確認していきますが、Android Emulatorで簡易的にアプリを確認することもできます。ここではAndroid Emulatorの使い方を紹介します。まず、Android Studioのメニューの[Run]ボタンをクリックします。この図のようにファイルが開かない場合は、画面の一番左で「1:project」をクリックし、「java → 指定したドメイン名(後ろにカッコ書きがないもの)→MainActivity」とクリックしてファイルを開きます。

図17 アプリケーションの実行

 ここで、アプリケーションを実行するダイアログが表示されますので、[Create New Virtual Device]ボタンをクリックします。 

図18 Android Emulatorの作成

※ Android Emulatorは、64bitのOSで、かつ仮想化ハードウェア拡張が有効になっていないと動かないため、あらかじめお使いの開発用PCのスペックを公式サイトで確認しておきましょう。
https://developer.android.com/studio/index.html?hl=ja

 次の画面では、作成するEmulatorの画面サイズを選択します。

図19 Android Emulatorの設定

 次の画面ではシステムイメージを選択します。ここでは、APIレベル23のアプリケーションを作成しますので、[Download]リンクをクリックして、必要なシステムイメージをダウンロードします。

図20 Android Emulatorの設定

 次に、Android Emulatorの名前や向きなどの詳細情報を設定し、[Finish]ボタンをクリックします。

図21 Android Emulatorの詳細設定

 これでAndroid Emulatorの設定がおわりましたので、[OK]ボタンをクリックします。

図22 Android Emulatorの実行

 ここで、追加のコンポーネントをインストールするダイアログが表示されることがありますが、ダイアログの指示に従ってインストールを進めてください。マシンスペックにもよりますが、Android Emulatorの起動には時間がかかります。

図23 サンプルアプリの実行

 これで、「HelloWorld」と表示されるアプリケーションが実行できました。ただし、このAndroid Emulatorでは、Wi-i/Bluetooth/NFC/SDカードの挿入・取り出し/ヘッドフォン/USBなどの機能は利用できません。これらの機能を使ったアプリケーションを作成するときは、Android端末を用意する必要があります。

4-3 実機で確認しよう

 エミュレーションは、デバイスのすべての機能を使うことが難しいため、実際のAndroid端末(実機)を使ってアプリケーションを確認する手順を説明します。なお、以降の連載はすべて実機を使った確認を行っていきます。

4-3-1 Android端末の設定

 まず、Android端末側で設定を行います。[設定]―[電話情報(または端末情報)]―[ビルド番号]を7回タップすると、[設定] メニューに新たに[開発者向けオプション]が表示されます。なお、すでに開発者向けオプションが有効になっているときは、次のようなトーストが表示されます。

図24 開発者向けオプション

 ここで、[開発者向けオプション]を選び、次の2つのオプションをonにします。

図25 デバッグの設定

 これでAndroid端末の設定がすべて終わりました。

4-3-2 開発用PCの設定

 次は、開発用PCの設定を行います。Android Studioを起動しメニューの、[tools]―[Android]―[SDK Manager]を起動します。ここで、[SDK Tools]タブを選択し、その中の「Google USB Driver」にチェックを入れインストールします。

図26 Google USB Driverのインストール

 インストールが終わったらAndroid端末と開発用PCを、USBケーブルを使って接続します。

なお、Android端末にも[USBデバッグを許可しますか]というダイアログが表示されるので、[OK]をクリックします。なお、接続に使うUSBケーブルには、充電専用のものと充電/データ転送いずれも可能なものの、2種類あります。もし、端末が認識しない場合は、USBケーブルの仕様を確認してください。

※ お使いの端末によっては、専用のドライバーソフトウエアのインストールが必要な機種もあります。詳細については、端末メーカーのホームページなどで確認してください。

4-3-3 サンプルアプリケーションの実行

 これで準備が整いましたので、Android端末上でサンプルアプリケーションを動かしてみます。Android Studioのメニューの[Run]ボタンをクリックします。

図27 アプリケーションの実行

 アプリケーションを実行する端末を選択します。今回は、先ほど作成したAndroid Emulatorではなく、実機(筆者の環境の場合、Motorola XT1562)を選択し、[OK]ボタンをクリックします。

図28 実機での確認

 Android端末でアプリケーションが実行されたのが確認できます。

図29 実機で実行された

 なお、Androidアプリケーションの環境構築や開発の詳細については、公式サイトに詳細なドキュメントがありますので、ぜひ参考にしてください。

https://developer.android.com/studio/install.html

5. おわりに

 今回は、Androidアプリケーションを開発するための環境構築を行いました。次回はいよいよAndroidのカメラとGoogle Cloud Platformの画像認識APIであるVision APIを使ったアプリケーションを開発します。モバイル端末と機械学習を組み合わせることで、面白いアプリケーションが簡単に作成できます。

著者プロフィール

阿佐志保(著者)
TIS株式会社 戦略技術センター所属。金融系シンクタンクで銀行/証券向けインフラエンジニア、製造業向けインフラエンジニア、専業主婦を経て、現在TIS株式会社の研究開発部門で広報や人材採用を担当。