Slide 1

Slide 1 text

ML Kit を Android で 動かしてみた 2018.6.14 / @radiocatz Osaka Mix Leap Study #16 - Android JetPack 勉強会 - LT

Slide 2

Slide 2 text

おしごと 現職:株式会社 ラクス 所属:楽楽精算 開発チーム リーダー/スクラムマスター About me radiocat Twitter : @radiocatz Android派/Vim派/野球派/KIRINビー ル派 HTC DesireからAndroidユーザー Blog : http://radiocat.hatenablog.com/ Qiita : https://qiita.com/radiocat GitHub : https://github.com/radiocat Androidアプリ 社内の勉強会の運営もやってます 共同開催・ゲスト登壇募集中!

Slide 3

Slide 3 text

ML Kitについて

Slide 4

Slide 4 text

ML Kit for Firebase ● Android/iOS向け機械学習SDK ● Google I/O 2018で発表 ● 現在パブリックベータ ● Googleに訓練されたMLモデルを利用可能 ● TensorFlow Liteの自作モデル(Custom Models)も利用可能 ● 2種類のAPI ○ On-device:デバイスに組み込んで通信なしで使える軽量なモデル ○ In the Cloud:クラウド上の高度なモデル

Slide 5

Slide 5 text

MLモデルAPIについて

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

On-device/Cloud

Slide 8

Slide 8 text

On-deviceで使えるAPI 無料で使える ● 顔検出 ● バーコードスキャン ● 自作モデル ● テキスト認識(※In the Cloudでも使える) ○ Latin-based languageのみ ● 画像のラベル付け(※In the Cloudでも使える) ○ 400+ labels

Slide 9

Slide 9 text

In the Cloudで使えるAPI Cloud Vision APIを使う Firebase の課金プランを Blaze(従量制課金)にする必要がある ● ランドマーク認識 ● テキスト認識(※On-deviceでも使える) ○ 多言語対応(日本語を使いたいならこちら) ● 画像のラベル付け(※On-deviceでも使える) ○ 1000+ labels ※On-device/In the Cloudの両方で使う場合はそれぞれ実装する

Slide 10

Slide 10 text

使い方

Slide 11

Slide 11 text

build.gradleへ追加 ML Kitの依存ライブラリ Google Services implementation 'com.google.firebase:firebase-ml-vision:16.0.0' implementation 'com.google.firebase:firebase-ml-vision-image-label-model:15.0.0' implementation 'com.google.firebase:firebase-ml-model-interpreter:16.0.0' apply plugin: 'com.google.gms.google-services'

Slide 12

Slide 12 text

画像のラベル付けの場合① FirebaseVisionImageオブジェクトを作る FirebaseVisionLabelDetectorのインスタンスを取得する FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap); FirebaseVisionLabelDetector detector = FirebaseVision.getInstance() .getVisionLabelDetector();

Slide 13

Slide 13 text

画像のラベル付けの場合② Task> result = detector.detectInImage(image) .addOnSuccessListener( new OnSuccessListener>() { @Override public void onSuccess(List labels) { // 取得成功した場合の処理 } }) .addOnFailureListener( // 以下略

Slide 14

Slide 14 text

画像のラベル付けの場合③ ラベル付きオブジェクトの情報を取得 for (FirebaseVisionLabel label: labels) { String text = label.getLabel(); String entityId = label.getEntityId(); float confidence = label.getConfidence(); }

Slide 15

Slide 15 text

それぞれのAPI向けのDetectorが用意されている 扱い方はだいたい同じ 参考:ML Kit for Firebase | Firebase https://firebase.google.com/docs/ml-kit/ On-device Cloud FirebaseVisionTextDetector FirebaseVisionCloudDocumentTextDetector FirebaseVisionFaceDetector ー FirebaseVisionBarcodeDetector ー FirebaseVisionLabelDetector FirebaseVisionCloudLabelDetector ー FirebaseVisionCloudLandmarkDetector

Slide 16

Slide 16 text

試してみる

Slide 17

Slide 17 text

手っ取り早く公式のサンプルアプリをビルド 1. Firebaseプロジェクトを作成しgoogle-services.jsonをダウンロード 2. https://github.com/firebase/quickstart-android を git clone 3. quickstart-android/mlkitをAndroid Studioでインポート 4. google-services.jsonをmlkit/appの下に配置してビルド

Slide 18

Slide 18 text

Demo

Slide 19

Slide 19 text

所感 ● 仕組み的にはVision APIとTensorFlow Liteモデルなどの既存機能をSDKにパッケー ジングして使いやすくした感じ ● と言うとたいしたことなく聞こえるけどリアルタイムでMLの予測が動くのはすごい ● これがSDKを使うだけで誰でも作れそうなことに恐怖すら感じた ● しかもOn-deviceだけ使うなら無料!

Slide 20

Slide 20 text

Thank you

Slide 21

Slide 21 text

References ● Google Developers Blog: Introducing ML Kit ○ https://developers.googleblog.com/2018/05/introducing-ml-kit.html ● Y.A.M の 雑記帳: I/O Recap : ML Kit 情報まとめ(Android 向け) ○ https://y-anz-m.blogspot.jp/2018/05/io-recap-ml-kit-android.html ● Google OS実験室 ~Moonlight 明日香~ : Google ML Kit試してみた! ○ http://google-os.blog.jp/archives/50874071.html