App Xamarin.Forms para obter textos manuscritos de uma imagem utilizando Microsoft Cognitive Services

Olá, neste post irei demonstrar como criar uma aplicação Xamarin.Forms para analisar uma imagem e extrair textos manuscritos utilizando a API de Pesquisa Visual Computacional dos Serviços Cognitivos da Microsoft.

O reconhecimento de texto manuscrito economiza tempo e esforço e pode torná-lo mais produtivo ao permitir que você extraia textos de uma imagem em vez de ter que transcrevê-los.

Esta API permite a detecção de textos manuscritos  a partir de fotos de anotações, cartas, dissertações, quadros brancos, formulários, etc. Ela funciona em diferentes superfícies e telas de fundo.

Vale ressaltar que no momento em que escrevo este post, essa funcionalidade de detecção de textos manuscritos encontra-se em versão Preview e em sua documentação consta que ainda possui algumas dificuldades para detectar textos que não estejam em inglês.

Para se aprofundar mais no assunto e conhecer outros serviços cognitivos da Microsoft acesse o link: https://azure.microsoft.com/pt-br/services/cognitive-services/computer-vision.

Para este exemplo irei assumir que você já criou uma aplicação Xamarin.Forms e utilizou o Nuget Package Xam.Plugin.Media para capturar uma foto da câmera. Se você possui dúvidas sobre isso, recomendo ler o post: Utilizando a Câmera – Xamarin.Forms, lá eu explico passo a passo como utilizar o plugin para tirar fotos em aplicações Xamarin.Forms.

 

 

OBTENDO CHAVES

É necessário obter uma URL e Chaves para utilizar a API da Pesquisa Visual Computacional, então o primeiro passo é acessar o link:  https://azure.microsoft.com/pt-br/try/cognitive-services/e clicar em “Obter Chave de API”.

1

 

Em seguida será necessário realizar login com uma conta Microsoft.
Para este exemplo estou utilizando minha conta e os serviços disponibilizados gratuitamente por 30 dias. (Após esse período essas chaves serão desativadas).

2

 

Agora que você já possui sua URL e as chaves para utilizar a API, recomendo que guarde essas informações.

ADICIONANDO NUGET PACKAGES

Clique com o botão direito em cima de sua Solution e selecione “Manage NuGet Packages for Solution…”.

3

 

Digite “Microsoft.ProjectOxford.Vision” e selecione o plugin como demonstrado na imagem a seguir.

4

 

Selecione apenas o projeto compartilhado e clique no botão “Install”.

4

 

Depois repita esses passos para instalar os seguintes pacotes:

  • Microsoft.ProjectOxford.Common.DotNetStandard
  • Newtonsoft.Json

C#

Crie uma variável do tipo IVisionServiceClient e uma String chamada url. Observe que ambos estão sendo inicializados no construtor. Substitua “URL” pela sua url e “Key” por uma de suas chaves obtidas no passo anterior “Obtendo Chaves”.

5

 

Crie um método chamado “TakePicture” como demonstrado no post Utilizando a Câmera – Xamarin.Forms, ele será responsável por tirar a foto.  Em seguida adicione uma chamada para o método CreateHandwriting passando como parâmetro o endereço da foto tirada.

6

 

Crie o método CreateHandwriting, realize a chamada para o CreateHandwritingRecognitionOperationAsync passando como parâmetro um Stream da foto e por último atribua a url de resultado (result.Url) na variável url que foi criada anteriormente.

7

 

Em seguida, volte para o método TakePicture e insira uma chamada para o método GetHandwriting passando como parâmetro a variável url, esse método será responsável por pegar o resultado da análise feita pela API.

8

 

No método GetHandwriting instancie um HandwritingRecognitionOperation e atribua o parâmetro do método (url) na propriedade url do mesmo.

Em seguida realize a chamada para GetHandwritingRecognitionOperationResultAsync passando como parâmetro a variável operation.

Observe que por ultimo é atribuído o texto identificado a Label chamada “Resultado”.

9

 

Código Completo

Xaml

Crie uma Image para adicionar a foto tirada, um Button para chamar o método TakePicture quando clicado e uma Label para demonstrar o texto identificado na foto.

Resultado

ezgif.com-gif-maker (7)

 

Esse e todos os exemplos deste blog encontram-se disponíveis no GitHub.

icongithub

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s