Slide 1

Slide 1 text

Google Colabを転移学習・モデル変換に 使ったりAPIサーバーで使おうとした話 2021年4月8日 (木) ゆるふわマシンラーニング vol.6   豊田 陽介 ( @youtoy )

Slide 2

Slide 2 text

豊田陽介(@youtoy) 自己紹介 普段は、某通信会社の研究所勤務 話題のものを たくさん購入 してる気がする ビジュアルプログラミング・IoT 関連など主催、運営・登壇も ガジェット好き その他 IT系イベント主催・登壇・運営、多数参加 子ども向けの活動いろいろ(IT系以外も) プライベートでの活動

Slide 3

Slide 3 text

過去のコミュニティ活動中 での機械学習関連の話 (学習を含むもの)

Slide 4

Slide 4 text

Maker Faire出展で使った音の機械学習 https://www.youtube.com/watch?v=Ve6TyzzmXck Googleさんの Teachable Machine の音を対象にした機械学習を利用 (+Web Bluetooth API )

Slide 5

Slide 5 text

「小さい子でも分かる・ 楽しめる」を機械学習で実現

Slide 6

Slide 6 text

機械学習が使われた仕組み を活用した話

Slide 7

Slide 7 text

ブラウザ上で両手を認識(+矩形描画) Googleさんの MediaPipe Hands のサンプルに少し矩形の描画処理 を追加してみたもの

Slide 8

Slide 8 text

ブラウザ上で両手を認識(+3D描画など) Googleさんの MediaPipe Hands と p5.js による 3D描画や画像の 透過表示

Slide 9

Slide 9 text

某アニメの悪役の「とっておきの手品」 Googleさんの MediaPipe Hands と p5.js による画像の透過表示

Slide 10

Slide 10 text

学習に関しては主に Teachable Machine 後の活用事例のほうは TensorFlow.js

Slide 11

Slide 11 text

一方、今回の主役は Google Colab や TensorFlow Lite など

Slide 12

Slide 12 text

タイトルに書いていた 「転移学習・モデル変換・ APIサーバー」の話へ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

「TensorFlow Lite Model Maker」が便利! 1)Google Colabでの転移学習 モバイル向けなどの「TensorFlow Lite」の転移学習を簡単に 行える仕組み(コードもすごくシンプル)

Slide 15

Slide 15 text

簡単に転移学習!(画像分類の例) 1)公式チュートリアルを Google Colab   で開く 2)Google Colab にデータセットをアップ 3)データ読み込み処理の記載を少し変更 4)Google Colab上でボタンをポチポチ ※ 公式のデータセットを使うなら 2・3 は不要

Slide 16

Slide 16 text

TensorFlow Lite はスマホ用公式サンプルがある 機械学習モデルを作った後は

Slide 17

Slide 17 text

【余談】 TensorFlow Lite の 公式サンプルを 流用してみた事例

Slide 18

Slide 18 text

Teachable Machineとの組み合わせ 機械学習モデルを「TensorFlow Lite(量子化済み)」で出力 画面の下に認識結果や確信度の 表示が出てくる(動的に変化)

Slide 19

Slide 19 text

モデルの出力の部分 TensorFlow Lite > 量子化済み を選択

Slide 20

Slide 20 text

転移学習がクラウド上 での処理のみで完了!

Slide 21

Slide 21 text

次は「モデル変換:Core ML Tools(Lobe)」の話

Slide 22

Slide 22 text

とある事情により、初心者向けの「機械学習による 画像分類 + 独自データセットによる転移学習 + iPhone上での推論実行」をあれこれ探してた 先ほどの話をやり始めた背景 そんな中、Microsoftさんの Lobe のスタータープロジェクト の話を(ニュースレターより)

Slide 23

Slide 23 text

とりあえず、 iPhoneで実機ビルド

Slide 24

Slide 24 text

ふと思った ⇒ Lobe のサンプルのモデルを Lobe        以外で作ったものにできるかな? 2)Core ML Toolsでモデル変換 【確認したり調べたり】 ・Lobe のスタータープロジェクトのモデルは Core MLっぽい ・Core ML Tools という機械学習モデルをCore ML の形式に  変換する Pythonパッケージがあるっぽい ・Python ってことは、Colab上で使えたりするかも?

Slide 25

Slide 25 text

ちなみに、Core ML Tools の ページはこれ

Slide 26

Slide 26 text

再度Teachable Machineとの組み合わせ 画面の下の結果表示は、 TensorFlow Lite のサンプル とは違ってる

Slide 27

Slide 27 text

機械学習モデルの変換関連で行ったこと 1)Teachable Machine のサイト上での学習 2)モデルを TensorFlow > Keras で出力 3)Google Colab上にモデルをアップロード 4)Google Colab上に Core ML Tools を   インストールし変換プログラムを書く 5)変換後のモデルをゲット!

Slide 28

Slide 28 text

モデルの出力・変換処理の一部

Slide 29

Slide 29 text

転移学習・モデル変換が クラウド上での処理のみで!

Slide 30

Slide 30 text

最後は「APIサーバ」の話 ※ 道半ばの部分

Slide 31

Slide 31 text

ふと思った ⇒ Google Colab を APIサーバー的に        使う方法はないか? 3)Google ColabでAPIサーバー 結果: ▲▲ 73% ... 結果: ●● 85% ... 画像を受け取り、 推論結果を返す

Slide 32

Slide 32 text

ngrok + Webフレームワーク(Flask/FastAPI) で外部からのアクセス等ができた! 外部からアクセス可能なサーバーにできる?

Slide 33

Slide 33 text

【余談】Colab上でNode.jsも動いた

Slide 34

Slide 34 text

外部から画像を受け取るところまではできた 外部から POST で送った画像を Colab側で保存・表示 あとは推論の処理をうまく 組み込めれば!?

Slide 35

Slide 35 text

長期間の連続稼働は仕組み的に ダメですが、ちょっとしたテスト・ デモ用にあると面白そうかな

Slide 36

Slide 36 text

終わり!