Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google Colabを転移学習・モデル変換に使ったりAPIサーバーで使おうとした話 / YurufuwaML vol.6

Cd931bc05e7cee46b9a950a63e47ba4c?s=47 yo-to
April 08, 2021

Google Colabを転移学習・モデル変換に使ったりAPIサーバーで使おうとした話 / YurufuwaML vol.6

Cd931bc05e7cee46b9a950a63e47ba4c?s=128

yo-to

April 08, 2021
Tweet

Transcript

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

    @youtoy )
  2. 豊田陽介(@youtoy) 自己紹介 普段は、某通信会社の研究所勤務 話題のものを たくさん購入 してる気がする ビジュアルプログラミング・IoT 関連など主催、運営・登壇も ガジェット好き その他

    IT系イベント主催・登壇・運営、多数参加 子ども向けの活動いろいろ(IT系以外も) プライベートでの活動
  3. 過去のコミュニティ活動中 での機械学習関連の話 (学習を含むもの)

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

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

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

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

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

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

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

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

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

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

  15. 簡単に転移学習!(画像分類の例) 1)公式チュートリアルを Google Colab   で開く 2)Google Colab にデータセットをアップ 3)データ読み込み処理の記載を少し変更 4)Google

    Colab上でボタンをポチポチ ※ 公式のデータセットを使うなら 2・3 は不要
  16. TensorFlow Lite はスマホ用公式サンプルがある 機械学習モデルを作った後は

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

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

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

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

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

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

    の話を(ニュースレターより)
  23. とりあえず、 iPhoneで実機ビルド

  24. ふと思った ⇒ Lobe のサンプルのモデルを Lobe        以外で作ったものにできるかな? 2)Core ML Toolsでモデル変換 【確認したり調べたり】

    ・Lobe のスタータープロジェクトのモデルは Core MLっぽい ・Core ML Tools という機械学習モデルをCore ML の形式に  変換する Pythonパッケージがあるっぽい ・Python ってことは、Colab上で使えたりするかも?
  25. ちなみに、Core ML Tools の ページはこれ

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

  27. 機械学習モデルの変換関連で行ったこと 1)Teachable Machine のサイト上での学習 2)モデルを TensorFlow > Keras で出力 3)Google

    Colab上にモデルをアップロード 4)Google Colab上に Core ML Tools を   インストールし変換プログラムを書く 5)変換後のモデルをゲット!
  28. モデルの出力・変換処理の一部

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

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

  31. ふと思った ⇒ Google Colab を APIサーバー的に        使う方法はないか? 3)Google ColabでAPIサーバー 結果:

    ▲▲ 73% ... 結果: •• 85% ... 画像を受け取り、 推論結果を返す
  32. ngrok + Webフレームワーク(Flask/FastAPI) で外部からのアクセス等ができた! 外部からアクセス可能なサーバーにできる?

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

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

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

  36. 終わり!