Android 11 Meetups メモ (機械学習)

https://developersonair.withgoogle.com/events/a11meetups-jp?talk=ml

TensorFlowやML Kit 等、端末上で実行可能な機械学習についてのセッションを行います。 主催:GDG Osaka, GDG Tokyo, Google

Session 1: Android機械学習を活用 - 入門講座: Khanh LeViet(約 40分)

Edge ML Explosion (デバイス上での機械学習体験)

  • サーバー上でなく、デバイス上で機械学習を動かす体験はより重要になってきた
    • レイテンシ
    • ネットワーク不要
    • プライバシーデータを送らなくて良い
  • AR/ カメラを介すものなどは特にこの体験が必要(on-device出ないと難しい)
  • 歩く->走る->自転車に乗るは従来のプログラミングであればスピードを元に判定できるが、ゴルフをしているなどは全く別の話になる。だが、機械学習のアプローチだとこれが可能になる

Tensor flowを組み込む

  • Tensor flow -> DeepLearningのフレームワーク
  • 花の種別を判別する
  • Google ColabからブラウザからPythonを動かして、モデルを作れる
  • TFLite Model Maker
  • Android Studio 4.1から、Tensor Flow Liteのプラグインが使える
  • .tfliteモデルをapp下に置く
  • TensorFlowImage#Bitmapをモデルに渡す。-> processImage() ( [MEMO] : 使い方AutoMLとほぼ一緒な所感)

Leverage TF Lite pre-trained models

  • レーニング済みモデル
    • どこで落とせる?
    • 画像分類( Image Classification )
    • 物体検出( ObjectDetection ) model_object_localizer
      • 認識対象は真ん中にないといけない
      • どこにあるかまで認識できる
    • 画像セグメント(ImageSegmentation)
      • オブジェクトの切り取りなどができる(Zoomのバーチャル背景など)
    • スタイル転換(Style Transfer)
      • あるコンテンツにあるコンテンツの特徴をくっつける
      • 画像のフィルター機能など
      • Sample : Google Arts & Culture

Session 2: ML Kit's on-device APIs : yanzm(約 40分)

ML Kitのリブランディング

  • on deviceのAPIが全てFirebaseから独立した
  • cloud -> Firebase
  • ondevice -> MLKit

Bundled vs Thin

  • Bundled
    • アプリサイズ大きい
    • すぐ使える
    • Imege LabelingとObject Detectionはこちらのみ
    • Image LabelingはTensor flow Hubなどから持ってきて使える
  • Thin
    • 小さくて済む
    • ダウンロードするまで使えない
    • Text Recognitionはこちらのみ

Android Jetpack Lifecycle Support

  • Closableを実装
  • LifeCycleObserverで管理可能

Custom Modeling

  • ByteBufferなど入出力はお任せ
  • 推論結果トラベルのマッピングもお任せ
  • ML Kit compatible modelsを使える

自分でのモデル学習方法

  • AutoML Vision Edge
  • TensorFlow Lite Model Maker

Early Access Program

  • Entity Extraction
  • Pose Detection

Firebase ML

質疑応答(約 30分)

  • 端末上でモデルの学習は可能か?
    • 可能だが限界はある
  • MLKitのText RecognitionとCloudVisionAPIとの差は?
    • 本格的に、精度高く使う場合は後者
  • モデルのデータ収集を兼ねて、アプリ上で学習できるライブラリはないか?
    • データ収集は動画にすると効率が良かったりする
    • 今のところそう言った便利なものはない
  • モデル作成には膨大な画像が必要ですが、少数でできないでしょうか?
    • 動画で学習データ作ると楽だよ
    • また、100枚くらいあれば正直十分
  • MLKitとmediapipeの関係は?
    • 関係ない、目的が違う
  • Translateの精度はどの程度上がっていますか?(以前は固有名詞が苦手だったイメージ)
    • 変わってない
  • Image labelingでラベル付けされるのは英語?
    • 英語です。自動翻訳はないので翻訳を使ってがんばろう
  • アプリからサーバーにデータを送って、サーバーで学習して、アプリにモデルをダウンロードするのを効率的にやる方法はありますか?独自でシステムを構築してうまくやる感じになりますか?
    • 独自にやるのがベター