IoTという言葉が当たり前のように使われ様々な家電がインターネットに繋がるようになり、身の回りでスマホを持っていない人はもうほとんど見かけなくなりました。逆に、家でパソコンを開く人は少なくなっています。何か作業するとき、わざわざパソコンを開くよりはスマホでささっと済ませたいですよね。
このようにパソコンの存在感は日に日に薄くなり、機械学習のような最先端技術が活躍する舞台もスマホをはじめとした小型機器に移っています。小型機器は持ち歩きでき非常に便利ですが、パソコンと比べると処理能力が格段に劣ることがデメリットでしょう。
しかし、PCを持っていなくて小型機器でも機械学習を実現したい!という場合もあります。そんな時に便利なのがTensorFlow Lite。スマホのようなモバイル機器やIoTデバイスでディープラーニングなどの機械学習を簡単に実装できます。
この記事ではTensorFlow Liteの概要や使い方、実際の事例に触れるので、最後まで読めばTensorFlow Liteを始めるのに十分な知識がつくに違いありません。それでは今回は、TensorFlow Liteについて解説します。
TensorFlow Liteとは
TensorFlow LiteはGoogleが公開している機械学習ライブラリであるTensorFlowのモバイル端末バージョンという位置付けです。
TensorFlow Liteはパソコンなどと比べると処理能力が低い小型機器でも高速に動作するよう設計されています。大まかに言うと、TensorFlowで作成した機械学習モデル内の数値の桁数を小さくしています。例えば12.594*16.218よりも12*16の方がずっと計算が簡単ですよね。このようにして計算量を小さくしていますが、機械学習の予測精度があまり下がらないのがTensorFlow Liteのすごいところ。
また、TensorFlow Liteで作成したプログラムはGoogleが提供している「TensorFlow Lite コンバータ」というツールを使えば、iOSやAndroidといったスマホで簡単に機械学習を実行できます。機械学習を組み込んだ自作のプログラムをスマホで実行できるなんてすごいですよね!
TensorFlow Liteの使い方
まずは、PythonでTensorFlowを使った機械学習モデルを作成しましょう。最初は確実に動作するサンプルモデルをコピーするのがオススメです。公式サイトなどでたくさん公開されているので、できるだけ簡単なものを選びましょう。
次は、作成した機械学習モデルをsavedmodelという形式で保存します。先ほど作成した機械学習モデルの最後にtf.keras.save(‘保存先のパス’)を付け足すと、savedmodelが作成できます。
さらに、savedmodelをTensorFlow Lite用の形式であるFlatBufferに変換しましょう。下記の2行を実行すると、savedmodelが存在するフォルダ内にFlatBuffer形式のファイルが作成できます。
tflite_model = converter.convert()
あとは、TensorFlow Liteがインストールされた機器でFlatBuffer形式のファイルを読み込み実行するだけです。使用する環境によって方法が様々なので、詳細はこちらよりご確認ください。
TensorFlow LIteができること・その1:画像分類
TensorFlow Liteを使うと、画像に写っているものが何かを推定する画像分類が実行できます。たとえば、犬、木、人、車といった全く異なる物を見分けるのはもちろん得意ですし、画像の植物がヒマワリなのか朝顔なのかといった種類を特定することもできます。
また、画像分類は顔認証に利用できます。顔認証を利用すれば、狙った人の顔だけ加工するアプリなどが作れるでしょう。
TensorFlow LIteができること・その2:オブジェクト検出
TensorFlow Liteはオブジェクト検出にも対応しています。オブジェクト検出とは画像に写っているものの位置とそれが一体何なのかを推定する技術で、自動運転はこのオブジェクト検出を高度に応用した例のこと。
オブジェクト検出をうまく利用すると、画面内の狙った物体を追尾することが可能です。例えばスマホで撮影中、狙った物体に常に焦点を当てるアプリなどはオブジェクト検出を活用するのが良いでしょう。
TensorFlow LIteができること・その3:スマートリプライ
TendsorFlow Liteの公式サイトより、スマートリプライという機能を提供しています。スマートリプライとは、与えられた言葉に対して自動で返答する機能です。ディープラーニングによる自然言語処理をうまく活用することによって実現されていて、Amazon AlexaやGoogle Assistantなどがこの代表になります。
TensorFlow Liteでスマートリプライを実装するなら、TwitterやLineといったSNSで自動的に文章を作成して投稿するボットを作ることが考えられます。他のユーザーの投稿に自動で反応して返答することができるので、使い方によっては人気のボットが作成できるかもしれません。
また、スマートリプライを活用すればユーザーと自由に会話することができるので、ユーザーが使いやすく親しみやすいサービスを提供できます。皆さんも宅配便の配達時間をLINEで変更した経験はないでしょうか。このようなユーザーフレンドリーなサービスを構築できるのがスマートリプライの魅力です。
他にもTensorFlow Liteを応用させると、こんなこともできる
ここまで、小型機器の代表としてスマホでのTensorFlow Liteの活用を中心に紹介しましたが、Raspberry piやJetsonといった端末でもTensorFlow Liteを活用できます。
JetsonもRaspberry piと似たような機器ですが、Raspberry piより機械学習に特化しており、非常に高い演算能力を有しています。こちらは主に産業用途で利用されており、工場のスマートファクトリー化などで活躍しています。
しかしこれらのような機器はスマホよりも計算能力が高いとは言え、心もとない部分もあるでしょう。そこでTensorFlow Liteを利用し、例えば軽量な画像分類を実装すれば工場で生産する製品の検査を自動化することができます。
他にもTensorFlow Liteで姿勢推定を実装し、工場作業者の作業姿勢から作業者の疲労度を推定したり、異常行動を検知するといった様々な利用例が考えられます。
さて、今回はTensorFlow Liteの概要や使用方法、活用例について解説しました。ここまでの内容をまとめると、下記のようになります。
- TensorFlow Liteはモバイル端末向けの機械学習ライブラリ
- まずはTensorFlowで機械学習モデルを作成し、ツールを利用してTensorFlow Lite で利用できる形式に変換して利用する
- 画像分類を実装すると画像に写ったものが何なのかや、その種類などが推定できる
- オブジェクト検出を実装すると、画像内のものの名前や位置を検出できる
- スマートリプライを利用するとユーザーに自動で返答できる
- スマホだけでなく小型コンピュータでもTensorFlow Liteが活用できる
ここまで読めば、TensorFlow Liteを利用する予備知識は十分です。さっそくTensorFlow Liteの公式サイトを開き、簡単なサンプルを動かすことから始めましょう!