Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CameraXとMLKitの関係や如何に!?

1,147 views

Published on

2019-05-15 potatotips #61 (iOS/Android開発Tips共有会) の発表資料です。 https://potatotips.connpass.com/event/127296/

Published in: Technology
  • Be the first to comment

CameraXとMLKitの関係や如何に!?

  1. 1. 2019-05-15 potatotips #61 @cattaka_net CameraXとMLKitの関係や如何に!? Takao Sumitomo @cattaka_net
  2. 2. 2019-05-15 potatotips #61 @cattaka_net 自己紹介 ● 住友 孝郎(Takao Sumitomo) ● Wantedly, Inc. 所属 ● Androidアプリを主に担当 ● @cattaka_net (アイコンは気分で変わる)
  3. 3. 2019-05-15 potatotips #61 @cattaka_net Google I/O 2019行ってきたよ
  4. 4. 2019-05-15 potatotips #61 @cattaka_net Codelabsで CameraXとFirebase MLKitを 触ったよ
  5. 5. 2019-05-15 potatotips #61 @cattaka_net Codelabsって? https://codelabs.developers.google.com/
  6. 6. 2019-05-15 potatotips #61 @cattaka_net 楽しかったのでその話
  7. 7. 2019-05-15 potatotips #61 @cattaka_net そもそもCameraXの何が嬉しいの?
  8. 8. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み
  9. 9. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera
  10. 10. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera 出力先の準備 ImageReader TextureView
  11. 11. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera 出力先の準備 ImageReader TextureView セッションを作る createCaptureSession
  12. 12. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera 出力先の準備 ImageReader TextureView セッションを作る createCaptureSession キャプチャー開始 startCaptureRequest
  13. 13. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera 出力先の準備 ImageReader TextureView セッションを作る createCaptureSession キャプチャー開始 startCaptureRequest 全部コールバック!
  14. 14. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera 出力先の準備 ImageReader TextureView セッションを作る createCaptureSession キャプチャー開始 startCaptureRequest 全部コールバック! 順序関係あり! 依存 依 存依 存
  15. 15. 2019-05-15 potatotips #61 @cattaka_net Camera 2 APIの辛み カメラを開く openCamera 出力先の準備 ImageReader TextureView セッションを作る createCaptureSession キャプチャー開始 startCaptureRequest 全部コールバック! 順序関係あり! 依存 依 存依 存 画面のライフサイクルにも依存 画面のレイアウトが 完了していないといけない
  16. 16. 2019-05-15 potatotips #61 @cattaka_net おわかり頂けただろうか?
  17. 17. 2019-05-15 potatotips #61 @cattaka_net Camera Xは設定すれば、 後はLifecycleに乗せてくれる カメラを開く openCamera 出力先の準備 ImageReader TextureView セッションを作る createCaptureSession キャプチャー開始 startCaptureRequest ここだけ設定する
  18. 18. 2019-05-15 potatotips #61 @cattaka_net コード例 // プレビューの設定をする val previewConfig = PreviewConfig.Builder().apply { setTargetResolution(Size(640, 640)) }.build() val preview = Preview(previewConfig) // 準備ができたときに、Viewへ出力するように指示 preview.setOnPreviewOutputUpdateListener { // To update the SurfaceTexture, we have to remove it and re-add it val parent = viewFinder.parent as ViewGroup parent.removeView(viewFinder) parent.addView(viewFinder, 0) viewFinder.surfaceTexture = it.surfaceTexture updateTransform() } // ライフサイクルにバインド CameraX.bindToLifecycle(this, preview)
  19. 19. 2019-05-15 potatotips #61 @cattaka_net 便利! ✌('ω' )✌ 三✌('ω')✌三( 'ω')✌ ✌
  20. 20. 2019-05-15 potatotips #61 @cattaka_net Firebase MLKitの何が嬉しいの?
  21. 21. 2019-05-15 potatotips #61 @cattaka_net 機械学習をアプリに 組み込むのは面倒くさい ● モデルやデータのフォーマット ● エンジンの設定 ● Inputの定義 ● Outputの定義
  22. 22. 2019-05-15 potatotips #61 @cattaka_net Firebase MLKitは インターフェースがシンプル ● ユースケースに合わせて予め定義されたAPI ● Firebase ML Vision ● 顔認識: Face Model ● オブジェクト認識: Object Detection Model ● イメージラベル: Image Label Model ● カスタム: AutoML
  23. 23. 2019-05-15 potatotips #61 @cattaka_net 良しなにやってくれる ● 例:テキストの認識 // 画像を準備 val image = FirebaseVisionImage.fromMediaImage(src, rotation) // 認識機の準備 val recognizer = FirebaseVision.getInstance() .onDeviceTextRecognizer // 認識の開始 recognizer.processImage(image) .addOnSuccessListener { texts -> continuation.resume(texts) } .addOnFailureListener { e -> continuation.resumeWithException(e) }
  24. 24. 2019-05-15 potatotips #61 @cattaka_net 便利! ✌('ω' )✌ 三✌('ω')✌三( 'ω')✌ ✌
  25. 25. 2019-05-15 potatotips #61 @cattaka_net Codelabsはそれぞれ 30分〜1時間でこなせる量 https://codelabs.developers.google.com/
  26. 26. 2019-05-15 potatotips #61 @cattaka_net くっつけてみた
  27. 27. 2019-05-15 potatotips #61 @cattaka_net Object Detection Model https://drive.google.com/file/d/1LXBsgIRMeNSpB3zV1MmAcGGPjqlakTo2/view?usp=sharing
  28. 28. 2019-05-15 potatotips #61 @cattaka_net Image Label Model https://drive.google.com/file/d/1DUszdyxs5T5RLEH3QiXOnO8u7BLuHyRn/view?usp=sharing
  29. 29. 2019-05-15 potatotips #61 @cattaka_net CameraX と Firebase MLKit の組み合わせ、楽しい
  30. 30. 2019-05-15 potatotips #61 @cattaka_net コードはこちら https://github.com/cattaka/CameraXMLKit
  31. 31. 2019-05-15 potatotips #61 @cattaka_net ご清聴ありがとうございました Takao Sumitomo @cattaka_net

×