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でラベル付けされるのは英語?
- 英語です。自動翻訳はないので翻訳を使ってがんばろう
- アプリからサーバーにデータを送って、サーバーで学習して、アプリにモデルをダウンロードするのを効率的にやる方法はありますか?独自でシステムを構築してうまくやる感じになりますか?
- 独自にやるのがベター