Google Colabを転移学習・モデル変換に使ったりAPIサーバーで使おうとした話 / YurufuwaML vol.6
by
you(@youtoy)
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
終わり!