1. HOME
  2. ブログ
  3. IT技術
  4. Tensorflow Liteを使ってAndroidで物体検出をしよう!【機械学習】

Tensorflow Liteを使ってAndroidで物体検出をしよう!【機械学習】

Tensorflow Liteを使って物体検出 どんなものができるの?

今回はディープラーニングを使って、「Android のカメラで映した物体を検出するアプリ」を動かしてみたいと思います!

目指すは、こんなイメージです。

カメラに映った「キーボード」と「モニター」が検出されています。

ディープラーニングの開発環境

ディープラーニングの開発環境はいくつかありますが、今回は Google が開発したフレームワーク「Tensorflow(テンサーフロー)」を使っていきたいと思います。

スマホには軽量版の TensorflowLite

Tensorflow で学習したモデルは、GPU を搭載した高性能なパソコンやサーバでないと、重くて動作がカクカクになってしまいます。

そこで、軽量版の「Tensorflow Lite」を使っていきます。

物体検出アプリ作成の全体の流れ

Tensorflow Lite で物体検出するアプリ作成の、全体の流れはこちら!

  1. 物体検出の Androidアプリのコードをダウンロード
  2. AndroidStudio でアプリをビルドする
  3. Android へビルドしたアプリをインストール
  4. アプリを起動

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

ビルドの時間を短くするには?

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'

さいごに

Androidでの物体検出、いかがでしたでしょうか?

ディープラーニングは、2012年に大きく話題になりました。

それ以降、様々な PoC(実証実験)や活用提案が広く行われ、今では一般的に使われるようになってきています。

これからは、より身近になり、みなさんの手元で動くようになっていくことでしょう。

今回は、その「初めの一歩」を体験できたのではないでしょうか!

こちらの記事もオススメ!

関連記事

書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア