SlideShare uma empresa Scribd logo
1 de 26
Felipe Pedroso
TDC São Paulo / 2018
Machine Learning em Apps Android com
Felipe Pedroso
Android Developer @ Movile
felipeapedrosofelipepedroso felipeapedroso
Qual o valor que Machine Learning
pode adicionar em apps móveis?
Customizar a experiência
Entender e automatizar hábitos
Prover Acessibilidade
“Efeito WOW”
Etc, etc, etc...
Quais são os desafios para o
desenvolvedor de apps?
Criar/Treinar modelos
Otimização para dispositivos móveis
Integração com o app
Modelo local ou remoto
ML Kit: Machine Learning SDK for mobile developers (Google I/O '18)
Machine Learning para todos!
Suporte para Android e iOS
Fonte das imagens: WikiMedia Commons
Duas modalidades de funcionamento
Dispositivo
(“offline”)
Nuvem
Funcionalidades
Dispositivo Nuvem
Reconhecimento de Texto ✔ ✔
Detecção de Faces ✔
Leitura de código de barras ✔
Rotular imagens ✔ ✔
Reconhecimento de pontos de
referência / pontos turísticos
✔
Mas e se meu caso de uso for
diferente ou eu já possuo um
modelo treinado?
Modelos customizados!
● Hospedagem de modelos Tensorflow Lite
● Fluxo de inferência utilizando o SDK
● Mecanismo de “fallback”
● Atualizações automáticas
Mas como eu faço para usar no
Android?
Configurar Firebase no projeto do app
Getting Started with Firebase on Android - Firecasts
Adicionar dependências no build.gradle (app)
implementation ('com.google.firebase:firebase-core:16.0.1'){
exclude group: 'com.android.support'
}
implementation('com.google.firebase:firebase-ml-vision:16.0.0') {
exclude group: 'com.android.support'
}
implementation ('com.google.firebase:firebase-ml-vision-image-label-model:15.0.0') {
exclude group: 'com.android.support'
}
Configurar modelos no manifest
<application ...>
...
<meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="label,face,text" />
...
</application>
Criar um FirebaseVisionImage
val bitmap = ... // Obter imagem de arquivo, câmera, url, etc
val firebaseVisionImage = FirebaseVisionImage.fromBitmap(bitmap)
Obter o FirebaseVisionLabelDetector
val options = FirebaseVisionLabelDetectorOptions.Builder()
.setConfidenceThreshold(0.8f)
.build()
val firebaseVision = FirebaseVision.getInstance()
val detector = firebaseVision.getVisionLabelDetector(options)
Obter o FirebaseVisionLabelDetector
detector.detectInImage(firebaseVisionImage)
.addOnSuccessListener {
val firebaseVisionLabels = it
for (firebaseVisionLabel in firebaseVisionLabels) {
// Usar as informações label, entityId e confidence
}
}
.addOnFailureListener {
val error = it // Tratar o erro adequadamente
}
App de exemplo:
github.com/felipepedroso/MLKitSample
Mas já dá usar em produção?
Conclusões
● O MLKit facilita o processo de desenvolvimento
● Setup e utilização são simples
● Novos casos de uso através de modelos customizados
● Funciona bem, mas ainda está em beta
Muito Obrigado!
felipeapedrosofelipepedroso felipeapedroso
Referências
https://firebase.google.com/docs/ml-kit/
https://github.com/firebase/quickstart-android/tree/master/mlkit
https://medium.com/google-developer-experts/exploring-firebase-mlkit-on-
android-introducing-mlkit-part-one-98fcfedbeee0

Mais conteúdo relacionado

Mais procurados

Xamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile MultiplataformaXamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile MultiplataformaXpand IT
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5Bruno Muniz
 
Linguagem de programação da internet
Linguagem de programação da internetLinguagem de programação da internet
Linguagem de programação da internetVictor Barreto
 
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiraTDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiratdc-globalcode
 
Expression blend : apps incriveis com menos código
Expression blend :  apps incriveis com menos códigoExpression blend :  apps incriveis com menos código
Expression blend : apps incriveis com menos códigoAline Firmino Brito
 
Xamarin fest latam Salvador 2017
Xamarin fest latam Salvador 2017Xamarin fest latam Salvador 2017
Xamarin fest latam Salvador 2017Alisson Sena, MBA
 
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...Bruno Muniz
 
Visual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test CloudVisual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test CloudAlexandre Zollinger Chohfi
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosFelipe J. R. Vieira
 

Mais procurados (11)

Android - Aula 01
Android - Aula 01Android - Aula 01
Android - Aula 01
 
Xamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile MultiplataformaXamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5
 
Linguagem de programação da internet
Linguagem de programação da internetLinguagem de programação da internet
Linguagem de programação da internet
 
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiraTDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
 
Expression blend : apps incriveis com menos código
Expression blend :  apps incriveis com menos códigoExpression blend :  apps incriveis com menos código
Expression blend : apps incriveis com menos código
 
Xamarin fest latam Salvador 2017
Xamarin fest latam Salvador 2017Xamarin fest latam Salvador 2017
Xamarin fest latam Salvador 2017
 
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
 
Introdução intel XDK
Introdução intel XDKIntrodução intel XDK
Introdução intel XDK
 
Visual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test CloudVisual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test Cloud
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de Aplicativos
 

Semelhante a Machine Learning em Apps Android com ML Kit

Lidar com Expectativas é a melhor forma de garantir a Experiência
Lidar com Expectativas é a melhor forma de garantir a ExperiênciaLidar com Expectativas é a melhor forma de garantir a Experiência
Lidar com Expectativas é a melhor forma de garantir a ExperiênciaMarcelo Sales
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...Paulo Cesar Ortins Brito
 
Planejamento e Ativação de Aplicativos móveis
Planejamento e Ativação de Aplicativos móveisPlanejamento e Ativação de Aplicativos móveis
Planejamento e Ativação de Aplicativos móveisAlex Ivonika
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchLeonardo Soares
 
O Poder da Visão Computacional
O Poder da Visão ComputacionalO Poder da Visão Computacional
O Poder da Visão ComputacionalAndré Luiz Secco
 
Criando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveisCriando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveisklaibert
 
Precisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterPrecisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterLetticia Nicoli
 
Obtendo feedback da sua audiência com Visão Computacional
Obtendo feedback da sua audiência com Visão ComputacionalObtendo feedback da sua audiência com Visão Computacional
Obtendo feedback da sua audiência com Visão ComputacionalAndré Luiz Secco
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileWaldyr Felix
 
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...Paulo Cesar Ortins Brito
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediAlessandro Binhara
 
Desenvolvimento para windows phone
Desenvolvimento para windows phoneDesenvolvimento para windows phone
Desenvolvimento para windows phoneDennes Torres
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Pedro Edson Silva Barros
 
Desenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaDesenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaJose Augusto Cintra
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Letticia Nicoli
 
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...Paulo Cesar Ortins Brito
 

Semelhante a Machine Learning em Apps Android com ML Kit (20)

Lidar com Expectativas é a melhor forma de garantir a Experiência
Lidar com Expectativas é a melhor forma de garantir a ExperiênciaLidar com Expectativas é a melhor forma de garantir a Experiência
Lidar com Expectativas é a melhor forma de garantir a Experiência
 
Os caminhos para o desenvolvimento mobile
Os caminhos para o desenvolvimento mobileOs caminhos para o desenvolvimento mobile
Os caminhos para o desenvolvimento mobile
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
 
Planejamento e Ativação de Aplicativos móveis
Planejamento e Ativação de Aplicativos móveisPlanejamento e Ativação de Aplicativos móveis
Planejamento e Ativação de Aplicativos móveis
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
 
Apresentação m-learning
Apresentação m-learningApresentação m-learning
Apresentação m-learning
 
O Poder da Visão Computacional
O Poder da Visão ComputacionalO Poder da Visão Computacional
O Poder da Visão Computacional
 
A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3
 
Criando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveisCriando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveis
 
Precisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterPrecisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App Center
 
Obtendo feedback da sua audiência com Visão Computacional
Obtendo feedback da sua audiência com Visão ComputacionalObtendo feedback da sua audiência com Visão Computacional
Obtendo feedback da sua audiência com Visão Computacional
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
Desenvolvimento para windows phone
Desenvolvimento para windows phoneDesenvolvimento para windows phone
Desenvolvimento para windows phone
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
 
Desenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaDesenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis Multiplataforma
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
 
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
 

Mais de Felipe Pedroso

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformFelipe Pedroso
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaFelipe Pedroso
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.jsFelipe Pedroso
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot FrameworkFelipe Pedroso
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101Felipe Pedroso
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitFelipe Pedroso
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit Felipe Pedroso
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Felipe Pedroso
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Felipe Pedroso
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTTFelipe Pedroso
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDKFelipe Pedroso
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Felipe Pedroso
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Felipe Pedroso
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Felipe Pedroso
 

Mais de Felipe Pedroso (20)

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis Platform
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
Testes A/B
Testes A/BTestes A/B
Testes A/B
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Análise SWOT
Análise SWOTAnálise SWOT
Análise SWOT
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"
 
Fat binaries
Fat binariesFat binaries
Fat binaries
 

Machine Learning em Apps Android com ML Kit