オタフ☆クラブ

TensorFlow Liteのモデルを使ってAIのアプリを作ってみた(Part 1)

TensorFlow Liteとラズパイ

最近、IoTまたはエッジAIをよく見かけるよね。「見たことない」って思った方も実は見たことがあるんじゃないかな。

そしてGoogleのPixel 3をはじめ、AI Readyスマホが登場しています。だからAI Readyスマホ、いわゆるAI対応端末は、他の端末とは何が違うか気になってくるよね。

だから今回は、AI対応端末の技術やハードウェアのこと、また開発事例を紹介するよ。ただし、中身はかなり濃いので、二つの記事で分けるので、本記事は技術とハードウェアを紹介し、次の記事はTensorFlow Liteのモデルを実装することにする。

シリル
シリル

あなたもトレンディなエッジAIを開発してみて!では早速紹介するね!

エッジAIとは

現在、AI(人工知能)を使っているサービスはクラウド上にあるよね。例えば、ネットで検索している時にAI(人工知能)が最適な結果を探す場合、クラウドの上で計算する。だから結果が出たら、端末に情報を送るけど、端末の方に表示以外何も計算していないのだよね。

この場合、ブラウザー上で検索して結果が出るまでちょっと時間がかかっても誰も気にしていないけど、機能によってスピードは致命的。どうしてもサーバーに接続しなければならなかったら、どんだけサーバーがハイスペックであっても、端末とサーバーの間のコミュニケーション時間を短縮できないよ。

シリル
シリル

そんな時はエッジAIが活躍できるんだ!

エッジAIとは端末の上で計算し、殆どの瞬時に反応できます。例えばPixel3では、音声認識を端末上に処理できるので、すごいスピードで言っていることをテキスト変換してくれるよ。(今は英語のみ対応だけどね。)

Google AI Blog

TensorFlow Liteとは

このエッジAIに使われるのがTensorFlow Lite。

TensorFlow liteはTensorFlowの軽いバージョンのことで、TensorFlowに比べてできることが少ないけど、エッジAI向けに最適化しているんだ。メモリーの制限などを考慮した感じ。ちなみにTensorFlowのモデルなどを直接使えないので、TensorFlow Liteモデルに変換しなければならないです。

シリル
シリル

それでは今回のデモプロジェクトでは、TensorFlow Liteのデフォルトモデルを使うことにするよ。

 

モデルの詳細は次のリンクで確認できます:https://www.tensorflow.org/lite/models

Raspberry Pi 4の紹介

ところで、Raspberry Pi、ラズパイを聞いたことがあるかな。イギリスの団体が開発しているミニコンで、安くて、性能が結構いいんだ。本体は1万以下で、IoTの開発に大人気なハードウェア。本当にこの値段すごい端末だと思う。

ってことで今回のデモではこのラズパイを使うよ。

まぁ、日本でRaspberry Pi3しか正式的に売られていないけど、Raspberry Pi 4は輸入しやすいので、イギリスから輸入してみた。

このRaspberry Pi 4はどうして日本でまだ売られてないのだろうね。単純に面倒臭い技適マークを取らないといけないためだからかな。。。この技適は本当にイノベーションを阻害していると思う。昔日本はイノベーションの王国だったのに、もったいないという気持ちの限りだ。まぁフランスで、そういうときはC’est la vie(大阪で言ったらしゃあないな)というw

ちょっと脱線してしまい、すみませんでした。本題に戻る!

GoogleのCoralを紹介

IoTのデバイスは、AIモデルを動かせる計算能力が基本的に足りてない。だからどうやってモデルのインフェレンスを早くできるかという課題を解決するのかというと、それはGoogleが提供しているCoral!

Coralは省エネのTPU(Tensor Processing Unit)で、Neural Networkの計算に特化している計算機で、USBで開発ボードに接続したら、AIモデルの予測はすごく早くなる。モデルによってはCoralを使ったらインフェレンスの速度は20倍近く早くなることも。そのスピード感を確認したくてたまらない。

だからこれからこのTPUをRaspberry Pi 4で試してみるよ。

ちなみに、Raspberry Pi 3を持つ方でも使えるけどUSB2しかないので、TPUのパーフォーマンスが通信速度の問題で落ちるから気をつけて。

デモアプリ

Raspberry Piの環境の準備

先ずはRaspberry Piの環境を整えます。本記事の目的はこれではないので、Googleを使って、チュートリアルを見つけましょう。

TensorFlow LiteのモデルについてはTensorFlow Liteの正式なサイトで確認してください。下記のリンクをご参考まで:

  1. インフェレンスを行う為に:https://www.tensorflow.org/lite/guide/inference#load_and_run_a_model_in_python
  2. モデルについて:https://www.tensorflow.org/lite/models

 

シリル
シリル

開発はPython 3.7.4で行う予定です。

デモ

モデルを試す為に、TensorFlowのGithubで見つけたコードをランしてみた。そのままでコードを貼り付けて、整えて、インストールしてないモジュールをPipでインストールした。

https://github.com/tensorflow/models/blob/master/research/deeplab/deeplab_demo.ipynb

特にTPUを使ってないので、ライト版とTPUとのパーフォーマンスの比較ができます。結果は次のような画像となります。結構いい感じで、処理は5秒ぐらいかかりました。

Segmentationの結果

次回は、Coralを用いたモデルインフェレンスを実験し、TensorFlow Liteの二つのモデルを試してみる。コードを細かく説明して、簡単に実装できるようにサポートするつもり。

シリル
シリル

俺って優しいな。

 

 

ラズパイのイメージ

さて今回の記事では、主に色々な最先端の技術と端末を紹介しました。今回紹介した技術や端末はあなたも使ってみてほしい。

そして次はIoTなどに挑戦して、TensorFlow Liteのモデルも実装してみるつもりだよ。

しかしIoTなどをやると環境を整えるのは大変でしょう。けれど色々勉強になるので、是非やってみて。Raspberry Pi 4を購入し、Coralも手に入れて、実験してみよう!

ところで、輸入はこのウェブサイトからできる:https://shop.pimoroni.com/

Coralの場合:https://coral.withgoogle.com/products/accelerator#

これらを手に入れたら次回は一緒に実験できるよ。

ではまたね。

シリル
シリル

Et à bientôt pour de nouvelles aventures!(一緒にまた次の冒険に出ましょう)

コメントをどうぞ

  1. 通りがかり より:

    × Tensorflow lite
    ○ TensorFlow Lite

    商標なので、勝手に小文字にしてはいけません。

    • シリル シリル より:

      通りがかりさん、
      ご指摘いただき、ありがとうございました。修正いたしました。これから商標の書き方に気をつけます。
      今度もよろしくお願いします。

トップへ戻る
タイトルとURLをコピーしました