変わりモノがいい!

変わりモノには価値がある・・・ハズ?

そもそもTensorFlow Liteとはなにか。

時代の変化を感じます。

今、ボケ防止を兼ねて、Raspberry Piを使って色々なことをやりつつあります。
その中の一つに、カメラの映像に写っている物体の検出というものがあります。
1万円もしないコンピュータであるRaspberry Piを使って物体認識をするには助っ人というか機能強化ユニットが必要で、その目的でCoral TPUを繋いでいます。
これでリアルタイミムの物体認識ができます。
思い起こせば、時代は、機器のローカル運転から、機器からクラウドへデータをあげて処理結果を機器へ返す運転へ移行し、エッジコンピューティング へと移っています。
僕は、もともと産業機器の設計をやっていてその中でも特に機器制御に長く係ってきました。
そういう人間からすると今言われているエッジコンピューティングは昔から慣れ親しんだ文化(機器側が必要な処理を行うという意味で)なので懐かしくもあり、嬉しくもあり、という感想を持っています。
ところが、時代は進んでおり、今、エッジでできることは昔では想像することさえできないような高度な内容になっており、特にエッジAIの進化には目を見張るものがあります。
そのエッジAIに使われているのがTensorFlow Liteです。
TensorFlow Liteは、Googleが開発した機械学習のためのソフトウエアライブラリです。
TensorFlowを使うことでニューラルネットワークを使った機械学習モデルを簡単に作ることができます。
ちなみに、TensorFlow LiteのTensorとは、多次元配列のことであり、TensorFlow Liteは多次元配列計算を効率的に行うためのライブラリということになります。

f:id:ken2017:20200702095431j:plain

いくらなんでもRaspberry Piで多次元配列計算は厳しいよね。

同感です。
Raspberry Piは、4になって本当に進化したと思います。
RAMも4G搭載しておりデスクトップPCの代替も視野に入れた製品となっています。
そうは言っても1万円以下のPCですので膨大な計算が必要なニューラルネットワークを使った機械学習を行うことはチョット可愛そうですね。

f:id:ken2017:20200702144509j:plain

           ニューラルネットワークの例
そういうこともあり、GoogleがRaspberry Piのようなエッジで使うことができるコンピュータでニューラルネットワークで構築したAIモデルを動かすためのASIC「Edge TPU」を搭載したUSBアクセラレータであるCoral TPUを開発しました。
Coral TPUは、TensorFlow LiteをRaspberry Piに負荷をかけることなく高速で動作させるためのものということになります。
実際に測定してみましたが、10倍ぐらい高速になっています。
Coral TPUに搭載されているEdge TPUは優れものでモバイルビジョンモデルをフレームレート400FPSでの処理が可能とのことです。

f:id:ken2017:20200702111113j:plain
   1セント硬貨より遥かに小さいEdge TPU
この環境でTensorFlow Liteを使ったエッジAIアプリを動かすことになります。

TensorFlow Liteの仕組みは?

TensorFlow Liteを使うための手順を以下に示します。
1)モデルの選択
 新しいモデルの選択、または、既存のモデルの再トレーニング
2)変換
 TensorFlow Liteコンバータを使いモデルを圧縮されたFlatBuffer(.tfliteファイル)に変換
3)デプロイ
 圧縮された.tfliteファイルをRaspberry Piに読み込み
4)最適化
 32ビット浮動小数点をより効率的な8ビット整数量子化
f:id:ken2017:20200702115019j:plain⇨ f:id:ken2017:20200702115042j:plainf:id:ken2017:20200702115059j:plainf:id:ken2017:20200702115112j:plain

 モデルの選択     変換      デプロイ     最適化
これがTensorFlow Liteのポイントになります。
モデルを選ぶことで実現すべき機能、用途への対応を行うことになります。
代表的なモデルとしては、以下のようなものがあります。
1)画像分類
 人、動き、動物、植物、場所など、何百ものオブジェクトを識別します。
2)物体検出
 処理領域内の複数の物体を検出します。
3)姿勢推定
 1人または複数人の姿勢を推定します。
これ以外にも、会話チャットメッセージの返信候補を生成するスマートリプライやフリーテキストを定義済みのグループに分類するテキスト分類などもあります。
これからも新たな要望に対するモデルが創られていくと思います。

f:id:ken2017:20200702125109j:plain    f:id:ken2017:20200702125127j:plain   f:id:ken2017:20200702125135j:plain
   画像分類          物体検出         姿勢推定

プログラムってどんな感じ?

TensorFlow Liteを使ったPythonのプログラムの例として物体検出のプログラムの構成を以下に示します。
1)ライブラリ読み込み
2)TensorFlow Liteモデルとラベルをロードします。
3)インタープリターに必要なデータをセットします。
4)カメラから画像データを入力します。
5)モデルで物体を検出し推論を実行します。
6)検出した物体の情報(枠、クラス、スコア)をモニタに表示します。
以上の全てでたったの140ステップのプログラムです。

f:id:ken2017:20200702144817p:plain
        物体検出の例(tensorflow.orgより引用)
素晴らしいの一言に尽きます。
さて、今回は、TensorFlow Liteについて見ていきました。
次回は、いよいよ実社会の中でこのアプリケーションを適用してみたいと思います。

では、また。

(参考情報)

www.tensorflow.org

(参考図書)

 

プライバシーポリシー お問い合わせ