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(実証実験)や活用提案が広く行われ、今では一般的に使われるようになってきています。

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

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

機械学習でのシステム開発依頼・お見積もりはこちらまでお願いします。
また、機械学習系エンジニアを積極採用中です!詳しくはこちらをご覧ください。

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

関連記事

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事

採用情報

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

バックエンドエンジニア

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

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

\ 世界はお前の手の中に・・・ /

モバイルエンジニア

\ サービスの守り神! /

インフラエンジニア