
Tensorflow Liteを使ってAndroidで物体検出をしよう!【機械学習】
2021.12.20
Tensorflow Liteを使って物体検出 どんなものができるの?
今回はディープラーニングを使って、「Android のカメラで映した物体を検出するアプリ」を動かしてみたいと思います!
目指すは、こんなイメージです。

カメラに映った「キーボード」と「モニター」が検出されています。
ディープラーニングの開発環境
ディープラーニングの開発環境はいくつかありますが、今回は Google が開発したフレームワーク「Tensorflow(テンサーフロー)」を使っていきたいと思います。
スマホには軽量版の TensorflowLite
Tensorflow で学習したモデルは、GPU を搭載した高性能なパソコンやサーバでないと、重くて動作がカクカクになってしまいます。
そこで、軽量版の「Tensorflow Lite」を使っていきます。
物体検出アプリ作成の全体の流れ
Tensorflow Lite で物体検出するアプリ作成の、全体の流れはこちら!
- 物体検出の Androidアプリのコードをダウンロード
- AndroidStudio でアプリをビルドする
- Android へビルドしたアプリをインストール
- アプリを起動
AndroidStudio
この記事では、「AndroidStudio」がインストールされている前提で進めていきます。
インストールが必要な方は、下記サイトを参考に準備していただければ!
【AndroidStudio インストールサイト】
https://developer.android.com/studio/install?hl=ja
物体検出のAndroidアプリのコードをダウンロード
物体検出をするアプリケーションの、コードをダウンロードしてきます。
GitHub の「TensorFlow examples」を開きます。
【TensorFlow examples】
https://github.com/tensorflow/examples
「Clone or Download」をクリックします。

「Download ZIP」をクリックします。

「examples-master.zip」がダウンロードできます。

GitHubコマンドが使える場合
GitHub のコマンドが使える方は、次のコマンドでダウンロードできます。
git clone https://github.com/tensorflow/examples.git
AndroidStudioでアプリをビルドする
先ほどダウンロードした「examples-master.zip」を解凍し、「AndroidStudio」のプロジェクトフォルダにコピーします。
設定を変えていなければ、通常は下記がプロジェクトフォルダとなっています。
【フォルダ】 C:\Users\(ユーザ名)\AndroidStudioProjects |
コピーする時に、フォルダ名を「tflite」に変更しておいてください。

AndroidStudioを起動
AndroidStudio を起動します。

プロジェクトファイルを選択
「Open an existing Android Studio Project」から、先ほど保存したフォルダ中の「android」というプロジェクトファイルを選択します。
【フォルダ】 C:\Users\(ユーザ名)\AndroidStudioProjects\tflite\lite\examples\object_detection\android |

ビルド
メニューから「Build」>「Build bundle(s)/APK(s)」>「Build APK(s)」を選び、ビルドします。

初回はエラーが右下に表示されることがあると思いますが、表示される項目への対処を実施していけばビルドが進みます。
.akpファイルが出来上がる
ビルドが終わると Android でのインストールファイル(.apkファイル)が出来上がります。
右下の「Locate」をクリックすると、インストールファイルがあるフォルダを開けます。

もし、このメッセージBOXを消してしまっても、右下の「Event Log」をクリックしてログを開くと見ることができます。
Androidへビルドしたアプリをインストール
あとは、インストールファイルを Android に保存し、インストールすると、「TFL Detect」というアイコンが作成されます。

アプリを起動
早速、アプリを起動して検出してみましょう!

「キーボード」や「モニター」以外にも、「人」「車」「動物」など、いろんなものが検出できます!
スマホ片手に歩き回ってみると面白いと思います。(使うときは立ち止まってくださいね!)
Andoroid上で表示されるアプリ名を変えるには?
アプリ名を変えたい場合は、AndroidStudio でビルドする前に、以下を書き換えてからビルドしてください。
【フォルダ】 C:\Users\(ユーザ名)\AndroidStudioProjects\tflite\lite\examples\object_detection\androidapp\src\main\res\values\base-strings.xml |
変更点
2行目:ex)TFL Detect → Detection
1 2 3 4 | <resources> <string name="tfe_od_app_name" translation_description="Object Detection demo app [CHAR_LIMIT=40]">Detection</string> <string name="tfe_od_camera_error" translation_description="Error regarding camera support[CHAR_LIMIT=40]">This device doesn\'t support Camera2 API.</string> </resources> |
ビルドの時間を短くするには?
AndroidStudio でビルドする際に、TensorflowLite の学習済みモデルがダウンロードされます。
最初の1回目は必要ですが、2回目からはダウンロードが不要となりますので、下記をコメントアウトすることでビルドが早くなります。
【フォルダ】 C:\Users\(ユーザ名)\AndroidStudioProjects\tflite\lite\examples\object_detection\android\app\build.gradle |
変更点
40行目:apply from:'download_model.gradle' → // apply from:'download_model.gradle'
1 2 3 4 5 | // Download default models; if you wish to use your own models then // place them in the "assets" directory and comment out this line. //apply from: "download_model.gradle" //apply from:'download_model.gradle' |
さいごに
Androidでの物体検出、いかがでしたでしょうか?
ディープラーニングは、2012年に大きく話題になりました。
それ以降、様々な PoC(実証実験)や活用提案が広く行われ、今では一般的に使われるようになってきています。
これからは、より身近になり、みなさんの手元で動くようになっていくことでしょう。
今回は、その「初めの一歩」を体験できたのではないでしょうか!
こちらの記事もオススメ!
関連記事
書いた人はこんな人

- 「好きを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。
システム開発依頼・お見積もり大歓迎!
また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。
以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit
ライトコードの日常12月 1, 2023ライトコードクエスト〜東京オフィス歴史編〜
ITエンタメ10月 13, 2023Netflixの成功はレコメンドエンジン?
ライトコードの日常8月 30, 2023退職者の最終出社日に密着してみた!
ITエンタメ8月 3, 2023世界初の量産型ポータブルコンピュータを開発したのに倒産!?アダム・オズボーン