Slide 1

Slide 1 text

モバイルアプリで機械学習入門 ML Kitを使ったカメラアプリ実装

Slide 2

Slide 2 text

自己紹介 - 名前: 阿部 - 仕事: 主にAndroidエンジニア - 最近はサーバサイド Kotlinの仕事も始めました - 趣味 - コーヒー、ビール、アニメ、ゲーム、読書、 etc... - Twitter: @marchin_1989

Slide 3

Slide 3 text

アジェンダ - on-device machine learning とは - MLKitの紹介 - MLKit Face Detectionの機能の説明とデモンストレーション

Slide 4

Slide 4 text

on-device machine learning(on-device ML)とは - サーバ側ではなく、モバイルといったクライアントサイドで機械学習を行うこと

Slide 5

Slide 5 text

- 要件によるが以下のようなことを検討して決める。 クライアント(on-device)、サーバ、どちらでMLするか クライアント (on-device ML) リアルタイムに処理したい (ネットワーク通信の遅延がない ) データをサーバにあげたくない ネットワークに繋げられない サーバ マシンパワーが必要 常に最新のモデルを使う必要がある 学習済みモデルを守りたい

Slide 6

Slide 6 text

on-device MLの例(スマホアプリ) - Google翻訳 - YouTube(AR Beauty Try-On) 出典: ITmedia NEWS https://www.itmedia.co.jp/news/articles/1906/20/news069.html 出典: Google Play https://play.google.com/store/apps/details?id=com.google.android.apps.translate

Slide 7

Slide 7 text

on-device MLの機能を実装するためのフレームワーク - モバイル端末上で推論するためのフレー ムワーク。 - tensor flowで作ったモデルをtensor flow liteのモデルに変換できる - Android, iOS, IoTデバイスで利用可能 - TensorFLow hubに学習済みのモデルが 提供されていたりする - よくある機械学習のユースケースと学習済み モデルをラップして、使いやすくしたもの。 - 機能によってはカスタムの TensorFlow Lite のモデルが使える。 - Android, iOSで利用可能

Slide 8

Slide 8 text

on-device MLをスクラッチで作成すると... 出典: Google I/O 2021 TensorFlowセッション ML Kit: Turnkey APIs to use on-device ML in mobile apps | Session https://www.youtube.com/watch?v=CQ8iEqblWtY

Slide 9

Slide 9 text

ML Kitを使うと... 出典: Google I/O 2021 TensorFlowセッション ML Kit: Turnkey APIs to use on-device ML in mobile apps | Session https://www.youtube.com/watch?v=CQ8iEqblWtY

Slide 10

Slide 10 text

ML Kitの機能 出典: Google Developers blog https://developers.googleblog.com/2021/03/ml-kit-is-now-in-ga-introducing-selfie.html

Slide 11

Slide 11 text

ML Kitの機能 出典: Google Developers blog https://developers.googleblog.com/2021/03/ml-kit-is-now-in-ga-introducing-selfie.html

Slide 12

Slide 12 text

Face detectionの機能 - 顔認識 - 画像内のどこに顔があるのか認識(複数の顔も可能) - 顔のトラッキング - 一度認識した顔を、流れてくる画像に対してトラッキングしてくれる。 - ランドマーク - 顔の輪郭や、左目、右目、眉毛、口、鼻の位置などが画像内のどこにあるか - 分類 - 目が開いているのか、閉じているのか - 笑っているのか 出典: ML Kit Guides https://developers.google.com/ml-kit/vision/face-detection/face-detection-concepts

Slide 13

Slide 13 text

Face detectionの実装 - 依存モジュールを組み込む - 推論対象のイメージを渡す - 推論結果を処理する

Slide 14

Slide 14 text

Face detectionの実装

Slide 15

Slide 15 text

作ってみた(デモ) - 笑顔を認識して、自動で写真を撮ってくれるカメラアプリ(Android) - セルフィーでボタンが押しづらい - 全員笑ってる写真を撮りたい etc - Face detectionを使う - https://developers.google.com/ml-kit/vision/face-detection

Slide 16

Slide 16 text

サンプルアプリの実装の概略 - CameraXを利用 - FaceDetectorがMLKitのクラス

Slide 17

Slide 17 text

TensorFlow Lite or MLKit? - まずはMLKitがおすすめ - 認識精度、パフォーマンスが悪いなど要件が合わなければ TensorFlow Liteを検討 - 自前でモデルを作ったとしても、推論結果をアプリで使いやすいように実装する必要がある - MLKitが認識できない例 - どの国の国旗か - どの会社のロゴか - その人が誰なのか - どのブランドの製品なのか - どの昆虫の種類なのか

Slide 18

Slide 18 text

on-device ML向けのモデルを作るには? - TensorFlowでモデルを作り、TensorFlow Liteに変換 - AutoML - TensorFlow Lite Model Maker - 転移学習を用いて、 on-device向けにモデルを作成できるライブラリ。

Slide 19

Slide 19 text

on-device MLを組み込むときに迷ったら - On-Device Machine Learning - https://developers.google.com/learn/topics/on-device-ml - プラットフォームやユースケースを選ぶと、適切な方法を提示してくれる。

Slide 20

Slide 20 text

まとめ - まずはMLKitがおすすめ - やりたいことに応じて、自分でモデルを作るか検討しましょう