Como adicionar o Machine Learning aos seus aplicativos Android

Autor: Peter Berry
Data De Criação: 16 Lang L: none (month-012) 2021
Data De Atualização: 1 Julho 2024
Anonim
Do you want an easy way to add Machine Learning into your app? by Sandra Dupré
Vídeo: Do you want an easy way to add Machine Learning into your app? by Sandra Dupré

Contente


O aprendizado de máquina (ML) pode ajudá-lo a criar experiências inovadoras, atraentes e exclusivas para seus usuários móveis.

Depois de dominar o ML, você pode usá-lo para criar uma ampla variedade de aplicativos, incluindo aplicativos que organizam fotos automaticamente com base no assunto, identificam e rastreiam o rosto de uma pessoa durante uma transmissão ao vivo, extraem texto de uma imagem e muito mais .

Mas ML não é exatamente para iniciantes! Se você deseja aprimorar seus aplicativos Android com poderosos recursos de aprendizado de máquina, por onde exatamente você começa?

Neste artigo, fornecerei uma visão geral de um SDK (Software Development Kit) que promete colocar o poder do ML na ponta dos dedos, mesmo se você tiver zero Experiência em ML. Até o final deste artigo, você terá a base necessária para começar a criar aplicativos inteligentes baseados em ML capazes de rotular imagens, digitalizar códigos de barras, reconhecer rostos e pontos de referência famosos e realizar muitas outras tarefas poderosas de ML.


Conheça o Kit de aprendizado de máquina do Google

Com o lançamento de tecnologias como TensorFlow e CloudVision, o ML está se tornando mais amplamente usado, mas essas tecnologias não são para os fracos de coração! Você normalmente precisa de um entendimento profundo das redes neurais e da análise de dados, apenas para obter começado com uma tecnologia como o TensorFlow.

Mesmo se você Faz ter alguma experiência com ML, criar um aplicativo móvel com aprendizado de máquina pode ser um processo demorado, complexo e caro, exigindo que você forneça dados suficientes para treinar seus próprios modelos de ML e, em seguida, otimize esses modelos de ML para que executem com eficiência no ambiente móvel. Se você é um desenvolvedor individual ou possui recursos limitados, talvez não seja possível colocar em prática seus conhecimentos de ML.


O ML Kit é a tentativa do Google de levar o aprendizado de máquina às massas.

Sob o capô, o ML Kit reúne várias tecnologias poderosas de ML que normalmente exigiriam amplo conhecimento de ML, incluindo Cloud Vision, TensorFlow e a API de redes neurais do Android. O ML Kit combina essas tecnologias especializadas de ML com modelos pré-treinados para casos de uso móvel comuns, incluindo extrair texto de uma imagem, digitalizar um código de barras e identificar o conteúdo de uma foto.

Independentemente de você ter algum conhecimento prévio de ML, você pode usar o ML Kit para adicionar recursos avançados de aprendizado de máquina ao seu Android e Aplicativos iOS - basta passar alguns dados para a parte correta do ML Kit, como a API de reconhecimento de texto ou identificação de idioma, e essa API usará o aprendizado de máquina para retornar uma resposta.

Como uso as APIs do kit ML?

O ML Kit é dividido em várias APIs que são distribuídas como parte da plataforma Firebase. Para usar qualquer uma das APIs do ML Kit, você precisa criar uma conexão entre o projeto do Android Studio e o projeto correspondente do Firebase e depois se comunicar com o Firebase.

A maioria dos modelos de kit de ML está disponível como modelos no dispositivo que você pode baixar e usar localmente, mas alguns modelos também estão disponíveis na nuvem, o que permite ao seu aplicativo executar tarefas de ML através da conexão à Internet do dispositivo.

Cada abordagem tem seu próprio conjunto único de pontos fortes e fracos, portanto, você precisará decidir se o processamento local ou remoto faz mais sentido para seu aplicativo em particular. Você pode até adicionar suporte para os dois modelos e permitir que seus usuários decidam qual modelo usar em tempo de execução. Como alternativa, você pode configurar seu aplicativo para selecionar o melhor modelo para as condições atuais, por exemplo, usando apenas o modelo baseado em nuvem quando o dispositivo estiver conectado ao Wi-Fi.

Se você optar pelo modelo local, os recursos de aprendizado de máquina do seu aplicativo estarão sempre disponíveis, independentemente de o usuário ter uma conexão ativa com a Internet. Como todo o trabalho é realizado localmente, os modelos no dispositivo são ideais quando o aplicativo precisa processar grandes quantidades de dados rapidamente, por exemplo, se você estiver usando o ML Kit para manipular uma transmissão de vídeo ao vivo.

Enquanto isso, os modelos baseados na nuvem geralmente fornecem maior precisão do que os correspondentes no dispositivo, pois os modelos na nuvem aproveitam o poder da tecnologia de aprendizado de máquina do Google Cloud Platform. Por exemplo, o modelo no dispositivo da API de rotulagem de imagem inclui 400 rótulos, mas o modelo de nuvem apresenta mais de 10.000 etiquetas.

Dependendo da API, também pode haver algumas funcionalidades disponíveis apenas na nuvem, por exemplo, a API de reconhecimento de texto só pode identificar caracteres não latinos se você usar seu modelo baseado em nuvem.

As APIs baseadas na nuvem estão disponíveis apenas para projetos Firebase no nível do Blaze, portanto, você precisará atualizar para um plano Blaze de pagamento conforme o uso, antes de poder usar qualquer um dos modelos de nuvem do ML Kit.

Se você decidir explorar os modelos de nuvem, na época em que escrevia, havia uma cota gratuita disponível para todas as APIs do ML Kit. Se você quiser experimentar a Rotulagem de imagens baseada em nuvem, poderá atualizar seu projeto Firebase para o plano Blaze, testar a API em menos de 1.000 imagens e voltar ao plano Spark gratuito, sem ser cobrado. No entanto, os termos e condições têm o hábito desagradável de mudar com o tempo; leia as letras pequenas antes de atualizar para o Blaze, apenas para garantir que você não seja atingido por contas inesperadas!

Identifique o texto em qualquer imagem, com a API de reconhecimento de texto

A API de reconhecimento de texto pode identificar, analisar e processar texto de maneira inteligente.

Você pode usar essa API para criar aplicativos que extraem texto de uma imagem, para que seus usuários não precisem perder tempo com a entrada de dados manual tediosa. Por exemplo, você pode usar a API de reconhecimento de texto para ajudar seus usuários a extrair e registrar as informações de recibos, faturas, cartões de visita ou até etiquetas nutricionais, simplesmente tirando uma foto do item em questão.

Você pode até usar a API de reconhecimento de texto como a primeira etapa em um aplicativo de tradução, onde o usuário tira uma foto de algum texto desconhecido e a API extrai todo o texto da imagem, pronto para ser passado para um serviço de tradução.

A API de reconhecimento de texto no dispositivo do ML Kit pode identificar texto em qualquer idioma baseado em latim, enquanto sua contraparte baseada em nuvem pode reconhecer uma variedade maior de idiomas e caracteres, incluindo caracteres chineses, japoneses e coreanos. O modelo baseado em nuvem também é otimizado para extrair texto esparso de imagens e texto de documentos densamente compactados, que você deve levar em consideração ao decidir qual modelo usar no seu aplicativo.

Deseja alguma experiência prática com esta API? Em seguida, confira nosso guia passo a passo para criar um aplicativo que pode extrair o texto de qualquer imagem, usando a API de reconhecimento de texto.

Entendendo o conteúdo de uma imagem: a API de rotulagem de imagens

A API de rotulagem de imagens pode reconhecer entidades em uma imagem, incluindo locais, pessoas, produtos e animais, sem a necessidade de metadados contextuais adicionais. A API de rotulagem de imagens retornará informações sobre as entidades detectadas na forma de rótulos. Por exemplo, na captura de tela a seguir, forneci à API uma foto da natureza e ela respondeu com rótulos como "Floresta" e "Rio".

Essa capacidade de reconhecer o conteúdo de uma imagem pode ajudar a criar aplicativos que marcam fotos com base no assunto; filtros que identificam automaticamente o conteúdo impróprio enviado pelo usuário e o removem do seu aplicativo; ou como base para a funcionalidade de pesquisa avançada.

Muitas das APIs do ML Kit retornam vários resultados possíveis, completos com as respectivas pontuações de confiança - incluindo a API de rotulagem de imagens. Se você passar o rótulo de imagem em uma foto de um poodle, poderá retornar rótulos como "poodle", "cachorro", "animal de estimação" e "animal pequeno", todos com pontuações variadas, indicando a confiança da API em cada rótulo. Felizmente, nesse cenário, o "poodle" terá o maior índice de confiança!

Você pode usar essa pontuação de confiança para criar um limite que deve ser atingido, antes que seu aplicativo atue em um rótulo específico, por exemplo, exibi-lo ao usuário ou marcar uma foto com esse rótulo.

A etiquetagem de imagem está disponível no dispositivo e na nuvem, embora se você optar pelo modelo em nuvem, terá acesso a mais de 10.000 etiquetas, em comparação com as 400 etiquetas incluídas no modelo no dispositivo.

Para uma visão mais aprofundada da API de rotulagem de imagens, confira Determinar o conteúdo de uma imagem com aprendizado de máquina. Neste artigo, criamos um aplicativo que processa uma imagem e, em seguida, retorna os rótulos e as pontuações de confiança para cada entidade detectada nessa imagem. Também implementamos modelos no dispositivo e na nuvem neste aplicativo, para que você possa ver exatamente como os resultados diferem, dependendo do modelo que você escolher.

Entendendo expressões e rastreando faces: a API de detecção de faces

A API de detecção de rosto pode localizar rostos humanos em fotos, vídeos e transmissões ao vivo e extrai informações sobre cada rosto detectado, incluindo sua posição, tamanho e orientação.

Você pode usar essa API para ajudar os usuários a editar suas fotos, por exemplo, cortando automaticamente todo o espaço vazio em torno do último tiro na cabeça.

A API de detecção de rosto não se limita a imagens - você também pode aplicá-la a vídeos. Por exemplo, você pode criar um aplicativo que identifique todos os rostos de um feed de vídeo e depois desfoque tudo exceto esses rostos, semelhante ao recurso de desfoque de fundo do Skype.

A detecção de rosto é sempre realizada no dispositivo, onde é rápido o suficiente para ser usado em tempo real; portanto, ao contrário da maioria das APIs do ML Kit, a Detecção de rosto faz não inclua um modelo de nuvem.

Além de detectar rostos, esta API possui alguns recursos adicionais que valem a pena explorar. Primeiro, a API de detecção de rosto pode identificar pontos de referência faciais, como olhos, lábios e ouvidos, e depois recuperar as coordenadas exatas para cada um desses pontos de referência. este reconhecimento de referência fornece um mapa preciso de cada rosto detectado - perfeito para criar aplicativos de realidade aumentada (AR) que adicionam máscaras e filtros no estilo Snapchat ao feed da câmera do usuário.

A API de detecção de rosto também oferece tratamento facial classificação. Atualmente, o ML Kit suporta duas classificações faciais: olhos abertos e sorrindo.

Você pode usar essa classificação como base para serviços de acessibilidade, como controles de viva-voz, ou para criar jogos que respondam à expressão facial do jogador. A capacidade de detectar se alguém está sorrindo ou de olhos abertos também pode ser útil se você estiver criando um aplicativo de câmera - afinal, não há nada pior do que tirar várias fotos, apenas para descobrir mais tarde que alguém estava com os olhos fechados. em cada tiro.

Por fim, a API de detecção de rosto inclui um componente de rastreamento de rosto, que atribui um ID a um rosto e depois rastreia esse rosto em várias imagens consecutivas ou quadros de vídeo. Note que este é o rosto rastreamento e não é verdade facial reconhecimento. Nos bastidores, a API de detecção de rosto está rastreando a posição e o movimento do rosto e, em seguida, inferindo que esse rosto provavelmente pertence à mesma pessoa, mas acaba por desconhecer a identidade da pessoa.

Experimente a API de detecção de rosto por conta própria! Descubra como criar um aplicativo de detecção de rosto com aprendizado de máquina e Kit Firebase ML.

Leitura de código de barras com Firebase e ML

A digitalização de código de barras pode não parecer tão empolgante quanto algumas das outras APIs de aprendizado de máquina, mas é uma das partes mais acessíveis do ML Kit.

A digitalização de um código de barras não requer nenhum hardware ou software especializado, para que você possa usar a API de digitalização de código de barras e garantir que seu aplicativo permaneça acessível ao maior número possível de pessoas, incluindo usuários de dispositivos mais antigos ou econômicos. Enquanto um dispositivo tiver uma câmera funcionando, ele não terá problemas para ler um código de barras.

A API de digitalização de código de barras do ML Kit pode extrair uma ampla variedade de informações de códigos de barras impressos e digitais, o que o torna uma maneira rápida, fácil e acessível de transmitir informações do mundo real para o seu aplicativo, sem que os usuários tenham que realizar qualquer entrada de dados tediosa .

Existem nove tipos de dados diferentes que a API de verificação de código de barras pode reconhecer e analisar a partir de um código de barras:

  • TYPE_CALENDAR_EVENT. Ele contém informações como a localização do evento, o organizador e o horário de início e de término.Se você estiver promovendo um evento, poderá incluir um código de barras impresso em seus pôsteres ou folhetos ou apresentar um código de barras digital em seu site. Os participantes em potencial podem extrair todas as informações sobre o seu evento, simplesmente digitalizando seu código de barras.
  • TYPE_CONTACT_INFO. Esse tipo de dados abrange informações como o endereço de e-mail, nome, número de telefone e título do contato.
  • TYPE_DRIVER_LICENSE. Contém informações como rua, cidade, estado, nome e data de nascimento associadas à carteira de motorista.
  • TYPE_EMAIL. Esse tipo de dados inclui um endereço de e-mail, a linha de assunto do e-mail e o texto do corpo.
  • TYPE_GEO. Isso contém a latitude e a longitude de um ponto geográfico específico, que é uma maneira fácil de compartilhar um local com seus usuários ou de compartilhar seu local com outras pessoas. Você pode até usar códigos de barras geográficos para acionar eventos baseados em localização, como exibir algumas informações úteis sobre a localização atual do usuário ou como base para jogos para celular baseados em localização.
  • TYPE_PHONE. Ele contém o número de telefone e o tipo do número, por exemplo, se é um número comercial ou residencial.
  • TYPE_SMS. Ele contém algum texto do corpo do SMS e o número de telefone associado ao SMS.
  • TYPE_URL. Este tipo de dados contém um URL e o título do URL. A digitalização de um código de barras TYPE_URL é muito mais fácil do que confiar nos usuários para digitar manualmente um URL longo e complexo, sem cometer erros de digitação ou ortografia.
  • TYPE_WIFI. Ele contém o SSID e a senha de uma rede Wi-Fi, além de seu tipo de criptografia, como OPEN, WEP ou WPA. Um código de barras Wi-Fi é uma das maneiras mais fáceis de compartilhar credenciais Wi-Fi, além de remover completamente o risco de seus usuários inserirem essas informações incorretamente.

A API de leitura de código de barras pode analisar dados de uma variedade de códigos de barras diferentes, incluindo formatos lineares como Codabar, Code 39, EAN-8, ITF e UPC-A, e formatos 2D como Aztec, Data Matrix e QR Codes.

Para facilitar as coisas para seus usuários finais, essa API verifica todos os códigos de barras suportados simultaneamente e também pode extrair dados independentemente da orientação do código de barras - portanto, não importa se o código de barras está completamente de cabeça para baixo quando o usuário os digitaliza!

Machine Learning na nuvem: a API de reconhecimento de marcos

Você pode usar a API de reconhecimento de ponto de referência do ML Kit para identificar pontos de referência naturais e construídos conhecidos em uma imagem.

Se você passar para esta API uma imagem que contém um ponto de referência famoso, ele retornará o nome desse ponto de referência, os valores de latitude e longitude do ponto de referência e uma caixa delimitadora indicando onde o ponto de referência foi descoberto na imagem.

Você pode usar a Landmark Recognition API para criar aplicativos que marcam automaticamente as fotos do usuário ou para fornecer uma experiência mais personalizada, por exemplo, se o aplicativo reconhecer que um usuário está tirando fotos da Torre Eiffel, ele poderá oferecer alguns fatos interessantes sobre este ponto de referência ou sugira atrações turísticas próximas e similares que o usuário queira visitar em seguida.

Invulgarmente para o ML Kit, a API de detecção de ponto de referência está disponível apenas como uma API baseada em nuvem; portanto, seu aplicativo só poderá executar a detecção de ponto de referência quando o dispositivo tiver uma conexão ativa com a Internet.

A API de identificação de idiomas: desenvolvendo para um público internacional

Hoje, os aplicativos Android são usados ​​em todas as partes do mundo por usuários que falam muitos idiomas diferentes.

A API de identificação de idioma do ML Kit pode ajudar seu aplicativo Android a atrair um público internacional, usando uma sequência de texto e determinando o idioma em que está escrito. A API de identificação de idioma pode identificar mais de uma centena de idiomas diferentes, incluindo texto romanizado para árabe, búlgaro, Chinês, grego, hindi, japonês e russo.

Essa API pode ser uma adição valiosa a qualquer aplicativo que processe texto fornecido pelo usuário, pois esse texto raramente inclui qualquer informação de idioma. Você também pode usar a API de identificação de idioma em aplicativos de tradução, como o primeiro passo para traduzir qualquer coisa, é saber em qual idioma você está trabalhando! Por exemplo, se o usuário apontar a câmera do dispositivo para um menu, seu aplicativo poderá usar a API de identificação de idioma para determinar se o menu está escrito em francês e oferecer a tradução desse menu usando um serviço como a API de tradução em nuvem ( talvez depois de extrair seu texto, usando a API de reconhecimento de texto?)

Dependendo da sequência em questão, a API de identificação de idioma pode retornar vários idiomas em potencial, acompanhados de pontuações de confiança, para que você possa determinar qual idioma detectado tem maior probabilidade de estar correto. Observe que no momento da redação do ML Kit não era possível identificar vários idiomas diferentes na mesma sequência.

Para garantir que essa API forneça identificação de idioma em tempo real, a API de identificação de idioma está disponível apenas como modelo no dispositivo.

Em breve: resposta inteligente

O Google planeja adicionar mais APIs ao ML Kit no futuro, mas já sabemos sobre uma API promissora.

De acordo com o site do ML Kit, as próximas API de resposta inteligente permitirá que você ofereça respostas de mensagens contextuais em seus aplicativos, sugerindo trechos de texto que se ajustem ao contexto atual. Com base no que já sabemos sobre essa API, parece que o Smart Reply será semelhante ao recurso de resposta sugerida já disponível no aplicativo do Android, Wear OS e Gmail.

A captura de tela a seguir mostra como o recurso de resposta sugerida está atualmente no Gmail.

Qual é o próximo? Usando o TensorFlow Lite com ML Kit

O ML Kit fornece modelos pré-criados para casos de uso móvel comuns, mas em algum momento você pode querer ir além desses modelos prontos.

É possível criar seus próprios modelos de ML usando o TensorFlow Lite e depois distribuí-los usando o ML Kit. No entanto, lembre-se de que, ao contrário das APIs prontas do ML Kit, trabalhar com seus próprios modelos de ML exige uma significativo quantidade de conhecimentos de ML.

Depois de criar seus modelos TensorFlow Lite, você pode enviá-los para o Firebase e o Google gerenciará a hospedagem e a veiculação desses modelos para seus usuários finais. Nesse cenário, o ML Kit atua como uma camada de API sobre o seu modelo personalizado, o que simplifica parte do trabalho pesado envolvido no uso de modelos personalizados. Mais notavelmente, o ML Kit enviará automaticamente a versão mais recente do seu modelo aos seus usuários, para que você não precise atualizar seu aplicativo sempre que quiser ajustar seu modelo.

Para fornecer a melhor experiência possível ao usuário, você pode especificar as condições que devem ser atendidas, antes que seu aplicativo baixe novas versões do seu modelo TensorFlow Lite, por exemplo, atualize o modelo apenas quando o dispositivo estiver ocioso, carregando ou conectado ao Wi- Fi. Você pode até usar o ML Kit e o TensorFlow Lite juntamente com outros serviços do Firebase, por exemplo, usando o Firebase Remote Config e o Firebase A / B Testing para servir modelos diferentes para diferentes conjuntos de usuários.

Se você quiser ir além dos modelos pré-criados, ou se os modelos existentes do ML Kit não atenderem totalmente às suas necessidades, poderá aprender mais sobre como criar seus próprios modelos de aprendizado de máquina, nos documentos oficiais do Firebase.

Empacotando

Neste artigo, analisamos cada componente do kit de aprendizado de máquina do Google e abordamos alguns cenários comuns em que você pode usar cada uma das APIs do kit ML.

O Google planeja adicionar mais APIs no futuro. Quais APIs de aprendizado de máquina você gostaria de ver adicionadas ao ML Kit a seguir? Deixe-nos saber nos comentários abaixo!

Depoi de uma quantidade aparentemente interminável de vazamento, o Pixel 3a e o Pixel 3a XL etão finalmente aqui!Ambo o dipoitivo têm muito em comum com eu colega mai caro, o que torna ...

O Google anunciou o Google Pixel 3a e o Pixel 3a XL no Google I / O 2019. Como vário rumore ugeriram, o aparelho previto trazem quae toda a bondade do martphone regulare da érie Pixel 3 por ...

Publicações.